@swapkit/toolboxes 4.26.0 → 4.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/src/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var aX=Object.create;var{getPrototypeOf:sX,defineProperty:D1,getOwnPropertyNames:GT,getOwnPropertyDescriptor:eX}=Object,LT=Object.prototype.hasOwnProperty;function MT(y){return this[y]}var y9,f9,_T=(y,T,H)=>{var f=y!=null&&typeof y==="object";if(f){var X=T?y9??=new WeakMap:f9??=new WeakMap,Q=X.get(y);if(Q)return Q}H=y!=null?aX(sX(y)):{};let Z=T||!y||!y.__esModule?D1(H,"default",{value:y,enumerable:!0}):H;for(let q of GT(y))if(!LT.call(Z,q))D1(Z,q,{get:MT.bind(y,q),enumerable:!0});if(f)X.set(y,Z);return Z},V0=(y)=>{var T=(zT??=new WeakMap).get(y),H;if(T)return T;if(T=D1({},"__esModule",{value:!0}),y&&typeof y==="object"||typeof y==="function"){for(var f of GT(y))if(!LT.call(T,f))D1(T,f,{get:MT.bind(y,f),enumerable:!(H=eX(y,f))||H.enumerable})}return zT.set(y,T),T},zT;var T9=(y)=>y;function H9(y,T){this[y]=T9.bind(null,T)}var P0=(y,T)=>{for(var H in T)D1(y,H,{get:T[H],enumerable:!0,configurable:!0,set:H9.bind(T,H)})};var h=(y,T)=>()=>(y&&(T=y(y=0)),T);function sf(y,T){if(!m0(y))return[];let H=m0(y.transaction)?y.transaction:y,f=H.execution,X=m0(H.fee)?H.fee.transition:void 0;return[...m0(f)&&Array.isArray(f.transitions)?f.transitions:[],...m0(X)?[X]:[]].flatMap((Z)=>{if(!m0(Z)||!Array.isArray(Z.outputs))return[];if(T&&Z.program!==T)return[];return Z.outputs.flatMap((q)=>m0(q)&&q.type==="record"&&typeof q.value==="string"?[q.value]:[])})}function ef(y){return y.reduce((T,H)=>H.spent?T:T+H.microcredits,0n)}function n0(y,T){return T instanceof B0.SwapKitError&&T.errorKey.startsWith("toolbox_aleo_")?T:new B0.SwapKitError(y,T)}function X9(...y){let T=y.reduce((X,Q)=>X+Q.length,0),H=new Uint8Array(T),f=0;for(let X of y)H.set(X,f),f+=X.length;return H}function Q9(y){let T=new Uint8Array(4);return new DataView(T.buffer).setUint32(0,y,!1),T}function NT(y){let T=df.hmac(tf.sha512,$T,y);return{chainCode:T.slice(32),key:T.slice(0,32)}}function kT(y,T){if(!Number.isSafeInteger(T)||T<0||T>=cf)throw new B0.SwapKitError("toolbox_aleo_wasm_init_failed",{index:T});let H=T+cf,f=X9(Uint8Array.of(0),y.key,Q9(H)),X=df.hmac(tf.sha512,y.chainCode,f);return{chainCode:X.slice(32),key:X.slice(0,32)}}function y8(y,T){let H=y.split("/");if(H.shift()!=="m"||H.length===0)throw new B0.SwapKitError("toolbox_aleo_wasm_init_failed",{path:y});return H.reduce((f,X)=>{if(!/^\d+'$/.test(X))throw new B0.SwapKitError("toolbox_aleo_wasm_init_failed",{path:y,segment:X});return kT(f,Number.parseInt(X.slice(0,-1),10))},NT(T))}function R1(y){return typeof y==="string"&&CT.test(y)}async function f8(y){if(!R1(y))return!1;try{let{Account:T}=await import("@provablehq/sdk/mainnet.js");return T.isValidAddress(y)}catch{return!1}}function BT(y){return OT.test(y)}function T8(y,T){if(y===null)return 0n;if(typeof y!=="string")throw new B0.SwapKitError("toolbox_aleo_balance_error",{integerType:T,value:y});let H=y.match(new RegExp(`^(\\d+)${T}$`));if(!H?.[1])throw new B0.SwapKitError("toolbox_aleo_balance_error",{integerType:T,value:y});return BigInt(H[1])}function L5(y){if(y.chain!==B0.Chain.Aleo)throw new B0.SwapKitError("toolbox_aleo_unsupported_token",{asset:y.toString()});let T=y.getBaseValue("bigint");if(y.isGasAsset)return{amount:`${T}u64`,functionName:z5,isTokenTransfer:!1,programName:My};if(!y.address||!BT(y.address))throw new B0.SwapKitError("toolbox_aleo_unsupported_token",{asset:y.toString()});return{amount:`${T}u128`,functionName:z5,isTokenTransfer:!0,programName:y.address}}function _y(){let y=[...new Set([...B0.SKConfig.get("rpcUrls")[B0.Chain.Aleo],...B0.getChainConfig(B0.Chain.Aleo).rpcUrls])].filter(Boolean);if(y.length===0)throw new B0.SwapKitError("toolbox_aleo_no_rpc_urls");return y}function M5(y){if(typeof y==="object"&&y!==null&&"status"in y&&y.status===404)return!0;return y instanceof Error&&y.message.includes("404")}function m0(y){return typeof y==="object"&&y!==null}function DT(y){if(!m0(y))return!1;return[y.transaction,y.rejected].some((T)=>{if(!m0(T)||!m0(T.execution))return!1;let{transitions:H}=T.execution;return Array.isArray(H)&&H.some((f)=>m0(f)&&f.function===z5&&typeof f.program==="string"&&f.program!==My)})}function FT(y,T){if(!m0(y)||typeof y.status!=="string")throw new B0.SwapKitError("toolbox_aleo_transaction_failed",{response:y,transactionId:T});let H=y.status.toLowerCase();if(H==="rejected"){let f=DT(y)?"toolbox_aleo_token_transfer_rejected":"toolbox_aleo_transaction_failed";throw new B0.SwapKitError(f,{transactionId:T})}return H==="accepted"?"accepted":"pending"}async function RT(y){if(!F1.test(y))throw new B0.SwapKitError("toolbox_aleo_transaction_failed",{transactionId:y});let T,H=!0;for(let f of _y())try{let{AleoNetworkClient:X}=await import("@provablehq/sdk/mainnet.js"),Q=await new X(f).getConfirmedTransaction(y);return FT(Q,y)}catch(X){if(X instanceof B0.SwapKitError)throw X;T=X,H=H&&M5(X)}if(H)return"pending";throw n0("toolbox_aleo_transaction_failed",T)}async function _5(y,{intervalMs:T=5000,timeoutMs:H=60000}={}){let f=Date.now();while(Date.now()-f<H){let X=await RT(y);if(X==="accepted")return X;await new Promise((Q)=>setTimeout(Q,T))}throw new B0.SwapKitError("toolbox_aleo_transaction_failed",{reason:"confirmation_timeout",transactionId:y})}var df,tf,B0,CT,OT,F1,$T,cf=2147483648,G5=1e6,My="credits.aleo",z5="transfer_public",rf=1e6,af=2000000;var H8=h(()=>{df=require("@noble/hashes/hmac.js"),tf=require("@noble/hashes/sha2.js"),B0=require("@swapkit/helpers"),CT=/^aleo1[ac-hj-np-z02-9]{58}$/,OT=/^[a-z0-9_]+\.aleo$/,F1=/^at1[ac-hj-np-z02-9]+$/,$T=new TextEncoder().encode("bls12_377 seed")});function IT(){function y(){let T=Date.now(),H=X8||T;return X8=H,T>X8?T:H+1}return Z9+y().toString(36)}function w0(y){return async function(H,f=!0){let X=await xT.SwapKitApi.getChainBalance({address:H,chain:y,scamFilter:f}),{baseDecimal:Q}=x1.getChainConfig(y),Z=X.map(({identifier:U,value:z,decimal:G})=>{return new x1.AssetValue({decimal:G||Q,identifier:U,value:z})});if(!Z.some((U)=>U.isGasAsset))return[x1.AssetValue.from({chain:y}),...Z];return Z}}var x1,xT,Z9,X8=0;var Hy=h(()=>{x1=require("@swapkit/helpers"),xT=require("@swapkit/helpers/api"),Z9=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function jT(y,T){try{let{Account:H}=await import("@provablehq/sdk/mainnet.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),X=q0.derivationPathToString(T||q0.NetworkDerivationPath[q0.Chain.Aleo],{allHardened:!0}),{key:Q}=y8(X,f(y));return new H({seed:Q})}catch(H){throw n0("toolbox_aleo_wasm_init_failed",H)}}function PT(y,T){let H,f=()=>{return H??=jT(y,T),H};return{getAddress:async()=>(await f()).address().to_string(),signTransaction:async(X)=>{let Q=await f();if(X.sender!==Q.address().to_string())throw new q0.SwapKitError("toolbox_aleo_invalid_address",{address:X.sender});let Z;for(let q of _y())try{let{ProgramManager:U}=await import("@provablehq/sdk/mainnet.js"),z=new U(q);return z.setAccount(Q),await z.buildExecutionTransaction({functionName:X.functionName,inputs:X.inputs,priorityFee:X.priorityFee/G5,privateFee:!1,programName:X.programName})}catch(U){Z=U}throw Z}}}function KT(y={}){if("phrase"in y&&y.phrase&&"signer"in y&&y.signer)throw new q0.SwapKitError("toolbox_aleo_conflicting_signers");let T;async function H(){if(T)return T;let W="phrase"in y?y.phrase:void 0;if(!W)throw new q0.SwapKitError("toolbox_aleo_no_signer");let J="derivationPath"in y?y.derivationPath:void 0;return T=await jT(W,J),T}let f;function X(){let W="signer"in y?y.signer:void 0;if(W)return W;let J="phrase"in y?y.phrase:void 0;if(!J)throw new q0.SwapKitError("toolbox_aleo_no_signer");return f??=PT(J,"derivationPath"in y?y.derivationPath:void 0),f}async function Q(W){let J;for(let Y of _y())try{let{AleoNetworkClient:L}=await import("@provablehq/sdk/mainnet.js");return await W(new L(Y))}catch(L){J=L}throw J}async function Z(W){let J;for(let Y of _y())try{let{AleoNetworkClient:L}=await import("@provablehq/sdk/mainnet.js");return await new L(Y).getTransitionId(W),!0}catch(L){if(M5(L))return!1;J=L}throw J}async function q(){let W=X();try{return await W.getAddress()}catch(J){throw n0("toolbox_aleo_wasm_init_failed",J)}}async function U(W){let J=await Q((Y)=>Y.getProgramMappingValue(My,"account",W));return T8(J,"u64")}async function z(W){try{let J=await U(W);return[q0.AssetValue.from({chain:q0.Chain.Aleo,fromBaseDecimal:6,value:J})]}catch(J){throw n0("toolbox_aleo_balance_error",J)}}let G=w0(q0.Chain.Aleo);async function N(W,J=!0){try{return await G(W,J)}catch{return z(W)}}async function _(){return N(await q())}async function M({transactionIds:W}){try{let J=await H(),Y=[];for(let L of W){if(!F1.test(L))throw new q0.SwapKitError("toolbox_aleo_transaction_failed",{transactionId:L});let D=await Q((F)=>F.getTransaction(L));for(let F of sf(D,My)){if(!J.ownsRecordCiphertext(F))continue;let{RecordPlaintext:x}=await import("@provablehq/sdk/mainnet.js"),A=J.decryptRecord(F).toString(),E=x.fromString(A),u=E.microcredits();if(u===0n)continue;let r=J.generateRecordViewKey(F).toString(),Q0=E.serialNumberString(J.privateKey(),My,"credits",r);Y.push({microcredits:u,plaintext:A,spent:await Z(Q0),transactionId:L})}}return Y}catch(J){throw n0("toolbox_aleo_balance_error",J)}}async function O({transactionIds:W}){let J=await M({transactionIds:W});return q0.AssetValue.from({chain:q0.Chain.Aleo,fromBaseDecimal:6,value:ef(J)})}async function C(W,J){if(!Number.isSafeInteger(J)||J<=0)throw new q0.SwapKitError("toolbox_aleo_insufficient_fee_balance",{feeRecordCredits:J});let Y=await H();if(!W||W.microcredits<=BigInt(J)*BigInt(G5))throw new q0.SwapKitError("toolbox_aleo_insufficient_fee_balance",{available:W?.microcredits.toString(),required:`${J} credits fee record`});let{ProgramManager:L,RecordPlaintext:D}=await import("@provablehq/sdk/mainnet.js"),F;for(let x of _y())try{let A=new L(x);return A.setAccount(Y),await A.split(J,D.fromString(W.plaintext))}catch(A){F=A}throw F}async function B(W,J,Y){let L=await H(),{ProgramManager:D,RecordPlaintext:F}=await import("@provablehq/sdk/mainnet.js"),x;for(let A of _y())try{let E=new D(A);return E.setAccount(L),await E.buildExecutionTransaction({feeRecord:F.fromString(J.plaintext),functionName:"transfer_private_to_public",inputs:[W.plaintext,Y,`${W.microcredits}u64`],priorityFee:0,privateFee:!0,programName:My})}catch(E){x=E}throw x}async function R({transactionId:W,feeRecordCredits:J=4}){let Y;try{let D=(await H()).address().to_string(),F=(await M({transactionIds:[W]})).filter((r)=>!r.spent);if(F.length===0)throw new q0.SwapKitError("toolbox_aleo_no_unspent_records",{transactionId:W});if(F.length===1){if(Y=await C(F[0],J),await _5(Y),F=(await M({transactionIds:[Y]})).filter((r)=>!r.spent),F.length<2)throw new q0.SwapKitError("toolbox_aleo_transaction_failed",{transactionId:Y})}let x=[...F].sort((r,Q0)=>r.microcredits<Q0.microcredits?-1:1),A=x[0],E=x[x.length-1];if(!A||!E||A===E)throw new q0.SwapKitError("toolbox_aleo_no_unspent_records",{transactionId:W});let u=await $(await B(E,A,D));return await _5(u),{publicBalance:q0.AssetValue.from({chain:q0.Chain.Aleo,fromBaseDecimal:6,value:await U(D)}),splitTransactionId:Y,unshieldTransactionId:u}}catch(L){if(Y)throw new q0.SwapKitError("toolbox_aleo_transaction_failed",{error:L,splitTransactionId:Y});throw n0("toolbox_aleo_transaction_failed",L)}}function I({assetValue:W,priorityFee:J=0}){try{if(!Number.isSafeInteger(J)||J<0)throw new q0.SwapKitError("toolbox_aleo_fee_estimation_failed",{priorityFee:J});let L=L5(W).isTokenTransfer?af:rf;return q0.AssetValue.from({chain:q0.Chain.Aleo,fromBaseDecimal:6,value:BigInt(L)+BigInt(J)})}catch(Y){throw n0("toolbox_aleo_fee_estimation_failed",Y)}}async function w({assetValue:W,priorityFee:J=0,recipient:Y,sender:L}){if(!await f8(Y))throw new q0.SwapKitError("toolbox_aleo_invalid_address",{address:Y});let D=L||await q();if(!R1(D))throw new q0.SwapKitError("toolbox_aleo_invalid_address",{address:D});let F=L5(W),x=await I({assetValue:W,priorityFee:J,recipient:Y});try{let A=await U(D);if(q0.AssetValue.from({chain:q0.Chain.Aleo,fromBaseDecimal:6,value:A}).lt(x))throw new q0.SwapKitError("toolbox_aleo_insufficient_fee_balance",{available:A.toString(),required:x.getBaseValue("string")});return{functionName:F.functionName,inputs:[Y,F.amount],priorityFee:J,programName:F.programName,sender:D}}catch(A){throw n0("toolbox_aleo_transaction_failed",A)}}async function j(W){try{return await X().signTransaction(W)}catch(J){throw n0("toolbox_aleo_transaction_failed",J)}}async function K(W){return $(await j(W))}async function $(W){try{let J=typeof W==="string"?W:W.toString(),Y=await Q((L)=>L.submitTransaction(J));if(!F1.test(Y))throw new q0.SwapKitError("toolbox_aleo_broadcast_error",{transactionId:Y});return Y}catch(J){throw n0("toolbox_aleo_broadcast_error",J)}}async function k(W){let J=await w({...W,sender:await q()});return K(J)}return{broadcastTransaction:$,createSigner:PT,createTransaction:w,estimateTransactionFee:I,getAddress:q,getBalance:G,getBalanceFromRpc:z,getBalances:_,getBalanceWithFallback:N,getRecords:M,getShieldedBalance:O,signAndBroadcastTransaction:K,signTransaction:j,transfer:k,unshield:R,validateAddress:R1}}var q0;var ST=h(()=>{Hy();H8();q0=require("@swapkit/helpers")});var C5={};P0(C5,{waitForAleoTransaction:()=>_5,validateAleoProgramId:()=>BT,validateAleoAddressWithChecksum:()=>f8,validateAleoAddress:()=>R1,sumUnspentRecords:()=>ef,parseAleoTransactionStatus:()=>FT,parseAleoMappingValue:()=>T8,isRecord:()=>m0,isNotFoundError:()=>M5,isAleoTokenTransferResponse:()=>DT,getConfiguredAleoUrls:()=>_y,getAleoTransferRoute:()=>L5,getAleoTransactionStatus:()=>RT,getAleoToolbox:()=>KT,getAleoMasterSeed:()=>NT,getAleoError:()=>n0,extractAleoRecordCiphertexts:()=>sf,deriveAleoPath:()=>y8,deriveAleoChildKey:()=>kT,TRANSFER_PUBLIC_FUNCTION:()=>z5,NATIVE_PROGRAM_ID:()=>My,MICRO_CREDITS_PER_CREDIT:()=>G5,HARDENED_OFFSET:()=>cf,ALEO_TRANSFER_PUBLIC_FEE:()=>rf,ALEO_TRANSACTION_ID_REGEX:()=>F1,ALEO_TOKEN_TRANSFER_PUBLIC_FEE:()=>af,ALEO_PROGRAM_ID_REGEX:()=>OT,ALEO_HD_KEY:()=>$T,ALEO_ADDRESS_REGEX:()=>CT});module.exports=V0(C5);var O5=h(()=>{ST();H8()});function ey(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let T=y.slice(2);if(T.length===0||T.length>64)return!1;return U9.test(T)}function VT(y,T,H){if(y<=0n)throw new t.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amount:y.toString(),asset:T.toString(),...H}});return y}async function Y9({aptos:y,assetValue:T,senderAddress:H}){let f=T.address;if(!f)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");let[X]=await y.getCurrentFungibleAssetBalances({options:{limit:1,where:{asset_type:{_eq:f},is_primary:{_eq:!0},owner_address:{_eq:H}}}});return VT(BigInt(X?.amount??0),T)}function AT({derivationPath:y,provider:T,...H}={}){let f,X=t.derivationPathToString(y||t.NetworkDerivationPath[t.Chain.Aptos],{allHardened:!0});async function Q(){if(f)return f;return f=await Vy.match(H).with({phrase:Vy.P.string},async({phrase:C})=>{let{Ed25519Account:B}=await import("@aptos-labs/ts-sdk");return B.fromDerivationPath({mnemonic:C,path:X})}).with({signer:Vy.P.any},({signer:C})=>C).otherwise(()=>{return}),f}async function Z(){let{Aptos:C,AptosConfig:B,Network:R}=await import("@aptos-labs/ts-sdk"),I=new B({clientConfig:{http2:!1},fullnode:T||t.getRPCUrlSync(t.Chain.Aptos),network:R.MAINNET});return new C(I)}async function q(){return(await Q())?.accountAddress.toString()||""}async function U(C){let B=C||await q();if(!B)throw new t.SwapKitError("toolbox_aptos_address_required");let{baseDecimal:R,chain:I}=t.getChainConfig(t.Chain.Aptos);try{let w=await Z(),j=await w.getAccountAPTAmount({accountAddress:B}),K=[t.AssetValue.from({chain:I,fromBaseDecimal:R,value:j.toString()})],$=await w.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:B}}}});for(let k of $){if(k.asset_type===Sy.COIN_TYPE||Number(k.amount)<=0)continue;let W=k.asset_type;if(W){let Y=("metadata"in k&&typeof k.metadata==="object"&&k.metadata!==null?k.metadata:void 0)?.decimals??R;K.push(t.AssetValue.from({asset:`${t.Chain.Aptos}.APT-${W}`,fromBaseDecimal:Y,value:String(k.amount)}))}}return K}catch{return[t.AssetValue.from({chain:I})]}}async function z(C){if(!C){let{baseDecimal:K}=t.getChainConfig(t.Chain.Aptos),$=T||t.getRPCUrlSync(t.Chain.Aptos),k=await fetch(`${$}/estimate_gas_price`),{gas_estimate:W}=await k.json();return t.AssetValue.from({chain:t.Chain.Aptos,fromBaseDecimal:K,value:String(W)})}let B=await G(C),R=await Z(),[I]=await R.transaction.simulate.simple({transaction:B});if(!I)throw new t.SwapKitError("toolbox_aptos_transaction_creation_error");let w=BigInt(I.gas_used)*BigInt(I.gas_unit_price),{baseDecimal:j}=t.getChainConfig(t.Chain.Aptos);return t.AssetValue.from({chain:t.Chain.Aptos,fromBaseDecimal:j,value:w.toString()})}async function G({recipient:C,assetValue:B,maxGasAmount:R,sender:I,sweep:w}){if(!ey(C))throw new t.SwapKitError("core_transaction_invalid_recipient_address");let j=I||await q();if(!j)throw new t.SwapKitError("toolbox_aptos_no_sender");let{AccountAddress:K}=await import("@aptos-labs/ts-sdk"),$=await Z(),k=K.from(j);try{let W=B.isGasAsset?Sy.TRANSFER:Sy.FUNGIBLE_STORE_TRANSFER,J=B.address,Y=(r,Q0)=>{let _0=Vy.match({address:J,isGasAsset:B.isGasAsset}).with({isGasAsset:!0},()=>[K.from(C),r]).with({address:Vy.P.string},({address:V})=>[K.from(V),K.from(C),r]).otherwise(()=>null);if(!_0)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");let P=Q0?.maxGasAmount??R;return $.transaction.build.simple({data:{function:W,functionArguments:_0,typeArguments:B.isGasAsset?[]:[Sy.FUNGIBLE_ASSET_METADATA]},options:P!==void 0||Q0?.gasUnitPrice!==void 0?{gasUnitPrice:Q0?.gasUnitPrice,maxGasAmount:P}:void 0,sender:k})};if(!w)return Y(B.getBaseValue("bigint"));if(!B.isGasAsset){let r=await Y9({aptos:$,assetValue:B,senderAddress:j});return Y(r)}let L=BigInt(await $.getAccountAPTAmount({accountAddress:j})),D=await Y(1n,{maxGasAmount:R??q9}),[F]=await $.transaction.simulate.simple({options:{estimateMaxGasAmount:R===void 0},transaction:D});if(!F)throw new t.SwapKitError("toolbox_aptos_transaction_creation_error");if(!F.success)throw new t.SwapKitError({errorKey:"toolbox_aptos_transaction_creation_error",info:{vmStatus:F.vm_status}});let x=BigInt(F.gas_used),A=x>0n?(x*6n+4n)/5n:1n,E=A*BigInt(F.gas_unit_price),u=VT(L-E,B,{balance:L.toString(),fee:E.toString()});return Y(u,{gasUnitPrice:Number(F.gas_unit_price),maxGasAmount:Number(A)})}catch(W){if(W instanceof t.SwapKitError)throw W;throw new t.SwapKitError("toolbox_aptos_transaction_creation_error",W)}}async function N(C){let B=await Q();if(!B)throw new t.SwapKitError("toolbox_aptos_no_signer");return(await Z()).transaction.sign({signer:B,transaction:C})}async function _({assetValue:C,maxGasAmount:B,recipient:R,sweep:I}){let w=await Q();if(!w)throw new t.SwapKitError("toolbox_aptos_no_signer");if(!ey(R))throw new t.SwapKitError("core_transaction_invalid_recipient_address");try{let j=w.accountAddress.toString(),K=await G({assetValue:C,maxGasAmount:B,recipient:R,sender:j,sweep:I});return(await(await Z()).signAndSubmitTransaction({signer:w,transaction:K})).hash}catch(j){if(j instanceof t.SwapKitError)throw j;throw new t.SwapKitError("toolbox_aptos_transaction_creation_error",j)}}async function M({senderAuthenticator:C,transaction:B}){try{return(await(await Z()).transaction.submit.simple({senderAuthenticator:C,transaction:B})).hash}catch(R){throw new t.SwapKitError("toolbox_aptos_broadcast_error",R)}}async function O(C){let B=await N(C);return M({senderAuthenticator:B,transaction:C})}return{broadcastTransaction:M,createTransaction:G,estimateTransactionFee:z,getAddress:q,getBalance:U,signAndBroadcastTransaction:O,signTransaction:N,transfer:_,validateAddress:ey}}function wT({provider:y}){return async function({assetValue:H,recipient:f,sweep:X}){if(X)throw new t.SwapKitError({errorKey:"toolbox_not_supported",info:{chain:t.Chain.Aptos,feature:"extension_provider_sweep",reason:"Aptos extension providers cannot query balances or simulate transactions"}});if(!ey(f))throw new t.SwapKitError("core_transaction_invalid_recipient_address");let{AccountAddress:Q}=await import("@aptos-labs/ts-sdk");if(H.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[Q.from(f).toString(),H.getBaseValue("string")],function:Sy.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let Z=H.address;if(!Z)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[Z,Q.from(f).toString(),H.getBaseValue("string")],function:Sy.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[Sy.FUNGIBLE_ASSET_METADATA]})).hash}}var t,Vy,Sy,q9=2000,U9;var ET=h(()=>{t=require("@swapkit/helpers"),Vy=require("ts-pattern"),Sy={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},U9=/^[0-9a-fA-F]+$/});var $5={};P0($5,{validateAptosAddress:()=>ey,getAptosToolbox:()=>AT,createAptosExtensionTransfer:()=>wT});module.exports=V0($5);var N5=h(()=>{ET()});function I1(y){return{getBalance:w0(y)}}function J9(y){return y}var k5=h(()=>{Hy()});function bT(y){return new g0.JsonRpcProvider(y)}async function W9(y,T){return bT(T||await y0.getRPCUrl(y))}function Y8(y){let T=y0.SKConfig.get("rpcUrls")[y]?.filter(Boolean)??[];if(T.length===0)throw new y0.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:y});let{chainId:H}=y0.getChainConfig(y),f=g0.Network.from(Number(H)),[X]=T;if(T.length===1)return new g0.JsonRpcProvider(X,f,{staticNetwork:f});return new g0.FallbackProvider(T.map((Q,Z)=>({priority:Z+1,provider:new g0.JsonRpcProvider(Q,f,{staticNetwork:f}),stallTimeout:2000})),f,{quorum:1})}function l0(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function J8(y){let{explorerUrl:T,chainIdHex:H,rpcUrls:f}=y0.getChainConfig(y);return function(){return y!==y0.Chain.Ethereum?{...z9({chain:y}),blockExplorerUrls:[T],chainId:H,rpcUrls:f}:void 0}}function W8(y){return![y0.Chain.Adi,y0.Chain.Arbitrum,y0.Chain.BinanceSmartChain,y0.Chain.Robinhood].includes(y)}function z9({chain:y}){let{name:T,nativeCurrency:H,baseDecimal:f}=y0.getChainConfig(y);return U8.match(y).with(y0.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:y0.Chain.Ethereum}})).with(y0.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:y0.Chain.Ethereum}})).with(y0.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(y0.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:y0.Chain.Ethereum}})).with(y0.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(y0.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(y0.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(y0.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(y0.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:y0.Chain.Ethereum}})).with(y0.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:y0.Chain.Polygon}})).with(y0.Chain.Robinhood,()=>({chainName:"Robinhood Chain",nativeCurrency:{decimals:f,name:"Ethereum",symbol:y0.Chain.Ethereum}})).otherwise(()=>({chainName:T,nativeCurrency:{decimals:f,name:H,symbol:H}}))}async function z8(y,T){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let H={...T,nonce:T.nonce!==void 0?BigInt(T.nonce):void 0};return await y.authorize(H)}function hT(y,T){let H=T!==void 0?`index ${T}: `:"",f=(X,Q)=>{throw new y0.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:X,message:`${H}${Q}`}})};U8.match(y).when(({chainId:X})=>typeof X!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:X})=>!G9(X),()=>f("address","address must be a valid checksummed address")).when(({nonce:X})=>typeof X!=="bigint"||X<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:X})=>!X,()=>f("signature","signature is required")).when(({signature:X})=>typeof X?.yParity!=="number"||![0,1].includes(X.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:X})=>!vT(X?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:X})=>!vT(X?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function lT(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:T})=>y[T]!=null).map(({key:T,type:H})=>({name:T,type:H}))}function Q8(y){return y.charAt(0).toUpperCase()+y.slice(1)}function Z8(y,T){if(y.isTuple()&&y.components){let H=Q8(y.name);return T[H]=y.components.map((f)=>({name:f.name,type:Z8(f,T)})),H}if(y.isArray()){let H=y.arrayChildren;if(H?.isTuple()&&H.components){let f=Q8(y.name.replace(/s$/,""));return T[f]=H.components.map((X)=>({name:X.name,type:Z8(X,T)})),`${f}[]`}return`${H?.type??"bytes"}[]`}return y.type}function q8(y,T){if(typeof y==="bigint")return y;if(T?.isTuple()&&typeof y?.toObject==="function"){let H=y.toObject(),f={};for(let[X,Q]of(T.components??[]).entries())f[Q.name]=q8(H[Q.name]??y[X],Q);return f}if(Array.isArray(y)){let H=T?.arrayChildren;return y.map((f)=>q8(f,H??void 0))}return y}function L9({chain:y,abi:T,data:H,to:f}){let Q=new g0.Interface(T).parseTransaction({data:H});if(!Q)throw new y0.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let Z={},q=Q8(Q.name);Z[q]=Q.fragment.inputs.map((_)=>({name:_.name,type:Z8(_,Z)}));let U={};for(let[_,M]of Q.fragment.inputs.entries())U[M.name]=q8(Q.args[_],M);let{chainId:z}=y0.getChainConfig(y),G={chainId:Number(z),verifyingContract:g0.getAddress(f)},N=lT(G);return{domain:G,message:U,primaryType:q,types:{EIP712Domain:N,...Z}}}function G8(y,T){if(!Array.isArray(y)||y.length===0)throw new y0.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[H,f]of y.entries())if(hT(f,H),T!==void 0&&f.chainId!==T)throw new y0.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${H}: authorization chainId (${f.chainId}) does not match transaction chainId (${T})`}})}var y0,g0,U8,vT=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),G9=(y)=>{try{return typeof y==="string"&&!!g0.getAddress(y)}catch{return!1}};var P1=h(()=>{y0=require("@swapkit/helpers"),g0=require("ethers"),U8=require("ts-pattern")});var uT;var pT=h(()=>{uT=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});function y1({chain:y=S.Chain.Ethereum,provider:T,signer:H,isEIP1559Compatible:f=!0,estimateGasPrices:X,estimateAdditionalFee:Q}){let Z=X??vy({chain:y,isEIP1559Compatible:f,provider:T}),q=dT({chain:y,estimateAdditionalFee:Q,estimateGasPrices:Z,isEIP1559Compatible:f,provider:T,signer:H});return{approve:$9({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),approvedAmount:oT({chain:y,provider:T}),broadcastTransaction:T.broadcastTransaction,call:B5({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),createApprovalTx:K9({chain:y,provider:T,signer:H}),createContract:_8({chain:y,provider:T}),createContractTxObject:Ey({chain:y,provider:T}),createTransaction:q,createTransferTx:q,EIP1193SendTransaction:T1(T),estimateCall:nT({provider:T,signer:H}),estimateGasLimit:k9({chain:y,provider:T,signer:H}),estimateGasPrices:Z,estimateTransactionFee:S9({chain:y,isEIP1559Compatible:f,provider:T}),getAddress:()=>{return H?H.getAddress():void 0},getBalance:I1(y).getBalance,getNetworkParams:J8(y),isApproved:O9({chain:y,provider:T}),sendTransaction:cT({chain:y,estimateGasPrices:Z,isEIP1559Compatible:f,provider:T,signer:H}),signAuthorization:B9({signer:H}),signMessage:H?(U)=>H.signMessage(U):void 0,signTypedData:H?({domain:U,types:z,value:G})=>H.signTypedData(U,z,G):void 0,transfer:N9({chain:y,estimateAdditionalFee:Q,estimateGasPrices:Z,isEIP1559Compatible:f,provider:T,signer:H}),validateAddress:K1}}function K1(y){try{return b0.getAddress(y),!0}catch{return!1}}function f1(y){return y instanceof b0.BrowserProvider}function S1(y,T,H){return new b0.Contract(y,b0.Interface.from(T),H)}function _8({provider:y}){return function(H,f){return new b0.Contract(H,b0.Interface.from(f),y)}}function C8({abi:y,funcName:T}){let H=y.find((f)=>f.name===T);if(!H)throw new S.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:T});return H.stateMutability&&M9.includes(H.stateMutability)}function mT(y){return b0.getAddress(y)}function T1(y,T=!1){return function({value:f,...X}){if(!f1(y))throw new S.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let Q={...X,gasPrice:"gasPrice"in X?X.gasPrice:void 0,maxFeePerGas:"maxFeePerGas"in X?X.maxFeePerGas:void 0,maxPriorityFeePerGas:"maxPriorityFeePerGas"in X?X.maxPriorityFeePerGas:void 0},{gasLimit:Z,gasPrice:q,maxFeePerGas:U,maxPriorityFeePerGas:z,...G}=Q,N={...G,...T&&Z!==void 0&&{gas:l0(BigInt(Z))},...T&&q!==void 0&&{gasPrice:l0(BigInt(q))},...T&&U!==void 0&&{maxFeePerGas:l0(BigInt(U))},...T&&z!==void 0&&{maxPriorityFeePerGas:l0(BigInt(z))},value:l0(BigInt(f||0))};return y.send("eth_sendTransaction",[N])}}function gT(y,T){let H=V1(y,T);if(H)return b0.getAddress(H.toLowerCase());throw new S.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function V1({chain:y,symbol:T,ticker:H},f){try{let X=y===S.Chain.BinanceSmartChain&&T==="BNB"&&H==="BNB",Q=y===S.Chain.Hyperevm&&T==="HYPE"&&H==="HYPE",Z=y===f&&T===f&&H===f,q=C9.includes(y)&&T==="ETH"&&H==="ETH";if(Z||X||Q||q)return O8[f];return b0.getAddress(T.slice(H.length+1).replace(/^0X/,""))}catch{return null}}function Ey({provider:y}){return async({contractAddress:T,abi:H,funcName:f,funcParams:X=[],txOverrides:Q})=>{let Z=await S1(T,H,y).getFunction(f).populateTransaction(...X.concat(Q).filter((q)=>typeof q<"u"));return{...Z,value:l0(BigInt(Z.value||0))}}}function vy({chain:y,provider:T,isEIP1559Compatible:H=!0}){return M8.match(y).with(S.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:X,maxPriorityFeePerGas:Q}=await T.getFeeData();if(!X||Q===null)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{[S.FeeOption.Average]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(X,S.FeeOption.Average),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(Q,S.FeeOption.Average)},[S.FeeOption.Fast]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(X,S.FeeOption.Fast),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(Q,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(X,S.FeeOption.Fastest),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(Q,S.FeeOption.Fastest)}}}catch(X){throw new S.SwapKitError("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}}}).with(S.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:X}=await T.getFeeData();if(!X)throw new S.SwapKitError("toolbox_evm_no_fee_data");let Q=X*12n/10n;return{[S.FeeOption.Average]:{gasPrice:Q},[S.FeeOption.Fast]:{gasPrice:S.applyFeeMultiplierToBigInt(Q,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{gasPrice:S.applyFeeMultiplierToBigInt(Q,S.FeeOption.Fastest)}}}catch(X){throw new S.SwapKitError("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:X,maxPriorityFeePerGas:Q,gasPrice:Z}=await T.getFeeData();if(H){if(X===null||Q===null)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{[S.FeeOption.Average]:{maxFeePerGas:X,maxPriorityFeePerGas:Q},[S.FeeOption.Fast]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(X,S.FeeOption.Fast),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(Q,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(X,S.FeeOption.Fastest),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(Q,S.FeeOption.Fastest)}}}if(!Z)throw new S.SwapKitError("toolbox_evm_no_gas_price");return{[S.FeeOption.Average]:{gasPrice:Z},[S.FeeOption.Fast]:{gasPrice:S.applyFeeMultiplierToBigInt(Z,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{gasPrice:S.applyFeeMultiplierToBigInt(Z,S.FeeOption.Fastest)}}}catch(X){throw new S.SwapKitError("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}}})}function B5({provider:y,isEIP1559Compatible:T,signer:H,chain:f}){return async function({callProvider:Q,contractAddress:Z,abi:q,funcName:U,funcParams:z=[],txOverrides:G={},feeOption:N=S.FeeOption.Fast}){let _=Q||y;if(!Z)throw new S.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let M=C8({abi:q,funcName:U});if(M&&f1(_)&&H){let B=Ey({chain:f,provider:_}),R=G?.from||await H?.getAddress(),I=await B({abi:q,contractAddress:Z,funcName:U,funcParams:z,txOverrides:{...G,from:R}});return T1(_)(I)}let O=S1(Z,q,_);if(M){if(!H)throw new S.SwapKitError("toolbox_evm_no_signer");let B=G?.from||await H.getAddress();if(!B)throw new S.SwapKitError("toolbox_evm_no_signer_address");let R=O.connect(H),I=vy({chain:f,isEIP1559Compatible:T,provider:y}),{maxFeePerGas:w,maxPriorityFeePerGas:j,gasPrice:K}=(await I())[N],$=await O.getFunction(U).estimateGas(...z,G),k=await R[U](...z,{...G,gasLimit:$,gasPrice:K,maxFeePerGas:w,maxPriorityFeePerGas:j,nonce:G?.nonce||await _.getTransactionCount(B)});return typeof k?.hash==="string"?k?.hash:k}let C=await O[U]?.(...z);return typeof C?.hash==="string"?C?.hash:C}}function oT({provider:y,chain:T}){return function({assetAddress:f,spenderAddress:X,from:Q}){return B5({chain:T,isEIP1559Compatible:!0,provider:y})({abi:wy.erc20ABI,contractAddress:f,funcName:"allowance",funcParams:[Q,X]})}}function O9({provider:y,chain:T}){return async function({assetAddress:f,spenderAddress:X,from:Q,amount:Z=j1}){let q=await oT({chain:T,provider:y})({assetAddress:f,from:Q,spenderAddress:X});return S.SwapKitNumber.fromBigInt(q).gte(S.SwapKitNumber.fromBigInt(BigInt(Z)))}}function $9({signer:y,isEIP1559Compatible:T=!0,provider:H,chain:f}){return async function({assetAddress:Q,spenderAddress:Z,feeOptionKey:q=S.FeeOption.Fast,amount:U,gasLimitFallback:z,from:G,nonce:N}){let _=[Z,BigInt(U||j1)],M=await y?.getAddress()||G,O={abi:wy.erc20ABI,contractAddress:Q,funcName:"approve",funcParams:_,signer:y,txOverrides:{from:M}};if(f1(H)){let B=Ey({chain:f,provider:H}),R=T1(H),I=await B(O);return R(I)}return B5({chain:f,isEIP1559Compatible:T,provider:H,signer:y})({...O,feeOption:q,funcParams:_,txOverrides:{from:M,gasLimit:z?BigInt(z.toString()):void 0,nonce:N}})}}function N9({chain:y,estimateGasPrices:T,estimateAdditionalFee:H,signer:f,isEIP1559Compatible:X=!0,provider:Q}){return async function({assetValue:q,memo:U,recipient:z,feeOptionKey:G=S.FeeOption.Fast,sender:N,sweep:_,...M}){let O=N||await f?.getAddress(),C=cT({chain:y,estimateGasPrices:T,isEIP1559Compatible:X,provider:Q,signer:f});if(!O)throw new S.SwapKitError("toolbox_evm_no_from_address");let B=await dT({chain:y,estimateAdditionalFee:H,estimateGasPrices:T,isEIP1559Compatible:X,provider:Q,signer:f})({assetValue:q,feeOptionKey:G,memo:U,recipient:z,sender:O,sweep:_,...M});return C({...B,feeOptionKey:G,sweep:_})}}function nT({provider:y,signer:T}){return function({contractAddress:f,abi:X,funcName:Q,funcParams:Z=[],txOverrides:q}){if(!f)throw new S.SwapKitError("toolbox_evm_no_contract_address");let U=S1(f,X,y);return T?U.connect(T).getFunction(Q).estimateGas(...Z,q):U.getFunction(Q).estimateGas(...Z,q)}}function k9({provider:y,signer:T}){return async function({assetValue:f,recipient:X,memo:Q,data:Z,sender:q,funcName:U,funcParams:z,txOverrides:G}){let N=f.bigIntValue,_=f.isGasAsset?null:V1(f,f.chain);if(_&&U)return nT({provider:y,signer:T})({abi:wy.erc20ABI,contractAddress:_,funcName:U,funcParams:z,txOverrides:G});let{hexlify:M,toUtf8Bytes:O}=await import("ethers");return y.estimateGas({data:Z?Z:Q?M(O(Q)):void 0,from:q,to:X,value:N})}}function B9({signer:y}){if(!y)return;return(T)=>z8(y,T)}function D9(y,T){if(y==="legacy"){if(T.gasPrice===void 0)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{gasPrice:l0(T.gasPrice)}}if(T.maxFeePerGas===void 0||T.maxPriorityFeePerGas===void 0)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{maxFeePerGas:l0(T.maxFeePerGas),maxPriorityFeePerGas:l0(T.maxPriorityFeePerGas)}}function cT({chain:y,estimateGasPrices:T,provider:H,signer:f,isEIP1559Compatible:X=!0}){return async function({feeOptionKey:Z=S.FeeOption.Fast,sweep:q,...U}){let{from:z,to:G,data:N,value:_,...M}=U;if(!f)throw new S.SwapKitError("toolbox_evm_no_signer");if(!G)throw new S.SwapKitError("toolbox_evm_no_to_address");let O={...M,data:N||"0x",from:z,to:G,value:BigInt(_||0)};if(f1(H))return T1(H,q)(O);let C=z||await f.getAddress(),B=U.nonce??await H.getTransactionCount(C),R=(await H.getNetwork()).chainId,I=N8(O,X);if(I==="eip7702")G8(O.authorizations||[],R);let w=M8.match(I).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),j={...O,chainId:R,nonce:B,type:w,...I==="eip7702"&&{authorizationList:O.authorizations}},K=T??vy({chain:y,isEIP1559Compatible:X,provider:H}),k=(I==="legacy"?O.gasPrice!==void 0:O.maxFeePerGas!==void 0&&O.maxPriorityFeePerGas!==void 0)?{}:D9(I,(await K())[Z]),W;try{W=l0(O.gasLimit?BigInt(O.gasLimit):await H.estimateGas(j)*11n/10n)}catch(J){throw new S.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:J})}try{let J={...j,gasLimit:W,...k};try{return(await f.sendTransaction(J)).hash}catch{let Y=await f.signTransaction({...J,from:C});return(await H.broadcastTransaction(Y)).hash}}catch(J){throw new S.SwapKitError("toolbox_evm_error_sending_transaction",{error:J})}}}function Ay(y,T){throw new S.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{balance:y.toString(),fee:T.toString()}})}function F9(y,T){if(T){if(y.maxFeePerGas===void 0||y.maxPriorityFeePerGas===void 0)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{feeFields:{maxFeePerGas:y.maxFeePerGas,maxPriorityFeePerGas:y.maxPriorityFeePerGas},feePerGas:y.maxFeePerGas}}if(y.gasPrice===void 0)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{feeFields:{gasPrice:y.gasPrice},feePerGas:y.gasPrice}}function R9(y,T){if(y>T)return y;return T}function x9(y){return b0.getBytes(y).reduce((T,H)=>T+(H===0?4n:16n),21000n)}function L8(y){let H=(y instanceof Error?y.message:String(y)).toLowerCase();return H.includes("insufficient funds")||H.includes("insufficient balance")||H.includes("gas required exceeds allowance")}async function I9({balance:y,estimateAdditionalFee:T,feeOptionKey:H,l2Reserve:f,sweepTx:X,valueBeforeL1Fee:Q}){if(!T)return 0n;let Z=await T({...X,value:Q})??0n,q=S.applyFeeMultiplierToBigInt(Z,H),U=Q-q;if(U<=0n)Ay(y,f+q);let z=await T({...X,value:U})??Z;return S.applyFeeMultiplierToBigInt(R9(Z,z),H)}async function P9({chain:y,data:T,estimateGasPrices:H,estimateAdditionalFee:f,feeOptionKey:X,from:Q,isEIP1559Compatible:Z,provider:q,recipient:U,transaction:z}){let G=await q.getBalance(Q),N=H??vy({chain:y,isEIP1559Compatible:Z,provider:q}),{feeFields:_,feePerGas:M}=F9((await N())[X],Z),C={...f&&z.nonce===void 0?{...z,nonce:await q.getTransactionCount(Q)}:z,..._,data:T,from:Q,to:U},B=x9(T)*M;if(G-B<=0n)Ay(G,B);let R=(G-B)/2n,I;try{I=await q.estimateGas({...C,value:R})}catch(F){if(!L8(F))throw F;try{I=await q.estimateGas({...C,value:0n})}catch(x){if(L8(x))Ay(G,B);throw x}}let w=I*M;if(G-w<=0n)Ay(G,w);let $=I*11n/10n*M,k=G>$?G-$:0n,W;try{W=await q.estimateGas({...C,value:k})}catch(F){if(!L8(F))throw F;Ay(G,$)}let J=W*M,Y=G-J;if(Y<=0n)Ay(G,J);let L=await I9({balance:G,estimateAdditionalFee:f,feeOptionKey:X,l2Reserve:J,sweepTx:{...C,gasLimit:W},valueBeforeL1Fee:Y}),D=Y-L;if(D<=0n)Ay(G,J+L);return{...C,gasLimit:W,value:l0(D)}}async function j9({chain:y,contractAddress:T,from:H,provider:f}){let X=await B5({chain:y,provider:f})({abi:wy.erc20ABI,contractAddress:T,funcName:"balanceOf",funcParams:[H]});if(typeof X!=="bigint")throw new S.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid ERC20 balance"}});return X}function dT({chain:y,estimateAdditionalFee:T,estimateGasPrices:H,isEIP1559Compatible:f=!0,provider:X,signer:Q}){return async function({assetValue:q,authorizations:U,memo:z,recipient:G,data:N,feeOptionKey:_=S.FeeOption.Fast,gasLimit:M,sender:O,sweep:C,type:B,maxFeePerGas:R,maxPriorityFeePerGas:I,gasPrice:w,...j}){let K=q.getBaseValue("bigint"),$=O||await Q?.getAddress();if(!$)throw new S.SwapKitError("toolbox_evm_no_from_address");if(C&&(B===4||(U?.length??0)>0))throw new S.SwapKitError({errorKey:"toolbox_not_supported",info:{chain:y,reason:"EIP-7702 sweep transactions are not supported"}});if(S.isGasAsset(q)){let{hexlify:Y,toUtf8Bytes:L}=await import("ethers"),D=N||Y(L(z||""));if(!C)return{...j,...U!==void 0&&{authorizations:U},data:D,from:$,...M!==void 0&&{gasLimit:M},to:G,...B!==void 0&&{type:B},value:l0(K)};return P9({chain:y,data:D,estimateAdditionalFee:T,estimateGasPrices:H,feeOptionKey:_,from:$,isEIP1559Compatible:f,provider:X,recipient:G,transaction:{nonce:j.nonce,type:B}})}let k=V1(q,y);if(!k)throw new S.SwapKitError("toolbox_evm_no_contract_address");let W=Ey({chain:y,provider:X}),J=C?await j9({chain:y,contractAddress:k,from:$,provider:X}):K;if(C&&J<=0n)throw new S.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:q.toString(),balance:J.toString()}});return W({abi:wy.erc20ABI,contractAddress:k,funcName:"transfer",funcParams:[G,J],txOverrides:{from:$,gasLimit:M,gasPrice:w,maxFeePerGas:R,maxPriorityFeePerGas:I}})}}function K9({provider:y,signer:T,chain:H}){return async function({assetAddress:X,spenderAddress:Q,amount:Z,from:q}){let U=await T?.getAddress()||q,z=Ey({chain:H,provider:y}),G=["bigint","number"].includes(typeof Z)?Z:Z||j1;return await z({abi:wy.erc20ABI,contractAddress:X,funcName:"approve",funcParams:[Q,BigInt(G)],txOverrides:{from:U}})}}function S9({provider:y,isEIP1559Compatible:T=!0,chain:H}){return async function({feeOption:X=S.FeeOption.Fast,...Q}){let q=await vy({chain:H,isEIP1559Compatible:T,provider:y})(),U=await y.estimateGas(Q),z=S.AssetValue.from({chain:H}),{gasPrice:G,maxFeePerGas:N,maxPriorityFeePerGas:_}=q[X];if(!T&&G)return z.set(S.SwapKitNumber.fromBigInt(G*U,z.decimal));if(N&&_){let M=(N+_)*U;return z.set(S.SwapKitNumber.fromBigInt(M,z.decimal))}throw new S.SwapKitError("toolbox_evm_no_gas_price")}}var S,wy,b0,M8,j1,M9,_9,O8,C9,D5=(y)=>y.type===4||(y.authorizations?.length??0)>0,$8=(y)=>!D5(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),N8=(y,T=!0)=>{if(D5(y))return"eip7702";if($8(y)||T)return"eip1559";return"legacy"};var F5=h(()=>{k5();P1();S=require("@swapkit/helpers"),wy=require("@swapkit/helpers/contracts"),b0=require("ethers"),M8=require("ts-pattern"),j1=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");M9=["payable","nonpayable"];_9=S.EVMChains.reduce((y,T)=>{return y[T]="0x0000000000000000000000000000000000000000",y},{}),O8={..._9,[S.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[S.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},C9=[S.Chain.Arbitrum,S.Chain.Aurora,S.Chain.Base,S.Chain.Optimism,S.Chain.Robinhood]});var iT;var tT=h(()=>{iT=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_gasUsed",type:"uint256"}],name:"getOperatorFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});function x5(y){return new R5.Contract(V9,iT,y)}function rT(y){return async function(){let H=x5(y);if(H&&"l1BaseFee"in H)return await H?.l1BaseFee();return}}function aT(y){return async function({from:H,to:f,nonce:X,...Q}){let{Transaction:Z}=await import("ethers");if(!f)throw new L0.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return Z.from({...Q,authorizationList:Q.authorizationList,nonce:X??(H?await y.getTransactionCount(H):0),to:f}).unsignedSerialized}}function k8(y,T){return async function(f){let X=x5(y),Q=f.chainId??T??(await y.getNetwork()).chainId,Z=await aT(y)({...f,chainId:Q});if(X&&"getL1Fee"in X){let q=await X.getL1Fee(Z);if(typeof q!=="bigint")throw new L0.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid OP-stack L1 fee"}});return q}return}}function B8(y){return async function(H){let f=x5(y);if(f&&"getOperatorFee"in f){let X=await f.getOperatorFee(H);if(typeof X!=="bigint")throw new L0.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid OP-stack operator fee"}});return X}return 0n}}function A9(y,T){let H=k8(y,T),f=B8(y);return async function(Q){if(Q.gasLimit===void 0||Q.gasLimit===null)throw new L0.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Missing gas limit for OP-stack fee estimation"}});let[Z,q]=await Promise.all([H(Q),f(BigInt(Q.gasLimit.toString()))]);return(Z??0n)+q}}function sT(y){return async function(H){let X=(await y.getFeeData()).gasPrice??0n,Q=await y.estimateGas(H);return X*Q}}function w9(y){return async function(H){let f=await k8(y)(H)??0n,X=await sT(y)(H),Q=H.gasLimit??await y.estimateGas(H),Z=await B8(y)(BigInt(Q.toString()));return f+X+Z}}function E9(y){return async function(H){let f=x5(y),X=await aT(y)(H);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(X)}}function v9(y){return async function(){try{let{maxFeePerGas:H,maxPriorityFeePerGas:f,gasPrice:X}=await y.getFeeData(),Q=await rT(y)(),Z=X;if(!(H&&f))throw new L0.SwapKitError("toolbox_evm_no_fee_data");return{[L0.FeeOption.Average]:{gasPrice:Z,l1GasPrice:Q,maxFeePerGas:H,maxPriorityFeePerGas:f},[L0.FeeOption.Fast]:{gasPrice:L0.applyFeeMultiplierToBigInt(Z,L0.FeeOption.Fast),l1GasPrice:L0.applyFeeMultiplierToBigInt(Q||0n,L0.FeeOption.Fast),maxFeePerGas:H,maxPriorityFeePerGas:L0.applyFeeMultiplierToBigInt(f,L0.FeeOption.Fast)},[L0.FeeOption.Fastest]:{gasPrice:L0.applyFeeMultiplierToBigInt(Z,L0.FeeOption.Fastest),l1GasPrice:L0.applyFeeMultiplierToBigInt(Q||0n,L0.FeeOption.Fastest),maxFeePerGas:H,maxPriorityFeePerGas:L0.applyFeeMultiplierToBigInt(f,L0.FeeOption.Fastest)}}}catch(H){throw new L0.SwapKitError("toolbox_evm_gas_estimation_error",{error:H.msg??H.toString()})}}}function H1(y){return function({provider:H,...f}){let X=A1.match(f).with({phrase:A1.P.string},({phrase:_})=>R5.HDNodeWallet.fromPhrase(_).connect(H)).with({signer:A1.P.any},({signer:_})=>_).otherwise(()=>{return}),Q=rT(H),Z=BigInt(L0.getChainConfig(y).chainId),q=k8(H,Z),U=A9(H,Z),z=B8(H),G=y===L0.Chain.Optimism?v9(H):void 0;return{...y1({chain:y,estimateAdditionalFee:U,estimateGasPrices:G,provider:H,signer:X}),estimateL1Gas:E9(H),estimateL1GasCost:q,estimateL2GasCost:sT(H),estimateOperatorFee:z,estimateTotalGasCost:w9(H),getBalance:I1(y).getBalance,getL1GasPrice:Q}}}var L0,R5,A1,V9="0x420000000000000000000000000000000000000f",I5;var P5=h(()=>{k5();tT();F5();L0=require("@swapkit/helpers"),R5=require("ethers"),A1=require("ts-pattern");I5=H1(L0.Chain.Optimism)});function j5(y){let T=x0(O0.Chain.Ethereum)(y);async function H(f,X="0x5ba1e12693dc8f9c48aad8770482f4739beed696",Q="aggregate",Z=O0.FeeOption.Fast){let q=await T.createContractTxObject({abi:uT,contractAddress:X,funcName:Q,funcParams:[f]});return T.sendTransaction({...q,feeOptionKey:Z})}return{...T,multicall:H}}function x0(y){return function({provider:H,...f}){let X=W8(y),Q=w1.match(f).with({phrase:w1.P.string},({phrase:q})=>eT.HDNodeWallet.fromPhrase(q).connect(H)).with({signer:w1.P.any},({signer:q})=>q).otherwise(()=>{return});return y1({chain:y,isEIP1559Compatible:X,provider:H,signer:Q})}}var O0,eT,w1,K5,S5,V5,A5,w5,E5,v5,y4,b5,h5,l5,u5,p5,m5,g5,o5,n5,c5,d5,E1,i5,t5;var D8=h(()=>{pT();P1();F5();P5();O0=require("@swapkit/helpers"),eT=require("ethers"),w1=require("ts-pattern");K5=x0(O0.Chain.Adi),S5=x0(O0.Chain.Arbitrum),V5=x0(O0.Chain.Aurora),A5=x0(O0.Chain.Avalanche),w5=H1(O0.Chain.Base),E5=x0(O0.Chain.Berachain),v5=x0(O0.Chain.BinanceSmartChain),y4=x0(O0.Chain.Botanix),b5=x0(O0.Chain.Core),h5=x0(O0.Chain.Corn),l5=x0(O0.Chain.Cronos),u5=x0(O0.Chain.Gnosis),p5=x0(O0.Chain.Robinhood),m5=x0(O0.Chain.Hyperevm),g5=x0(O0.Chain.Linea),o5=x0(O0.Chain.Polygon),n5=x0(O0.Chain.MegaETH),c5=x0(O0.Chain.Monad),d5=x0(O0.Chain.Plasma),E1=x0(O0.Chain.Sonic),i5=H1(O0.Chain.Unichain),t5=x0(O0.Chain.XLayer)});var H4={};P0(H4,{validateEVMAddress:()=>K1,toChecksumAddress:()=>mT,isStateChangingCall:()=>C8,isEIP7702Transaction:()=>D5,isEIP1559Transaction:()=>$8,isBrowserProvider:()=>f1,getTokenAddress:()=>V1,getEvmToolboxAsync:()=>T4,getEvmToolbox:()=>F8,getEstimateGasPrices:()=>vy,getEVMTxType:()=>N8,getEIP1193SendTransaction:()=>T1,getCreateContractTxObject:()=>Ey,getCreateContract:()=>_8,getChecksumAddressFromAsset:()=>gT,createOPStackToolbox:()=>H1,createContract:()=>S1,XLayerToolbox:()=>t5,UNIToolbox:()=>i5,SONICToolbox:()=>E1,PLASMAToolbox:()=>d5,OPToolbox:()=>I5,MONADToolbox:()=>c5,MEGAETHToolbox:()=>n5,MAX_APPROVAL:()=>j1,MATICToolbox:()=>o5,LINEAToolbox:()=>g5,HYPEREVMToolbox:()=>m5,HOODToolbox:()=>p5,GNOToolbox:()=>u5,ETHToolbox:()=>j5,ContractAddress:()=>O8,CROToolbox:()=>l5,CORNToolbox:()=>h5,COREToolbox:()=>b5,BotanixToolbox:()=>y4,BaseEVMToolbox:()=>y1,BSCToolbox:()=>v5,BERAToolbox:()=>E5,BASEToolbox:()=>w5,AVAXToolbox:()=>A5,AURORAToolbox:()=>V5,ARBToolbox:()=>S5,ADIToolbox:()=>K5});function F8(y,T){return f4.match(y).with($0.Chain.Adi,()=>K5(T)).with($0.Chain.Arbitrum,()=>S5(T)).with($0.Chain.Aurora,()=>V5(T)).with($0.Chain.Avalanche,()=>A5(T)).with($0.Chain.Base,()=>w5(T)).with($0.Chain.Berachain,()=>E5(T)).with($0.Chain.BinanceSmartChain,()=>v5(T)).with($0.Chain.Botanix,()=>E1(T)).with($0.Chain.Core,()=>b5(T)).with($0.Chain.Corn,()=>h5(T)).with($0.Chain.Cronos,()=>l5(T)).with($0.Chain.Ethereum,()=>j5(T)).with($0.Chain.Gnosis,()=>u5(T)).with($0.Chain.Hyperevm,()=>m5(T)).with($0.Chain.Linea,()=>g5(T)).with($0.Chain.MegaETH,()=>n5(T)).with($0.Chain.Monad,()=>c5(T)).with($0.Chain.Optimism,()=>I5(T)).with($0.Chain.Plasma,()=>d5(T)).with($0.Chain.Polygon,()=>o5(T)).with($0.Chain.Robinhood,()=>p5(T)).with($0.Chain.Sonic,()=>E1(T)).with($0.Chain.Unichain,()=>i5(T)).with($0.Chain.XLayer,()=>t5(T)).exhaustive()}async function T4(y,T){let H={...T,provider:T?.provider||Y8(y)};return F8(y,H)}var $0,f4;var R8=h(()=>{P1();D8();P5();$0=require("@swapkit/helpers"),f4=require("ts-pattern");F5();D8();P5()});var X4;var Q4=h(()=>{((H)=>{H.Test="goerli";H.Main="homestead"})(X4||={})});var Z4={};P0(Z4,{validateEVMAddress:()=>K1,validateAuthorizations:()=>G8,validateAuthorization:()=>hT,toHexString:()=>l0,toChecksumAddress:()=>mT,signAuthorization:()=>z8,parseEIP712FromEVMTx:()=>L9,isStateChangingCall:()=>C8,isEIP7702Transaction:()=>D5,isEIP1559Transaction:()=>$8,isBrowserProvider:()=>f1,getTokenAddress:()=>V1,getProviderSync:()=>bT,getProvider:()=>W9,getNetworkParams:()=>J8,getIsEIP1559Compatible:()=>W8,getFallbackProvider:()=>Y8,getEvmToolboxAsync:()=>T4,getEvmToolbox:()=>F8,getEvmApi:()=>I1,getEstimateGasPrices:()=>vy,getEVMTxType:()=>N8,getEIP1193SendTransaction:()=>T1,getCreateContractTxObject:()=>Ey,getCreateContract:()=>_8,getChecksumAddressFromAsset:()=>gT,createOPStackToolbox:()=>H1,createCustomEvmApi:()=>J9,createContract:()=>S1,buildEIP712DomainType:()=>lT,XLayerToolbox:()=>t5,UNIToolbox:()=>i5,SONICToolbox:()=>E1,PLASMAToolbox:()=>d5,OPToolbox:()=>I5,MONADToolbox:()=>c5,MEGAETHToolbox:()=>n5,MAX_APPROVAL:()=>j1,MATICToolbox:()=>o5,LINEAToolbox:()=>g5,HYPEREVMToolbox:()=>m5,HOODToolbox:()=>p5,GNOToolbox:()=>u5,EthNetwork:()=>X4,ETHToolbox:()=>j5,ContractAddress:()=>O8,CROToolbox:()=>l5,CORNToolbox:()=>h5,COREToolbox:()=>b5,BotanixToolbox:()=>y4,BaseEVMToolbox:()=>y1,BSCToolbox:()=>v5,BERAToolbox:()=>E5,BASEToolbox:()=>w5,AVAXToolbox:()=>A5,AURORAToolbox:()=>V5,ARBToolbox:()=>S5,ADIToolbox:()=>K5});module.exports=V0(Z4);var x8=h(()=>{k5();P1();R8();Q4()});async function P8(y,T){let H=await fetch(`${G4}${y}`,{...T,headers:{project_id:z4,...T?.headers}});if(!H.ok)throw Error(`Blockfrost API error: ${H.status} ${H.statusText}`);return H.json()}async function L4(y){try{return await P8(`/addresses/${y}/utxos`)}catch{return[]}}async function h9(){return(await P8("/blocks/latest")).slot}async function l9(){let y=await P8("/epochs/latest/parameters"),T={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new u0.default(y.collateral_percent),languageView:T,maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new u0.default(y.min_fee_a),minFeeB:new u0.default(y.min_fee_b),minFeeRefScriptCostPerByte:new u0.default(15),priceMem:new u0.default(y.price_mem),priceSteps:new u0.default(y.price_step),stakeKeyDeposit:new u0.default(2000000),utxoCostPerByte:new u0.default(y.coins_per_utxo_size)}}async function U4(y){let T=await fetch(`${G4}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:z4},method:"POST"});if(!T.ok){let H=await T.text();throw Error(`Transaction submission failed: ${H}`)}return T.json()}function u9(y,T){return y.map((H)=>{let f=H.amount.find((Z)=>Z.unit==="lovelace"),X=f?new u0.default(f.quantity):new u0.default(0),Q=H.amount.filter((Z)=>Z.unit!=="lovelace").map((Z)=>({amount:new u0.default(Z.quantity),assetName:Z.unit.slice(56),policyId:Z.unit.slice(0,56)}));return{address:T,amount:X,index:H.output_index,tokens:Q,txId:H.tx_hash}})}function p9({TransactionConstructor:y,auxiliaryData:T,bufferedParams:H,currentSlot:f,inputs:X,recipientAddress:Q}){let Z=X.reduce((M,O)=>M.plus(O.amount),new u0.default(0));if(!Z.isPositive())throw new M0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{available:Z.toString()}});let q=new y({protocolParams:H});for(let M of X)q.addInput(M);if(q.addOutput({address:Q,amount:Z,tokens:[]}),q.setTTL(f+3600),T)q.setAuxiliaryData(T);q.setFee(q.calculateFee());let U=q.getFee(),z=Z.minus(U),G={address:Q,amount:z,tokens:[]},N=q.calculateMinUtxoAmountBabbage(G);if(!z.isPositive()||z.lt(N))throw new M0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{available:Z.toString(),fee:U.toString(),minimumOutput:N.toString()}});return new y({protocolParams:H}).paymentTransaction({auxiliaryData:T,changeAddress:Q,inputs:X,outputs:[G],ttl:f+3600})}async function m9(y){try{let T=await L4(y),H=0n,f=new Map;for(let Z of T){if(!Z.amount||!Array.isArray(Z.amount))continue;for(let q of Z.amount){let{unit:U,quantity:z}=q;if(U==="lovelace")H+=BigInt(z);else{let G=f.get(U)||0n;f.set(U,G+BigInt(z))}}}let X=[],{baseDecimal:Q}=M0.getChainConfig(M0.Chain.Cardano);if(H>0n)X.push(M0.AssetValue.from({chain:M0.Chain.Cardano,fromBaseDecimal:Q,value:H.toString()}));for(let[Z,q]of f)X.push(M0.AssetValue.from({asset:`${M0.Chain.Cardano}.${Z}`,value:q.toString()}));if(X.length===0)return[M0.AssetValue.from({chain:M0.Chain.Cardano})];return X}catch(T){let H=T instanceof Error?T.message:String(T);return console.error(`Cardano balance fetch error: ${H}`),[M0.AssetValue.from({chain:M0.Chain.Cardano})]}}function M4(y){if(!y||typeof y!=="string")return!1;try{let T=Y4.bech32.decode(y,120);return T.prefix==="addr"||T.prefix==="addr_test"}catch{return!1}}async function g9(y,T=0,H=0){let{Bip32PrivateKey:f}=await import("@stricahq/bip32ed25519"),{types:X,address:Q,crypto:Z}=await import("@stricahq/typhonjs"),q=J4.mnemonicToEntropy(y,W4.wordlist),z=(await f.fromEntropy(Buffer.from(Array.from(q)))).derive(I8+1852).derive(I8+1815).derive(I8+T),G=z.derive(0).derive(H),N=G.toBip32PublicKey().toPublicKey().toBytes(),_=Z.hash28(N),O=z.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),C=Z.hash28(O),B={hash:_,type:X.HashType.ADDRESS},R={hash:C,type:X.HashType.ADDRESS},w=new Q.BaseAddress(X.NetworkId.MAINNET,B,R).getBech32(),j=G.toPrivateKey();return{getAddress:()=>w,publicKey:N,publicKeyHash:_,signTransaction:async(K)=>{try{let $=await import("@stricahq/cbors"),k=Buffer.from(K,"hex"),W=$.Decoder.decode(k),[J,Y,L,D]=W.value,F=$.Encoder.encode(J),x=Z.hash32(F),A=j.sign(x),E=Y instanceof Map?Y:new Map,u=E.get(q4)||[];u.push([N,A]),E.set(q4,u);let r=[J,E,L,D];return $.Encoder.encode(r).toString("hex")}catch($){throw new M0.SwapKitError("toolbox_cardano_sign_transaction_failed",{message:String($)})}}}}function o9(y){let T,H,f;async function X(){if(!f)f=await l9();return f}async function Q(){if(T!==void 0)return T;if(y&&"phrase"in y&&y.phrase){let M=y.index??0;return T=await g9(y.phrase,0,M),T}if(y&&"signer"in y&&y.signer)return T=y.signer,T;return}async function Z(){if(H)return H;let M=await Q();if(!M)return"";if("getAddress"in M)return H=await M.getAddress(),H;return""}async function q(M){let O=M||await Z();if(!O)throw new M0.SwapKitError("core_wallet_connection_not_found");return m9(O)}async function U(M){if(M)try{let{tx:R}=await z(M),I=R.getFee();return M0.AssetValue.from({chain:M0.Chain.Cardano,fromBaseDecimal:6,value:I.toString()})}catch{}let O=await X(),C=400,B=O.minFeeB.plus(O.minFeeA.times(C));return M0.AssetValue.from({chain:M0.Chain.Cardano,fromBaseDecimal:6,value:B.toString()})}async function z({sender:M="",recipient:O,assetValue:C,memo:B,pureLovelaceOnly:R=!1,sweep:I=!1}){let{Transaction:w,utils:j}=await import("@stricahq/typhonjs"),K=M||await Z();if(!K)throw new M0.SwapKitError("core_wallet_connection_not_found");let[$,k,W]=await Promise.all([L4(K),h9(),X()]);if(I&&!C.isGasAsset)throw new M0.SwapKitError({errorKey:"toolbox_not_supported",info:{asset:C.toString(),chain:M0.Chain.Cardano,feature:"token_sweep"}});let J=I&&C.isGasAsset,Y=R||J,L=$.filter((V)=>Y?V.amount.some((b)=>b.unit==="lovelace")&&V.amount.every((b)=>b.unit==="lovelace"):V.amount.some((b)=>b.unit==="lovelace")).sort((V,b)=>{let c=V.amount.some((f0)=>f0.unit!=="lovelace"),i=b.amount.some((f0)=>f0.unit!=="lovelace");if(c===i)return 0;return c?1:-1}),D=j.getAddressFromString(K),F=j.getAddressFromString(O),x=u9(L,D),A;if(B){let V=new Map;V.set("msg",[B]),A={metadata:[{data:V,label:674}]}}let E={...W,minFeeB:W.minFeeB.plus(W.minFeeA.times(4))};if(J){let V=p9({auxiliaryData:A,bufferedParams:E,currentSlot:k,inputs:x,recipientAddress:F,TransactionConstructor:w}),{payload:b}=V.buildTransaction();return{tx:V,unsignedTx:b}}let u=new u0.default(C.getBaseValue("string")),r=[{address:F,amount:u,tokens:[]}],_0=new w({protocolParams:E}).paymentTransaction({auxiliaryData:A,changeAddress:D,inputs:x,outputs:r,ttl:k+3600}),{payload:P}=_0.buildTransaction();return{tx:_0,unsignedTx:P}}async function G(M){let O=await Q();if(!O||!("signTransaction"in O))throw new M0.SwapKitError("core_wallet_connection_not_found");return O.signTransaction(M)}async function N({recipient:M,assetValue:O,memo:C,sweep:B}){let R=await Q();if(!R||!("signTransaction"in R))throw new M0.SwapKitError("core_wallet_connection_not_found");let{unsignedTx:I}=await z({assetValue:O,memo:C,recipient:M,sender:await Z(),sweep:B}),w=await G(I);return await U4(w)}async function _(M){let O=await G(M);return await U4(O)}return{createTransaction:z,estimateTransactionFee:U,getAddress:Z,getBalance:q,signAndBroadcastTransaction:_,signTransaction:G,transfer:N,validateAddress:M4}}var Y4,J4,W4,M0,u0,z4="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",G4="https://cardano-mainnet.blockfrost.io/api/v0",I8=2147483648,q4=0;var _4=h(()=>{Y4=require("@scure/base"),J4=require("@scure/bip39"),W4=require("@scure/bip39/wordlists/english.js"),M0=require("@swapkit/helpers"),u0=_T(require("bignumber.js"))});var j8={};P0(j8,{validateCardanoAddress:()=>M4,getCardanoToolbox:()=>o9});module.exports=V0(j8);var K8=h(()=>{_4()});function v1(y){return Xy.base64.encode(Uint8Array.from(Xy.bech32.fromWords(Xy.bech32.decode(y).words)))}function b1(y,T="thor"){return Xy.bech32.encode(T,Xy.bech32.toWords(Xy.base64.decode(y)))}function n9(y){return Xy.base64.encode(y)}function c9(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new C4.SwapKitError("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return Xy.base64.decode(y)}var Xy,C4;var S8=h(()=>{Xy=require("@scure/base"),C4=require("@swapkit/helpers")});function r0(y){switch(y){case p.Chain.Maya:return{amount:[],gas:"10000000000"};case p.Chain.THORChain:return{amount:[],gas:"500000000"};case p.Chain.Kujira:return N4;case p.Chain.Noble:return k4;default:return $4}}async function h1(y){let{isStagenet:T}=p.SKConfig.get("envs"),H=p.SKConfig.get("thornodeUrls"),f=y===p.Chain.Maya,Q=`${f?T?H.MAYA_STAGENET:H.MAYA:T?H.THOR_STAGENET:H.THOR}/${f?"mayachain":"thorchain"}/constants`,Z=p.getChainConfig(y).baseDecimal;try{let{int_64_values:{NativeTransactionFee:q}}=await p.RequestClient.get(Q);if(!Number.isInteger(q)||q<=0)throw new p.SwapKitError("toolbox_cosmos_invalid_fee",{nativeFee:q.toString()});return p.SwapKitNumber.fromBigInt(BigInt(q),Z)}catch{let q=f?10000000000n:2000000n;return p.SwapKitNumber.fromBigInt(q,Z)}}async function Qy(y){let T=await import("@cosmjs/stargate"),H=T.StargateClient??T.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return H.connect({headers:f,url:y})}async function by(y,T,H={}){let f=await import("@cosmjs/stargate"),X=f.SigningStargateClient??f.default?.SigningStargateClient,Q=f.GasPrice??f.default?.GasPrice,Z=typeof H==="string"?H:"0.0003uatom",q=typeof H==="string"?{}:H;return X.connectWithSigner(y,T,{gasPrice:Q.fromString(Z),...q})}async function A8(y,T){let H=await import("@cosmjs/stargate");return(H.SigningStargateClient??H.default?.SigningStargateClient).offline(y,T)}async function w8({sender:y,recipient:T,assetValue:H,memo:f="",feeRate:X,sequence:Q,accountNumber:Z,sweep:q}){let{chain:U,chainId:z}=H,G=await p.getRPCUrl(U),N=await Qy(G),_=await N.getAccount(y);if(!_)throw new p.SwapKitError("toolbox_cosmos_account_not_found",{sender:y});let M=p.AssetValue.from({chain:U}),O=Yy(M.symbol),C=r0(U),B=O&&X?{amount:[{amount:X.toString(),denom:O}],gas:C.gas}:C,R=Yy(H.symbol),w={amount:[{amount:(q?X1({assetValue:H,balances:await N.getAllBalances(y),denom:R,feeAmount:r5(B.amount,R)}):H).getBaseValue("string"),denom:R}],fromAddress:y,toAddress:T};return{accountNumber:Z??Number(_.accountNumber),chainId:z,fee:B,memo:f,msgs:[{typeUrl:d9(U),value:w}],sequence:Q??_.sequence}}function r5(y,T){let H=T.toLowerCase();return y.reduce((f,X)=>X.denom.toLowerCase()===H?f+BigInt(X.amount):f,0n)}function X1({assetValue:y,balances:T,denom:H,feeAmount:f=0n}){let X=H.toLowerCase(),Q=T.find(({denom:U})=>U.toLowerCase()===X),Z=BigInt(Q?.amount??"0"),q=Z-f;if(q<=0n)throw new p.SwapKitError("toolbox_sweep_amount_too_low",{asset:y.toString(),balance:Z.toString(),fee:f.toString()});return y.set(p.SwapKitNumber.fromBigInt(q,y.decimal))}var p,V8="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",O4="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",$4,N4,k4,Yy=(y,T=!1)=>{if(T)return y.toLowerCase();switch(y){case"uUSK":case"USK":return V8;case"uYUM":case"YUM":return O4;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":case"NOBLE":return"uusdc";default:return y}},l1=({symbol:y,chain:T})=>{if(T===p.Chain.Maya)return(y.toUpperCase()!=="CACAO"?y:`${p.Chain.Maya}.${y}`).toUpperCase();if(T===p.Chain.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${p.Chain.THORChain}.${y}`:y).toUpperCase();return Yy(y,!1)},d9=(y)=>{switch(y){case p.Chain.Maya:case p.Chain.THORChain:return"/types.MsgSend";case p.Chain.Cosmos:case p.Chain.Kujira:case p.Chain.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new p.SwapKitError("toolbox_cosmos_not_supported",{chain:y})}},i9,E8=(y,T)=>{let H=i9[y.toLowerCase()];if(!H)return p.AssetValue.from({asset:y,fromBaseDecimal:8,value:T});let{chain:f,asset:X,decimals:Q}=H,Z=f?{chain:f}:{asset:X};return p.AssetValue.from({...Z,fromBaseDecimal:Q,value:T})};var u1=h(()=>{p=require("@swapkit/helpers"),$4={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},N4={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},k4={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};i9={atom:{chain:p.Chain.Cosmos,decimals:p.getChainConfig(p.Chain.Cosmos).baseDecimal},cacao:{chain:p.Chain.Maya,decimals:10},kuji:{chain:p.Chain.Kujira,decimals:p.getChainConfig(p.Chain.Kujira).baseDecimal},maya:{asset:`${p.Chain.Maya}.${p.Chain.Maya}`,decimals:4},rune:{chain:p.Chain.THORChain,decimals:p.getChainConfig(p.Chain.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:p.getChainConfig(p.Chain.THORChain).baseDecimal},uatom:{chain:p.Chain.Cosmos,decimals:p.getChainConfig(p.Chain.Cosmos).baseDecimal},ukuji:{chain:p.Chain.Kujira,decimals:p.getChainConfig(p.Chain.Kujira).baseDecimal},usdc:{chain:p.Chain.Noble,decimals:p.getChainConfig(p.Chain.Noble).baseDecimal},uusdc:{chain:p.Chain.Noble,decimals:p.getChainConfig(p.Chain.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:p.getChainConfig(p.Chain.THORChain).baseDecimal},[V8.toLowerCase()]:{asset:`${p.Chain.Kujira}.USK`,decimals:p.getChainConfig(p.Chain.Kujira).baseDecimal}}});var B4={};P0(B4,{$root:()=>l});var K0,a,c0,n,l;var D4=h(()=>{K0=_T(require("protobufjs/minimal.js")),a=K0.default.Reader,c0=K0.default.Writer,n=K0.default.util,l=K0.default.roots.default||(K0.default.roots.default={});l.common=(()=>{let y={};return y.Asset=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.chain="",T.prototype.symbol="",T.prototype.ticker="",T.prototype.synth=!1,T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))X.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))X.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))X.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))X.uint32(32).bool(f.synth);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof a))f=a.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.common.Asset;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.chain=f.string();break;case 2:Z.symbol=f.string();break;case 3:Z.ticker=f.string();break;case 4:Z.synth=f.bool();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof a))f=new a(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!n.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!n.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!n.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},T.fromObject=function(f){if(f instanceof l.common.Asset)return f;let X=new l.common.Asset;if(f.chain!=null)X.chain=String(f.chain);if(f.symbol!=null)X.symbol=String(f.symbol);if(f.ticker!=null)X.ticker=String(f.ticker);if(f.synth!=null)X.synth=Boolean(f.synth);return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.defaults)Q.chain="",Q.symbol="",Q.ticker="",Q.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))Q.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))Q.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))Q.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))Q.synth=f.synth;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y.Coin=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.asset=null,T.prototype.amount="",T.prototype.decimals=n.Long?n.Long.fromBits(0,0,!1):0,T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))l.common.Asset.encode(f.asset,X.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))X.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))X.uint32(24).int64(f.decimals);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof a))f=a.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.common.Coin;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.asset=l.common.Asset.decode(f,f.uint32());break;case 2:Z.amount=f.string();break;case 3:Z.decimals=f.int64();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof a))f=new a(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let X=l.common.Asset.verify(f.asset);if(X)return"asset."+X}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!n.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!n.isInteger(f.decimals)&&!(f.decimals&&n.isInteger(f.decimals.low)&&n.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},T.fromObject=function(f){if(f instanceof l.common.Coin)return f;let X=new l.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");X.asset=l.common.Asset.fromObject(f.asset)}if(f.amount!=null)X.amount=String(f.amount);if(f.decimals!=null){if(n.Long)(X.decimals=n.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")X.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")X.decimals=f.decimals;else if(typeof f.decimals==="object")X.decimals=new n.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.defaults)if(Q.asset=null,Q.amount="",n.Long){let Z=new n.Long(0,0,!1);Q.decimals=X.longs===String?Z.toString():X.longs===Number?Z.toNumber():Z}else Q.decimals=X.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))Q.asset=l.common.Asset.toObject(f.asset,X);if(f.amount!=null&&f.hasOwnProperty("amount"))Q.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")Q.decimals=X.longs===String?String(f.decimals):f.decimals;else Q.decimals=X.longs===String?n.Long.prototype.toString.call(f.decimals):X.longs===Number?new n.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y.PubKeySet=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.secp256k1="",T.prototype.ed25519="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))X.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))X.uint32(18).string(f.ed25519);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof a))f=a.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.common.PubKeySet;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.secp256k1=f.string();break;case 2:Z.ed25519=f.string();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof a))f=new a(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!n.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!n.isString(f.ed25519))return"ed25519: string expected"}return null},T.fromObject=function(f){if(f instanceof l.common.PubKeySet)return f;let X=new l.common.PubKeySet;if(f.secp256k1!=null)X.secp256k1=String(f.secp256k1);if(f.ed25519!=null)X.ed25519=String(f.ed25519);return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.defaults)Q.secp256k1="",Q.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))Q.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))Q.ed25519=f.ed25519;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y.Tx=(()=>{function T(H){if(this.coins=[],this.gas=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.id="",T.prototype.chain="",T.prototype.fromAddress="",T.prototype.toAddress="",T.prototype.coins=n.emptyArray,T.prototype.gas=n.emptyArray,T.prototype.memo="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))X.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))X.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))X.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))X.uint32(34).string(f.toAddress);if(f.coins?.length)for(let Q=0;Q<f.coins.length;++Q)l.common.Coin.encode(f.coins[Q],X.uint32(42).fork()).ldelim();if(f.gas?.length)for(let Q=0;Q<f.gas.length;++Q)l.common.Coin.encode(f.gas[Q],X.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))X.uint32(58).string(f.memo);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof a))f=a.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.common.Tx;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.id=f.string();break;case 2:Z.chain=f.string();break;case 3:Z.fromAddress=f.string();break;case 4:Z.toAddress=f.string();break;case 5:if(!Z.coins?.length)Z.coins=[];Z.coins.push(l.common.Coin.decode(f,f.uint32()));break;case 6:if(!Z.gas?.length)Z.gas=[];Z.gas.push(l.common.Coin.decode(f,f.uint32()));break;case 7:Z.memo=f.string();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof a))f=new a(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!n.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!n.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!n.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!n.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let X=0;X<f.coins.length;++X){let Q=l.common.Coin.verify(f.coins[X]);if(Q)return"coins."+Q}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let X=0;X<f.gas.length;++X){let Q=l.common.Coin.verify(f.gas[X]);if(Q)return"gas."+Q}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!n.isString(f.memo))return"memo: string expected"}return null},T.fromObject=function(f){if(f instanceof l.common.Tx)return f;let X=new l.common.Tx;if(f.id!=null)X.id=String(f.id);if(f.chain!=null)X.chain=String(f.chain);if(f.fromAddress!=null)X.fromAddress=String(f.fromAddress);if(f.toAddress!=null)X.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");X.coins=[];for(let Q=0;Q<f.coins.length;++Q){if(typeof f.coins[Q]!=="object")throw TypeError(".common.Tx.coins: object expected");X.coins[Q]=l.common.Coin.fromObject(f.coins[Q])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");X.gas=[];for(let Q=0;Q<f.gas.length;++Q){if(typeof f.gas[Q]!=="object")throw TypeError(".common.Tx.gas: object expected");X.gas[Q]=l.common.Coin.fromObject(f.gas[Q])}}if(f.memo!=null)X.memo=String(f.memo);return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.arrays||X.defaults)Q.coins=[],Q.gas=[];if(X.defaults)Q.id="",Q.chain="",Q.fromAddress="",Q.toAddress="",Q.memo="";if(f.id!=null&&f.hasOwnProperty("id"))Q.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))Q.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))Q.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))Q.toAddress=f.toAddress;if(f.coins?.length){Q.coins=[];for(let Z=0;Z<f.coins.length;++Z)Q.coins[Z]=l.common.Coin.toObject(f.coins[Z],X)}if(f.gas?.length){Q.gas=[];for(let Z=0;Z<f.gas.length;++Z)Q.gas[Z]=l.common.Coin.toObject(f.gas[Z],X)}if(f.memo!=null&&f.hasOwnProperty("memo"))Q.memo=f.memo;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y.Fee=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.coins=n.emptyArray,T.prototype.poolDeduct="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.coins?.length)for(let Q=0;Q<f.coins.length;++Q)l.common.Coin.encode(f.coins[Q],X.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))X.uint32(18).string(f.poolDeduct);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof a))f=a.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.common.Fee;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:if(!Z.coins?.length)Z.coins=[];Z.coins.push(l.common.Coin.decode(f,f.uint32()));break;case 2:Z.poolDeduct=f.string();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof a))f=new a(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let X=0;X<f.coins.length;++X){let Q=l.common.Coin.verify(f.coins[X]);if(Q)return"coins."+Q}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!n.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},T.fromObject=function(f){if(f instanceof l.common.Fee)return f;let X=new l.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");X.coins=[];for(let Q=0;Q<f.coins.length;++Q){if(typeof f.coins[Q]!=="object")throw TypeError(".common.Fee.coins: object expected");X.coins[Q]=l.common.Coin.fromObject(f.coins[Q])}}if(f.poolDeduct!=null)X.poolDeduct=String(f.poolDeduct);return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.arrays||X.defaults)Q.coins=[];if(X.defaults)Q.poolDeduct="";if(f.coins?.length){Q.coins=[];for(let Z=0;Z<f.coins.length;++Z)Q.coins[Z]=l.common.Coin.toObject(f.coins[Z],X)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))Q.poolDeduct=f.poolDeduct;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y.ProtoUint=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.value="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))X.uint32(10).string(f.value);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof a))f=a.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.common.ProtoUint;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.value=f.string();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof a))f=new a(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!n.isString(f.value))return"value: string expected"}return null},T.fromObject=function(f){if(f instanceof l.common.ProtoUint)return f;let X=new l.common.ProtoUint;if(f.value!=null)X.value=String(f.value);return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.defaults)Q.value="";if(f.value!=null&&f.hasOwnProperty("value"))Q.value=f.value;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y})();l.types=(()=>{let y={};return y.MsgDeposit=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.coins=n.emptyArray,T.prototype.memo="",T.prototype.signer=n.newBuffer([]),T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.coins?.length)for(let Q=0;Q<f.coins.length;++Q)l.common.Coin.encode(f.coins[Q],X.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))X.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))X.uint32(26).bytes(f.signer);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof a))f=a.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.types.MsgDeposit;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:if(!Z.coins?.length)Z.coins=[];Z.coins.push(l.common.Coin.decode(f,f.uint32()));break;case 2:Z.memo=f.string();break;case 3:Z.signer=f.bytes();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof a))f=new a(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let X=0;X<f.coins.length;++X){let Q=l.common.Coin.verify(f.coins[X]);if(Q)return"coins."+Q}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!n.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||n.isString(f.signer)))return"signer: buffer expected"}return null},T.fromObject=function(f){if(f instanceof l.types.MsgDeposit)return f;let X=new l.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");X.coins=[];for(let Q=0;Q<f.coins.length;++Q){if(typeof f.coins[Q]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");X.coins[Q]=l.common.Coin.fromObject(f.coins[Q])}}if(f.memo!=null)X.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")n.base64.decode(f.signer,X.signer=n.newBuffer(n.base64.length(f.signer)),0);else if(f.signer.length)X.signer=f.signer}return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.arrays||X.defaults)Q.coins=[];if(X.defaults){if(Q.memo="",X.bytes===String)Q.signer="";else if(Q.signer=[],X.bytes!==Array)Q.signer=n.newBuffer(Q.signer)}if(f.coins?.length){Q.coins=[];for(let Z=0;Z<f.coins.length;++Z)Q.coins[Z]=l.common.Coin.toObject(f.coins[Z],X)}if(f.memo!=null&&f.hasOwnProperty("memo"))Q.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))Q.signer=X.bytes===String?n.base64.encode(f.signer,0,f.signer.length):X.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y.MsgSend=(()=>{function T(H){if(this.amount=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.fromAddress=n.newBuffer([]),T.prototype.toAddress=n.newBuffer([]),T.prototype.amount=n.emptyArray,T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))X.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))X.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let Q=0;Q<f.amount.length;++Q)l.cosmos.base.v1beta1.Coin.encode(f.amount[Q],X.uint32(26).fork()).ldelim();return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof a))f=a.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.types.MsgSend;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.fromAddress=f.bytes();break;case 2:Z.toAddress=f.bytes();break;case 3:if(!Z.amount?.length)Z.amount=[];Z.amount.push(l.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof a))f=new a(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||n.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||n.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let X=0;X<f.amount.length;++X){let Q=l.cosmos.base.v1beta1.Coin.verify(f.amount[X]);if(Q)return"amount."+Q}}return null},T.fromObject=function(f){if(f instanceof l.types.MsgSend)return f;let X=new l.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")n.base64.decode(f.fromAddress,X.fromAddress=n.newBuffer(n.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)X.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")n.base64.decode(f.toAddress,X.toAddress=n.newBuffer(n.base64.length(f.toAddress)),0);else if(f.toAddress.length)X.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");X.amount=[];for(let Q=0;Q<f.amount.length;++Q){if(typeof f.amount[Q]!=="object")throw TypeError(".types.MsgSend.amount: object expected");X.amount[Q]=l.cosmos.base.v1beta1.Coin.fromObject(f.amount[Q])}}return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.arrays||X.defaults)Q.amount=[];if(X.defaults){if(X.bytes===String)Q.fromAddress="";else if(Q.fromAddress=[],X.bytes!==Array)Q.fromAddress=n.newBuffer(Q.fromAddress);if(X.bytes===String)Q.toAddress="";else if(Q.toAddress=[],X.bytes!==Array)Q.toAddress=n.newBuffer(Q.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))Q.fromAddress=X.bytes===String?n.base64.encode(f.fromAddress,0,f.fromAddress.length):X.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))Q.toAddress=X.bytes===String?n.base64.encode(f.toAddress,0,f.toAddress.length):X.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){Q.amount=[];for(let Z=0;Z<f.amount.length;++Z)Q.amount[Z]=l.cosmos.base.v1beta1.Coin.toObject(f.amount[Z],X)}return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y})();l.cosmos=(()=>{let y={};return y.base=(()=>{let T={};return T.v1beta1=(()=>{let H={};return H.Coin=(()=>{function f(X){if(X){for(let Q=Object.keys(X),Z=0;Z<Q.length;++Z)if(X[Q[Z]]!=null)this[Q[Z]]=X[Q[Z]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(Q){return new f(Q)},f.encode=function(Q,Z){if(!Z)Z=c0.create();if(Q.denom!=null&&Object.hasOwnProperty.call(Q,"denom"))Z.uint32(10).string(Q.denom);if(Q.amount!=null&&Object.hasOwnProperty.call(Q,"amount"))Z.uint32(18).string(Q.amount);return Z},f.encodeDelimited=function(Q,Z){return this.encode(Q,Z).ldelim()},f.decode=function(Q,Z){if(!(Q instanceof a))Q=a.create(Q);let q=Z===void 0?Q.len:Q.pos+Z,U=new l.cosmos.base.v1beta1.Coin;while(Q.pos<q){let z=Q.uint32();switch(z>>>3){case 1:U.denom=Q.string();break;case 2:U.amount=Q.string();break;default:Q.skipType(z&7);break}}return U},f.decodeDelimited=function(Q){if(!(Q instanceof a))Q=new a(Q);return this.decode(Q,Q.uint32())},f.verify=function(Q){if(typeof Q!=="object"||Q===null)return"object expected";if(Q.denom!=null&&Q.hasOwnProperty("denom")){if(!n.isString(Q.denom))return"denom: string expected"}if(Q.amount!=null&&Q.hasOwnProperty("amount")){if(!n.isString(Q.amount))return"amount: string expected"}return null},f.fromObject=function(Q){if(Q instanceof l.cosmos.base.v1beta1.Coin)return Q;let Z=new l.cosmos.base.v1beta1.Coin;if(Q.denom!=null)Z.denom=String(Q.denom);if(Q.amount!=null)Z.amount=String(Q.amount);return Z},f.toObject=function(Q,Z){if(!Z)Z={};let q={};if(Z.defaults)q.denom="",q.amount="";if(Q.denom!=null&&Q.hasOwnProperty("denom"))q.denom=Q.denom;if(Q.amount!=null&&Q.hasOwnProperty("amount"))q.amount=Q.amount;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},f})(),H.DecCoin=(()=>{function f(X){if(X){for(let Q=Object.keys(X),Z=0;Z<Q.length;++Z)if(X[Q[Z]]!=null)this[Q[Z]]=X[Q[Z]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(Q){return new f(Q)},f.encode=function(Q,Z){if(!Z)Z=c0.create();if(Q.denom!=null&&Object.hasOwnProperty.call(Q,"denom"))Z.uint32(10).string(Q.denom);if(Q.amount!=null&&Object.hasOwnProperty.call(Q,"amount"))Z.uint32(18).string(Q.amount);return Z},f.encodeDelimited=function(Q,Z){return this.encode(Q,Z).ldelim()},f.decode=function(Q,Z){if(!(Q instanceof a))Q=a.create(Q);let q=Z===void 0?Q.len:Q.pos+Z,U=new l.cosmos.base.v1beta1.DecCoin;while(Q.pos<q){let z=Q.uint32();switch(z>>>3){case 1:U.denom=Q.string();break;case 2:U.amount=Q.string();break;default:Q.skipType(z&7);break}}return U},f.decodeDelimited=function(Q){if(!(Q instanceof a))Q=new a(Q);return this.decode(Q,Q.uint32())},f.verify=function(Q){if(typeof Q!=="object"||Q===null)return"object expected";if(Q.denom!=null&&Q.hasOwnProperty("denom")){if(!n.isString(Q.denom))return"denom: string expected"}if(Q.amount!=null&&Q.hasOwnProperty("amount")){if(!n.isString(Q.amount))return"amount: string expected"}return null},f.fromObject=function(Q){if(Q instanceof l.cosmos.base.v1beta1.DecCoin)return Q;let Z=new l.cosmos.base.v1beta1.DecCoin;if(Q.denom!=null)Z.denom=String(Q.denom);if(Q.amount!=null)Z.amount=String(Q.amount);return Z},f.toObject=function(Q,Z){if(!Z)Z={};let q={};if(Z.defaults)q.denom="",q.amount="";if(Q.denom!=null&&Q.hasOwnProperty("denom"))q.denom=Q.denom;if(Q.amount!=null&&Q.hasOwnProperty("amount"))q.amount=Q.amount;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},f})(),H.IntProto=(()=>{function f(X){if(X){for(let Q=Object.keys(X),Z=0;Z<Q.length;++Z)if(X[Q[Z]]!=null)this[Q[Z]]=X[Q[Z]]}}return f.prototype.int="",f.create=function(Q){return new f(Q)},f.encode=function(Q,Z){if(!Z)Z=c0.create();if(Q.int!=null&&Object.hasOwnProperty.call(Q,"int"))Z.uint32(10).string(Q.int);return Z},f.encodeDelimited=function(Q,Z){return this.encode(Q,Z).ldelim()},f.decode=function(Q,Z){if(!(Q instanceof a))Q=a.create(Q);let q=Z===void 0?Q.len:Q.pos+Z,U=new l.cosmos.base.v1beta1.IntProto;while(Q.pos<q){let z=Q.uint32();switch(z>>>3){case 1:U.int=Q.string();break;default:Q.skipType(z&7);break}}return U},f.decodeDelimited=function(Q){if(!(Q instanceof a))Q=new a(Q);return this.decode(Q,Q.uint32())},f.verify=function(Q){if(typeof Q!=="object"||Q===null)return"object expected";if(Q.int!=null&&Q.hasOwnProperty("int")){if(!n.isString(Q.int))return"int: string expected"}return null},f.fromObject=function(Q){if(Q instanceof l.cosmos.base.v1beta1.IntProto)return Q;let Z=new l.cosmos.base.v1beta1.IntProto;if(Q.int!=null)Z.int=String(Q.int);return Z},f.toObject=function(Q,Z){if(!Z)Z={};let q={};if(Z.defaults)q.int="";if(Q.int!=null&&Q.hasOwnProperty("int"))q.int=Q.int;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},f})(),H.DecProto=(()=>{function f(X){if(X){for(let Q=Object.keys(X),Z=0;Z<Q.length;++Z)if(X[Q[Z]]!=null)this[Q[Z]]=X[Q[Z]]}}return f.prototype.dec="",f.create=function(Q){return new f(Q)},f.encode=function(Q,Z){if(!Z)Z=c0.create();if(Q.dec!=null&&Object.hasOwnProperty.call(Q,"dec"))Z.uint32(10).string(Q.dec);return Z},f.encodeDelimited=function(Q,Z){return this.encode(Q,Z).ldelim()},f.decode=function(Q,Z){if(!(Q instanceof a))Q=a.create(Q);let q=Z===void 0?Q.len:Q.pos+Z,U=new l.cosmos.base.v1beta1.DecProto;while(Q.pos<q){let z=Q.uint32();switch(z>>>3){case 1:U.dec=Q.string();break;default:Q.skipType(z&7);break}}return U},f.decodeDelimited=function(Q){if(!(Q instanceof a))Q=new a(Q);return this.decode(Q,Q.uint32())},f.verify=function(Q){if(typeof Q!=="object"||Q===null)return"object expected";if(Q.dec!=null&&Q.hasOwnProperty("dec")){if(!n.isString(Q.dec))return"dec: string expected"}return null},f.fromObject=function(Q){if(Q instanceof l.cosmos.base.v1beta1.DecProto)return Q;let Z=new l.cosmos.base.v1beta1.DecProto;if(Q.dec!=null)Z.dec=String(Q.dec);return Z},f.toObject=function(Q,Z){if(!Z)Z={};let q={};if(Z.defaults)q.dec="";if(Q.dec!=null&&Q.hasOwnProperty("dec"))q.dec=Q.dec;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},f})(),H})(),T})(),y})()});async function hy(){let{$root:y}=await Promise.resolve().then(() => (D4(),B4)),T=await import("@cosmjs/proto-signing"),H=await import("@cosmjs/stargate"),f=T.Registry??T.default?.Registry,X=H.defaultRegistryTypes??H.default?.defaultRegistryTypes;return new f([...X,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function Cy(y,T=y===v8.Chain.THORChain?"thor":"maya"){let H=await import("@cosmjs/stargate"),f=H.AminoTypes??H.default?.AminoTypes,X=y===v8.Chain.THORChain?"thorchain":"mayachain";return new f({"/types.MsgDeposit":{aminoType:`${X}/MsgDeposit`,fromAmino:({signer:Q,...Z})=>({...Z,signer:v1(Q)}),toAmino:({signer:Q,...Z})=>({...Z,signer:b1(Q,T)})},"/types.MsgSend":{aminoType:`${X}/MsgSend`,fromAmino:({from_address:Q,to_address:Z,...q})=>({...q,fromAddress:v1(Q),toAddress:v1(Z)}),toAmino:({fromAddress:Q,toAddress:Z,...q})=>({...q,from_address:b1(Q,T),to_address:b1(Z,T)})}})}var v8;var b8=h(()=>{S8();v8=require("@swapkit/helpers")});async function u8(y){let{assetValue:T,recipient:H,memo:f,sender:X,asSignable:Q,asAminoMessage:Z}=y,q=y.sweep?await s5({assetValue:T,sender:X}):T;if(H)return R4({asAminoMessage:Z,asSignable:Q,assetValue:q,memo:f,recipient:H,sender:X});return x4({asAminoMessage:Z,asSignable:Q,assetValue:q,memo:f,sender:X})}async function s5({assetValue:y,sender:T}){let H=y.chain,f=await E0.getRPCUrl(H),Q=await(await Qy(f)).getAllBalances(T),Z=y.isGasAsset?(await h1(H)).getBaseValue("bigint"):0n;return X1({assetValue:y,balances:Q,denom:Yy(y.symbol,!0),feeAmount:Z})}async function R4({sender:y,recipient:T,assetValue:H,memo:f="",asSignable:X=!0,asAminoMessage:Q=!1,sequence:Z,accountNumber:q}){let U=H.chain,z=await E0.getRPCUrl(U),G=await F4({rpcUrl:z,sender:y}),{chainId:N}=E0.getChainConfig(U),_=h8({assetValue:H,recipient:T,sender:y}),M=X?await Oy(Q?_:$y(_),U):_;return{accountNumber:q||Number(G.accountNumber),chainId:N,fee:r0(U),memo:f,msgs:[M],sequence:Z||G.sequence}}async function x4({sender:y,assetValue:T,memo:H="",asSignable:f=!0,asAminoMessage:X=!1,sequence:Q,accountNumber:Z}){let q=T.chain,U=await E0.getRPCUrl(q),z=await F4({rpcUrl:U,sender:y}),{chainId:G}=E0.getChainConfig(q),N=l8({assetValue:T,memo:H,sender:y}),_=f?await Oy(X?N:$y(N),q):N;return{accountNumber:Z||Number(z.accountNumber),chainId:G,fee:r0(q),memo:H,msgs:[_],sequence:Q||z.sequence}}function $y(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((T)=>{let H=E0.AssetValue.from({asset:T.asset}),f=(H.isSynthetic?H.symbol.split("/")?.[1]:H.symbol)?.toUpperCase(),X=(H.isSynthetic?H.symbol.split("/")?.[0]:H.chain)?.toUpperCase();return{...T,asset:{chain:X,symbol:f,synth:H.isSynthetic,ticker:H.ticker}}})}}}async function p1({chain:y,memo:T,msgs:H}){let f=await hy(),X=await Cy(y),Q={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:T,messages:H.map((Z)=>X.fromAmino(Z))}};return f.encode(Q)}var E0,t9,r9,h8=({sender:y,recipient:T,assetValue:H})=>{return{type:`${H.chain===E0.Chain.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:H.getBaseValue("string"),denom:Yy(H.symbol,!0)}],from_address:y,to_address:T}}},l8=({sender:y,assetValue:T,memo:H=""})=>{return{type:`${T.chain===E0.Chain.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:T.getBaseValue("string"),asset:l1(T)}],memo:H,signer:y}}},a5=({sender:y,recipient:T,assetValue:H,memo:f})=>{return!T?l8({assetValue:H,memo:f,sender:y}):h8({assetValue:H,recipient:T,sender:y})},Oy=async(y,T)=>{return(await Cy(T)).fromAmino(y)},F4=async({rpcUrl:y,sender:T})=>{let f=await(await Qy(y)).getAccount(T);if(!f)throw new E0.SwapKitError("toolbox_cosmos_account_not_found",{sender:T});return f};var I4=h(()=>{u1();b8();E0=require("@swapkit/helpers"),t9=r0(E0.Chain.THORChain).gas,r9=r0(E0.Chain.Maya).gas});var P4=()=>{};var j4=h(()=>{P4()});var p8=h(()=>{S8();I4();b8();j4()});async function n8(y,T){try{let f=(await o8.SwapKitApi.getGasRate()).find((X)=>X.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}async function g8({phrase:y,prefix:T,...H}){let f=await import("@cosmjs/proto-signing"),X=await import("@cosmjs/crypto"),Q=f.DirectSecp256k1HdWallet??f.default?.DirectSecp256k1HdWallet,Z=X.stringToPath??X.default?.stringToPath,q="derivationPath"in H?H.derivationPath:`${o.DerivationPath[H.chain]}/${H.index}`;return await Q.fromMnemonic(y,{hdPaths:[Z(q)],prefix:T})}async function a9({privateKey:y,prefix:T}){let H=await import("@cosmjs/proto-signing");return(H.DirectSecp256k1Wallet??H.default?.DirectSecp256k1Wallet).fromKey(y,T)}function V4(y){return async function({signature:H,message:f,address:X}){let Q=await y(X);if(!Q?.pubkey)throw new o.SwapKitError("toolbox_cosmos_verify_signature_no_pubkey");let Z=await import("@cosmjs/crypto"),q=Z.Secp256k1Signature??Z.default?.Secp256k1Signature,U=Z.Secp256k1??Z.default?.Secp256k1,z=q.fromFixedLength(Ny.base64.decode(H));return U.verifySignature(z,Ny.base64.decode(f),Q.pubkey.value)}}function g1({chain:y,...T}){let H=o.CosmosChainPrefixes[y],f="index"in T?T.index||0:0,X=o.derivationPathToString("derivationPath"in T&&T.derivationPath?T.derivationPath:o.updateDerivationPath(o.NetworkDerivationPath[y],{index:f})),Q;async function Z(){if(Q)return Q;return Q=await m1.match(T).with({phrase:m1.P.string},({phrase:M})=>g8({derivationPath:X,phrase:M,prefix:H})).with({signer:m1.P.any},({signer:M})=>M).otherwise(()=>{return}),Q}async function q(M){let O=await o.getRPCUrl(y);return(await Qy(O)).getAccount(M)}async function U(){let M=await Z(),[O]=await M?.getAccounts()||[];return O?.address}async function z(){let M=await Z(),[O]=await M?.getAccounts()||[];if(!O?.pubkey)throw new o.SwapKitError("toolbox_cosmos_signer_not_defined");return Ny.base64.encode(O?.pubkey)}async function G(M){let O=await Z(),C=await U(),B=await o.getRPCUrl(y);if(!(O&&C))throw new o.SwapKitError("toolbox_cosmos_signer_not_defined");return await(await by(B,O)).sign(C,M.msgs,M.fee,M.memo,{accountNumber:BigInt(M.accountNumber),chainId:M.chainId,sequence:M.sequence})}async function N(M){let O=await Z(),C=await U(),B=await o.getRPCUrl(y);if(!(O&&C))throw new o.SwapKitError("toolbox_cosmos_signer_not_defined");let I=await(await by(B,O)).signAndBroadcast(C,M.msgs,M.fee,M.memo);if(I.code!==0)throw new o.SwapKitError("core_swap_transaction_error",{code:I.code,message:I.rawLog});return I.transactionHash}async function _({recipient:M,assetValue:O,memo:C="",feeRate:B,feeOptionKey:R=o.FeeOption.Fast,sweep:I}){let w=await Z(),j=await U();if(!(w&&j))throw new o.SwapKitError("toolbox_cosmos_signer_not_defined");let K=await o.getRPCUrl(y),$=o.AssetValue.from({chain:y}),k=l1($),W=yQ(B||(await S4(y,K4[y]))[R],k,y),J=await by(K,w),Y=Yy(O.symbol),D=[{amount:(I?X1({assetValue:O,balances:await m8(y)(j),denom:Y,feeAmount:r5(W.amount,Y)}):O).getBaseValue("string"),denom:Y}],{transactionHash:F}=await J.sendTokens(j,M,D,W,C);return F}return{createPrivateKeyFromPhrase:TQ(X),createTransaction:w8,fetchFeeRateFromSwapKit:n8,getAccount:q,getAddress:U,getBalance:async(M,O)=>{let C=await m8(y)(M),B=await Promise.all(C.filter(({denom:R})=>R&&!R.includes("IBC/")&&!([o.Chain.THORChain,o.Chain.Maya].includes(y)&&R.split("-").length>2)).map(({denom:R,amount:I})=>{let w=[o.Chain.THORChain,o.Chain.Maya].includes(y)&&(R.includes("/")||R.includes("˜"))?`${y}.${R}`:R;return E8(w,I)}));if(B.length===0)return[o.AssetValue.from({chain:y})];return B},getBalanceAsDenoms:m8(y),getFees:()=>S4(y,K4[y]),getPubKey:z,getSignerFromPhrase:({phrase:M,derivationPath:O})=>g8({derivationPath:o.derivationPathToString(O),index:f,phrase:M,prefix:H}),getSignerFromPrivateKey:async(M)=>{let O=await import("@cosmjs/proto-signing");return(O.DirectSecp256k1Wallet??O.default?.DirectSecp256k1Wallet).fromKey(M,H)},signAndBroadcastTransaction:N,signTransaction:G,transfer:_,validateAddress:A4(y),verifySignature:V4(q)}}async function s9(y,T){try{let f=(await o8.SwapKitApi.getGasRate()).find((X)=>X.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}function e9({assetValue:{chain:y}}){return o.AssetValue.from({chain:y,value:fQ(y)})}async function S4(y,T){let{chainId:H,baseDecimal:f}=o.getChainConfig(y),X=await n8(H,T);return{average:o.SwapKitNumber.fromBigInt(BigInt(X),f),fast:o.SwapKitNumber.fromBigInt(BigInt(o.applyFeeMultiplier(X,o.FeeOption.Fast,!0)),f),fastest:o.SwapKitNumber.fromBigInt(BigInt(o.applyFeeMultiplier(X,o.FeeOption.Fastest,!0)),f)}}function yQ(y,T,H){return{amount:[{amount:typeof y==="number"?y.toString():y.getBaseValue("string"),denom:T}],gas:r0(H).gas}}function fQ(y){return{[o.Chain.Cosmos]:0.007,[o.Chain.Kujira]:0.02,[o.Chain.Noble]:0.01,[o.Chain.THORChain]:0.02,[o.Chain.Maya]:0.02,[o.Chain.Harbor]:0.02}[y]||0}function A4(y){let T=o.CosmosChainPrefixes[y];return function(f){if(!f.startsWith(T))return!1;try{let{prefix:X,words:Q}=Ny.bech32.decode(f);return Ny.bech32.encode(X,Q)===f.toLocaleLowerCase()}catch{return!1}}}function m8(y){return async function(H){let f=await o.getRPCUrl(y);return(await(await Qy(f)).getAllBalances(H)).map((q)=>({...q,denom:q.denom.includes("/")?q.denom.toUpperCase():q.denom}))}}function TQ(y){return async function(H){let f=await import("@cosmjs/crypto"),X=f.stringToPath??f.default?.stringToPath,Q=f.Slip10Curve??f.default?.Slip10Curve,Z=f.Slip10??f.default?.Slip10,q=f.EnglishMnemonic??f.default?.EnglishMnemonic,U=f.Bip39??f.default?.Bip39,z=new q(H),G=await U.mnemonicToSeed(z),{privkey:N}=Z.derivePath(Q.Secp256k1,G,X(y));return N}}var Ny,o,o8,m1,K4;var e5=h(()=>{u1();Ny=require("@scure/base"),o=require("@swapkit/helpers"),o8=require("@swapkit/helpers/api"),m1=require("ts-pattern");K4={[o.Chain.Cosmos]:1000,[o.Chain.Kujira]:1000,[o.Chain.Noble]:1000,[o.Chain.THORChain]:5000000,[o.Chain.Maya]:5000000,[o.Chain.Harbor]:5000000}});function HQ({prefix:y,derivationPath:T}){return async function(f,X=0){let Q=await import("@cosmjs/amino"),Z=Q.Secp256k1HdWallet??Q.default?.Secp256k1HdWallet,q=await import("@cosmjs/crypto"),U=q.stringToPath??q.default?.stringToPath;return Z.fromMnemonic(f,{hdPaths:[U(`${T}/${X}`)],prefix:y})}}function XQ(y){return ky.base64.encode(y)}function QQ(y,T){return async function({wallet:f,tx:X}){let{msgs:Q,accountNumber:Z,sequence:q,chainId:U,fee:z,memo:G}=typeof X==="string"?JSON.parse(X):X,N=(await f.getAccounts())?.[0]?.address||"",_=await Cy(y,T),M=await hy(),O=await A8(f,{aminoTypes:_,registry:M}),C=[];for(let I of Q){let w=await Oy(I,y);C.push(w)}let{signatures:[B]}=await O.sign(N,C,z,G,{accountNumber:BigInt(Z),chainId:U,sequence:q});return{bodyBytes:await p1({chain:y,memo:G,msgs:Q.map($y)}),signature:XQ(B)}}}function ZQ({prefix:y,chain:T}){return async function(f,X,Q,Z,q){let U=await F0.getRPCUrl(T),{encodeSecp256k1Pubkey:z,pubkeyToAddress:G}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:N}=(await import("@cosmjs/stargate")).default,{sequence:_,fee:M}=JSON.parse(f),O=await w4(Q,Z),C=X.map((I)=>[G(z(ky.base64.decode(I.pubKey)),y),ky.base64.decode(I.signature)]),B=await Qy(U),{transactionHash:R}=await B.broadcastTx(N(O,_,M,q,new Map(C)));return R}}async function w4(y,T,H=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:X}=(await import("@cosmjs/amino")).default;return f(y.map((Q)=>X(ky.base64.decode(Q))),T,H)}function qQ(y){return ky.base64.decode(y)}async function UQ({privateKey:y,message:T}){let{Secp256k1:H}=(await import("@cosmjs/crypto")).default,f=await H.createSignature(ky.base64.decode(T),y);return ky.base64.encode(Buffer.concat([f.r(32),f.s(32)]))}function c8({chain:y,...T}){let{isStagenet:H}=F0.SKConfig.get("envs"),f=`${H?"s":""}${F0.CosmosChainPrefixes[y]}`,X="index"in T?T.index||0:0,Q="derivationPath"in T&&T.derivationPath?T.derivationPath:F0.updateDerivationPath(F0.NetworkDerivationPath[y],{index:X}),Z=g1({chain:y,...T}),q=r0(y),U;function z(){return U??=o1.match(T).with({phrase:o1.P.string},({phrase:C})=>Z.getSignerFromPhrase({derivationPath:Q,phrase:C})).with({signer:o1.P.any},({signer:C})=>Promise.resolve(C)).otherwise(()=>Promise.resolve(void 0)),U}async function G(){let C=await F0.getRPCUrl(y),B=await z();if(!B)throw new F0.SwapKitError("toolbox_cosmos_no_signer");let R=await hy(),I=await Cy(y,f),w=await by(C,B,{aminoTypes:I,registry:R});return{signer:B,signingClient:w}}async function N({fee:C,memo:B,msgs:R}){let{signer:I,signingClient:w}=await G(),j=(await I.getAccounts())?.[0]?.address;if(!j)throw new F0.SwapKitError("toolbox_cosmos_signer_not_defined");let K=await w.signAndBroadcast(j,R,C,B);if(K.code!==0)throw new F0.SwapKitError("core_swap_transaction_error",{code:K.code,message:K.rawLog});return K.transactionHash}async function _(){let C=await h1(y);return{[F0.FeeOption.Average]:C,[F0.FeeOption.Fast]:C,[F0.FeeOption.Fastest]:C}}async function M({assetValue:C,memo:B="",recipient:R,sweep:I}){let{TxRaw:w}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:j,signingClient:K}=await G(),$=(await j.getAccounts())?.[0]?.address;if(!$)throw new F0.SwapKitError("toolbox_cosmos_no_signer");let k="signAmino"in j,W=I?await s5({assetValue:C,sender:$}):C,J=a5({assetValue:W,memo:B,recipient:R,sender:$});if(k){let D=await Oy(J,y),{signatures:F,authInfoBytes:x}=await K.sign($,[D],q,B),A=w.encode({authInfoBytes:x,bodyBytes:await p1({chain:y,memo:B,msgs:[J].map($y)}),signatures:F}).finish();return(await K.broadcastTx(A)).transactionHash}let Y=$y(J),L=await Oy(Y,y);return N({fee:q,memo:B,msgs:[L]})}async function O(C){let{signer:B,signingClient:R}=await G(),I=(await B.getAccounts())?.[0]?.address;if(!I)throw new F0.SwapKitError("toolbox_cosmos_signer_not_defined");return R.sign(I,C.msgs,C.fee,C.memo,{accountNumber:BigInt(C.accountNumber),chainId:C.chainId,sequence:C.sequence})}return{...Z,broadcastMultisigTx:ZQ({chain:y,prefix:f}),buildAminoMsg:a5,buildEncodedTxBody:p1,convertToSignable:Oy,createDefaultAminoTypes:()=>Cy(y,f),createDefaultRegistry:hy,createMultisig:w4,createTransaction:u8,deposit:M,getFees:_,importSignature:qQ,parseAminoMessageForDirectSigning:$y,pubkeyToAddress:async(C)=>{let{pubkeyToAddress:B}=(await import("@cosmjs/amino")).default;return B(C,f)},secp256k1HdWalletFromMnemonic:HQ({derivationPath:F0.derivationPathToString(Q),prefix:f}),signAndBroadcastTransaction:N,signMultisigTx:QQ(y,f),signTransaction:O,signWithPrivateKey:UQ,transfer:M}}var ky,F0,o1;var d8=h(()=>{p8();u1();e5();ky=require("@scure/base"),F0=require("@swapkit/helpers"),o1=require("ts-pattern")});var By,YQ=(y,T)=>{switch(y){case By.Chain.Cosmos:case By.Chain.Kujira:case By.Chain.Noble:return g1({chain:y,...T});case By.Chain.Maya:case By.Chain.THORChain:return c8({chain:y,...T});default:throw new By.SwapKitError("toolbox_cosmos_not_supported",{chain:y})}};var E4=h(()=>{e5();d8();By=require("@swapkit/helpers");e5();d8()});var yf={};P0(yf,{verifySignature:()=>V4,transferMsgAmino:()=>h8,toBase64:()=>n9,resolveThorchainSweepAssetValue:()=>s5,parseAminoMessageForDirectSigning:()=>$y,getThorchainNativeFee:()=>h1,getSweepAssetValue:()=>X1,getSignerFromPrivateKey:()=>a9,getSignerFromPhrase:()=>g8,getMsgSendDenom:()=>Yy,getFeeRateFromSwapKit:()=>s9,getFeeAmountForDenom:()=>r5,getDenomWithChain:()=>l1,getDefaultChainFee:()=>r0,getCosmosToolbox:()=>YQ,getCosmosAddressValidator:()=>A4,getAssetFromDenom:()=>E8,fromBase64:()=>c9,fetchFeeRateFromSwapKit:()=>n8,estimateTransactionFee:()=>e9,depositMsgAmino:()=>l8,createTransaction:()=>u8,createThorchainToolbox:()=>c8,createStargateClient:()=>Qy,createSigningStargateClient:()=>by,createOfflineStargateClient:()=>A8,createDefaultRegistry:()=>hy,createDefaultAminoTypes:()=>Cy,createCosmosToolbox:()=>g1,cosmosCreateTransaction:()=>w8,convertToSignable:()=>Oy,buildTransferTx:()=>R4,buildEncodedTxBody:()=>p1,buildDepositTx:()=>x4,buildAminoMsg:()=>a5,bech32ToBase64:()=>v1,base64ToBech32:()=>b1,YUM_KUJIRA_FACTORY_DENOM:()=>O4,USK_KUJIRA_FACTORY_DENOM:()=>V8,THORCHAIN_GAS_VALUE:()=>t9,MAYA_GAS_VALUE:()=>r9,DEFAULT_NOBLE_FEE_MAINNET:()=>k4,DEFAULT_KUJI_FEE_MAINNET:()=>N4,DEFAULT_COSMOS_FEE_MAINNET:()=>$4});module.exports=V0(yf);var ff=h(()=>{p8();E4();u1()});function JQ({builder:y,grouping:T="na",orders:H}){return{builder:y,grouping:T,orders:H,type:"order"}}function WQ({cancels:y}){return{cancels:y,type:"cancel"}}function zQ({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function GQ({oid:y,order:T}){return{oid:y,order:T,type:"modify"}}function LQ({modifies:y}){return{modifies:y,type:"batchModify"}}function MQ({asset:y,isCross:T,leverage:H}){return{asset:y,isCross:T,leverage:H,type:"updateLeverage"}}function _Q({asset:y,isBuy:T,ntli:H}){return{asset:y,isBuy:T,ntli:H,type:"updateIsolatedMargin"}}function CQ({asset:y,leverage:T}){return{asset:y,leverage:T,type:"topUpIsolatedOnlyMargin"}}function OQ({time:y}){return{time:y,type:"scheduleCancel"}}function $Q({amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:X}){return{amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:X,type:"usdClassTransfer"}}function NQ({amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:X,nonce:Q,signatureChainId:Z,sourceDex:q,token:U}){return{amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:X,nonce:Q,signatureChainId:Z,sourceDex:q,token:U,type:"sendAsset"}}function kQ({agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:X}){return{agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:X,type:"approveAgent"}}function BQ({builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:X}){return{builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:X,type:"approveBuilderFee"}}function DQ({hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,validator:X,wei:Q}){return{hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,type:"tokenDelegate",validator:X,wei:Q}}function p0(...y){let T=y.reduce((X,Q)=>X+Q.length,0),H=new Uint8Array(T),f=0;for(let X of y)H.set(X,f),f+=X.length;return H}function jQ(y,T,H){if(H<T)return new Uint8Array([y+H]);if(H<=255)return new Uint8Array([y+T,H]);if(H<=65535)return new Uint8Array([y+T+1,H>>8,H&255]);return new Uint8Array([y+T+2,H>>>24&255,H>>>16&255,H>>>8&255,H&255])}function Dy(y,T){let H=new Uint8Array(T),f=y;for(let X=T-1;X>=0;X-=1)H[X]=Number(f&0xffn),f>>=8n;return H}function v4(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return p0(new Uint8Array([205]),Dy(y,2));if(y<=0xffffffffn)return p0(new Uint8Array([206]),Dy(y,4));return p0(new Uint8Array([207]),Dy(y,8))}if(y>=-32n)return new Uint8Array([256+Number(y)]);if(y>=-128n)return new Uint8Array([208,256+Number(y)]);if(y>=-32768n)return p0(new Uint8Array([209]),Dy(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return p0(new Uint8Array([210]),Dy(BigInt.asUintN(32,y),4));return p0(new Uint8Array([211]),Dy(BigInt.asUintN(64,y),8))}function l4(y){let T=PQ.encode(y);if(T.length<32)return p0(new Uint8Array([160+T.length]),T);return p0(jQ(217,0,T.length),T)}function KQ(y){let T=y.map((f)=>i8(f)),H=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return p0(H,...T)}function SQ(y){let T=Object.entries(y).filter(([,f])=>typeof f<"u"),H=T.length<16?new Uint8Array([128+T.length]):T.length<=65535?new Uint8Array([222,T.length>>8,T.length&255]):new Uint8Array([223,T.length>>>24&255,T.length>>>16&255,T.length>>>8&255,T.length&255]);return p0(H,...T.flatMap(([f,X])=>[l4(f),i8(X)]))}function i8(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return l4(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new Tf.SwapKitError("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return v4(BigInt(y))}if(typeof y==="bigint")return v4(y);if(y instanceof Uint8Array){let T=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return p0(T,y)}if(Array.isArray(y))return KQ(y);if(typeof y==="object")return SQ(y);throw new Tf.SwapKitError("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function VQ(y){let T=y.startsWith("0x")?y.slice(2):y;if(T.length%2!==0||/[^a-fA-F0-9]/u.test(T))throw new Tf.SwapKitError("helpers_invalid_params",{hexValue:y});let H=new Uint8Array(T.length/2);for(let f=0;f<T.length;f+=2)H[f/2]=Number.parseInt(T.slice(f,f+2),16);return H}function u4(y){return{domain:FQ,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...RQ.Agent]}}}function p4(y){let T=IQ[y.type],H=xQ[y.type],{type:f,...X}=y;return{domain:{chainId:Number.parseInt(X.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:b4,version:"1"},message:{...X,hyperliquidChain:X.hyperliquidChain||h4},primaryType:T,types:{[T]:H}}}function m4(y){let T=Hf.Signature.from(y);return{r:T.r,s:T.s,v:T.v}}function g4(y,T,{expiresAfter:H,vaultAddress:f}={}){let X=i8(y),Q=Dy(BigInt(T),8),Z=f?p0(new Uint8Array([1]),VQ(f.toLowerCase())):new Uint8Array([0]),q=typeof H==="number"?p0(new Uint8Array([0]),Dy(BigInt(H),8)):new Uint8Array;return Hf.keccak256(p0(X,Q,Z,q))}function o4(y){let T=y.hyperliquidChain||h4;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:T};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:T};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:T};case"tokenDelegate":return{...y,hyperliquidChain:T,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:T};default:return y}}var Tf,Hf,b4="0x0000000000000000000000000000000000000000",FQ,RQ,h4="Mainnet",xQ,IQ,PQ;var n4=h(()=>{Tf=require("@swapkit/helpers"),Hf=require("ethers"),FQ={chainId:1337,name:"Exchange",verifyingContract:b4,version:"1"},RQ={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},xQ={approveAgent:[{name:"hyperliquidChain",type:"string"},{name:"agentAddress",type:"address"},{name:"agentName",type:"string"},{name:"nonce",type:"uint64"}],approveBuilderFee:[{name:"hyperliquidChain",type:"string"},{name:"maxFeeRate",type:"string"},{name:"builder",type:"address"},{name:"nonce",type:"uint64"}],sendAsset:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"sourceDex",type:"string"},{name:"destinationDex",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"fromSubAccount",type:"string"},{name:"nonce",type:"uint64"}],tokenDelegate:[{name:"hyperliquidChain",type:"string"},{name:"validator",type:"address"},{name:"wei",type:"uint64"},{name:"isUndelegate",type:"bool"},{name:"nonce",type:"uint64"}],usdClassTransfer:[{name:"hyperliquidChain",type:"string"},{name:"amount",type:"string"},{name:"toPerp",type:"bool"},{name:"nonce",type:"uint64"}]},IQ={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},PQ=new TextEncoder});function a0(y,T){if(!a8(y))throw new W0.SwapKitError(T,{address:y});return y.toLowerCase()}async function ly(y){let T=await Xf();return W0.RequestClient.post(`${T}/info`,{json:y})}function lQ({dex:y,user:T}){return ly({...y?{dex:y}:{},type:"clearinghouseState",user:a0(T,"helpers_invalid_params")})}function r4({user:y}){return ly({type:"spotClearinghouseState",user:a0(y,"helpers_invalid_params")})}function uQ({dex:y,user:T}){return ly({...y?{dex:y}:{},type:"openOrders",user:a0(T,"helpers_invalid_params")})}function pQ({dex:y,user:T}){return ly({...y?{dex:y}:{},type:"frontendOpenOrders",user:a0(T,"helpers_invalid_params")})}function mQ({oidOrCloid:y,user:T}){return ly({oid:y,type:"orderStatus",user:a0(T,"helpers_invalid_params")})}function gQ({aggregateByTime:y,user:T}){return ly({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:a0(T,"helpers_invalid_params")})}function oQ({aggregateByTime:y,endTime:T,startTime:H,user:f}){return ly({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof T==="number"?{endTime:T}:{},startTime:H,type:"userFillsByTime",user:a0(f,"helpers_invalid_params")})}function c4({coin:y,token:T,value:H,spotMeta:f}){if(!H||Number(H)<=0)return null;let X=y?.toUpperCase()||`TOKEN-${T||"UNKNOWN"}`,Q=AQ[X]||t4,Z=f?.tokens?.find((U)=>U.name===y||T!==void 0&&U.index===Number(T)),q=Z?`${Zy}.${X}-${Z.name}:${Z.tokenId}`:`${Zy}.${X}`;return new W0.AssetValue({decimal:Q,identifier:q,value:H})}function nQ(y){let T=new Map;for(let H of y){let f=H.toString({includeSynthProtocol:!0}),X=T.get(f);T.set(f,X?X.add(H):H)}if(![...T.values()].some((H)=>H.isGasAsset||H.ticker==="HYPE")){let H=W0.AssetValue.from({chain:Zy,value:0});T.set(H.toString({includeSynthProtocol:!0}),H)}return[...T.values()]}async function Xf(){try{return await W0.getRPCUrl(Zy)}catch{let[y]=W0.getChainConfig(Zy).rpcUrls;if(!y)throw new W0.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:Zy});return y}}async function r8(){return`${await Xf()}/exchange`}function cQ(y){let T=hQ[y.type],{type:H,...f}=y,X=bQ[H];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:vQ,version:"1"},message:f,primaryType:T,types:{[T]:X}}}async function a4({action:y,expiresAfter:T,nonce:H,vaultAddress:f}){let X=H||Date.now(),Q=f?a0(f,"helpers_invalid_params"):void 0,Z=await r8(),q=g4(y,X,{expiresAfter:T,vaultAddress:Q});return{action:y,endpoint:Z,expiresAfter:T,nonce:X,typedData:u4(q),vaultAddress:Q}}async function s4({action:y,nonce:T,signatureChainId:H}){let f=T||y.nonce||Date.now(),X=H||y.signatureChainId||"0xa4b1",Q=o4({...y,nonce:f,signatureChainId:X});return{action:Q,endpoint:await r8(),nonce:f,typedData:p4(Q)}}async function dQ({assetValue:y,sender:T,token:H}){let f=await r4({user:T}),X=(f.spotState?.balances||f.balances||[]).find(({coin:Q})=>Q&&H.startsWith(`${Q}:`))?.total;if(!X||Number(X)<=0)throw new W0.SwapKitError("toolbox_sweep_amount_too_low",{asset:y.toString(),balance:X||"0"});return X}async function t8({assetValue:y,recipient:T,sender:H,signatureChainId:f,sweep:X,time:Q}){let Z=a0(T,"core_transaction_invalid_recipient_address"),q=a0(H,"core_transaction_invalid_sender_address"),U=y.address;if(!U)throw new W0.SwapKitError("helpers_invalid_params",{asset:y.toString(),from:q});let z=X?await dQ({assetValue:y,sender:q,token:U}):y.getValue("string"),G=await r8(),N=Q||Date.now(),_={amount:z,destination:Z,hyperliquidChain:wQ,signatureChainId:f||EQ,time:N,token:U,type:"spotSend"};return{action:_,endpoint:G,nonce:N,typedData:cQ(_)}}async function d4(y){let T=await W0.RequestClient.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(T.status!=="ok")throw new W0.SwapKitError("core_transaction_failed",{response:T});return T}async function iQ(y,T){let H=await Xf(),f=T-5000;for(let X=0;X<5;X++){if(X>0)await new Promise((Q)=>setTimeout(Q,1000));try{let Q=await W0.RequestClient.post(`${H}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),Z=Array.isArray(Q)?Q.find((q)=>q.time&&q.time>=T&&(q.delta?.type==="spotTransfer"||q.delta?.type==="internalTransfer")):void 0;if(Z?.hash)return Z.hash}catch{}}return""}function a8(y){return y.startsWith("0x")&&K1(y)}function tQ(y){let T=w0(Zy),H=y&&"index"in y?y.index||0:0,f=W0.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:W0.updateDerivationPath(W0.NetworkDerivationPath[Zy],{index:H})),X,Q=!1;function Z(){if(Q)return X;return X=Q1.match(y).with({phrase:Q1.P.string},({phrase:_})=>{return i4.HDNodeWallet.fromPhrase(_,void 0,f)}).with({signer:Q1.P.not(Q1.P.nullish)},({signer:_})=>_).otherwise(()=>{return}),Q=!0,X}async function q(){let _=Z();return _?await _.getAddress():""}async function U(_){let M=Z();if(!M)throw new W0.SwapKitError("toolbox_hypercore_no_signer");let O=await M.signTypedData(_.typedData.domain,_.typedData.types,_.typedData.message);return{action:_.action,endpoint:_.endpoint,nonce:_.nonce,signature:m4(O),..."expiresAfter"in _?{expiresAfter:_.expiresAfter}:{},..."vaultAddress"in _?{vaultAddress:_.vaultAddress}:{}}}async function z(_){let M=a0(_,"helpers_invalid_params");try{let O=await Xf(),[C,B,R]=await Promise.all([W0.RequestClient.post(`${O}/info`,{json:{type:"spotClearinghouseState",user:M}}),W0.RequestClient.post(`${O}/info`,{json:{type:"clearinghouseState",user:M}}),W0.RequestClient.post(`${O}/info`,{json:{type:"spotMeta"}})]),I=(C.spotState?.balances||C.balances||[]).map(({coin:j,token:K,total:$})=>c4({coin:j,spotMeta:R,token:K,value:$})).filter((j)=>!!j),w=c4({coin:"USDC",spotMeta:R,value:B.withdrawable||B.marginSummary?.accountValue||B.marginSummary?.totalRawUsd});return nQ(w?[...I,w]:I)}catch{return T(M)}}async function G({sweep:_,...M}){let O=Z();if(!O)throw new W0.SwapKitError("toolbox_hypercore_no_signer");let C=M.sender||await O.getAddress(),B=await t8({...M,feeRate:0,sender:C,sweep:_}),R=await U(B);return await d4(R),iQ(C,B.nonce)}function N(){return W0.AssetValue.from({chain:Zy,value:0})}return{broadcastTransaction:d4,createL1ActionRequest:a4,createTransaction:t8,createUserSignedActionRequest:s4,estimateTransactionFee:N,getAddress:q,getBalance:z,getState:{clearinghouse:lQ,frontendOpenOrders:pQ,openOrders:uQ,orderStatus:mQ,spotClearinghouse:r4,userFills:gQ,userFillsByTime:oQ},signTransaction:U,transfer:G,validateAddress:a8}}var W0,i4,Q1,Zy,t4,AQ,wQ="Mainnet",EQ="0xa4b1",vQ="0x0000000000000000000000000000000000000000",bQ,hQ;var e4=h(()=>{x8();Hy();n4();W0=require("@swapkit/helpers"),i4=require("ethers"),Q1=require("ts-pattern"),Zy=W0.Chain.Hype,{baseDecimal:t4}=W0.getChainConfig(Zy),AQ={HYPE:t4,USDC:6,USDT:6},bQ={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},hQ={spotSend:"HyperliquidTransaction:SpotSend"}});var s8={};P0(s8,{validateHyperCoreAddress:()=>a8,getHyperCoreToolbox:()=>tQ,createUserSignedActionRequest:()=>s4,createTransaction:()=>t8,createL1ActionRequest:()=>a4,buildUsdClassTransferAction:()=>$Q,buildUpdateLeverageAction:()=>MQ,buildUpdateIsolatedMarginAction:()=>_Q,buildTopUpIsolatedOnlyMarginAction:()=>CQ,buildTokenDelegateAction:()=>DQ,buildSendAssetAction:()=>NQ,buildScheduleCancelAction:()=>OQ,buildOrderAction:()=>JQ,buildModifyAction:()=>GQ,buildCancelByCloidAction:()=>zQ,buildCancelAction:()=>WQ,buildBatchModifyAction:()=>LQ,buildApproveBuilderFeeAction:()=>BQ,buildApproveAgentAction:()=>kQ});module.exports=V0(s8);var e8=h(()=>{e4()});async function TH(y){let T=H0.AssetValue.from({address:y,chain:H0.Chain.Solana});if(T.symbol!=="UNKNOWN")return{decimals:T.decimal||0,id:y,logoURI:T.getIconUrl(),name:T.symbol,symbol:T.ticker};let H=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(H);if(!f.ok)return null;let X=await f.json();if(!Array.isArray(X)||X.length===0)return null;return X.find((Z)=>Z.id===y)||null}catch{return null}}async function rQ(y){let T=await Jy(),{PublicKey:H}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),X=new H(y),{baseDecimal:Q}=H0.getChainConfig(H0.Chain.Solana),Z=await T.getBalance(X),q=[H0.AssetValue.from({chain:H0.Chain.Solana,fromBaseDecimal:Q,value:Z||0})],U=await T.getParsedTokenAccountsByOwner(X,{programId:f});for(let{account:z}of U.value){let G=z.data.parsed.info,N=G.mint,_=G.tokenAmount.amount;if(Number(_)===0)continue;let M=await TH(N),O=M?.symbol||"UNKNOWN",C=M?.decimals||G.tokenAmount.decimals;q.push(H0.AssetValue.from({asset:`${H0.Chain.Solana}.${O}-${N}`,fromBaseDecimal:C,value:_}))}return q}function f2(y){try{let T=new qy.PublicKey(y);return qy.PublicKey.isOnCurve(T.toBytes())}catch{return!1}}function aQ(y){let T=y&&"index"in y?y.index||0:0,H=H0.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:H0.updateDerivationPath(H0.NetworkDerivationPath[H0.Chain.Solana],{index:T})),f;async function X(){if(f)return f;return f=await n1.match(y).with({phrase:n1.P.string},({phrase:Z})=>y2({derivationPath:H,phrase:Z})).with({signer:n1.P.any},({signer:Z})=>Z).otherwise(()=>{return}),f}async function Q(){let Z=await X();return Z?.publicKey?fH(Z.publicKey):""}return{broadcastTransaction:Qf(Jy),createKeysForPath:y2,createTransaction:T2(Jy),createTransactionFromInstructions:fZ,estimateTransactionFee:sQ(Jy),getAddress:Q,getAddressFromPubKey:fH,getBalance:w0(H0.Chain.Solana),getBalanceFromRPC:rQ,getConnection:Jy,getPubkeyFromAddress:(Z)=>new qy.PublicKey(Z),signAndBroadcastTransaction:async(Z)=>{let q=await yH(Jy,X)(Z);return Qf(Jy)(q)},signTransaction:yH(Jy,X),transfer:TZ(Jy,X),validateAddress:f2}}function sQ(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:X,sender:Q})=>{let Z=await y(),q=await T2(y)({assetValue:H,isProgramDerivedAddress:X,memo:f,recipient:T,sender:Q}),U=await HH(Z,q),{baseDecimal:z}=H0.getChainConfig(H0.Chain.Solana);return H0.AssetValue.from({chain:H0.Chain.Solana,fromBaseDecimal:z,value:U})}}async function HH(y,T){let H=await y.getFeeForMessage(T.compileMessage());if(H.value===null)throw new H0.SwapKitError("toolbox_fee_estimation_failed","Could not estimate Solana fee.");return H.value}async function Jy(){let{Connection:y}=await import("@solana/web3.js"),T=await H0.getRPCUrl(H0.Chain.Solana);return new y(T,{commitment:"confirmed",fetchMiddleware:(H,f,X)=>{let Q={};for(let[Z,q]of Object.entries(f?.headers??{})){let U=Z.toLowerCase();if(U!=="pragma"&&U!=="solana-client")Q[Z]=q}X(H,{...f,headers:Q})}})}function eQ(y){return async({assetValue:T,recipient:H,sender:f,isProgramDerivedAddress:X,sweep:Q})=>{let Z=await y(),q=new qy.PublicKey(f);if(T.isGasAsset){let{Transaction:U,SystemProgram:z}=await import("@solana/web3.js");return new U().add(z.transfer({fromPubkey:q,lamports:Q?0:T.getBaseValue("number"),toPubkey:new qy.PublicKey(H)}))}if(T.address)return yZ({amount:Q?0:T.getBaseValue("number"),connection:Z,decimals:T.decimal,from:q,isProgramDerivedAddress:X,recipient:H,sweep:Q,tokenAddress:T.address});return}}async function yZ({tokenAddress:y,recipient:T,from:H,connection:f,amount:X,decimals:Q,isProgramDerivedAddress:Z,sweep:q}){let{getAssociatedTokenAddress:U,getAccount:z,createAssociatedTokenAccountInstruction:G,createTransferCheckedInstruction:N}=await import("@solana/spl-token"),{Transaction:_}=await import("@solana/web3.js"),M=new _,O=new qy.PublicKey(y),C=await U(O,H),B=new qy.PublicKey(T),R=await U(O,B,Z),I=!1;try{await z(f,R),I=!0}catch{}if(!I)M.add(G(H,R,B,O));let w=q?BigInt((await f.getTokenAccountBalance(C)).value.amount):X;if(q&&w<=0n)throw new H0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:y,balance:w.toString()}});return M.add(N(C,O,R,H,w,Q)),M}function T2(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:X,sender:Q,sweep:Z})=>{let{createMemoInstruction:q}=await import("@solana/spl-memo"),U=new qy.PublicKey(Q);if(!(X||f2(T)))throw new H0.SwapKitError("core_transaction_invalid_recipient_address");let z=await y(),G=await eQ(y)({assetValue:H,isProgramDerivedAddress:X,recipient:T,sender:Q,sweep:Z});if(!G)throw new H0.SwapKitError("core_transaction_invalid_sender_address");if(f)G.add(q(f));let N=await z.getLatestBlockhash();if(G.recentBlockhash=N.blockhash,G.feePayer=U,Z&&H.isGasAsset){let[_,M,O]=await Promise.all([z.getBalance(U),HH(z,G),z.getMinimumBalanceForRentExemption(0)]),C=_-M-O;if(C<=0)throw new H0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{balance:_,fee:M,rentReserve:O}});let{SystemProgram:B}=await import("@solana/web3.js");G.instructions[0]=B.transfer({fromPubkey:U,lamports:C,toPubkey:new qy.PublicKey(T)})}return G}}async function fZ({instructions:y}){let{Transaction:T}=await import("@solana/web3.js"),H=new T().add(...y);if(!H)throw new H0.SwapKitError("core_transaction_invalid_sender_address");return H}function TZ(y,T){return async({recipient:H,assetValue:f,memo:X,isProgramDerivedAddress:Q,sweep:Z})=>{let q=await T();if(!q)throw new H0.SwapKitError("core_transaction_invalid_sender_address");let U=q.publicKey?.toString()??(await q.connect()).publicKey.toString(),z=await T2(y)({assetValue:f,isProgramDerivedAddress:Q,memo:X,recipient:H,sender:U,sweep:Z});if("signTransaction"in q){let G=await q.signTransaction(z);return Qf(y)(G)}return z.sign(q),Qf(y)(z)}}function Qf(y){return async(T)=>{return(await y()).sendRawTransaction(T.serialize())}}function yH(y,T){return async(H)=>{let f=await T();if(!f)throw new H0.SwapKitError("toolbox_solana_no_signer");let{VersionedTransaction:X}=await import("@solana/web3.js");if(!(H instanceof X)){let Z=await(await y()).getLatestBlockhash();H.recentBlockhash=Z.blockhash,H.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(H);return H.sign([f]),H}}async function y2({phrase:y,derivationPath:T=H0.DerivationPath.SOL}){let{HDKey:H}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:X}=await import("@solana/web3.js"),Q=f(y),Z=H.fromMasterSeed(Q);return X.fromSeed(Z.derive(T,!0).privateKey)}function fH(y){return y.toString()}var qy,H0,n1;var XH=h(()=>{Hy();qy=require("@solana/web3.js"),H0=require("@swapkit/helpers"),n1=require("ts-pattern")});var H2={};P0(H2,{validateSolanaAddress:()=>f2,getSolanaToolbox:()=>aQ,fetchTokenMetaData:()=>TH,createKeysForPath:()=>y2});module.exports=V0(H2);var X2=h(()=>{XH()});function c1(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function qf({phrase:y,derivationPath:T=e.DerivationPath.STRK}){let{HDKey:H}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:X,hash:Q,encode:Z,CallData:q}=await import("starknet"),U=f(y),G=H.fromMasterSeed(U).derive(T);if(!G.privateKey)throw new e.SwapKitError("toolbox_starknet_no_signer");let N=Z.addHexPrefix(Buffer.from(G.privateKey).toString("hex")),_=X.starkCurve.grindKey(N),M=Z.addHexPrefix(_),O=X.starkCurve.getStarkKey(M),C=q.compile([O,0]);return{address:Q.calculateContractAddressFromHash(O,Q2,C,0),privateKey:M,publicKey:O}}async function Z2({phrase:y,derivationPath:T=e.DerivationPath.STRK}){let{Account:H,RpcProvider:f}=await import("starknet"),{privateKey:X,address:Q}=await qf({derivationPath:T,phrase:y}),Z=await e.getRPCUrl(e.Chain.Starknet),q=new f({nodeUrl:Z});return new H({address:Q,provider:q,signer:X})}function ZH(y){let T=e.Chain.Starknet,H=y&&"index"in y?y.index||0:0,f=e.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:e.updateDerivationPath(e.NetworkDerivationPath[T],{index:H})),X,Q,Z;async function q(){if(Q)return Q;if(X)return Q=X.provider,Q;let{RpcProvider:J}=await import("starknet"),Y=await e.getRPCUrl(T);return Q=new J({nodeUrl:Y}),Q}async function U(J){let Y=await q(),L=J||await _();if(!L)return!1;try{return await Y.getClassHashAt(L),!0}catch(D){if(D instanceof Error&&D.message.includes("Contract not found"))return!1;let F=D;if(F?.code===20||F?.code===19)return!1;throw D}}async function z(){let{CallData:J,hash:Y}=await import("starknet"),L=await q(),D=await N();if(!D)throw new e.SwapKitError("toolbox_starknet_no_signer");if(!Z)throw new e.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await U())return D.address;let x=J.compile([Z,0]);if(Y.calculateContractAddressFromHash(Z,Q2,x,0).toLowerCase()!==D.address.toLowerCase())throw new e.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let E={addressSalt:Z,classHash:Q2,constructorCalldata:x},{transaction_hash:u}=await D.deployAccount(E);return await L.waitForTransaction(u),u}async function G(){if(!await U()){if(!Z)throw new e.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await z()}}async function N(){if(X)return X;return X=await Fy.match(y).with({phrase:Fy.P.string},async({phrase:J})=>{let{Account:Y,RpcProvider:L}=await import("starknet"),{privateKey:D,address:F,publicKey:x}=await qf({derivationPath:f,phrase:J});Z=x;let A=await e.getRPCUrl(e.Chain.Starknet),E=new L({nodeUrl:A});return new Y({address:F,provider:E,signer:D})}).with({address:Fy.P.string,privateKey:Fy.P.string},async({privateKey:J,address:Y})=>{let{Account:L}=await import("starknet"),D=await q();return new L({address:Y,provider:D,signer:J})}).with({signer:Fy.P.instanceOf(Object)},({signer:J})=>J).otherwise(()=>{return}),X}async function _(){return(await N())?.address??""}async function M(J,Y){let L=await q(),{uint256:D,CallData:F}=await import("starknet"),[x="0",A="0"]=await L.callContract({calldata:F.compile({account:J}),contractAddress:Y,entrypoint:"balanceOf"});return D.uint256ToBN({high:A,low:x})}async function O(J){let{baseDecimal:Y}=e.getChainConfig(T),L=[],D=[Zf,QH];for(let F of D)try{let x=await M(J,F);Fy.match(F).with(Zf,()=>{L.push(e.AssetValue.from({chain:T,fromBaseDecimal:Y,value:x}))}).with(QH,()=>{if(x>0n)L.push(e.AssetValue.from({asset:`${T}.ETH-${F}`,fromBaseDecimal:Y,value:x}))}).otherwise(()=>{})}catch{}return L}async function C(J){let Y=await N();if(Y&&(!J||Y.address.toLowerCase()===J.toLowerCase()))return Y;if(J){let{Account:L}=await import("starknet"),D=await q();return new L({address:J,provider:D,signer:"0x0"})}throw new e.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer"}})}async function B(J,Y){try{let L=await C(Y),{overall_fee:D}=await L.estimateInvokeFee(J);if(D<=0n)throw new e.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Sweep fee estimation returned a non-positive fee",sender:Y}});return D}catch(L){throw new e.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Unable to estimate the sweep fee. Verify RPC availability and that the sender account is deployed.",sender:Y}},L)}}async function R(J,Y){let L=await W(J),D=Y.isGasAsset?L.find(({isGasAsset:F})=>F):L.find(({address:F})=>F?.toLowerCase()===Y.address?.toLowerCase());if(D)return D.getBaseValue("bigint");if(Y.isGasAsset)return M(J,Zf);if(Y.address)return M(J,Y.address);return 0n}async function I({recipient:J,assetValue:Y,sender:L,sweep:D}){let{CallData:F,uint256:x}=await import("starknet");if(!c1(J))throw new e.SwapKitError("core_transaction_invalid_recipient_address",{address:J});let A=Y.isGasAsset?Zf:Y.address;if(!A)throw new e.SwapKitError("toolbox_starknet_invalid_address",{address:A,assetValue:Y});let E=Y.getBaseValue("bigint");if(D){let Q0=L??await _();if(!c1(Q0))throw new e.SwapKitError("core_transaction_invalid_sender_address",{address:Q0});if(Y.isGasAsset){let _0=[{calldata:F.compile([J,x.bnToUint256(1n)]),contractAddress:A,entrypoint:"transfer"}],P=await B(_0,Q0);E=await R(Q0,Y)-P}else E=await R(Q0,Y);if(E<=0n)throw new e.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amount:E.toString(),asset:Y.toString()}})}let u=x.bnToUint256(E);return[{calldata:F.compile([J,u]),contractAddress:A,entrypoint:"transfer"}]}async function w({recipient:J,assetValue:Y,sender:L}){let{baseDecimal:D}=e.getChainConfig(e.Chain.Starknet);try{let F=await I({assetValue:Y,recipient:J}),A=await(await C(L)).estimateInvokeFee(F);if(A?.overall_fee)return e.AssetValue.from({chain:T,fromBaseDecimal:D,value:A.overall_fee})}catch(F){throw new e.SwapKitError("toolbox_starknet_fee_estimation_failed",F)}return e.AssetValue.from({chain:T,value:"0.00001"})}async function j({recipient:J,assetValue:Y,memo:L,sweep:D}){let F=await N();if(!F)throw new e.SwapKitError("toolbox_starknet_no_signer");await G();let x=await I({assetValue:Y,memo:L,recipient:J,sender:F.address,sweep:D});return(await F.execute(x)).transaction_hash}async function K(J){let Y=await N();if(!Y)throw new e.SwapKitError("toolbox_starknet_no_signer");let L=await Y.signMessage(J);return Array.isArray(L)?L:[L.r.toString(),L.s.toString()]}async function $(J){let Y=await N();if(!Y)throw new e.SwapKitError("toolbox_starknet_no_signer");return await G(),(await Y.execute(J)).transaction_hash}function k(J){return $(J)}async function W(J,Y=!0){try{return await w0(T)(J,Y)}catch{return O(J)}}return{broadcastTransaction:$,createKeysForPath:Z2,createTransaction:I,deployAccount:z,estimateTransactionFee:w,getAddress:_,getBalance:W,getProvider:q,isAccountDeployed:U,signAndBroadcastTransaction:k,signMessage:K,transfer:j,validateAddress:c1}}var e,Fy,Zf="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",QH="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",Q2="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var qH=h(()=>{Hy();e=require("@swapkit/helpers"),Fy=require("ts-pattern")});var Uf={};P0(Uf,{validateStarknetAddress:()=>c1,starknetCreateKeysForPath:()=>Z2,getStarknetToolbox:()=>ZH,deriveStarknetKeys:()=>qf});module.exports=V0(Uf);var Yf=h(()=>{qH()});async function U2(y,T,H,f){let X=[],Q,Z=0n;while(!0){let q=await y.getCoins({coinType:H,cursor:Q,owner:T});if(X.push(...q.data),Z+=q.data.reduce((U,z)=>U+BigInt(z.balance),0n),!q.hasNextPage||f!==void 0&&Z>=f)return X;Q=q.nextCursor}}async function JH(y){return BigInt(await y.getReferenceGasPrice())}function Wf({coinObjectId:y,digest:T,version:H}){return{digest:T,objectId:y,version:H}}function XZ(y,T,H,f=!1){let X=T.reduce((G,N)=>G+BigInt(N.balance),0n);if(X<H)throw new U0.SwapKitError("toolbox_sui_insufficient_balance",{available:X.toString(),required:H.toString()});let{selectedCoins:Q}=T.reduce((G,N)=>{if(G.total>=H)return G;return{selectedCoins:[...G.selectedCoins,N],total:G.total+BigInt(N.balance)}},{selectedCoins:[],total:0n}),Z=Q[0],q=y.objectRef(Wf(Z)),U=Q.slice(1).map((G)=>y.objectRef(Wf(G)));if(U.length>0)y.mergeCoins(q,U);if(f)return q;let[z]=y.splitCoins(q,[H]);return z}function WH(y,T){let H=y.reduce((f,X)=>f+BigInt(X.balance),0n);if(H<=0n)throw new U0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:T,available:H.toString()}});return H}function zH(y){if(y.length>q2)throw new U0.SwapKitError({errorKey:"toolbox_sui_transaction_creation_error",info:{coinCount:y.length,maxGasPaymentCoins:q2,reason:`SUI transactions support at most ${q2} gas payment coins`}})}function QZ(y,T,H,f,X,Q){let Z=H.getBaseValue("bigint");if(Q)WH(T,H.toString()),zH(T);else GH(T,Z+BigInt(f));if(y.setGasPayment(T.map(Wf)),Q)y.transferObjects([y.gas],X);else{let[q]=y.splitCoins(y.gas,[H.getBaseValue("string")]);y.transferObjects([q],X)}}function GH(y,T){let H=y.reduce((f,X)=>f+BigInt(X.balance),0n);if(H<T)throw new U0.SwapKitError("toolbox_sui_insufficient_balance",{available:H.toString(),required:T.toString()})}async function ZZ({assetValue:y,gasBudget:T,recipient:H,sender:f,suiClient:X,sweep:Q,tx:Z}){let q=y.getBaseValue("bigint"),[U,z]=await Promise.all([JH(X),U2(X,f,Jf,Q?void 0:q+BigInt(T))]);if(Z.setGasPrice(U),QZ(Z,z,y,T,H,Q),Q){let G=z.reduce((N,_)=>N+BigInt(_.balance),0n);return G<BigInt(T)?G:T}return T}async function qZ({assetValue:y,gasBudget:T,recipient:H,sender:f,suiClient:X,sweep:Q,tx:Z}){let q=y.address;if(!q)throw new U0.SwapKitError("toolbox_sui_missing_coin_type");let U=y.getBaseValue("bigint"),[z,G,N]=await Promise.all([JH(X),U2(X,f,Jf,BigInt(T)),U2(X,f,q,Q?void 0:U)]);if(!N.length&&!Q)throw new U0.SwapKitError("toolbox_sui_no_coins_found",{coinType:q});let _=Q?WH(N,y.toString()):U;if(GH(G,BigInt(T)),Q)zH(G);Z.setGasPrice(z),Z.setGasPayment(G.map(Wf));let M=XZ(Z,N,_,Q);Z.transferObjects([M],H)}function LH(y){try{return YH.isValidSuiAddress(y)}catch{return!1}}function UH(y){return"signWithIntent"in y}function UZ({provider:y,...T}={}){let H;async function f(){if(H)return H;return H=await d1.match(T).with({phrase:d1.P.string},async({phrase:O})=>{let{Ed25519Keypair:C}=await import("@mysten/sui/keypairs/ed25519");return C.deriveKeypair(O)}).with({signer:d1.P.any},({signer:O})=>O).otherwise(()=>{return}),H}async function X(O=y){let{SuiJsonRpcClient:C}=await import("@mysten/sui/jsonRpc");return new C({network:"mainnet",url:O||U0.getRPCUrlSync(U0.Chain.Sui)})}async function Q(){return(await f())?.toSuiAddress()||""}function Z(O){try{let C=U0.AssetValue.from({address:O,chain:U0.Chain.Sui});return{asset:C.toString(),decimals:C.decimal}}catch{}return null}async function q(O){let C=O||await Q();if(!C)throw new U0.SwapKitError("toolbox_sui_address_required");let{baseDecimal:B,chain:R}=U0.getChainConfig(U0.Chain.Sui);try{let w=await(await X()).getAllBalances({owner:C}),j=w.find(({coinType:$})=>$===Jf)?.totalBalance||"0",K=[U0.AssetValue.from({chain:R,fromBaseDecimal:B,value:j})];for(let{coinType:$,totalBalance:k}of w){if($===Jf||Number(k)<=0)continue;let W=Z($);if(W)K.push(U0.AssetValue.from({asset:W.asset,fromBaseDecimal:W.decimals,value:k}))}return K}catch{return[U0.AssetValue.from({chain:R})]}}async function U(O){let C=U0.AssetValue.from({chain:U0.Chain.Sui,value:"0.01"});if(!O)return C;try{let B=await X(),{txBytes:R}=await z(O),{effects:{status:I,gasUsed:w}}=await B.dryRunTransactionBlock({transactionBlock:R});if(I.status!=="success")return C;let{baseDecimal:j}=U0.getChainConfig(U0.Chain.Sui),K=BigInt(w.computationCost)+BigInt(w.storageCost)-BigInt(w.storageRebate);return U0.AssetValue.from({chain:U0.Chain.Sui,fromBaseDecimal:j,value:K.toString()})}catch{return C}}async function z({recipient:O,assetValue:C,gasBudget:B,sender:R,sweep:I}){let{Transaction:w}=await import("@mysten/sui/transactions"),j=R||await Q(),K=B||HZ;if(!j)throw new U0.SwapKitError("toolbox_sui_no_sender");try{let $=await X(),k=new w;k.setSender(j);let W={assetValue:C,gasBudget:K,recipient:O,sender:j,suiClient:$,sweep:I,tx:k},J;if(C.isGasAsset||C.symbol==="SUI"){let L=await ZZ(W);if(BigInt(L)<BigInt(K))J=BigInt(L);k.setGasBudget(L)}else await qZ(W),k.setGasBudget(K);let Y=await k.build({client:$});if(J!==void 0){let{effects:{status:L}}=await $.dryRunTransactionBlock({transactionBlock:Y});if(L.status!=="success")throw new U0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:C.toString(),budget:J.toString(),error:L.error}})}return{tx:k,txBytes:Y}}catch($){if($ instanceof U0.SwapKitError)throw $;throw new U0.SwapKitError("toolbox_sui_transaction_creation_error",{error:$})}}async function G(O){let C=await f();if(!C)throw new U0.SwapKitError("toolbox_sui_no_signer");if(O instanceof Uint8Array)return C.signTransaction(O);let{txBytes:B}="tx"in O?O:await z(O);return C.signTransaction(B)}async function N({assetValue:O,gasBudget:C,recipient:B,sweep:R}){let I=await f();if(!I)throw new U0.SwapKitError("toolbox_sui_no_signer");let w=I.toSuiAddress()||await Q();if(!w)throw new U0.SwapKitError("toolbox_sui_no_sender");let{txBytes:j}=await z({assetValue:O,gasBudget:C,recipient:B,sender:w,sweep:R}),K=await X();if(!UH(I)){let k=await I.signTransaction(j),{digest:W}=await K.executeTransactionBlock({signature:k.signature,transactionBlock:k.bytes});return W}let{digest:$}=await K.signAndExecuteTransaction({signer:I,transaction:j});return $}async function _(O){let C=await X(),{digest:B}=await C.executeTransactionBlock({signature:O.signature,transactionBlock:O.bytes});return B}async function M(O){let C=await f();if(!C)throw new U0.SwapKitError("toolbox_sui_no_signer");let B=await X(),R;if(typeof O==="string")R=Uint8Array.from(Buffer.from(O,"base64"));else if(O instanceof Uint8Array)R=O;else R=await O.build({client:B});if(!UH(C)){let w=await C.signTransaction(R),{digest:j}=await B.executeTransactionBlock({signature:w.signature,transactionBlock:w.bytes});return j}let{digest:I}=await B.signAndExecuteTransaction({signer:C,transaction:R});return I}return{broadcastTransaction:_,createTransaction:z,estimateTransactionFee:U,getAddress:Q,getBalance:q,signAndBroadcastTransaction:M,signTransaction:G,transfer:N,validateAddress:LH}}var YH,U0,d1,Jf="0x2::sui::SUI",q2=256,HZ=50000000;var MH=h(()=>{YH=require("@mysten/sui/utils"),U0=require("@swapkit/helpers"),d1=require("ts-pattern")});var zf={};P0(zf,{validateSuiAddress:()=>LH,getSuiToolbox:()=>UZ});module.exports=V0(zf);var Gf=h(()=>{MH()});async function LZ(){let y=Date.now();if(Lf&&y-CH<GZ)return Lf;let{getHttpEndpoint:T}=await import("@orbs-network/ton-access");return Lf=await T(),CH=y,Lf}async function MZ(){let[y]=R0.SKConfig.get("rpcUrls")[R0.Chain.Ton]??[];if(y)return y;return await LZ()}function _Z(y={}){let T,H,f;async function X(){if(!T){let{TonClient:$}=await import("@ton/ton"),k=y.provider??await MZ();T=new $({endpoint:k})}return T}async function Q(){return(await q()).address.toString()}async function Z(){if(f)return f;return f=await uy.match(y).with({phrase:uy.P.string},async({phrase:$})=>{let{mnemonicToWalletKey:k}=await import("@ton/crypto");return k($.split(" "))}).with({signer:uy.P.any},({signer:$})=>$).otherwise(()=>{return}),f}async function q($){if(!H||$){let k=await Z(),W=await X(),J=$||k;if(!J)throw new R0.SwapKitError("core_wallet_connection_not_found");let{WalletContractV4:Y}=await import("@ton/ton"),L=Y.create({publicKey:J.publicKey,workchain:0});H=W.open(L)}return H}let U=w0(R0.Chain.Ton);async function z({assetValue:$,recipient:k,memo:W,sender:J,sweep:Y}){if($.isGasAsset){if(Y){let _0=J||await Q(),V=await(await X()).getBalance(Y0.Address.parse(_0));if(V<=0n)throw new R0.SwapKitError("toolbox_sweep_amount_too_low",{asset:$.toString(),balance:V.toString()})}let Q0=W?K(W).toBoc().toString("base64"):void 0;return[{address:k,amount:$.getBaseValue("string"),payload:Q0}]}let L=$.address;if(!L)throw new R0.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:$.toString()}});let D=J??await Q(),F=await I({jettonMasterAddress:L,ownerAddress:D}),x=Y0.Address.parse(k),A=Y0.Address.parse(D),E=Y?await w(F):$.getBaseValue("bigint");if(Y&&E<=0n)throw new R0.SwapKitError("toolbox_sweep_amount_too_low",{asset:$.toString(),balance:E.toString()});let u=W?K(W):void 0,r=j({destinationAddress:x,forwardPayload:u,jettonAmount:E,responseAddress:A});return[{address:F.toString(),amount:WZ.toString(),payload:r.toBoc().toString("base64")}]}async function G({sender:$,sweep:k,...W}){let J=k&&W.assetValue.isGasAsset?zZ:_H;return{messages:await z({...W,sender:$,sweep:k}),sendMode:J}}function N($){if(!Array.isArray($))return $;let[k]=$;return{messages:$.map(({sendMode:J,...Y})=>Y),sendMode:k?.sendMode??_H}}function _($){return $.map((k)=>{let W=k.payload?Y0.Cell.fromBase64(k.payload):void 0,J=k.stateInit?Y0.loadStateInit(Y0.Cell.fromBase64(k.stateInit).asSlice()):void 0,Y=Y0.Address.parse(k.address),L=Y0.Address.isFriendly(k.address)?Y0.Address.parseFriendly(k.address).isBounceable:!0;return Y0.internal({body:W,bounce:L,init:J,to:Y,value:BigInt(k.amount)})})}async function M($){let k=await Z(),W=await q();if(!W||!k)throw new R0.SwapKitError("core_wallet_connection_not_found");let J=await X(),{state:Y}=await J.getContractState(W.address),L=Y==="active",D=L?await W.getSeqno():0,{messages:F,sendMode:x}=N($),A=W.createTransfer({messages:_(F),secretKey:k.secretKey,sendMode:x,seqno:D}),E=Y0.external({body:A,init:L?void 0:W.init,to:W.address});return Y0.beginCell().store(Y0.storeMessage(E)).endCell()}async function O($){return await(await X()).sendFile($.toBoc()),$.hash().toString("hex")}async function C($){let k=await M($);return O(k)}async function B({assetValue:$,recipient:k,memo:W,sweep:J}){let Y=await G({assetValue:$,memo:W,recipient:k,sweep:J});return C(Y)}async function R({sender:$,...k}){let{baseDecimal:W}=R0.getChainConfig(R0.Chain.Ton),J=await uy.match($).with(uy.P.string,(D)=>{return Y0.Address.parseFriendly(D).address}).otherwise(async()=>{return(await q()).address});if(!J)throw new R0.SwapKitError("toolbox_fee_estimation_failed",{chain:R0.Chain.Ton});let Y=R0.AssetValue.from({chain:R0.Chain.Ton,value:"0.01"}),L=await X();try{let D=await G({sender:$,...k}),F=await Z(),x=await q();if(!x||!F)return Y;let A=await x.getSeqno(),E=x.createTransfer({messages:_(D.messages),secretKey:F.secretKey,sendMode:D.sendMode,seqno:A}),{source_fees:u}=await L.estimateExternalMessageFee(J,{body:E,ignoreSignature:!0,initCode:null,initData:null}),r=u.in_fwd_fee+u.storage_fee+u.gas_fee+u.fwd_fee;return Y.set(R0.SwapKitNumber.fromBigInt(BigInt(r),W))}catch{return Y}}async function I({jettonMasterAddress:$,ownerAddress:k}){try{let W=await X(),J=Y0.Address.parse($),Y=Y0.Address.parse(k),{JettonMaster:L}=await import("@ton/ton");return await W.open(L.create(J)).getWalletAddress(Y)}catch{throw new R0.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:$,ownerAddress:k}})}}async function w($){try{let k=await X(),{JettonWallet:W}=await import("@ton/ton");return await k.open(W.create($)).getBalance()}catch{throw new R0.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonWalletAddress:$.toString()}})}}function j({jettonAmount:$,destinationAddress:k,responseAddress:W,forwardAmount:J=JZ,forwardPayload:Y}){let L=Y0.beginCell().storeUint(YZ,32).storeUint(0,64).storeCoins($).storeAddress(k).storeAddress(W).storeBit(0).storeCoins(J);if(Y)L.storeBit(1).storeRef(Y);else L.storeBit(0);return L.endCell()}function K($){return Y0.beginCell().storeUint(0,32).storeStringTail($).endCell()}return{broadcastTransaction:O,createTransaction:G,estimateTransactionFee:R,getAddress:Q,getBalance:U,getJettonWalletAddress:I,sign:M,signAndBroadcastTransaction:C,transfer:B,validateAddress:OH}}function OH(y){try{return Y0.Address.parse(y),!0}catch{return!1}}var R0,Y0,uy,YZ=260734629,JZ,WZ,_H,zZ,GZ=60000,Lf,CH=0;var $H=h(()=>{Hy();R0=require("@swapkit/helpers"),Y0=require("@ton/core"),uy=require("ts-pattern"),JZ=Y0.toNano("0.01"),WZ=Y0.toNano("0.05"),_H=Y0.SendMode.PAY_GAS_SEPARATELY+Y0.SendMode.IGNORE_ERRORS,zZ=Y0.SendMode.CARRY_ALL_REMAINING_BALANCE+Y0.SendMode.IGNORE_ERRORS});var Mf={};P0(Mf,{validateTonAddress:()=>OH,getTONToolbox:()=>_Z});module.exports=V0(Mf);var _f=h(()=>{$H()});function s0(y,T){if(!Number.isInteger(T)||T<0)throw RangeError(`${y} must be a non-negative integer, got: ${T}`)}function Ry({accountIndex:y,chain:T,derivationPath:H}){if(y!==void 0)s0("accountIndex",y);let f=[...H?.slice(0,3)??NH.NetworkDerivationPath[T].slice(0,3)];if(y!==void 0)f[2]=y;return f}function Z1({accountIndex:y,change:T=!1,chain:H,derivationPath:f,index:X}){return s0("index",X),[...Ry({accountIndex:y,chain:H,derivationPath:f}),Number(T),X]}function py(y){return y[2]??0}function kH({deriveAddress:y,getBalance:T,getUtxos:H}){async function f(q){let{accountIndex:U,count:z,startIndex:G=0,change:N=!1}=q;if(s0("count",z),z<1)throw RangeError("count must be at least 1");s0("startIndex",G);let _=[];for(let M=0;M<z;M++){let O=await y({accountIndex:U,change:N,index:G+M});if(O)_.push(O)}return _}async function X(q){let{gapLimit:U=20,change:z=!1}=q??{},G=[],N=0,_=0;while(N<U){let M=await y({change:z,index:_});if(!M)break;if((await T(M.address)).some((B)=>B.getValue("number")>0))G.push(M),N=0;else N++;_++}return G}async function Q(q=20){let[U,z]=await Promise.all([X({change:!1,gapLimit:q}),X({change:!0,gapLimit:q})]),G=[...U,...z],N=await Promise.all(G.map(async(M)=>{let C=(await T(M.address)).reduce((B,R)=>B+R.getValue("number"),0);return{...M,balance:C}})),_=N.reduce((M,O)=>M+O.balance,0);return{addresses:N,total:_}}async function Z(q=20){let[U,z]=await Promise.all([X({change:!1,gapLimit:q}),X({change:!0,gapLimit:q})]),G=[...U,...z];return(await Promise.all(G.map(async(_)=>{return(await H(_.address)).map((O)=>({...O,address:_.address,derivationIndex:_.index,isChange:_.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:Q,getAggregatedUtxos:Z,scanForAddresses:X}}var NH;var i1=h(()=>{NH=require("@swapkit/helpers")});async function CZ({chain:y,txHash:T}){let H=`${t1(y)}/push/transaction`,f=JSON.stringify({data:T});try{let X=await T0.RequestClient.post(H,{body:f,headers:{"Content-Type":"application/json"}});if(X.context.code!==200)throw new T0.SwapKitError("toolbox_utxo_broadcast_failed",{error:X.context.error||"Transaction broadcast failed"});return X.data?.transaction_hash||T}catch(X){let Q=await T0.getRPCUrl(y);if(Q){let Z=JSON.stringify({id:IT(),jsonrpc:"2.0",method:"sendrawtransaction",params:[T]}),q=await T0.RequestClient.post(Q,{body:Z,headers:{"Content-Type":"application/json"}});if(q.error)throw new T0.SwapKitError("toolbox_utxo_broadcast_failed",{error:q.error?.message});if(q.result.includes('"code":-26'))throw new T0.SwapKitError("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return q.result}throw X}}function t1(y){return`https://api.blockchair.com/${OZ(y)}`}function BH(y){switch(y){case T0.Chain.Bitcoin:return 5;case T0.Chain.Dogecoin:return 1e4;case T0.Chain.Litecoin:return 1;case T0.Chain.Zcash:return 1;default:return 2}}function OZ(y){switch(y){case T0.Chain.BitcoinCash:return"bitcoin-cash";case T0.Chain.Litecoin:return"litecoin";case T0.Chain.Dash:return"dash";case T0.Chain.Dogecoin:return"dogecoin";case T0.Chain.Zcash:return"zcash";case T0.Chain.Polkadot:return"polkadot";default:return"bitcoin"}}async function $Z(y){try{let{feePerKb:T}=await T0.RequestClient.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),H=T/1000;return Math.max(H,BH(y))}catch{return BH(y)}}async function Cf(y,T){let H=await T0.RequestClient.get(`${y}${T?`${y.includes("?")?"&":"?"}key=${T}`:""}`);if(!H||H.context.code!==200)throw new T0.SwapKitError("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return H.data}async function FH({address:y,chain:T,apiKey:H}){if(!y)throw new T0.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Cf(`${t1(T)}/dashboards/address/${y}?transaction_details=true`,H))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function NZ({address:y,chain:T,apiKey:H}){return(await FH({address:y,apiKey:H,chain:T}))?.address.balance||0}async function RH({chain:y,apiKey:T,txHash:H}){if(!H)throw new T0.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Cf(`${t1(y)}/raw/transaction/${H}`,T))?.[H]?.raw_transaction||""}catch(f){let X=f instanceof Error?f.message:String(f);return console.error(`Failed to fetch raw transaction: ${X}`),""}}async function BZ({chain:y,apiKey:T,txHash:H}){if(!H)throw new T0.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});let X=(await Cf(`${t1(y)}/dashboards/transaction/${H}`,T))?.[H];if(!X)throw new T0.SwapKitError("toolbox_utxo_tx_not_found",{txHash:H});let{transaction:Q,inputs:Z,outputs:q}=X,U=Z.map((G)=>G.spending_sequence),z=Q.is_rbf===!0||U.some((G)=>G<kZ);return{blockId:Q.block_id,confirmed:Q.block_id!==-1,fee:Q.fee,inputs:Z,isRBF:z,outputs:q,sequences:U,size:Q.size,txid:Q.hash,weight:Q.weight}}async function DZ({chain:y,address:T,apiKey:H,offset:f=0,limit:X=30}){return(await Cf(`${t1(y)}/outputs?q=recipient(${T}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${X}&offset=${f}`,H)).map(({is_spent:U,script_hex:z,block_id:G,transaction_hash:N,index:_,value:M,spending_signature_hex:O})=>({hash:N,index:_,is_confirmed:G!==-1,is_spent:U,script_hex:z,txHex:O,value:M}))}function FZ(y){return y.reduce((T,H)=>T+H.value,0)}function DH(y,T){let H=[...y].sort((f,X)=>X.value-f.value);if(T){let f=[],X=0;for(let Q of H)if(f.push(Q),X+=Q.value,X>=T)break;return f}return H}async function xH({chain:y,address:T,apiKey:H,targetValue:f,accumulativeValue:X=0,offset:Q=0,limit:Z=30}){if(!T)throw new T0.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{let q=await DZ({address:T,apiKey:H,chain:y,limit:Z,offset:Q,targetValue:f}),z=q.length<Z,G=q.filter(({is_spent:B})=>!B),N=FZ(G),_=X+N,M=f&&_>=f;if(z||M)return DH(G,f);let O=await xH({accumulativeValue:_,address:T,apiKey:H,chain:y,limit:Z,offset:Q+Z,targetValue:f}),C=[...G,...O];return DH(C,f)}catch(q){let U=q instanceof Error?q.message:String(q);return console.error(`Failed to fetch unspent UTXOs: ${U}`),[]}}async function RZ({address:y,chain:T,apiKey:H,fetchTxHex:f=!0,targetValue:X}){let Q=await xH({address:y,apiKey:H,chain:T,targetValue:X}),Z=[];for(let{hash:q,index:U,script_hex:z,value:G}of Q){let N;if(f)N=await RH({apiKey:H,chain:T,txHash:q});Z.push({address:y,hash:q,index:U,txHex:N,value:G,witnessUtxo:{script:Buffer.from(z,"hex"),value:G}})}return Z}function S0(y){let T=T0.SKConfig.get("apiKeys").blockchair||"";return T0.warnOnce({condition:!T,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(H)=>CZ({chain:y,txHash:H}),getAddressData:(H)=>FH({address:H,apiKey:T,chain:y}),getBalance:(H)=>NZ({address:H,apiKey:T,chain:y}),getRawTx:(H)=>RH({apiKey:T,chain:y,txHash:H}),getSuggestedTxFee:()=>$Z(y),getTransactionDetails:(H)=>BZ({apiKey:T,chain:y,txHash:H}),getUtxos:(H)=>RZ({...H,apiKey:T,chain:y})}}function xZ(y){return y}function IZ(){return function(T){switch(T){case T0.Chain.Bitcoin:return my.NETWORKS.bitcoin;case T0.Chain.BitcoinCash:return my.NETWORKS.bitcoinCash;case T0.Chain.Dash:return my.NETWORKS.dash;case T0.Chain.Litecoin:return my.NETWORKS.litecoin;case T0.Chain.Dogecoin:return my.NETWORKS.dogecoin;case T0.Chain.Zcash:return my.NETWORKS.zcash;default:throw new T0.SwapKitError("toolbox_utxo_not_supported",{chain:T})}}}var T0,my,kZ=4294967294;var IH=h(()=>{Hy();T0=require("@swapkit/helpers"),my=require("@swapkit/utxo-signer")});function KZ(y,T,H){return Wy.encodeCashAddr({hash:H,prefix:y,type:PZ[T]})}function SZ(y){let T=Wy.decodeCashAddr(y),H=jZ[T.type];if(!H)throw Error(`Unknown CashAddr type: ${T.type}`);return{hash:T.hash,prefix:T.prefix,type:H}}var Wy,PZ,jZ,Y2;var PH=h(()=>{Wy=require("@swapkit/utxo-signer"),PZ={P2PKH:Wy.CashAddrType.P2PKH,P2SH:Wy.CashAddrType.P2SH},jZ={[Wy.CashAddrType.P2PKH]:"P2PKH",[Wy.CashAddrType.P2SH]:"P2SH"};Y2={decode:SZ,encode:KZ}});function z2(y){try{return Of(y),!0}catch{return!1}}function G2(y){return Of(y)?.network}function zy(y){let T=Of(y);if(T?.format==="legacy")return y;return wZ(T)}function r1(y){let T=Of(y);return EZ(T)}function Of(y){try{let T=VZ(y);if(T)return T}catch{}try{let T=AZ(y);if(T)return T}catch{}throw new J2.SwapKitError("toolbox_utxo_invalid_address",{address:y})}function VZ(y){try{let T=VH.decode(y);if(T.length!==21)throw new J2.SwapKitError("toolbox_utxo_invalid_address",{address:y});let H=T[0],f=Array.prototype.slice.call(T,1);switch(H){case gy.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case gy.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case gy.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case gy.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case gy.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case gy.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function AZ(y){if(y.indexOf(":")!==-1)try{return jH(y)}catch{}else{let T=["bitcoincash","bchtest","bchreg"];for(let H of T)try{return jH(`${H}:${y}`)}catch{}}return}function jH(y){try{let{hash:T,prefix:H,type:f}=Y2.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(T,0),network:H==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function wZ(y){let T=gy.legacy[y.network][y.type],H=Buffer.alloc(1+y.hash.length);return H[0]=T,H.set(y.hash,1),VH.encode(H)}function EZ(y){let T=y.network==="mainnet"?"bitcoincash":"bchtest",H=y.type==="p2pkh"?"P2PKH":"P2SH",f=new Uint8Array(y.hash);return Y2.encode(T,H,f)}var KH,SH,J2,VH,W2,gy;var AH=h(()=>{PH();KH=require("@noble/hashes/sha2.js"),SH=require("@scure/base"),J2=require("@swapkit/helpers"),VH=SH.createBase58check(KH.sha256);((H)=>{H.Mainnet="mainnet";H.Testnet="testnet"})(W2||={});gy={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});function o0(y){let T=new Uint8Array(Buffer.from(y,"utf8"));return EH.Script.encode(["RETURN",T])}var wH,EH,vZ=1000,Nf=10,kf=2,vH=10,bZ=41,hZ=107,Bf,$f,a1,q1=(y)=>{if(y.startsWith("bc1")||y.startsWith("tb1")||y.startsWith("ltc1")||y.startsWith("tltc1"))return"P2WPKH";if(y.startsWith("1")||y.startsWith("m")||y.startsWith("n")||y.startsWith("bitcoincash:q")||y.startsWith("bitcoincash:p")||y.startsWith("q")||y.startsWith("p")||y.startsWith("L")||y.startsWith("M")||y.startsWith("3")||y.startsWith("D")||y.startsWith("A")||y.startsWith("9")||y.startsWith("X")||y.startsWith("7")||y.startsWith("y")||y.startsWith("t1")||y.startsWith("t3")||y.startsWith("tm"))return"P2PKH";throw new wH.SwapKitError("toolbox_utxo_invalid_address",{address:y})},oy=({inputs:y,outputs:T,feeRate:H})=>{let f=y[0]&&"address"in y[0]&&y[0].address?q1(y[0].address):"P2PKH",Q=(H?y.filter((z)=>z.value>=$f["type"in z&&z.type?z.type:"P2PKH"]*Math.ceil(H)):y).reduce((z,G)=>z+xy(G),0),Z=T?.reduce((z,G)=>z+s1(G),0)||a1[f],q=Nf+Q+Z;return f==="P2WPKH"?Math.ceil(q+kf/4):q},xy=(y)=>{if("type"in y&&y.type)return $f[y.type];if("address"in y&&y.address)return $f[q1(y.address)];return bZ+hZ},s1=(y,T)=>{if(y?.script)return vH+y.script.length+(y.script.length>=74?2:1);if(T)return a1[T];if("address"in y&&y.address)return a1[q1(y.address)];return a1.P2PKH};var L2=h(()=>{wH=require("@swapkit/helpers"),EH=require("@swapkit/utxo-signer");((H)=>{H.P2PKH="P2PKH";H.P2WPKH="P2WPKH"})(Bf||={});$f={["P2PKH"]:148,["P2WPKH"]:68},a1={["P2PKH"]:34,["P2WPKH"]:31}});function U1(y){switch(y){case d0.Chain.Bitcoin:case d0.Chain.BitcoinCash:return 550;case d0.Chain.Dash:case d0.Chain.Litecoin:return 5500;case d0.Chain.Dogecoin:return 1e5;case d0.Chain.Zcash:return 546;default:throw new d0.SwapKitError("toolbox_utxo_not_supported",{chain:y})}}function i0({inputs:y,outputs:T,feeRate:H=1,chain:f=d0.Chain.Bitcoin,changeAddress:X="",sweep:Q=!1}){let Z=U1(f),q=y.filter((B)=>{let R=xy(B)*H;return Q?B.value>Math.max(R,Z):R<=B.value});if(Q){let B=Math.ceil(H*oy({inputs:q,outputs:T})),R=q.reduce((j,K)=>j+K.value,0),I=R-B;if(I<=Z)throw new d0.SwapKitError("toolbox_sweep_amount_too_low",{available:R,dustThreshold:Z,fee:B});let w=T.findIndex((j)=>("address"in j)&&j.address);if(w===-1)throw new d0.SwapKitError("toolbox_utxo_invalid_params",{error:"Sweep requires a recipient output"});return{fee:B,inputs:q,outputs:T.map((j,K)=>K===w?{...j,value:I}:j)}}let G=(y[0]&&"address"in y[0]&&y[0].address?q1(y[0].address):"P2PKH")==="P2WPKH"?Math.ceil(kf/4):0,N=Nf+G+T.reduce((B,R)=>B+s1(R),0),_=T.reduce((B,R)=>B+R.value,0),M=N*H,O=0,C=[];for(let B of q){let R=xy(B),I=H*R;M+=I,O+=B.value,C.push(B);let w=M+_;if(O<w)continue;let j=O-w,K=H*s1({address:X,value:0});if(j>K){let $=K+M,k=O-(_+Math.ceil($));if(k>Math.max(xy({value:0})*H,U1(f)))return{fee:Math.ceil($),inputs:C,outputs:T.concat({address:X,value:k})}}return{fee:Math.ceil(M),inputs:C,outputs:T}}return{fee:Math.ceil(H*oy({inputs:y,outputs:T}))}}var d0;var bH=h(()=>{L2();d0=require("@swapkit/helpers")});var Y1=h(()=>{IH();AH();bH();L2()});function ny(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function Iy(y){let T=ny(y);return z2(T)&&G2(T)==="mainnet"}var cy;var e1=h(()=>{Y1();cy=require("@swapkit/utxo-signer")});function C2({address:y,chain:T}){return _2.match(T).with(v.Chain.BitcoinCash,()=>Iy(y)).with(v.Chain.Zcash,()=>cy.validateZcashAddress(y)).otherwise(()=>{try{return X0.Address(h0(T)).decode(y),!0}catch{return!1}})}function h0(y){return _2.match(y).with(v.Chain.Bitcoin,()=>X0.NETWORKS.bitcoin).with(v.Chain.BitcoinCash,()=>X0.NETWORKS.bitcoinCash).with(v.Chain.Dash,()=>X0.NETWORKS.dash).with(v.Chain.Dogecoin,()=>X0.NETWORKS.dogecoin).with(v.Chain.Litecoin,()=>X0.NETWORKS.litecoin).with(v.Chain.Zcash,()=>X0.NETWORKS.zcash).exhaustive()}function lZ({phrase:y,derivationPath:T,network:H,seed:f}){let X=f??Ff.mnemonicToSeedSync(y),Z=M2.HDKey.fromMasterSeed(X,H.bip32).derive(T);if(!Z.privateKey)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return Z.privateKey}function hH(y){return lH.secp256k1.getPublicKey(y,!0)}function f5({publicKey:y,chain:T,network:H}){if(T===v.Chain.BitcoinCash){let Q=X0.p2pkh(y,H);if(!Q.hash)throw new v.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return X0.encodeCashAddr({hash:Q.hash,prefix:X0.CashAddrPrefix.MAINNET,type:X0.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}let X=!y5.includes(T)?X0.p2wpkh(y,H):X0.p2pkh(y,H);if(!X.address)throw new v.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive address"});return X.address}function J1({phrase:y,derivationPath:T,chain:H,wif:f,seed:X}){let Q=h0(H);if(f){let z=X0.WIF(Q).decode(f),G=hH(z);return{privateKey:z,publicKey:G}}if(!y)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let Z=T||v.derivationPathToString(v.NetworkDerivationPath[H]),q=lZ({derivationPath:Z,network:Q,phrase:y,seed:X}),U=hH(q);return{privateKey:q,publicKey:U}}function uZ(y,T){return X0.WIF(h0(T)).encode(y)}function pZ({phrase:y,derivationPath:T,chain:H,seed:f}){let X=T.split("/");if(X.length<4)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${X.length}): ${T}`});let Q=h0(H),Z=f??Ff.mnemonicToSeedSync(y),q=M2.HDKey.fromMasterSeed(Z,Q.bip32),U=X.slice(0,4).join("/");return q.derive(U)}function jy({inputs:y,outputs:T,chain:H,tx:f,sender:X,compiledMemo:Q,enableRBF:Z=!1}){let q=h0(H),U=!y5.includes(H),z=Z?X0.RBF_SEQUENCE:void 0,G=new Set;for(let N of y){let _=`${N.hash}:${N.index}`;if(G.has(_))throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});G.add(_);let M=typeof N.hash==="string"?Py.hex.decode(N.hash):N.hash;if(U&&N.witnessUtxo)f.addInput({index:N.index,sequence:z,txid:M,witnessUtxo:{amount:BigInt(N.witnessUtxo.value),script:N.witnessUtxo.script}});else if(N.txHex)f.addInput({index:N.index,nonWitnessUtxo:Py.hex.decode(N.txHex),sequence:z,txid:M,...H===v.Chain.BitcoinCash?{sighashType:X0.BCHSigHash.ALL}:{}});else throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let N of T){let _="address"in N&&N.address?N.address:X;if(H===v.Chain.BitcoinCash)_=zy(_);if(N.script){if(Q)f.addOutput({amount:0n,script:Q})}else f.addOutputAddress(_,BigInt(N.value),q)}return{inputs:y,tx:f}}async function W1(y){let T=await S0(y).getSuggestedTxFee();return{[v.FeeOption.Average]:T,[v.FeeOption.Fast]:v.applyFeeMultiplier(T,v.FeeOption.Fast),[v.FeeOption.Fastest]:v.applyFeeMultiplier(T,v.FeeOption.Fastest)}}async function uH({assetValue:y,recipient:T,memo:H,sender:f,sweep:X,fetchTxHex:Q=!1}){let Z=y.chain,q=Q||y5.includes(Z),U=y.getBaseValue("number"),z=X?void 0:Math.ceil(U+(await W1(Z))[v.FeeOption.Fastest]*5000);return{inputs:await S0(Z).getUtxos({address:f,fetchTxHex:q,targetValue:z}),outputs:[{address:T,value:X?0:U},...H?[{address:"",script:o0(H),value:0}]:[]]}}async function pH({assetValue:y,recipient:T,memo:H,feeRate:f,sender:X,fetchTxHex:Q=!1,enableRBF:Z=!1,sweep:q}){let U=y.chain,z=H?o0(H):null,G=await uH({assetValue:y,fetchTxHex:Q,memo:H,recipient:T,sender:X,sweep:q}),{inputs:N,outputs:_}=i0({...G,chain:U,feeRate:f,sweep:q});if(!(N&&_))throw new v.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let M=new X0.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!z,version:1}),{inputs:O,tx:C}=jy({chain:U,compiledMemo:z,enableRBF:Z,inputs:N,outputs:_,sender:X,tx:M});return{inputs:O,tx:C,utxos:G.inputs}}async function mH({assetValue:y,feeOptionKey:T=v.FeeOption.Fast,feeRate:H,memo:f,sender:X,recipient:Q,sweep:Z}){let q=y.chain,U=await uH({assetValue:y,memo:f,recipient:Q,sender:X,sweep:Z}),z=H?Math.floor(H):(await W1(q))[T];return i0({...U,chain:q,feeRate:z,sweep:Z})}function mZ(y){return async function({from:H,memo:f,feeRate:X,feeOptionKey:Q=v.FeeOption.Fast,recipient:Z=H,recipients:q=1}){let U=X??(await W1(y))[Q],G=(await S0(y).getUtxos({address:H,fetchTxHex:!1})).filter((C)=>C.value>Math.max(U1(y),xy(C)*U));if(!G.length)return v.AssetValue.from({chain:y});let N=typeof q==="number"?Math.max(q,1):q.length,_=typeof q==="number"||N===0?Array.from({length:N||1},()=>({address:Z,value:0})):[...q];if(f)_.push({address:H,script:o0(f),value:0});let{outputs:M}=i0({chain:y,feeRate:U,inputs:G,outputs:_,sweep:!0}),O=M?.[0]?.value??0;return v.AssetValue.from({chain:y,value:BigInt(O)})}}function gZ(y){return async function(H){let{fee:f}=await mH(H);return v.AssetValue.from({chain:y,value:v.SwapKitNumber.fromBigInt(BigInt(f),8).getValue("string")})}}function oZ({chain:y,phrase:T,derivationPath:H,seed:f}){let X=h0(y),{privateKey:Q,publicKey:Z}=J1({chain:y,derivationPath:H,phrase:T,seed:f}),q=y===v.Chain.BitcoinCash?[X0.BCHSigHash.ALL]:[X0.SigHash.ALL];return{getAddress:()=>f5({chain:y,network:X,publicKey:Z}),privateKey:Q,publicKey:Z,signTransaction:(U)=>{return U.sign(Q,q),U}}}function nZ(y,T){return async function({memo:f,recipient:X,feeOptionKey:Q,feeRate:Z,assetValue:q,enableRBF:U=!1,sweep:z}){let G=await T?.getAddress();if(!(T&&G))throw new v.SwapKitError("toolbox_utxo_no_signer");if(!X)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});v.warnOnce({condition:U&&!Df.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let N=U&&Df.includes(y),_=Z||(await W1(y))[Q||v.FeeOption.Fast],{tx:M}=await pH({assetValue:q,enableRBF:N,feeRate:_,memo:f,recipient:X,sender:G,sweep:z}),O=await T.signTransaction(M);return O.finalize(),S0(y).broadcastTx(Py.hex.encode(O.extract()))}}function O2(y){return(T)=>C2({address:T,chain:y})}function $2(y){let T=h0(y);return function(f){if(!f)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return f5({chain:y,network:T,publicKey:f.publicKey})}}function Ky({chain:y,...T}){let H="phrase"in T?T.phrase:void 0,f="index"in T?T.index||0:0,X=H?Ff.mnemonicToSeedSync(H):void 0,Q="derivationPath"in T&&T.derivationPath?T.derivationPath:v.updateDerivationPath(v.NetworkDerivationPath[y],{index:f}),Z=v.derivationPathToString(Q),q=H?oZ({chain:y,derivationPath:Z,phrase:H,seed:X}):void 0,U="signer"in T?T.signer:void 0,z=q||U,G=H?J1({chain:y,derivationPath:Z,phrase:H,seed:X}):void 0;function N(){if(z)return z.getAddress();return Promise.resolve(void 0)}function _(Y){if(!H)return;let L=Ry({accountIndex:Y,chain:y,derivationPath:Q});return pZ({chain:y,derivationPath:v.derivationPathToString(L),phrase:H,seed:X})}let M=_();function O(){if(!M)return;return M.publicExtendedKey}function C({accountIndex:Y}={}){let L=Y===void 0?M:_(Y);if(!L)return;let D=Ry({accountIndex:Y,chain:y,derivationPath:Q});return{accountIndex:py(D),path:v.derivationPathToString(D),xpub:L.publicExtendedKey}}function B({accountIndex:Y,index:L,change:D=!1}){let F=Y===void 0?M:_(Y);if(!F)return;let x=Z1({accountIndex:Y,chain:y,change:D,derivationPath:Q,index:L}),A=h0(y),E=F.deriveChild(Number(D)).deriveChild(L);if(!E.publicKey)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let u=f5({chain:y,network:A,publicKey:E.publicKey}),r=Py.hex.encode(E.publicKey);return{accountIndex:py(x),address:u,change:D,index:L,path:v.derivationPathToString(x),pubkey:r}}async function R(Y){if(!Df.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let L=await S0(y).getTransactionDetails(Y);return{canReplace:L.isRBF&&!L.confirmed,confirmed:L.confirmed,enabled:L.isRBF,fee:L.fee,sequences:L.sequences,supported:!0}}async function I({txid:Y,newFeeRate:L,recipient:D,memo:F}){if(!Df.includes(y))throw new v.SwapKitError("toolbox_utxo_rbf_not_supported",{chain:y});let x=await S0(y).getTransactionDetails(Y);if(!x.isRBF)throw new v.SwapKitError("toolbox_utxo_tx_not_replaceable",{txid:Y});if(x.confirmed)throw new v.SwapKitError("toolbox_utxo_tx_already_confirmed",{blockId:x.blockId,txid:Y});let A=x.inputs.reduce((Z0,C0)=>Z0+C0.value,0),u=x.outputs.find((Z0)=>Z0.recipient===D)?.value||0;if(u===0)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let r=await Promise.all(x.inputs.map(async(Z0)=>{let C0=await S0(y).getRawTx(Z0.transaction_hash);return{hash:Z0.transaction_hash,index:Z0.index,txHex:C0,value:Z0.value,witnessUtxo:void 0}})),Q0=F?o0(F):null,_0=oy({feeRate:L,inputs:r.map((Z0)=>({...Z0,type:"P2WPKH"})),outputs:[{address:D,value:u}]}),P=Math.ceil(_0*L);if(P<=x.fee)throw new v.SwapKitError("toolbox_utxo_rbf_fee_too_low",{newFee:P,originalFee:x.fee});let V=P-x.fee,b=u-V;if(b<=0)throw new v.SwapKitError("toolbox_utxo_rbf_insufficient_change");let c=new X0.Transaction({allowLegacyWitnessUtxo:!0,version:1}),i=[{address:D,value:b},...F?[{address:"",script:o0(F),value:0}]:[]],f0=A-b-P,G0=await N();if(f0>U1(y)&&G0)i.push({address:G0,value:f0});return jy({chain:y,compiledMemo:Q0,inputs:r,outputs:i,sender:G0||D,tx:c}),{feeDelta:V,newFee:P,originalFee:x.fee,tx:c}}async function w({txid:Y,newFeeRate:L,recipient:D,memo:F}){let{tx:x,originalFee:A,newFee:E}=await I({memo:F,newFeeRate:L,recipient:D,txid:Y}),u=await W(x);u.finalize();let r=await S0(y).broadcastTx(Py.hex.encode(u.extract()));return{newFee:E,originalFee:A,txid:r}}function j({accountIndex:Y,index:L,change:D=!1}){s0("index",L);let F=Y===void 0?M:_(Y);if(!F)return;return F.deriveChild(Number(D)).deriveChild(L).privateKey||void 0}function K({tx:Y,inputDerivations:L}){if(!M)throw new v.SwapKitError("toolbox_utxo_no_signer");let D=y===v.Chain.BitcoinCash?[X0.BCHSigHash.ALL]:[X0.SigHash.ALL];for(let F=0;F<L.length;F++){let x=L[F];if(!x)continue;let{derivationIndex:A,isChange:E}=x,u=j({change:E,index:A});if(!u)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${F} at index ${A}`});Y.signIdx(u,F,D)}return Y}async function $({utxos:Y,recipient:L,assetValue:D,memo:F,feeRate:x,feeOptionKey:A,changeAddress:E,sweep:u}){if(u)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Sweep is not supported for transfers from multiple addresses"});if(!M)throw new v.SwapKitError("toolbox_utxo_no_signer");let r=x||(await W1(y))[A||v.FeeOption.Fast],Q0=F?o0(F):null,_0=[{address:L,value:D.getBaseValue("number")}];if(Q0)_0.push({address:"",script:Q0,value:0});let P=Y.map(({hash:Z0,index:C0,value:A0,txHex:fy,witnessUtxo:Ty})=>({hash:Z0,index:C0,txHex:fy,value:A0,witnessUtxo:Ty?{script:Ty.script,value:Ty.value}:void 0})),{inputs:V,outputs:b}=i0({chain:y,feeRate:r,inputs:P,outputs:_0});if(!(V&&b))throw new v.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:D,sender:"multiple addresses"});let c=new X0.Transaction({allowLegacyWitnessUtxo:!0,version:1}),i=Y[0]?.address,f0=E||await N()||i||L;jy({chain:y,compiledMemo:Q0,inputs:V,outputs:b,sender:f0,tx:c});let G0=V.map((Z0)=>{let C0=Y.find((A0)=>A0.hash===Z0.hash&&A0.index===Z0.index);return C0?{derivationIndex:C0.derivationIndex,isChange:C0.isChange}:{derivationIndex:0,isChange:!1}});return K({inputDerivations:G0,tx:c}),c.finalize(),S0(y).broadcastTx(Py.hex.encode(c.extract()))}function k({address:Y,gapLimit:L=20}){if(!M)return;for(let D=0;D<L;D++){let F=B({change:!1,index:D}),x=B({change:!0,index:D}),A=F?.address===Y?!1:x?.address===Y;if(F?.address===Y||x?.address===Y)return{change:A,index:D}}return}function W(Y){if(!z)throw new v.SwapKitError("toolbox_utxo_no_signer");return z.signTransaction(Y)}async function J(Y){let L=await W(Y);return L.finalize(),await S0(y).broadcastTx(Py.hex.encode(L.extract()))}return{accumulative:i0,broadcastTx:(Y)=>S0(y).broadcastTx(Y),bumpFee:w,calculateTxSize:oy,createKeysForPath:(Y)=>J1({...Y,chain:y}),createReplacementTransaction:I,createTransaction:pH,deriveAddressAtIndex:B,derivePrivateKeyAtIndex:j,estimateMaxSendableAmount:mZ(y),estimateTransactionFee:gZ(y),getAddress:N,getAddressFromKeys:$2(y),getBalance:w0(y),getExtendedPublicKey:O,getExtendedPublicKeyInfo:C,getFeeRates:()=>W1(y),getInputsOutputsFee:mH,getNetworkForChain:()=>h0(y),getPrivateKeyFromMnemonic:(Y)=>uZ(J1({...Y,chain:y}).privateKey,y),isRBFEnabled:R,keys:G,resolveDerivationIndex:k,signAndBroadcastTransaction:J,signTransaction:W,signTransactionWithMultipleKeys:K,transfer:nZ(y,z),transferFromMultipleAddresses:$,validateAddress:O2(y)}}var lH,Py,M2,Ff,v,X0,_2,y5,Df;var z1=h(()=>{Hy();i1();Y1();e1();lH=require("@noble/curves/secp256k1.js"),Py=require("@scure/base"),M2=require("@scure/bip32"),Ff=require("@scure/bip39"),v=require("@swapkit/helpers"),X0=require("@swapkit/utxo-signer"),_2=require("ts-pattern"),y5=[v.Chain.Dash,v.Chain.Dogecoin,v.Chain.Zcash,v.Chain.BitcoinCash],Df=[v.Chain.Bitcoin]});function T5(y){return ny(r1(y))}function cZ(y){let T=h0(Uy);function H(X){return X.sign(y.privateKey,[j0.BCHSigHash.ALL]),X}function f(){let X=j0.p2pkh(y.publicKey,T);if(!X.hash)throw new I0.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let Q=j0.encodeCashAddr({hash:X.hash,prefix:j0.CashAddrPrefix.MAINNET,type:j0.CashAddrType.P2PKH});return Promise.resolve(Q.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:H}}function k2(y){let T="phrase"in y?y.phrase:void 0,H="index"in y?y.index||0:0,f=I0.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:I0.updateDerivationPath(I0.NetworkDerivationPath[Uy],{index:H})),X=T?J1({chain:Uy,derivationPath:f,phrase:T}):void 0,Q=X?cZ(X):("signer"in y)?y.signer:void 0;function Z(){return Promise.resolve(Q?.getAddress())}let{getBalance:q,getFeeRates:U,broadcastTx:z,...G}=Ky({chain:Uy});function N(O,C=!0){return q(ny(r1(O)))}function _(O){if(!Q)throw new I0.SwapKitError("toolbox_utxo_no_signer");return Q.signTransaction(O)}async function M(O){let C=await _(O);return C.finalize(),await z(N2.hex.encode(C.extract()))}return{...G,broadcastTx:z,buildTx:iZ,createTransaction:gH,getAddress:Z,getAddressFromKeys:tZ,getBalance:N,getFeeRates:U,signAndBroadcastTransaction:M,signTransaction:_,stripPrefix:ny,stripToCashAddress:T5,transfer:dZ({broadcastTx:z,getFeeRates:U,signer:Q}),validateAddress:Iy}}async function gH({assetValue:y,recipient:T,memo:H,feeRate:f,sender:X,sweep:Q}){if(!Iy(T))throw new I0.SwapKitError("toolbox_utxo_invalid_address",{address:T});let Z=Math.ceil(y.getBaseValue("number")+f*7500),q=await S0(Uy).getUtxos({address:T5(X),fetchTxHex:!0,targetValue:Q?void 0:Z}),U=H?o0(H):null,z=[],G=zy(T);if(z.push({address:G,value:Q?0:y.getBaseValue("number")}),U)z.push({script:U,value:0});let{inputs:N,outputs:_}=i0({chain:Uy,feeRate:f,inputs:q,outputs:z,sweep:Q});if(!(N&&_))throw new I0.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let M=new j0.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!U,version:1}),O=zy(X),{inputs:C,tx:B}=jy({chain:Uy,compiledMemo:U,inputs:N,outputs:_.map((R)=>("address"in R)&&R.address?{...R,address:zy(R.address)}:R),sender:O,tx:M});return{inputs:C,tx:B,utxos:N}}function dZ({broadcastTx:y,getFeeRates:T,signer:H}){return async function({recipient:X,assetValue:Q,feeOptionKey:Z=I0.FeeOption.Fast,sweep:q,...U}){let z=await H?.getAddress();if(!(H&&z))throw new I0.SwapKitError("toolbox_utxo_no_signer");if(!X)throw new I0.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let G=U.feeRate||(await T())[Z],{tx:N}=await gH({...U,assetValue:Q,feeRate:G,recipient:X,sender:z,sweep:q}),_=await H.signTransaction(N);return _.finalize(),y(N2.hex.encode(_.extract()))}}async function iZ({assetValue:y,recipient:T,memo:H,feeRate:f,sender:X}){let Q=r1(T);if(!Iy(Q))throw new I0.SwapKitError("toolbox_utxo_invalid_address",{address:Q});let Z=Math.ceil(y.getBaseValue("number")+f*7500),q=await S0(Uy).getUtxos({address:T5(X),fetchTxHex:!0,targetValue:Z}),U=Number(f.toFixed(0)),z=H?o0(H):null,G=[];if(G.push({address:zy(T),value:y.getBaseValue("number")}),z)G.push({script:z,value:0});let{inputs:N,outputs:_}=i0({chain:Uy,feeRate:U,inputs:q,outputs:G});if(!(N&&_))throw new I0.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let M=new j0.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!z,version:1}),{inputs:O,tx:C}=jy({chain:Uy,compiledMemo:z,inputs:N,outputs:_,sender:zy(X),tx:M});return{inputs:O,tx:C,utxos:q}}function tZ(y){let T=j0.NETWORKS.bitcoinCash,H=j0.p2pkh(y.publicKey,T);if(!H.hash)throw new I0.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return j0.encodeCashAddr({hash:H.hash,prefix:j0.CashAddrPrefix.MAINNET,type:j0.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}var N2,I0,j0,Uy;var Rf=h(()=>{Y1();z1();e1();N2=require("@scure/base"),I0=require("@swapkit/helpers"),j0=require("@swapkit/utxo-signer"),Uy=I0.Chain.BitcoinCash});function F2(){let{isStagenet:y}=D0.SKConfig.get("envs");return y?z0.ZCASH_TEST_NETWORK:z0.ZCASH_NETWORK}function aZ(y){return rZ.encode(y)}function sZ({phrase:y,derivationPath:T}){let H=D2.mnemonicToSeedSync(y),X=B2.HDKey.fromMasterSeed(H).derive(T);if(!X.privateKey||!X.publicKey)throw new D0.SwapKitError("toolbox_utxo_invalid_params");let{privateKey:Q,publicKey:Z}=X,q=z0.utils.hash160(Z),{isStagenet:U}=D0.SKConfig.get("envs"),z=U?new Uint8Array([29,37]):new Uint8Array([28,184]),G=new Uint8Array(z.length+q.length);G.set(z,0),G.set(q,z.length);let N=aZ(G);return{getAddress:()=>Promise.resolve(N),signTransaction:(_)=>{if(_ instanceof z0.ZcashPSBT){let M=_.toPCZT();return M.signAllInputs(Q,Z,z0.ZcashSigHash.ALL),M.finalizeAllInputs(),Promise.resolve(M.extract())}if(_ instanceof z0.PCZT)return _.signAllInputs(Q,Z,z0.ZcashSigHash.ALL),_.finalizeAllInputs(),Promise.resolve(_.extract());return _.signAllInputs(Q,Z,z0.ZcashSigHash.ALL),Promise.resolve(_)}}}function eZ({inputs:y,outputs:T,tx:H,sender:f,compiledMemo:X}){let Q=F2();for(let Z of y){let q=z0.Address(Q).decode(f),U=z0.OutScript.encode(q);H.addInput({index:Z.index,script:U,sequence:4294967295,txid:xf.hex.decode(Z.hash),value:BigInt(Z.value)})}for(let Z of T){let q="address"in Z&&Z.address?Z.address:f,U=Z.script;if(U&&!X)continue;if(U&&X)H.addOutput({amount:0n,script:X});else H.addOutputAddress(q,BigInt(Z.value),Q)}return{inputs:y,tx:H}}async function oH(y){let{assetValue:T,recipient:H,memo:f,feeRate:X,sender:Q,fetchTxHex:Z,sweep:q}=y,U=F2();if(!z0.isTransparentZcashAddress(Q,U))throw new D0.SwapKitError("toolbox_utxo_invalid_address",{address:Q});if(!z0.isTransparentZcashAddress(H,U))throw new D0.SwapKitError("toolbox_utxo_invalid_address",{address:H,error:"Zcash transaction creation currently supports transparent addresses only"});let z=f?o0(f):null,G=await S0(D0.Chain.Zcash).getUtxos({address:Q,fetchTxHex:Z!==!1}),N=[{address:H,value:q?0:Number(T.getBaseValue("string"))},...z?[{script:z,value:0}]:[]],{inputs:_,outputs:M}=i0({chain:D0.Chain.Zcash,changeAddress:Q,feeRate:X,inputs:G,outputs:N,sweep:q});if(!(_&&M))throw new D0.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:T,sender:Q});let O=z0.createZcashTransaction({consensusBranchId:z0.ZcashConsensusBranchId.NU6_2,expiryHeight:0,lockTime:0,version:4,versionGroupId:z0.ZcashVersionGroupId.SAPLING}),{tx:C,inputs:B}=eZ({compiledMemo:z,inputs:_,outputs:M,sender:Q,tx:O});return{inputs:B,outputs:M,tx:C}}function R2(y){let T=G1.match(y).with({signer:G1.P.not(G1.P.nullish)},({signer:U})=>U).with({phrase:G1.P.string},({phrase:U,derivationPath:z,index:G=0})=>{let N=z||D0.NetworkDerivationPath[D0.Chain.Zcash]||[44,133,0,0,0],_=D0.updateDerivationPath(N,{index:G}),M=D0.derivationPathToString(_);return sZ({derivationPath:M,phrase:U})}).otherwise(()=>{return}),H=Ky({chain:D0.Chain.Zcash,signer:T});async function f(U){if(!T)throw new D0.SwapKitError("toolbox_utxo_no_signer");return await T.signTransaction(U)}async function X(U){let z=await f(U);return H.broadcastTx(z.toHex())}async function Q({recipient:U,assetValue:z,feeOptionKey:G=D0.FeeOption.Fast,sweep:N,..._}){let M=await T?.getAddress();if(!(T&&M))throw new D0.SwapKitError("toolbox_utxo_no_signer");let O=_.feeRate||(await H.getFeeRates())[G],{tx:C}=await oH({..._,assetValue:z,feeRate:O,recipient:U,sender:M,sweep:N}),R=(await T.signTransaction(C)).toHex();return H.broadcastTx(R)}function Z({phrase:U,derivationPath:z="m/44'/133'/0'/0/0"}){let G=D2.mnemonicToSeedSync(U),_=B2.HDKey.fromMasterSeed(G).derive(z);if(!_.privateKey||!_.publicKey)throw new D0.SwapKitError("toolbox_utxo_invalid_params");return{privateKey:_.privateKey,publicKey:_.publicKey}}function q({phrase:U,derivationPath:z="m/44'/133'/0'/0/0"}){let G=Z({derivationPath:z,phrase:U}),N=F2();return z0.WIF(N).encode(G.privateKey)}return{...H,createKeysForPath:Z,createTransaction:oH,getPrivateKeyFromMnemonic:q,signAndBroadcastTransaction:X,signTransaction:f,transfer:Q,validateAddress:cy.validateZcashAddress}}var xf,B2,D2,D0,z0,G1,rZ;var x2=h(()=>{Y1();z1();e1();xf=require("@scure/base"),B2=require("@scure/bip32"),D2=require("@scure/bip39"),D0=require("@swapkit/helpers"),z0=require("@swapkit/utxo-signer"),G1=require("ts-pattern");rZ=xf.createBase58check(z0.utils.sha256)});function iH({xpub:y,chain:T,count:H,startIndex:f=0,accountIndex:X}){if(s0("count",H),H<1)throw RangeError("count must be at least 1");s0("startIndex",f);let Q=h0(T),Z=cH.HDKey.fromExtendedKey(y,Q.bip32),q=Ry({accountIndex:X,chain:T}),U=py(q),z=[];for(let G of[!1,!0]){let N=Z.deriveChild(Number(G));for(let _=0;_<H;_++){let M=f+_,O=N.deriveChild(M);if(!O.publicKey)continue;let C=Z1({accountIndex:X,chain:T,change:G,index:M});z.push({accountIndex:U,address:f5({chain:T,network:Q,publicKey:O.publicKey}),change:G,index:M,path:dH.derivationPathToString(C),pubkey:nH.hex.encode(O.publicKey)})}}return z}var nH,cH,dH;var tH=h(()=>{i1();z1();nH=require("@scure/base"),cH=require("@scure/bip32"),dH=require("@swapkit/helpers")});function yq(y,T){switch(y){case Gy.Chain.BitcoinCash:return k2(T||{});case Gy.Chain.Zcash:return R2(T);case Gy.Chain.Bitcoin:case Gy.Chain.Dogecoin:case Gy.Chain.Litecoin:case Gy.Chain.Dash:return Ky({chain:y,...T});default:throw new Gy.SwapKitError("toolbox_utxo_not_supported",{chain:y})}}var Gy;var rH=h(()=>{Rf();z1();x2();i1();tH();Rf();e1();Gy=require("@swapkit/helpers")});var I2={};P0(I2,{validateZcashAddress:()=>cy.validateZcashAddress,validateUtxoAddress:()=>C2,validateBchAddress:()=>Iy,toLegacyAddress:()=>zy,toCashAddress:()=>r1,stripToCashAddress:()=>T5,stripPrefix:()=>ny,nonSegwitChains:()=>y5,isValidAddress:()=>z2,getUtxoToolbox:()=>yq,getUtxoNetwork:()=>IZ,getUtxoApi:()=>S0,getUTXOAddressValidator:()=>O2,getUTXOAddressPath:()=>Z1,getUTXOAccountPath:()=>Ry,getUTXOAccountIndexFromPath:()=>py,getScriptTypeForAddress:()=>q1,getOutputSize:()=>s1,getNetworkForChain:()=>h0,getInputSize:()=>xy,getDustThreshold:()=>U1,detectAddressNetwork:()=>G2,deriveAddressesFromXpub:()=>iH,createZcashToolbox:()=>R2,createUTXOToolbox:()=>Ky,createHDWalletHelpers:()=>kH,createCustomUtxoApi:()=>xZ,createBCHToolbox:()=>k2,compileMemo:()=>o0,calculateTxSize:()=>oy,assertDerivationIndex:()=>s0,addressFromKeysGetter:()=>$2,addInputsAndOutputs:()=>jy,accumulative:()=>i0,UtxoNetwork:()=>W2,UTXOScriptType:()=>Bf,TX_OVERHEAD:()=>Nf,SEGWIT_MARKER_FLAG_WEIGHT:()=>kf,OutputSizes:()=>a1,OP_RETURN_OVERHEAD:()=>vH,MIN_TX_FEE:()=>vZ,InputSizes:()=>$f});module.exports=V0(I2);var P2=h(()=>{z1();i1();Y1();rH();Rf();x2()});function H5(y){return y.length>=2&&y.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(y)}async function Pf(y){let{KeyPair:T}=await import("@near-js/crypto"),H=y.index||0,f=y.derivationPath?If.derivationPathToString(y.derivationPath.slice(0,3)):`m/44'/397'/${H}'`,{parseSeedPhrase:X}=await import("near-seed-phrase"),{secretKey:Q}=X(y.phrase,f),Z=T.fromString(Q);return aH(Z)}async function j2(y){let{KeyPair:T}=await import("@near-js/crypto"),H=T.fromString(y);return aH(H)}async function aH(y){let{KeyPairSigner:T}=await import("@near-js/signers");class H extends T{#y;constructor(f){super(f);this.#y=f}getAddress(){let f=this.#y.getPublicKey(),X=Buffer.from(f.data).toString("hex");return Promise.resolve(X)}}return new H(y)}async function jf(y,T){let f=(await y.query({account_id:T,finality:"final",request_type:"view_access_key_list"})).keys.find((q)=>q.access_key.permission==="FullAccess");if(!f)throw new If.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:X}=await import("@near-js/crypto"),Q=X.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:Q}}var If;var K2=h(()=>{If=require("@swapkit/helpers")});function S2(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function V2(y){return"contractId"in y&&"methodName"in y}function A2(y){return"actions"in y}function w2(y){return"newAccountId"in y}function E2(y){return"contractCode"in y}function v2(y){return"customEstimator"in y}function b2(y){let T=0;for(let H of y)switch(H.enum){case"transfer":T+=Number(v0.SIMPLE_TRANSFER);break;case"functionCall":T+=Number(v0.CONTRACT_CALL);break;case"createAccount":T+=Number(v0.ACCOUNT_CREATION);break;case"deployContract":T+=Number(v0.CONTRACT_DEPLOYMENT);break;case"addKey":T+=Number(v0.ACCESS_KEY_ADDITION);break;case"deleteKey":T+=Number(v0.ACCESS_KEY_DELETION);break;case"stake":T+=Number(v0.STAKE);break;default:T+=Number(v0.CONTRACT_CALL)}return T.toString()}function h2(y){if(y==="ft_transfer"||y==="ft_transfer_call")return v0.TOKEN_TRANSFER;if(y==="storage_deposit")return v0.STORAGE_DEPOSIT;return v0.CONTRACT_CALL}function fq(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function Tq(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var v0;var l2=h(()=>{v0={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function u2({account:y,contractId:T,viewMethods:H,changeMethods:f}){let{Contract:X}=await import("@near-js/accounts");return new X(y,T,{changeMethods:f,useLocalViewExecution:!0,viewMethods:H})}function qq(y){let T;async function H(){if(T)return T;return T=await L1.match(y).with({phrase:L1.P.string},async(P)=>{return await Pf(P)}).with({signer:L1.P.any},({signer:P})=>P).otherwise(()=>{return}),T}async function f(){let{JsonRpcProvider:P}=await import("@near-js/providers"),V=await J0.getRPCUrl(J0.Chain.Near);return new P({url:V})}async function X(P){let{Account:V}=await import("@near-js/accounts"),b=await f(),c=await H(),i=P||await Q();return new V(i,b,c)}async function Q(){let P=await H();if(!P)throw new J0.SwapKitError("toolbox_near_no_signer");return await P.getAddress()}async function Z(P,V){return(V||await f()).callFunction(P.contractId,"storage_balance_of",{account_id:P.accountId},{finality:"final"})}async function q(P,V){try{let b=await V.callFunction(P,"storage_balance_bounds",{},{finality:"final"});return b?.min?BigInt(b.min):sH}catch{return sH}}function U(P){return(P*(p2+Zq)+p2-1n)/p2}function z(P,V){return BigInt(P)*BigInt(V.runtime_config.storage_amount_per_byte)}function G(P,V){if(P<=0n)throw new J0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:V});return P}async function N(P){return await(P||await f()).experimental_protocolConfig({finality:"final"})}async function _(P,V,b){let i=await(b||await f()).callFunction(P,"ft_balance_of",{account_id:V},{finality:"final"});return BigInt(i||"0")}async function M(P){if(!await H())throw new J0.SwapKitError("toolbox_near_no_signer");let{assetValue:b,recipient:c,memo:i,sweep:f0}=P,G0=await Q(),Z0=await B({assetValue:b,memo:i,recipient:c,sender:G0,sweep:f0});return Y(Z0)}async function O({assetValue:P,attachedDeposit:V,memo:b,provider:c,recipient:i,sender:f0,sweep:G0}){let Z0=P.address;if(!Z0)throw new J0.SwapKitError("toolbox_near_missing_contract_address");let C0=await Z({accountId:i,contractId:Z0},c),A0=C0?0n:await q(Z0,c),fy=C0?Xq:Hq,Ty=BigInt(V||"1"),ry=P.getBaseValue("bigint");if(G0){let[ay,sy,k1,Y5]=await Promise.all([_(Z0,f0,c),c.viewAccount(f0,{finality:"final"}),N(c),D(c)]);ry=G(ay,{asset:P.toString(),balance:ay.toString()});let J5=z(sy.storage_usage,k1),B1=sy.amount-J5,W5=A0,WT=(fy+(C0?0n:eH))*U(Y5)+W5+Ty;if(B1<WT)throw new J0.SwapKitError("toolbox_sweep_amount_too_low",{asset:P.toString(),availableNear:B1.toString(),reason:"Insufficient NEAR to cover token transfer gas and storage deposit",requiredNear:WT.toString()})}let Ly=[];if(!C0)Ly.push(await j({args:{account_id:i},attachedDeposit:A0.toString(),gas:eH.toString(),methodName:"storage_deposit"}));return Ly.push(await j({args:{amount:ry.toString(),memo:b||null,receiver_id:i},attachedDeposit:Ty.toString(),gas:fy.toString(),methodName:"ft_transfer"})),w({actions:Ly,receiverId:Z0,sender:f0})}async function C({assetValue:P,attachedDeposit:V,memo:b,provider:c,recipient:i,sender:f0,sweep:G0}){let{publicKey:Z0,nonce:C0}=await jf(c,f0),A0=P.getBaseValue("bigint");if(G0){let[k1,Y5]=await Promise.all([c.viewAccount(f0,{finality:"final"}),N(c)]),J5=await L({assetValue:P,memo:b,recipient:i,sweep:G0},Y5),B1=z(k1.storage_usage,Y5),W5=0n;if(b&&V){let JT=await D(c);W5=Qq*U(JT)+BigInt(V)}A0=G(k1.amount-J5.getBaseValue("bigint")-B1-W5,{asset:P.toString(),balance:k1.amount.toString(),fee:J5.getBaseValue("bigint").toString(),storageStakeReserve:B1.toString()})}let{actionCreators:fy,createTransaction:Ty}=await import("@near-js/transactions"),{baseDecode:ry}=await import("@near-js/utils"),Ly=[fy.transfer(A0)];if(b&&V)Ly.push(fy.functionCall("memo",{memo:b},BigInt("250000000000000"),BigInt(V)));let ay=await c.block({finality:"final"}),sy=ry(ay.header.hash);return Ty(f0,Z0,i,C0+1,Ly,sy)}async function B({recipient:P,assetValue:V,memo:b,attachedDeposit:c,sender:i,functionCall:f0,sweep:G0}){if(!H5(P))throw new J0.SwapKitError("toolbox_near_invalid_address",{recipient:P});if(!H5(i))throw new J0.SwapKitError("toolbox_near_invalid_address",{sender:i});if(f0)return I({...f0,sender:i});if(G0&&!await H())throw new J0.SwapKitError("toolbox_near_no_signer");let Z0=await f(),C0={assetValue:V,attachedDeposit:c,memo:b,provider:Z0,recipient:P,sender:i,sweep:G0};return V.isGasAsset?C(C0):O(C0)}function R(P){let V=P.encode();return Buffer.from(V).toString("base64")}async function I({args:P,attachedDeposit:V,contractId:b,gas:c,methodName:i,sender:f0}){let G0=await j({args:P,attachedDeposit:V,gas:c,methodName:i});return w({actions:[G0],receiverId:b,sender:f0})}async function w({actions:P,receiverId:V,sender:b}){let c=await f(),{publicKey:i,nonce:f0}=await jf(c,b),{createTransaction:G0}=await import("@near-js/transactions"),{baseDecode:Z0}=await import("@near-js/utils"),C0=await c.block({finality:"final"}),A0=Z0(C0.header.hash);return G0(b,i,V,f0+1,P,A0)}async function j(P){let{actionCreators:V}=await import("@near-js/transactions");return V.functionCall(P.methodName,Buffer.from(JSON.stringify(P.args)),BigInt(P.gas),BigInt(P.attachedDeposit))}async function K(P){let V=await H();if(!V)throw new J0.SwapKitError("toolbox_near_no_signer");await $(P);let[b,c]=await V.signTransaction(P);return c}async function $(P){let V=P.publicKey;if(V.toString?.().startsWith("ed25519:")||V.toString?.().startsWith("secp256k1:"))return;let{KeyType:b,PublicKey:c}=await import("@near-js/crypto"),i=V.data||V.ed25519Key?.data,f0=V.secp256k1Key?.data;if(i){P.publicKey=new c({data:Uint8Array.from(i),keyType:b.ED25519});return}if(f0)P.publicKey=new c({data:Uint8Array.from(f0),keyType:b.SECP256K1})}function k(P){if(typeof P==="string")return P;if(Array.isArray(P))return P.map(k).find(Boolean);if(!(P&&typeof P==="object"))return;let V=P;return V.transaction?.hash||V.transaction_outcome?.id}function W(P){return P instanceof Error?P.message:String(P)}async function J(P){let b=await(await f()).sendTransaction(P),c=k(b);if(!c)throw new J0.SwapKitError("toolbox_near_transfer_failed",{result:b});return c}async function Y(P){let V=await H();if(!V)throw new J0.SwapKitError("toolbox_near_no_signer");let b;try{b=await K(P)}catch(c){let i;try{i=V.signAndSendTransaction?await V.signAndSendTransaction({actions:P.actions,receiverId:P.receiverId,signerId:P.signerId}):await V.signAndSendTransactions?.({transactions:[P]})}catch(G0){throw new J0.SwapKitError({errorKey:"toolbox_near_sign_transaction_failed",info:{directSignError:W(c),signAndSendError:W(G0)}},G0)}let f0=k(i);if(f0)return f0;throw c}return J(b)}async function L(P,V){let b=await H();if("assetValue"in P){if(P.sweep&&!b)throw new J0.SwapKitError("toolbox_near_no_signer");try{let[i,f0]=await Promise.all([D(),V?Promise.resolve(V):N()]),{runtime_config:G0}=f0,{execution:Z0,send_sir:C0}=G0.transaction_costs.action_receipt_creation_config,{execution:A0,send_sir:fy}=G0.transaction_costs.action_creation_config.transfer_cost,Ty=BigInt(fy)+BigInt(A0),ry=BigInt(C0)+BigInt(Z0),Ly=Ty+ry,ay=P.sweep?U(i):i,sy=Ly*ay;return J0.AssetValue.from({chain:J0.Chain.Near,value:sy})}catch(i){throw new J0.SwapKitError({errorKey:"toolbox_fee_estimation_failed",info:{chain:J0.Chain.Near,message:W(i)}},i)}}let c=b?await X():void 0;return u(P,c)}async function D(P){let b=await(P||await f()).gasPrice(null);return BigInt(b.gas_price)}async function F(P,V,b){if(!await H())throw new J0.SwapKitError("toolbox_near_no_signer");let i=await X(),{formatNearAmount:f0}=await import("@near-js/utils"),{PublicKey:G0}=await import("@near-js/crypto"),Z0=f0(b)||"0";return(await i.createAccount(P,G0.fromString(V),BigInt(Z0))).transaction.hash}async function x(P){let V=await H();try{if(!V)throw new J0.SwapKitError("toolbox_near_no_signer");let{actionCreators:b}=await import("@near-js/transactions"),{contractId:c,methodName:i,args:f0,deposit:G0}=P,Z0=await X(),C0=await u({args:f0||{},contractId:c,methodName:i}),A0=b.functionCall(i,f0||{},C0.getBaseValue("bigint"),BigInt(G0||"1"));return(await Z0.signAndSendTransaction({actions:[A0],receiverId:c})).transaction_outcome.id}catch(b){throw new J0.SwapKitError("toolbox_near_transfer_failed",{error:b})}}async function A(P){let V=await X();return u2({account:V,changeMethods:P.changeMethods,contractId:P.contractId,viewMethods:P.viewMethods})}async function E(P){if(!await H())throw new J0.SwapKitError("toolbox_near_no_signer");if(P.actions.length===0)throw new J0.SwapKitError("toolbox_near_empty_batch");return(await(await X()).signAndSendTransaction({actions:P.actions,receiverId:P.receiverId})).transaction.hash}async function u(P,V){let b=await L1.match(P).when(S2,()=>v0.SIMPLE_TRANSFER).when(V2,(i)=>h2(i.methodName)).when(A2,(i)=>b2(i.actions)).when(w2,()=>v0.ACCOUNT_CREATION).when(E2,()=>v0.CONTRACT_DEPLOYMENT).when(v2,(i)=>{if(!V)throw new J0.SwapKitError("toolbox_near_no_account");return i.customEstimator(V)}).otherwise(()=>{throw new J0.SwapKitError("toolbox_near_invalid_gas_params")}),c=BigInt(b)*BigInt(1000000000000);return J0.AssetValue.from({chain:J0.Chain.Near,value:c})}function r(P,V){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),u(P,V)}async function Q0(){let P=await f();try{return(await P.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function _0(){let P=await H();return P?(await P.getPublicKey()).toString():""}return{broadcastTransaction:J,callFunction:x,createAction:j,createContract:A,createContractFunctionCall:I,createSubAccount:F,createTransaction:B,estimateGas:r,estimateGasLimit:u,estimateTransactionFee:L,executeBatchTransaction:E,getAddress:Q,getBalance:w0(J0.Chain.Near),getGasPrice:Q0,getNearProvider:f,getPublicKey:_0,getSignerFromPhrase:Pf,getSignerFromPrivateKey:j2,serializeTransaction:R,signAndBroadcastTransaction:Y,signTransaction:K,transfer:M,validateAddress:H5}}var J0,L1,sH=1250000000000000000000n,eH=150000000000000n,Hq=150000000000000n,Xq=250000000000000n,Qq=250000000000000n,Zq=500n,p2=10000n;var m2=h(()=>{Hy();K2();l2();J0=require("@swapkit/helpers"),L1=require("ts-pattern")});var yX=h(()=>{m2()});var g2={};P0(g2,{validateNearAddress:()=>H5,tgasToGas:()=>fq,isSimpleTransfer:()=>S2,isCustomEstimator:()=>v2,isContractDeployment:()=>E2,isContractCall:()=>V2,isBatchTransaction:()=>A2,isAccountCreation:()=>w2,getNearToolbox:()=>qq,getNearSignerFromPrivateKey:()=>j2,getNearSignerFromPhrase:()=>Pf,getFullAccessPublicKey:()=>jf,getContractMethodGas:()=>h2,gasToTGas:()=>Tq,estimateBatchGas:()=>b2,createNearContract:()=>u2,GAS_COSTS:()=>v0});module.exports=V0(g2);var o2=h(()=>{K2();l2();m2();yX()});var n2={};P0(n2,{validateRadixAddress:()=>fX,getRadixToolbox:()=>Wq});module.exports=V0(n2);function fX(y){return y.startsWith("account_rdx1")&&y.length===66}async function Uq({address:y,networkApi:T}){let H=!0,f,X=[],Q=await Jq(T);while(H){let Z={address:y,at_ledger_state:{state_version:Q},cursor:f,limit_per_page:100},q=await T.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:Z});if(X=X.concat(q.items),q.next_cursor)f=q.next_cursor;else H=!1}return X}async function Yq({resources:y,networkApi:T}){let H=[],f=50,X=[];for(let Q=0;Q<y.length;Q+=50)X.push(y.slice(Q,Q+50));for(let Q of X){let Z=Q.map((z)=>z.resource_address),q=await T.state.getEntityDetailsVaultAggregated(Z),U=new Map;for(let z of q)if(z.details!==void 0){let G=z.metadata?.items.find((_)=>_.key==="symbol"),N=G?.value.typed.type==="String"?G.value.typed.value:"?";if(z.details.type==="FungibleResource")U.set(z.address,{decimals:z.details.divisibility,symbol:N})}for(let z of Q)if(z.aggregation_level==="Global"){let G=U.get(z.resource_address)||{decimals:0,symbol:"?"},N=e0.AssetValue.from({asset:G.symbol!==e0.Chain.Radix?`${e0.Chain.Radix}.${G.symbol}-${z.resource_address}`:"XRD.XRD",value:z.amount});H.push(N)}}return H}async function Jq(y){return(await y.status.getCurrent()).ledger_state.state_version}function Wq({dappConfig:y}={}){let T=y||e0.SKConfig.get("integrations").radix,H;async function f(){if(H)return H;let{GatewayApiClient:Q}=await import("@radixdlt/babylon-gateway-api-sdk"),{RadixDappToolkit:Z}=await import("@radixdlt/radix-dapp-toolkit"),q=Z({...T,networkId:T.network?.networkId||1});return H=Q.initialize(q.gatewayApi.clientConfig),H}async function X(Q){let Z=await f(),q=await Uq({address:Q,networkApi:Z}),U=await Yq({networkApi:Z,resources:q});if(!U.some((G)=>G.isGasAsset))return[e0.AssetValue.from({chain:e0.Chain.Radix}),...U];return U}return{getAddress:()=>"",getBalance:X,getNetworkApi:f,signAndBroadcast:()=>{throw new e0.SwapKitError("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:fX}}var e0;var c2=h(()=>{e0=require("@swapkit/helpers")});function Kf(y){return/^[0-9A-Fa-f]{40}$/.test(y)}function dy(y){if(Kf(y))return y.toUpperCase();if(y.length<=3){let H=Buffer.from(y.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${H}${"0".repeat(10)}`.toUpperCase()}let T=Buffer.from(y).toString("hex").toUpperCase();if(T.length>40)throw new TX.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return T.padEnd(40,"0")}function zq(y){if(!Kf(y))return y;if(y.toUpperCase().startsWith("00")){let T=y.slice(24,30);try{let H=Buffer.from(T,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(H)&&H.length>0)return H}catch{}return y.toUpperCase()}try{let T=y.replace(/0+$/,""),H=T.length%2===0?T:`${T}0`,f=Buffer.from(H,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function M1(y){if(Kf(y))return y.toUpperCase();if(y.length<=3)return y;return dy(y)}var TX;var Sf=h(()=>{TX=require("@swapkit/helpers")});async function Gq(y,T){let H=M1(y),f=Af.find((X)=>M1(X.currency)===H&&X.issuer===T);if(f)return f;try{let X=await Vf.RequestClient.get(`https://api.xrplmeta.org/token/${y}:${T}`);if(X)return{currency:y,decimals:15,description:X.desc,domain:X.domain,icon:X.icon,issuer:T,name:X.name,verified:X.self_assessment?.is_regulated||X.self_assessment?.is_licensed}}catch(X){Vf.warnOnce({condition:!0,id:`xrpl_token_lookup_${y}_${T}`,warning:`Failed to fetch XRPL token info for ${y}:${T}: ${X}`})}return{currency:y,decimals:15,issuer:T,verified:!1}}function Lq(y){return Af.filter((T)=>T.issuer===y)}function Mq(y,T){let H=M1(y);return Af.some((f)=>M1(f.currency)===H&&f.issuer===T)}var Vf,Af;var HX=h(()=>{Sf();Vf=require("@swapkit/helpers"),Af=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var i2={};P0(i2,{validateRippleAddress:()=>X5,parseXrplTokenIdentifier:()=>d2,normalizeCurrency:()=>M1,isKnownToken:()=>Mq,isHexCurrency:()=>Kf,hexToCurrency:()=>zq,getXrplTokenInfo:()=>Gq,getRippleToolbox:()=>Cq,getKnownTokensByIssuer:()=>Lq,formatXrplTokenIdentifier:()=>qX,currencyToHex:()=>dy,XRPL_TOKEN_ERROR_CODES:()=>wf,XRPL_KNOWN_TOKENS:()=>Af});module.exports=V0(i2);function XX(y){if(typeof y!=="object"||y===null||!("data"in y))return!1;let{data:T}=y;return typeof T==="object"&&T!==null&&"error_code"in T&&T.error_code===_q.ACCOUNT_NOT_FOUND}function d2(y){let T=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!T?.[1]||!T?.[2])return null;if(!X5(T[2]))return null;return{currency:T[1],issuer:T[2]}}function qX(y,T){return`${s.Chain.Ripple}.${y}-${T}`}async function QX(y){if(y.isGasAsset){let{xrpToDrops:H}=await import("xrpl");return H(y.getValue("string"))}let T=d2(y.toString());if(!T)throw new s.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:T.currency,issuer:T.issuer,value:y.getValue("string")}}function ZX(y){let T,H=()=>{return T??=import("xrpl").then(({Wallet:f})=>f.fromMnemonic(y)),T};return{getAddress:async()=>(await H()).address,signTransaction:async(f)=>(await H()).sign(f)}}function X5(y){return Ef.isValidClassicAddress(y)||Ef.isValidXAddress(y)}function Cq(y={}){let T;async function H(){if(T)return T;return T=await _1.match(y).with({phrase:_1.P.string},({phrase:$})=>ZX($)).with({signer:_1.P.any},({signer:$})=>$).otherwise(()=>{return}),T}let f;async function X(){let $=await s.getRPCUrl(s.Chain.Ripple);if(!$)throw new s.SwapKitError({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:s.Chain.Ripple}});let{Client:k}=await import("xrpl"),W=new k($);return await W.connect(),W}async function Q(){if(f){let $=await f.catch(()=>null);if($?.isConnected())return $}return f=X(),f}async function Z($){let k=await $.request({command:"server_state"}),W=k.result.state.validated_ledger??k.result.state.closed_ledger;if(!W||!Number.isSafeInteger(W.reserve_base)||W.reserve_base<0||!Number.isSafeInteger(W.reserve_inc)||W.reserve_inc<0)throw new s.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{reason:"XRPL reserve data is unavailable or invalid"}});return{baseReserveDrops:BigInt(W.reserve_base),ownerReserveDrops:BigInt(W.reserve_inc)}}let q=async()=>{let $=await H();if(!$)throw new s.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return $.getAddress()},U=async($)=>{let k=$||await q(),{baseDecimal:W}=s.getChainConfig(s.Chain.Ripple),J=await Q();try{let[Y,L]=await Promise.all([J.request({account:k,command:"account_info"}),J.request({account:k,command:"account_lines"})]),D=Y.result.account_data.Balance,F=[s.AssetValue.from({chain:s.Chain.Ripple,fromBaseDecimal:W,value:D})];for(let x of L.result.lines){let A=qX(x.currency,x.account);if(Number.parseFloat(x.balance)!==0)F.push(s.AssetValue.from({asset:A,asyncTokenLookup:!1,value:x.balance}))}return F}catch(Y){if(XX(Y))return[s.AssetValue.from({chain:s.Chain.Ripple,value:0})];throw new s.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{address:k,error:Y}})}},z=async()=>{let{baseDecimal:$}=s.getChainConfig(s.Chain.Ripple),J=(await(await Q()).request({command:"fee"})).result.drops.open_ledger_fee;return s.AssetValue.from({chain:s.Chain.Ripple,fromBaseDecimal:$,value:J})};async function G($){let k=$||await q(),W=await Q();try{return(await W.request({account:k,command:"account_lines"})).result.lines.map((Y)=>({account:Y.account,authorized:Y.authorized??!1,balance:Y.balance,currency:Y.currency,freeze:Y.freeze??!1,freezePeer:Y.freeze_peer??!1,limit:Y.limit,limitPeer:Y.limit_peer,noRipple:Y.no_ripple??!1,noRipplePeer:Y.no_ripple_peer??!1,peerAuthorized:Y.peer_authorized??!1,qualityIn:Y.quality_in??0,qualityOut:Y.quality_out??0}))}catch(J){if(XX(J))return[];throw new s.SwapKitError({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:k,error:J}})}}async function N({address:$,currency:k,issuer:W}){let J=await G($),Y=dy(k);return J.some((L)=>{return dy(L.currency)===Y&&L.account===W})}async function _({currency:$,issuer:k,limit:W,sender:J}){let Y=J||await q();if(!X5(k))throw new s.SwapKitError({errorKey:"core_transaction_invalid_recipient_address",info:{address:k}});let L=Number.parseFloat(W);if(Number.isNaN(L)||L<0)throw new s.SwapKitError({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:W}});let D=await Q(),F={Account:Y,LimitAmount:{currency:$,issuer:k,value:W},TransactionType:"TrustSet"};return D.autofill(F)}async function M($,k){let[W,J,Y]=await Promise.all([$.request({account:k,command:"account_info"}),Z($),z()]),{Balance:L,OwnerCount:D}=W.result.account_data,F=Y.getBaseValue("bigint"),x=BigInt(L)-J.baseReserveDrops-BigInt(D)*J.ownerReserveDrops-F;if(x<=0n)throw new s.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:s.Chain.Ripple,balance:L,baseReserve:J.baseReserveDrops.toString(),fee:F.toString(),ownerCount:D,ownerReserve:J.ownerReserveDrops.toString()}});let{baseDecimal:A}=s.getChainConfig(s.Chain.Ripple),E=s.AssetValue.from({chain:s.Chain.Ripple,fromBaseDecimal:A,value:x.toString()});return{amount:await QX(E),fee:F.toString()}}async function O($,k){let W=d2($.toString());if(!W)throw new s.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:$.toString()}});let J=await Q(),Y="0",L;while(!0){let D=await J.request({account:k,command:"account_lines",peer:W.issuer,...L!==void 0&&{marker:L}}),F=D.result.lines.find((A)=>A.account===W.issuer&&dy(A.currency)===dy(W.currency));if(F){Y=F.balance;break}let x=D.result.marker;if(x===void 0||x===null)break;L=x}if(!Number.isFinite(Number(Y))||Number(Y)<=0)throw new s.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:$.toString(),balance:Y}});return{currency:W.currency,issuer:W.issuer,value:Y}}async function C({assetValue:$,recipient:k,memo:W,sender:J,sweep:Y,destinationTag:L,extendBySeconds:D=150}){if(!X5(k))throw new s.SwapKitError({errorKey:"core_transaction_invalid_recipient_address"});let F=J||await q();if($.chain!==s.Chain.Ripple)throw new s.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:$.toString()}});let x=Y&&$.isGasAsset?await M(await Q(),F):void 0,A=x?x.amount:Y?await O($,F):await QX($),E={Account:F,Amount:A,Destination:k,TransactionType:"Payment",...x&&{Fee:x.fee},...L!==void 0&&{DestinationTag:L}};if(W)E.Memos=[{Memo:{MemoData:Buffer.from(W).toString("hex")}}];let r=await(await Q()).autofill(E);if(r.LastLedgerSequence&&D>0)r.LastLedgerSequence+=Math.ceil(D/4);return r}async function B($){let k=await H();if(!k)throw new s.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return k.signTransaction($)}async function R($){let W=await(await Q()).submitAndWait($),{result:J}=W;if(J.validated)return J.hash;let Y=J.meta?.TransactionResult,L=_1.match(Y).with(wf.tecNO_LINE,()=>"No trust line exists for this token").with(wf.tecPATH_DRY,()=>"Payment path could not deliver funds").with(wf.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new s.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:s.Chain.Ripple,...L?{reason:L}:{txResult:Y}}})}let I=async($)=>{try{let k=await B($);return R(k.tx_blob)}catch(k){if(k instanceof s.SwapKitError)throw k;throw new s.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:s.Chain.Ripple,error:k}})}};async function w({assetValue:$,memo:k,recipient:W,sweep:J}){let Y=await H();if(!Y)throw new s.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let L=await Y.getAddress(),D=await C({assetValue:$,memo:k,recipient:W,sender:L,sweep:J}),F=await B(D);return R(F.tx_blob)}async function j($){let k=await H();if(!k)throw new s.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let W=await k.getAddress(),J=await _({...$,sender:W}),Y=await B(J);return R(Y.tx_blob)}function K(){let $=f;if(f=null,$)$.then((k)=>{if(k?.isConnected())return k.disconnect();return}).catch((k)=>{console.warn("XRPL Cleanup failed silently:",k)})}return{broadcastTransaction:R,createSigner:ZX,createTransaction:C,disconnect:K,estimateTransactionFee:z,getAddress:q,getBalance:U,getTrustLines:G,hasTrustLine:N,setTrustLine:_,setTrustLineAndBroadcast:j,signAndBroadcastTransaction:I,signTransaction:B,transfer:w,validateAddress:X5}}var s,Ef,_1,_q,wf;var t2=h(()=>{Sf();s=require("@swapkit/helpers"),Ef=require("ripple-address-codec"),_1=require("ts-pattern");Sf();HX();_q={ACCOUNT_NOT_FOUND:19};wf={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});function r2(y,T){let H=0n,f=0n,X=T;while(X<y.length&&X-T<10){let Q=y[X++];if(Q===void 0)break;if(H|=BigInt(Q&127)<<f,f+=7n,(Q&128)===0)return[H,X]}throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed")}function Q5(y){let T=[],H=y<0n?y+2n**64n:y;while(H>=128n)T.push(Number(H&0x7fn)|128),H>>=7n;return T.push(Number(H)),T}function vf(y,T,H){let f=y.get(T);if(f)f.push(H);else y.set(T,[H])}function kq(y){let T=new Map,H=0;while(H<y.length){let[f,X]=r2(y,H);H=X;let Q=Number(f>>3n),Z=Number(f&7n);if(Z===bf){let[q,U]=r2(y,H);H=U,vf(T,Q,{data:new Uint8Array(Q5(q)),wireType:bf})}else if(Z===hf){let[q,U]=r2(y,H);H=U;let z=Number(q);if(z<0||H+z>y.length)throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed");let G=y.slice(H,H+z);H+=z,vf(T,Q,{data:G,wireType:hf})}else if(Z===UX){if(H+8>y.length)throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed");let q=y.slice(H,H+8);H+=8,vf(T,Q,{data:q,wireType:UX})}else if(Z===YX){if(H+4>y.length)throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed");let q=y.slice(H,H+4);H+=4,vf(T,Q,{data:q,wireType:YX})}else throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed")}return T}function Bq(y){let T=[];for(let[Q,Z]of[...y.entries()].sort(([q],[U])=>q-U))for(let{wireType:q,data:U}of Z){let z=BigInt(Q<<3|q);if(T.push(new Uint8Array(Q5(z))),q===hf)T.push(new Uint8Array(Q5(BigInt(U.length))));T.push(U)}let H=T.reduce((Q,Z)=>Q+Z.length,0),f=new Uint8Array(H),X=0;for(let Q of T)f.set(Q,X),X+=Q.length;return f}function WX(y,T){if(!y||y.length%2!==0)throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed");let H=C1.hexToBytes(y),f=kq(H);if(T.expiration!==void 0)f.set(Oq,[{data:new Uint8Array(Q5(BigInt(T.expiration))),wireType:bf}]);if(T.data!==void 0)f.set($q,[{data:C1.hexToBytes(T.data),wireType:hf}]);if(T.fee_limit!==void 0)f.set(Nq,[{data:new Uint8Array(Q5(BigInt(T.fee_limit))),wireType:bf}]);let X=Bq(f),Q=C1.bytesToHex(X),Z=C1.bytesToHex(JX.sha256(X));return{raw_data_hex:Q,txID:Z}}var JX,C1,iy,bf=0,UX=1,hf=2,YX=5,Oq=8,$q=10,Nq=18;var zX=h(()=>{JX=require("@noble/hashes/sha2.js"),C1=require("@noble/hashes/utils.js"),iy=require("@swapkit/helpers")});function yy(y){if(typeof y!=="string")return!1;try{let T=lf.decode(y);return T.length===21&&T[0]===MX}catch{return!1}}function _X(y){return t0.bytesToHex(lf.decode(y))}function Fq(y){return lf.decode(y).slice(1)}function CX(y){let T=a2.secp256k1.getPublicKey(t0.hexToBytes(y),!1),H=GX.keccak_256(T.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=MX,f.set(H,1),lf.encode(f)}function OX({txID:y,privateKey:T}){let H=a2.secp256k1.sign(t0.hexToBytes(y),t0.hexToBytes(T),{format:"recovered",prehash:!1}),f=H[0]??0,X=t0.bytesToHex(H.slice(1,33)),Q=t0.bytesToHex(H.slice(33,65)),Z=(f+27).toString(16).padStart(2,"0");return X+Q+Z}function O1({txID:y,raw_data_hex:T}){let H=t0.bytesToHex(s2.sha256(t0.hexToBytes(T)));if(y!==H)throw new e2.SwapKitError("toolbox_tron_invalid_transaction_integrity",{expected:H,txID:y})}function Rq(y){return`000000000000000000000000${t0.bytesToHex(Fq(y))}`}function xq(y){let T=typeof y==="bigint"?y:BigInt(y);if(T<0n||T>=Dq)throw new e2.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:T.toString()});return T.toString(16).padStart(64,"0")}function $1(y){return y.map(({type:T,value:H})=>T==="address"?Rq(H):xq(BigInt(H))).join("")}function $X(y){return t0.bytesToHex(new TextEncoder().encode(y))}var a2,s2,GX,t0,LX,e2,lf,MX=65,Dq;var yT=h(()=>{a2=require("@noble/curves/secp256k1.js"),s2=require("@noble/hashes/sha2.js"),GX=require("@noble/hashes/sha3.js"),t0=require("@noble/hashes/utils.js"),LX=require("@scure/base"),e2=require("@swapkit/helpers"),lf=LX.createBase58check(s2.sha256),Dq=2n**256n});function BX(){try{return k0.getRPCUrlSync(k0.Chain.Tron)}catch{return kX}}function DX(){let y=new AbortController,T=setTimeout(()=>y.abort(),Sq);return{cleanup:()=>clearTimeout(T),signal:y.signal}}async function ty(y,T){let{signal:H,cleanup:f}=DX();try{let X=await fetch(`${BX()}${y}`,{body:JSON.stringify(T),headers:{"Content-Type":"application/json"},method:"POST",signal:H});if(!X.ok)throw new k0.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${X.status} ${X.statusText} on ${y}`});return await X.json()}finally{f()}}async function FX(y,T){let{signal:H,cleanup:f}=DX();try{let X=await fetch(`${T??BX()}${y}`,{headers:{"Content-Type":"application/json"},signal:H});if(!X.ok)throw new k0.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${X.status} ${X.statusText} on ${y}`});return await X.json()}finally{f()}}async function uf(y){if(!yy(y))throw new k0.SwapKitError("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let T=await FX(`/v1/accounts/${y}`,kX);if(!(T.success&&T.data)||T.data.length===0)return;let H;try{H=_X(y).toLowerCase()}catch{H=y.toLowerCase()}let f=T.data.find((X)=>X.address.toLowerCase()===H);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(T){if(T instanceof k0.SwapKitError)throw T;throw new k0.SwapKitError("toolbox_tron_trongrid_api_error",{address:y,message:T instanceof Error?T.message:"Unknown error"})}}async function RX({from:y,to:T,amount:H}){let X=await ty("/wallet/createtransaction",{amount:H,owner_address:y,to_address:T,visible:!0});if(!X.txID||!X.raw_data_hex||!X.raw_data)throw new k0.SwapKitError("toolbox_tron_transaction_creation_failed");let Z=X.raw_data?.contract?.[0]?.parameter?.value;if(Z?.to_address!==T||Z?.owner_address!==y||Z?.amount!==H)throw new k0.SwapKitError("toolbox_tron_transaction_creation_failed");return O1(X),X}async function xX({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f,feeLimit:X,callValue:Q=0}){let Z=await ty("/wallet/triggersmartcontract",{call_value:Q,contract_address:T,fee_limit:X,function_selector:H,owner_address:y,parameter:f,visible:!0});if(!Z.result.result||!Z.transaction?.txID||!Z.transaction?.raw_data_hex)throw new k0.SwapKitError("toolbox_tron_transaction_creation_failed");let U=Z.transaction.raw_data?.contract?.[0]?.parameter?.value;if(U?.contract_address!==T||U?.owner_address!==y)throw new k0.SwapKitError("toolbox_tron_transaction_creation_failed");return O1(Z.transaction),Z.transaction}function IX({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return ty("/wallet/triggerconstantcontract",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}function Vq({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return ty("/wallet/estimateenergy",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}function NX(y){let T=typeof y==="number"?y:typeof y==="string"?Number(y):Number.NaN;return Number.isFinite(T)&&T>0?T:void 0}async function Z5(y){try{let{result:T,txid:H}=await ty("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!T||!H)throw new k0.SwapKitError("toolbox_tron_token_transfer_failed");return H}catch(T){throw new k0.SwapKitError("toolbox_tron_broadcast_failed",{error:T})}}async function q5(){let y={};try{let{chainParameter:T}=await FX("/wallet/getchainparameters");for(let H of T)y[H.key]=H.value}catch(T){k0.warnOnce({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${T instanceof Error?T.message:T}`})}return{bandwidthFee:y.getTransactionFee??Iq,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??Pq,energyFee:y.getEnergyFee??jq,memoFee:y.getMemoFee??Kq}}async function fT(y){try{let T=await ty("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(T.freeNetLimit??600)-(T.freeNetUsed??0),total:T.NetLimit??0,used:T.NetUsed??0},energy:{total:T.EnergyLimit??0,used:T.EnergyUsed??0}}}catch(T){return k0.warnOnce({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${T instanceof Error?T.message:T}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function U5(y){try{let T=await ty("/wallet/getaccount",{address:y,visible:!0});return T&&Object.keys(T).length>0}catch{return!1}}async function TT(y){try{let T=await Vq({...y,ownerAddress:y.sender}),H=T.energy_required??T.energyRequired;if(T.result&&!T.result.result)throw new k0.SwapKitError("toolbox_tron_trongrid_api_error",{message:T.result.message||"estimateenergy failed"});if(H!==void 0){let f=NX(H);if(f!==void 0)return f;throw new k0.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(T){k0.warnOnce({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${T instanceof Error?T.message:T}`})}try{let{energy_used:T}=await IX({...y,ownerAddress:y.sender}),H=NX(T);if(H!==void 0)return H;throw new k0.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid triggerconstantcontract energy response"})}catch(T){throw k0.warnOnce({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy: ${T instanceof Error?T.message:T}`}),new k0.SwapKitError("toolbox_tron_trongrid_api_error",{message:`Unable to estimate contract energy: ${T instanceof Error?T.message:T}`})}}async function PX({assetAddress:y,owner:T,spender:H}){let f=$1([{type:"address",value:T},{type:"address",value:H}]),Q=(await IX({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:H,parameter:f})).constant_result?.[0];if(!Q)return 0n;try{return BigInt(`0x${Q}`)}catch{return 0n}}var k0,kX="https://api.trongrid.io",Iq=1000,Pq=1e6,jq=420,Kq=1e6,Sq=30000;var jX=h(()=>{yT();k0=require("@swapkit/helpers")});function hX({phrase:y,derivationPath:T}){let H=EX.HDKey.fromMasterSeed(vX.mnemonicToSeedSync(y)).derive(T);if(!H.privateKey)throw new m.SwapKitError("toolbox_tron_no_signer");return wX.bytesToHex(H.privateKey)}function lX(y,T){return{...y,value:String(T)}}function uX(y,T){if(!T)return y;return{...y,data:T.startsWith("0x")?T:`0x${T}`}}function pX({phrase:y,derivationPath:T,index:H}){let f=T||m.derivationPathToString(m.updateDerivationPath(m.NetworkDerivationPath[m.Chain.Tron],{index:H||0}));return hX({derivationPath:f,phrase:y})}function wq({phrase:y,derivationPath:T}){let H=hX({derivationPath:T,phrase:y}),f=CX(H);return{getAddress:()=>Promise.resolve(f),signTransaction:(X)=>{O1(X);let Q=OX({privateKey:H,txID:X.txID});return Promise.resolve({...X,signature:[Q]})}}}function AX({transaction:y,memo:T,expiration:H,feeLimit:f}){let X={},Q={};if(f!==void 0&&y.raw_data)X.fee_limit=f,Q.fee_limit=f;if(T){let U=T.startsWith("0x")?T.replace(/^0x/,""):$X(T);X.data=U,Q.data=U}if(H){let U=y.raw_data.expiration+H*1000;X.expiration=U,Q.expiration=U}if(Object.keys(X).length===0)return y;let{raw_data_hex:Z,txID:q}=WX(y.raw_data_hex,X);return{...y,raw_data:{...y.raw_data,...Q},raw_data_hex:Z,txID:q}}function mX(y={}){let T="index"in y?y.index||0:0,H=m.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:m.updateDerivationPath(m.NetworkDerivationPath[m.Chain.Tron],{index:T})),f,X=!1;function Q(){if(X)return Promise.resolve(f);return f=N1.match(y).with({phrase:N1.P.string},({phrase:W})=>wq({derivationPath:H,phrase:W})).with({signer:N1.P.not(N1.P.nullish)},({signer:W})=>W).otherwise(()=>{return}),X=!0,Promise.resolve(f)}async function Z(){let W=await Q();if(!W)throw new m.SwapKitError("toolbox_tron_no_signer");return W.getAddress()}async function q(W,J){let Y=W||SX,L=J??(await q5()).energyFee,D=Y*L,F=Math.ceil(D*1.5);return Math.min(Math.max(F,1e7),150000000)}async function U({contractAddress:W,functionSelector:J,parameter:Y,sender:L,memo:D,expiration:F,extraEnergy:x=0}){let A=await TT({contractAddress:W,functionSelector:J,parameter:Y,sender:L}),E=await q(A+x),u=await xX({contractAddress:W,feeLimit:E,functionSelector:J,ownerAddress:L,parameter:Y});return AX({expiration:F,feeLimit:E,memo:D,transaction:u})}async function z(W){if(!yy(W))return[m.AssetValue.from({chain:m.Chain.Tron})];try{let J=await uf(W);if(!J)return[m.AssetValue.from({chain:m.Chain.Tron})];let Y=[m.AssetValue.from({chain:m.Chain.Tron,fromBaseDecimal:6,value:String(J.balance)})],L=J.trc20?.find((D)=>(XT in D));if(L){let D=L[XT];Y.push(m.AssetValue.from({asset:`TRON.USDT-${XT}`,fromBaseDecimal:6,value:D}))}return Y}catch(J){return m.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${J instanceof Error?J.message:J}`}),[m.AssetValue.from({chain:m.Chain.Tron})]}}async function G({recipient:W,assetValue:J,memo:Y,expiration:L,sweep:D}){if(!yy(W))throw new m.SwapKitError("toolbox_tron_token_transfer_failed",{message:"invalid address"});let F=await Q();if(!F)throw new m.SwapKitError("toolbox_tron_no_signer");try{let x=await Z(),A=await I({assetValue:J,expiration:L,memo:Y,recipient:W,sender:x,sweep:D}),E=await F.signTransaction(A),u=await Z5(E);if(!u)throw new m.SwapKitError("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return u}catch(x){if(x instanceof m.SwapKitError&&x.errorKey==="toolbox_sweep_amount_too_low")throw x;throw new m.SwapKitError("toolbox_tron_token_transfer_failed",{message:x instanceof Error?x.message:String(x)})}}function N({requiredBandwidth:W,resources:J,feePerUnit:Y}){let L=Math.max(0,J.free+J.total-J.used);return W>L?(W-L)*Y:0}async function _({memo:W,recipient:J,senderAddress:Y}){let[L,D,F]=await Promise.all([q5(),U5(J),fT(Y)]),x=D?0:L.createAccountFee,A=N({feePerUnit:L.bandwidthFee,requiredBandwidth:KX,resources:F.bandwidth}),E=W?L.memoFee:0;return m.AssetValue.from({chain:m.Chain.Tron,fromBaseDecimal:m.BaseDecimal.TRON,value:x+A+E})}async function M({assetValue:W,amountInBaseUnits:J=W.getBaseValue("string"),memo:Y,recipient:L,senderAddress:D}){let F=W.address;if(!F)throw new m.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:W.toString()});let[x,A,E,u]=await Promise.all([q5(),U5(L),fT(D),TT({contractAddress:F,functionSelector:"transfer(address,uint256)",parameter:$1([{type:"address",value:L},{type:"uint256",value:J}]),sender:D})]),Q0=u+(A?0:HT),_0=N({feePerUnit:x.bandwidthFee,requiredBandwidth:VX,resources:E.bandwidth}),P=Math.max(0,E.energy.total-E.energy.used),V=Q0>P?(Q0-P)*x.energyFee:0,b=Y?x.memoFee:0;return m.AssetValue.from({chain:m.Chain.Tron,fromBaseDecimal:m.BaseDecimal.TRON,value:_0+V+b})}async function O({assetValue:W,memo:J,recipient:Y}){let[L,D]=await Promise.all([q5(),U5(Y)]);if(W.isGasAsset){let E=D?0:L.createAccountFee,u=J?L.memoFee:0;return m.AssetValue.from({chain:m.Chain.Tron,fromBaseDecimal:m.BaseDecimal.TRON,value:E+KX*L.bandwidthFee+u})}let x=await q(SX+(D?0:HT),L.energyFee),A=J?L.memoFee:0;return m.AssetValue.from({chain:m.Chain.Tron,fromBaseDecimal:m.BaseDecimal.TRON,value:x+VX*L.bandwidthFee+A})}async function C({assetValue:W,memo:J,recipient:Y,sender:L}){let D=await Q();try{let F=L?L:D?await Z():void 0;if(!F)return O({assetValue:W,memo:J,recipient:Y});return W.isGasAsset?_({memo:J,recipient:Y,senderAddress:F}):M({assetValue:W,memo:J,recipient:Y,senderAddress:F})}catch(F){throw m.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${F instanceof Error?F.message:F}`}),new m.SwapKitError("toolbox_fee_estimation_failed",{chain:m.Chain.Tron,error:F})}}async function B({assetValue:W,memo:J,recipient:Y,sender:L,sweep:D}){if(!D)return W.getBaseValue("bigint");let[F,x]=await Promise.all([uf(L),_({memo:J,recipient:Y,senderAddress:L})]),A=BigInt(F?.balance??0)-x.getBaseValue("bigint");if(A<=0n)throw new m.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amount:A.toString(),asset:W.toString()}});return A}async function R({assetValue:W,memo:J,recipient:Y,sender:L,sweep:D}){if(!D)return W.getBaseValue("string");let F=W.address;if(!F)throw new m.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:W.toString()});let x=await uf(L),E=x?.trc20.find((_0)=>(F in _0))?.[F]??"0";if(BigInt(E)<=0n)throw new m.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:W.toString(),balance:E}});let u=await M({amountInBaseUnits:E,assetValue:W,memo:J,recipient:Y,senderAddress:L}),r=BigInt(x?.balance??0),Q0=u.getBaseValue("bigint");if(r<Q0)throw new m.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:W.toString(),nativeBalance:r.toString(),requiredNativeFee:Q0.toString()}});return E}async function I({recipient:W,assetValue:J,memo:Y,sender:L,expiration:D,sweep:F}){if(!yy(W)||!yy(L))throw new m.SwapKitError("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(J.isGasAsset){let u=await B({assetValue:J,expiration:D,memo:Y,recipient:W,sender:L,sweep:F});if(u>BigInt(Number.MAX_SAFE_INTEGER))throw new m.SwapKitError({errorKey:"toolbox_tron_transaction_creation_failed",info:{amount:u.toString(),reason:`Native transfer amount exceeds the safe integer limit of ${Number.MAX_SAFE_INTEGER} SUN`}});let r=await RX({amount:Number(u),from:L,to:W});return AX({expiration:D,memo:Y,transaction:r})}let x=J.address;if(!x)throw new m.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:J.toString()});let A=await R({assetValue:J,expiration:D,memo:Y,recipient:W,sender:L,sweep:F}),E=await U5(W);return U({contractAddress:x,expiration:D,extraEnergy:E?0:HT,functionSelector:"transfer(address,uint256)",memo:Y,parameter:$1([{type:"address",value:W},{type:"uint256",value:A}]),sender:L})}async function w(W){O1(W);let J=await Q();if(!J)throw new m.SwapKitError("toolbox_tron_no_signer");return J.signTransaction(W)}async function j(W){let J=await w(W);return Z5(J)}function K({assetAddress:W,spenderAddress:J,from:Y}){return PX({assetAddress:W,owner:Y,spender:J})}async function $({assetAddress:W,spenderAddress:J,from:Y,amount:L}){let D=await K({assetAddress:W,from:Y,spenderAddress:J});if(!L)return D>0n;return D>=BigInt(L)}async function k({assetAddress:W,spenderAddress:J,amount:Y,from:L}){if(!yy(W)||!yy(J))throw new m.SwapKitError("toolbox_tron_approve_failed");let D=await Q();if(!D)throw new m.SwapKitError("toolbox_tron_no_signer");let F=L||await Z(),x=Y!==void 0?BigInt(Y).toString():Aq;try{let A=await U({contractAddress:W,functionSelector:"approve(address,uint256)",parameter:$1([{type:"address",value:J},{type:"uint256",value:x}]),sender:F}),E=await D.signTransaction(A),u=await Z5(E);if(!u)throw new m.SwapKitError("toolbox_tron_approve_failed");return u}catch(A){if(A instanceof m.SwapKitError)throw A;throw new m.SwapKitError("toolbox_tron_approve_failed",{error:A})}}return{approve:k,broadcastTransaction:Z5,createTransaction:I,estimateTransactionFee:C,getAddress:Z,getApprovedAmount:K,getBalance:z,getRpcUrl:()=>m.getRPCUrl(m.Chain.Tron),isApproved:$,signAndBroadcastTransaction:j,signTransaction:w,transfer:G,validateAddress:yy}}var wX,EX,vX,m,N1,bX,KX=268,SX=65000,HT=25000,VX=345,XT="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",Aq="115792089237316195423570985008687907853269984665640564039457584007913129639935";var gX=h(()=>{zX();jX();yT();wX=require("@noble/hashes/utils.js"),EX=require("@scure/bip32"),vX=require("@scure/bip39"),m=require("@swapkit/helpers"),N1=require("ts-pattern"),bX=yy});var QT={};P0(QT,{withTronTransactionValue:()=>lX,withTronTransactionData:()=>uX,validateTronAddress:()=>bX,getTronToolbox:()=>mX,getTronPrivateKeyFromMnemonic:()=>pX});module.exports=V0(QT);var ZT=h(()=>{gX()});async function oX(y){if(pf&&Date.now()-pf.timestamp<bq)return pf.value;let H=(await y.ledgers().order("desc").limit(1).call()).records[0]?.base_reserve_in_stroops;if(H===void 0)throw new d.SwapKitError({errorKey:"toolbox_stellar_balance_error",info:{reason:"base_reserve_unavailable"}});return pf={timestamp:Date.now(),value:H},H}function qT(y){return d.AssetValue.from({chain:d.Chain.Stellar,value:y}).getBaseValue("bigint")}function hq(y){let{baseDecimal:T}=d.getChainConfig(d.Chain.Stellar);return d.AssetValue.from({chain:d.Chain.Stellar,fromBaseDecimal:T,value:y}).getValue("string")}function dX({balance:y,baseReserveInStroops:T,numSponsored:H,numSponsoring:f,sellingLiabilities:X,subentryCount:Q}){let Z=qT(y),q=qT(X),U=cX+Q+f-H,z=BigInt(U)*BigInt(T),G=Z-z-q;return G>0n?G:0n}function lq({account:y,assetValue:T,baseReserveInStroops:H,fee:f}){let X=y.balances.find((q)=>q.asset_type==="native"),Z=(X?dX({balance:X.balance,baseReserveInStroops:H,numSponsored:y.num_sponsored,numSponsoring:y.num_sponsoring,sellingLiabilities:X.selling_liabilities,subentryCount:y.subentry_count}):0n)-BigInt(f);if(Z<=0n)throw new d.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:T.toString(),reason:"spendable balance does not cover the transaction fee"}});return Z}function uq({baseReserveInStroops:y,sweepAmountInStroops:T}){if(T===void 0||y===void 0)return;let H=BigInt(cX)*BigInt(y);if(T<H)throw new d.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amountInStroops:T,minimumStartingBalanceInStroops:H,reason:"starting balance is below the Stellar account minimum"}})}function pq({account:y,assetCode:T,assetValue:H,issuer:f,sweep:X}){if(!X)return H.getValue("string");let Q=y.balances.find((Z)=>("asset_code"in Z)&&Z.asset_code===T&&Z.asset_issuer===f)?.balance??"0";if(qT(Q)<=0n)throw new d.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:H.toString(),balance:Q,reason:"trust-line balance is not positive"}});return Q}function mq(y){if(!y)return;if(new TextEncoder().encode(y).length>28)throw new d.SwapKitError("helpers_invalid_memo_type")}function gf(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return Eq.test(y)}function UT(y){if(typeof y!=="object"||y===null)return;let T="response"in y?y.response:void 0;return typeof T?.status==="number"?T.status:void 0}function gq(y){return UT(y)===504}function oq(y){return y.hash?.().toString("hex")}function nq(y){return[...new Set([y,...d.SKConfig.get("rpcUrls")[d.Chain.Stellar]])].filter(Boolean)}async function iX(y){if(!gf(y))return!1;try{let{StrKey:T}=await import("@stellar/stellar-sdk");return T.isValidEd25519PublicKey(y)}catch{return!1}}async function nX(y){let{address:T,ticker:H}=y,f=T?await iX(T):!1;if(y.chain!==d.Chain.Stellar||y.isGasAsset||!vq.test(H)||!T||!f)throw new d.SwapKitError({errorKey:"helpers_invalid_asset_identifier",info:{identifier:y.toString()}});return{assetCode:H,issuer:T}}function tX(y={}){let T,H=y.derivationPath||d.NetworkDerivationPath[d.Chain.Stellar],f=d.derivationPathToString(H.slice(0,3));async function X({phrase:j,path:K}){let{HDKey:$}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:k}=await import("@scure/bip39"),{Keypair:W}=await import("@stellar/stellar-sdk"),J=k(j),L=$.fromMasterSeed(J).derive(K,!0);return W.fromRawEd25519Seed(Buffer.from(L.privateKey))}async function Q(){if(T)return T;let j=mf.match(y).with({phrase:mf.P.string},({phrase:K})=>K).otherwise(()=>{return});if(!j)throw new d.SwapKitError("toolbox_stellar_no_signer");return T=await X({path:f,phrase:j}),T}async function Z(j){let{Horizon:K}=await import("@stellar/stellar-sdk"),$=j||await d.getRPCUrl(d.Chain.Stellar);return new K.Server($)}async function q(j,K){for(let $ of K)try{return(await(await Z($)).transactions().transaction(j).call()).hash||j}catch{}return}async function U(j,K){let $=await d.getRPCUrl(d.Chain.Stellar),k=nq($),W=oq(j),J;for(let Y of k)try{let L=await Z(Y),{hash:D}=await L.submitTransaction(j);return D}catch(L){if(J=L,!gq(L))break;let D=W?await q(W,k):void 0;if(D)return D}throw new d.SwapKitError(K,J)}async function z(){try{return(await Q()).publicKey()}catch{return""}}async function G(j){let K=j||await z();if(!K)throw new d.SwapKitError("toolbox_stellar_account_not_found");let $=await Z(),[k,W]=await Promise.allSettled([$.loadAccount(K),oX($)]);if(k.status==="rejected"){let J=k.reason;if(UT(J)===404)return[d.AssetValue.from({chain:d.Chain.Stellar,value:0})];throw J}if(W.status==="rejected")throw W.reason;return k.value.balances.map((J)=>{if(J.asset_type==="native"){let D=dX({balance:J.balance,baseReserveInStroops:W.value,numSponsored:k.value.num_sponsored,numSponsoring:k.value.num_sponsoring,sellingLiabilities:J.selling_liabilities,subentryCount:k.value.subentry_count}),{baseDecimal:F}=d.getChainConfig(d.Chain.Stellar);return d.AssetValue.from({chain:d.Chain.Stellar,fromBaseDecimal:F,value:D})}let Y="asset_code"in J?J.asset_code:"",L="asset_issuer"in J?J.asset_issuer:"";return d.AssetValue.from({asset:`${d.Chain.Stellar}.${Y}-${L}`,asyncTokenLookup:!1,value:J.balance})})}async function N({address:j,assetValue:K}){if(K.chain!==d.Chain.Stellar)throw new d.SwapKitError({errorKey:"toolbox_stellar_trustline_asset_invalid",info:{asset:K.toString()}});if(K.isGasAsset)return!0;if(!K.address)throw new d.SwapKitError({errorKey:"toolbox_stellar_trustline_asset_invalid",info:{asset:K.toString(),reason:"missing issuer"}});let $=await Z(),k;try{k=await $.loadAccount(j)}catch(W){if(UT(W)===404)return!1;throw W}return k.balances.some((W)=>("asset_code"in W)&&W.asset_code===K.ticker&&W.asset_issuer===K.address)}async function _({recipient:j,assetValue:K,memo:$,sender:k,sweep:W}){if(mq($),!await iX(j))throw new d.SwapKitError("core_transaction_invalid_recipient_address");let Y=k||await z();if(!Y)throw new d.SwapKitError("toolbox_stellar_no_signer");let{Asset:L,Memo:D,Networks:F,Operation:x,TransactionBuilder:A}=await import("@stellar/stellar-sdk"),E=await Z(),u=await E.fetchBaseFee(),r=await E.loadAccount(Y),Q0=W&&K.isGasAsset?await oX(E):void 0,_0=new A(r,{fee:String(u),networkPassphrase:F.PUBLIC});if(K.isGasAsset){let V=W&&Q0!==void 0?lq({account:r,assetValue:K,baseReserveInStroops:Q0,fee:u}):void 0,b=V===void 0?K.getValue("string"):hq(V);try{await E.loadAccount(j),_0.addOperation(x.payment({amount:b,asset:L.native(),destination:j}))}catch{uq({baseReserveInStroops:Q0,sweepAmountInStroops:V}),_0.addOperation(x.createAccount({destination:j,startingBalance:b}))}}else{let{assetCode:V,issuer:b}=await nX(K),c=pq({account:r,assetCode:V,assetValue:K,issuer:b,sweep:W});_0.addOperation(x.payment({amount:c,asset:new L(V,b),destination:j}))}if($)_0.addMemo(D.text($));return _0.setTimeout(30).build()}async function M({assetValue:j,limit:K,sender:$}){let k=$||await z();if(!k)throw new d.SwapKitError("toolbox_stellar_no_signer");let{Asset:W,Networks:J,Operation:Y,TransactionBuilder:L}=await import("@stellar/stellar-sdk"),{assetCode:D,issuer:F}=await nX(j),x=await Z(),[A,E]=await Promise.all([x.fetchBaseFee(),x.loadAccount(k)]),u=new W(D,F),r=K!==void 0?Y.changeTrust({asset:u,limit:K}):Y.changeTrust({asset:u});return new L(E,{fee:String(A),networkPassphrase:J.PUBLIC}).addOperation(r).setTimeout(30).build()}async function O(j){let{TransactionBuilder:K,Networks:$}=await import("@stellar/stellar-sdk"),k=await Q(),W=K.fromXDR(j.toXDR(),$.PUBLIC);return W.sign(k),W}function C(j){return U(j,"toolbox_stellar_broadcast_error")}async function B({recipient:j,assetValue:K,memo:$,sweep:k}){let W=await Q(),J=W.publicKey(),Y=await _({assetValue:K,memo:$,recipient:j,sender:J,sweep:k});return Y.sign(W),U(Y,"toolbox_stellar_transaction_failed")}async function R({assetValue:j,limit:K}){let $=await Q(),k=await M({assetValue:j,limit:K,sender:$.publicKey()});return k.sign($),U(k,"toolbox_stellar_transaction_failed")}async function I(j){let K=await O(j);return C(K)}async function w(){let{baseDecimal:j}=d.getChainConfig(d.Chain.Stellar);try{let k=(await(await Z()).feeStats()).fee_charged.p50;return d.AssetValue.from({chain:d.Chain.Stellar,fromBaseDecimal:j,value:k})}catch{return d.AssetValue.from({chain:d.Chain.Stellar,fromBaseDecimal:j,value:"100"})}}return{broadcastTransaction:C,createTransaction:_,createTrustline:R,createTrustlineTransaction:M,estimateTransactionFee:w,getAddress:z,getBalance:G,hasTrustline:N,signAndBroadcastTransaction:I,signTransaction:O,transfer:B,validateAddress:gf}}var d,mf,Eq,vq,cX=2,bq=600000,pf;var rX=h(()=>{d=require("@swapkit/helpers"),mf=require("ts-pattern"),Eq=/^G[A-Z2-7]{55}$/,vq=/^[A-Za-z0-9]{1,12}$/});var of={};P0(of,{validateStellarAddress:()=>gf,getStellarToolbox:()=>tX});module.exports=V0(of);var nf=h(()=>{rX()});var iq={};P0(iq,{getToolbox:()=>YT,getFeeEstimator:()=>dq,getAddressValidator:()=>cq});module.exports=V0(iq);var g=require("@swapkit/helpers");async function cq(){let{match:y}=await import("ts-pattern"),{validateAleoAddress:T}=await Promise.resolve().then(() => (O5(),C5)),{validateAptosAddress:H}=await Promise.resolve().then(() => (N5(),$5)),{validateEVMAddress:f}=await Promise.resolve().then(() => (x8(),Z4)),{validateCardanoAddress:X}=await Promise.resolve().then(() => (K8(),j8)),{getCosmosAddressValidator:Q}=await Promise.resolve().then(() => (ff(),yf)),{validateHyperCoreAddress:Z}=await Promise.resolve().then(() => (e8(),s8)),{validateSolanaAddress:q}=await Promise.resolve().then(() => (X2(),H2)),{validateStarknetAddress:U}=await Promise.resolve().then(() => (Yf(),Uf)),{validateSuiAddress:z}=await Promise.resolve().then(() => (Gf(),zf)),{validateTonAddress:G}=await Promise.resolve().then(() => (_f(),Mf)),{getUTXOAddressValidator:N}=await Promise.resolve().then(() => (P2(),I2)),{validateNearAddress:_}=await Promise.resolve().then(() => (o2(),g2)),{validateRadixAddress:M}=await Promise.resolve().then(() => (c2(),n2)),{validateRippleAddress:O}=await Promise.resolve().then(() => (t2(),i2)),{validateTronAddress:C}=await Promise.resolve().then(() => (ZT(),QT)),{validateStellarAddress:B}=await Promise.resolve().then(() => (nf(),of));return function({address:I,chain:w}){return y(w).with(...g.EVMChains,()=>f(I)).with(...g.UTXOChains,(K)=>{return N(K)(I)}).with(...g.CosmosChains,(K)=>{return Q(K)(I)}).with(g.Chain.Aleo,()=>T(I)).with(g.Chain.Aptos,()=>H(I)).with(g.Chain.Radix,()=>M(I)).with(g.Chain.Hype,()=>Z(I)).with(g.Chain.Near,()=>_(I)).with(g.Chain.Ripple,()=>O(I)).with(g.Chain.Solana,()=>q(I)).with(g.Chain.Stellar,()=>B(I)).with(g.Chain.Starknet,()=>U(I)).with(g.Chain.Sui,()=>z(I)).with(g.Chain.Ton,()=>G(I)).with(g.Chain.Tron,()=>C(I)).with(g.Chain.Cardano,()=>X(I)).otherwise(()=>!1)}}function dq(y){return async function(H){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...g.EVMChains,async(X)=>{let Q=await YT(X),Z=await Q.createTransaction(H),q="feeOptionKey"in H?H.feeOptionKey:g.FeeOption.Fast;return Q.estimateTransactionFee({...Z,feeOption:q})}).with(g.Chain.Bitcoin,g.Chain.BitcoinCash,g.Chain.Dogecoin,g.Chain.Dash,g.Chain.Litecoin,g.Chain.Solana,g.Chain.Ripple,g.Chain.Tron,g.Chain.Near,g.Chain.Cardano,g.Chain.Hype,async(X)=>{return(await YT(X)).estimateTransactionFee(H)}).with(g.Chain.Aptos,async()=>{let{getAptosToolbox:X}=await Promise.resolve().then(() => (N5(),$5));return X().estimateTransactionFee(H)}).with(g.Chain.Aleo,async()=>{let{getAleoToolbox:X}=await Promise.resolve().then(() => (O5(),C5));return X().estimateTransactionFee(H)}).with(g.Chain.Starknet,async()=>{let{getStarknetToolbox:X}=await Promise.resolve().then(() => (Yf(),Uf));return(await X()).estimateTransactionFee(H)}).with(g.Chain.Stellar,async()=>{let{getStellarToolbox:X}=await Promise.resolve().then(() => (nf(),of));return X().estimateTransactionFee()}).with(g.Chain.Sui,async()=>{let{getSuiToolbox:X}=await Promise.resolve().then(() => (Gf(),zf));return X().estimateTransactionFee(H)}).with(g.Chain.Ton,async()=>{let{getTONToolbox:X}=await Promise.resolve().then(() => (_f(),Mf));return X().estimateTransactionFee(H)}).with(...g.CosmosChains,async()=>{let{estimateTransactionFee:X}=await Promise.resolve().then(() => (ff(),yf));return X(H)}).otherwise(async()=>g.AssetValue.from({chain:y}))}}async function YT(y,T){let{match:H}=await import("ts-pattern");return H(y).returnType().with(...g.EVMChains,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (R8(),H4));return await f(y,T)}).with(...g.UTXOChains,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (P2(),I2));return f(y,T)}).with(...g.CosmosChains,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (ff(),yf));return f(y,T)}).with(g.Chain.Aleo,async()=>{let{getAleoToolbox:f}=await Promise.resolve().then(() => (O5(),C5));return f(T)}).with(g.Chain.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (N5(),$5));return f(T)}).with(g.Chain.Hype,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (e8(),s8));return f(T)}).with(g.Chain.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (c2(),n2));return f(T)}).with(g.Chain.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (t2(),i2));return f(T)}).with(g.Chain.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => (X2(),H2));return f(T)}).with(g.Chain.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (nf(),of));return f(T)}).with(g.Chain.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (Yf(),Uf));return f(T)}).with(g.Chain.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (Gf(),zf));return f(T)}).with(g.Chain.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (ZT(),QT));return f(T)}).with(g.Chain.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (o2(),g2));return f(T)}).with(g.Chain.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (K8(),j8));return f(T)}).with(g.Chain.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (_f(),Mf));return f(T)}).otherwise(()=>{throw new g.SwapKitError("toolbox_not_supported",{chain:y})})}
|
|
1
|
+
var aX=Object.create;var{getPrototypeOf:sX,defineProperty:D1,getOwnPropertyNames:GT,getOwnPropertyDescriptor:eX}=Object,LT=Object.prototype.hasOwnProperty;function MT(y){return this[y]}var y9,f9,_T=(y,T,H)=>{var f=y!=null&&typeof y==="object";if(f){var X=T?y9??=new WeakMap:f9??=new WeakMap,Q=X.get(y);if(Q)return Q}H=y!=null?aX(sX(y)):{};let Z=T||!y||!y.__esModule?D1(H,"default",{value:y,enumerable:!0}):H;for(let q of GT(y))if(!LT.call(Z,q))D1(Z,q,{get:MT.bind(y,q),enumerable:!0});if(f)X.set(y,Z);return Z},V0=(y)=>{var T=(zT??=new WeakMap).get(y),H;if(T)return T;if(T=D1({},"__esModule",{value:!0}),y&&typeof y==="object"||typeof y==="function"){for(var f of GT(y))if(!LT.call(T,f))D1(T,f,{get:MT.bind(y,f),enumerable:!(H=eX(y,f))||H.enumerable})}return zT.set(y,T),T},zT;var T9=(y)=>y;function H9(y,T){this[y]=T9.bind(null,T)}var P0=(y,T)=>{for(var H in T)D1(y,H,{get:T[H],enumerable:!0,configurable:!0,set:H9.bind(T,H)})};var l=(y,T)=>()=>(y&&(T=y(y=0)),T);function sf(y,T){if(!m0(y))return[];let H=m0(y.transaction)?y.transaction:y,f=H.execution,X=m0(H.fee)?H.fee.transition:void 0;return[...m0(f)&&Array.isArray(f.transitions)?f.transitions:[],...m0(X)?[X]:[]].flatMap((Z)=>{if(!m0(Z)||!Array.isArray(Z.outputs))return[];if(T&&Z.program!==T)return[];return Z.outputs.flatMap((q)=>m0(q)&&q.type==="record"&&typeof q.value==="string"?[q.value]:[])})}function ef(y){return y.reduce((T,H)=>H.spent?T:T+H.microcredits,0n)}function g0(y,T){return T instanceof B0.SwapKitError&&T.errorKey.startsWith("toolbox_aleo_")?T:new B0.SwapKitError(y,T)}function X9(...y){let T=y.reduce((X,Q)=>X+Q.length,0),H=new Uint8Array(T),f=0;for(let X of y)H.set(X,f),f+=X.length;return H}function Q9(y){let T=new Uint8Array(4);return new DataView(T.buffer).setUint32(0,y,!1),T}function NT(y){let T=df.hmac(tf.sha512,$T,y);return{chainCode:T.slice(32),key:T.slice(0,32)}}function kT(y,T){if(!Number.isSafeInteger(T)||T<0||T>=cf)throw new B0.SwapKitError("toolbox_aleo_wasm_init_failed",{index:T});let H=T+cf,f=X9(Uint8Array.of(0),y.key,Q9(H)),X=df.hmac(tf.sha512,y.chainCode,f);return{chainCode:X.slice(32),key:X.slice(0,32)}}function y8(y,T){let H=y.split("/");if(H.shift()!=="m"||H.length===0)throw new B0.SwapKitError("toolbox_aleo_wasm_init_failed",{path:y});return H.reduce((f,X)=>{if(!/^\d+'$/.test(X))throw new B0.SwapKitError("toolbox_aleo_wasm_init_failed",{path:y,segment:X});return kT(f,Number.parseInt(X.slice(0,-1),10))},NT(T))}function R1(y){return typeof y==="string"&&CT.test(y)}async function f8(y){if(!R1(y))return!1;try{let{Account:T}=await import("@provablehq/sdk/mainnet.js");return T.isValidAddress(y)}catch{return!1}}function BT(y){return OT.test(y)}function T8(y,T){if(y===null)return 0n;if(typeof y!=="string")throw new B0.SwapKitError("toolbox_aleo_balance_error",{integerType:T,value:y});let H=y.match(new RegExp(`^(\\d+)${T}$`));if(!H?.[1])throw new B0.SwapKitError("toolbox_aleo_balance_error",{integerType:T,value:y});return BigInt(H[1])}function L5(y){if(y.chain!==B0.Chain.Aleo)throw new B0.SwapKitError("toolbox_aleo_unsupported_token",{asset:y.toString()});let T=y.getBaseValue("bigint");if(y.isGasAsset)return{amount:`${T}u64`,functionName:z5,isTokenTransfer:!1,programName:My};if(!y.address||!BT(y.address))throw new B0.SwapKitError("toolbox_aleo_unsupported_token",{asset:y.toString()});return{amount:`${T}u128`,functionName:z5,isTokenTransfer:!0,programName:y.address}}function _y(){let y=[...new Set([...B0.SKConfig.get("rpcUrls")[B0.Chain.Aleo],...B0.getChainConfig(B0.Chain.Aleo).rpcUrls])].filter(Boolean);if(y.length===0)throw new B0.SwapKitError("toolbox_aleo_no_rpc_urls");return y}function M5(y){if(typeof y==="object"&&y!==null&&"status"in y&&y.status===404)return!0;return y instanceof Error&&y.message.includes("404")}function m0(y){return typeof y==="object"&&y!==null}function DT(y){if(!m0(y))return!1;return[y.transaction,y.rejected].some((T)=>{if(!m0(T)||!m0(T.execution))return!1;let{transitions:H}=T.execution;return Array.isArray(H)&&H.some((f)=>m0(f)&&f.function===z5&&typeof f.program==="string"&&f.program!==My)})}function FT(y,T){if(!m0(y)||typeof y.status!=="string")throw new B0.SwapKitError("toolbox_aleo_transaction_failed",{response:y,transactionId:T});let H=y.status.toLowerCase();if(H==="rejected"){let f=DT(y)?"toolbox_aleo_token_transfer_rejected":"toolbox_aleo_transaction_failed";throw new B0.SwapKitError(f,{transactionId:T})}return H==="accepted"?"accepted":"pending"}async function RT(y){if(!F1.test(y))throw new B0.SwapKitError("toolbox_aleo_transaction_failed",{transactionId:y});let T,H=!0;for(let f of _y())try{let{AleoNetworkClient:X}=await import("@provablehq/sdk/mainnet.js"),Q=await new X(f).getConfirmedTransaction(y);return FT(Q,y)}catch(X){if(X instanceof B0.SwapKitError)throw X;T=X,H=H&&M5(X)}if(H)return"pending";throw g0("toolbox_aleo_transaction_failed",T)}async function _5(y,{intervalMs:T=5000,timeoutMs:H=60000}={}){let f=Date.now();while(Date.now()-f<H){let X=await RT(y);if(X==="accepted")return X;await new Promise((Q)=>setTimeout(Q,T))}throw new B0.SwapKitError("toolbox_aleo_transaction_failed",{reason:"confirmation_timeout",transactionId:y})}var df,tf,B0,CT,OT,F1,$T,cf=2147483648,G5=1e6,My="credits.aleo",z5="transfer_public",rf=1e6,af=2000000;var H8=l(()=>{df=require("@noble/hashes/hmac.js"),tf=require("@noble/hashes/sha2.js"),B0=require("@swapkit/helpers"),CT=/^aleo1[ac-hj-np-z02-9]{58}$/,OT=/^[a-z0-9_]+\.aleo$/,F1=/^at1[ac-hj-np-z02-9]+$/,$T=new TextEncoder().encode("bls12_377 seed")});function IT(){function y(){let T=Date.now(),H=X8||T;return X8=H,T>X8?T:H+1}return Z9+y().toString(36)}function w0(y){return async function(H,f=!0){let X=await xT.SwapKitApi.getChainBalance({address:H,chain:y,scamFilter:f}),{baseDecimal:Q}=x1.getChainConfig(y),Z=X.map(({identifier:Y,value:W,decimal:z})=>{return new x1.AssetValue({decimal:z||Q,identifier:Y,value:W})});if(!Z.some((Y)=>Y.isGasAsset))return[x1.AssetValue.from({chain:y}),...Z];return Z}}var x1,xT,Z9,X8=0;var Hy=l(()=>{x1=require("@swapkit/helpers"),xT=require("@swapkit/helpers/api"),Z9=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function jT(y,T){try{let{Account:H}=await import("@provablehq/sdk/mainnet.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),X=q0.derivationPathToString(T||q0.NetworkDerivationPath[q0.Chain.Aleo],{allHardened:!0}),{key:Q}=y8(X,f(y));return new H({seed:Q})}catch(H){throw g0("toolbox_aleo_wasm_init_failed",H)}}function PT(y,T){let H,f=()=>{return H??=jT(y,T),H};return{getAddress:async()=>(await f()).address().to_string(),signTransaction:async(X)=>{let Q=await f();if(X.sender!==Q.address().to_string())throw new q0.SwapKitError("toolbox_aleo_invalid_address",{address:X.sender});let Z;for(let q of _y())try{let{ProgramManager:Y}=await import("@provablehq/sdk/mainnet.js"),W=new Y(q);return W.setAccount(Q),await W.buildExecutionTransaction({functionName:X.functionName,inputs:X.inputs,priorityFee:X.priorityFee/G5,privateFee:!1,programName:X.programName})}catch(Y){Z=Y}throw Z}}}function KT(y={}){if("phrase"in y&&y.phrase&&"signer"in y&&y.signer)throw new q0.SwapKitError("toolbox_aleo_conflicting_signers");let T;async function H(){if(T)return T;let J="phrase"in y?y.phrase:void 0;if(!J)throw new q0.SwapKitError("toolbox_aleo_no_signer");let U="derivationPath"in y?y.derivationPath:void 0;return T=await jT(J,U),T}let f;function X(){let J="signer"in y?y.signer:void 0;if(J)return J;let U="phrase"in y?y.phrase:void 0;if(!U)throw new q0.SwapKitError("toolbox_aleo_no_signer");return f??=PT(U,"derivationPath"in y?y.derivationPath:void 0),f}async function Q(J){let U;for(let G of _y())try{let{AleoNetworkClient:N}=await import("@provablehq/sdk/mainnet.js");return await J(new N(G))}catch(N){U=N}throw U}async function Z(J){let U;for(let G of _y())try{let{AleoNetworkClient:N}=await import("@provablehq/sdk/mainnet.js");return await new N(G).getTransitionId(J),!0}catch(N){if(M5(N))return!1;U=N}throw U}async function q(){let J=X();try{return await J.getAddress()}catch(U){throw g0("toolbox_aleo_wasm_init_failed",U)}}async function Y(J){let U=await Q((G)=>G.getProgramMappingValue(My,"account",J));return T8(U,"u64")}async function W(J){try{let U=await Y(J);return[q0.AssetValue.from({chain:q0.Chain.Aleo,fromBaseDecimal:6,value:U})]}catch(U){throw g0("toolbox_aleo_balance_error",U)}}let z=w0(q0.Chain.Aleo);async function k(J,U=!0){try{return await z(J,U)}catch{return W(J)}}async function _(){return k(await q())}async function M({transactionIds:J}){try{let U=await H(),G=[];for(let N of J){if(!F1.test(N))throw new q0.SwapKitError("toolbox_aleo_transaction_failed",{transactionId:N});let F=await Q((x)=>x.getTransaction(N));for(let x of sf(F,My)){if(!U.ownsRecordCiphertext(x))continue;let{RecordPlaintext:A}=await import("@provablehq/sdk/mainnet.js"),w=U.decryptRecord(x).toString(),b=A.fromString(w),a=b.microcredits();if(a===0n)continue;let X0=U.generateRecordViewKey(x).toString(),Y0=b.serialNumberString(U.privateKey(),My,"credits",X0);G.push({microcredits:a,plaintext:w,spent:await Z(Y0),transactionId:N})}}return G}catch(U){throw g0("toolbox_aleo_balance_error",U)}}async function O({transactionIds:J}){let U=await M({transactionIds:J});return q0.AssetValue.from({chain:q0.Chain.Aleo,fromBaseDecimal:6,value:ef(U)})}async function C(J,U){if(!Number.isSafeInteger(U)||U<=0)throw new q0.SwapKitError("toolbox_aleo_insufficient_fee_balance",{feeRecordCredits:U});let G=await H();if(!J||J.microcredits<=BigInt(U)*BigInt(G5))throw new q0.SwapKitError("toolbox_aleo_insufficient_fee_balance",{available:J?.microcredits.toString(),required:`${U} credits fee record`});let{ProgramManager:N,RecordPlaintext:F}=await import("@provablehq/sdk/mainnet.js"),x;for(let A of _y())try{let w=new N(A);return w.setAccount(G),await w.split(U,F.fromString(J.plaintext))}catch(w){x=w}throw x}async function D(J,U,G){let N=await H(),{ProgramManager:F,RecordPlaintext:x}=await import("@provablehq/sdk/mainnet.js"),A;for(let w of _y())try{let b=new F(w);return b.setAccount(N),await b.buildExecutionTransaction({feeRecord:x.fromString(U.plaintext),functionName:"transfer_private_to_public",inputs:[J.plaintext,G,`${J.microcredits}u64`],priorityFee:0,privateFee:!0,programName:My})}catch(b){A=b}throw A}async function R(J,U,G){let N;try{let x=(await H()).address().to_string(),A=J.filter((Y0)=>!Y0.spent);if(A.length===0)throw new q0.SwapKitError("toolbox_aleo_no_unspent_records",{transactionId:G});if(A.length===1){if(N=await C(A[0],U),await _5(N),A=(await M({transactionIds:[N]})).filter((Y0)=>!Y0.spent),A.length<2)throw new q0.SwapKitError("toolbox_aleo_transaction_failed",{transactionId:N})}let w=[...A].sort((Y0,I)=>Y0.microcredits<I.microcredits?-1:1),b=w[0],a=w[w.length-1];if(!b||!a||b===a)throw new q0.SwapKitError("toolbox_aleo_no_unspent_records",{transactionId:G});let X0=await B(await D(a,b,x));return await _5(X0),{publicBalance:q0.AssetValue.from({chain:q0.Chain.Aleo,fromBaseDecimal:6,value:await Y(x)}),splitTransactionId:N,unshieldTransactionId:X0}}catch(F){if(N)throw new q0.SwapKitError("toolbox_aleo_transaction_failed",{error:F,splitTransactionId:N});throw g0("toolbox_aleo_transaction_failed",F)}}async function P(J){try{if("records"in J&&J.records)return await R(J.records,J.feeRecordCredits??4);let U=await M({transactionIds:[J.transactionId]});return await R(U,J.feeRecordCredits??4,J.transactionId)}catch(U){throw g0("toolbox_aleo_transaction_failed",U)}}function E({assetValue:J,priorityFee:U=0}){try{if(!Number.isSafeInteger(U)||U<0)throw new q0.SwapKitError("toolbox_aleo_fee_estimation_failed",{priorityFee:U});let N=L5(J).isTokenTransfer?af:rf;return q0.AssetValue.from({chain:q0.Chain.Aleo,fromBaseDecimal:6,value:BigInt(N)+BigInt(U)})}catch(G){throw g0("toolbox_aleo_fee_estimation_failed",G)}}async function j({assetValue:J,priorityFee:U=0,recipient:G,sender:N}){if(!await f8(G))throw new q0.SwapKitError("toolbox_aleo_invalid_address",{address:G});let F=N||await q();if(!R1(F))throw new q0.SwapKitError("toolbox_aleo_invalid_address",{address:F});let x=L5(J),A=await E({assetValue:J,priorityFee:U,recipient:G});try{let w=await Y(F);if(q0.AssetValue.from({chain:q0.Chain.Aleo,fromBaseDecimal:6,value:w}).lt(A))throw new q0.SwapKitError("toolbox_aleo_insufficient_fee_balance",{available:w.toString(),required:A.getBaseValue("string")});return{functionName:x.functionName,inputs:[G,x.amount],priorityFee:U,programName:x.programName,sender:F}}catch(w){throw g0("toolbox_aleo_transaction_failed",w)}}async function K(J){try{return await X().signTransaction(J)}catch(U){throw g0("toolbox_aleo_transaction_failed",U)}}async function $(J){return B(await K(J))}async function B(J){try{let U=typeof J==="string"?J:J.toString(),G=await Q((N)=>N.submitTransaction(U));if(!F1.test(G))throw new q0.SwapKitError("toolbox_aleo_broadcast_error",{transactionId:G});return G}catch(U){throw g0("toolbox_aleo_broadcast_error",U)}}async function L(J){let U=await j({...J,sender:await q()});return $(U)}return{broadcastTransaction:B,createSigner:PT,createTransaction:j,estimateTransactionFee:E,getAddress:q,getBalance:z,getBalanceFromRpc:W,getBalances:_,getBalanceWithFallback:k,getRecords:M,getShieldedBalance:O,signAndBroadcastTransaction:$,signTransaction:K,transfer:L,unshield:P,validateAddress:R1}}var q0;var ST=l(()=>{Hy();H8();q0=require("@swapkit/helpers")});var C5={};P0(C5,{waitForAleoTransaction:()=>_5,validateAleoProgramId:()=>BT,validateAleoAddressWithChecksum:()=>f8,validateAleoAddress:()=>R1,sumUnspentRecords:()=>ef,parseAleoTransactionStatus:()=>FT,parseAleoMappingValue:()=>T8,isRecord:()=>m0,isNotFoundError:()=>M5,isAleoTokenTransferResponse:()=>DT,getConfiguredAleoUrls:()=>_y,getAleoTransferRoute:()=>L5,getAleoTransactionStatus:()=>RT,getAleoToolbox:()=>KT,getAleoMasterSeed:()=>NT,getAleoError:()=>g0,extractAleoRecordCiphertexts:()=>sf,deriveAleoPath:()=>y8,deriveAleoChildKey:()=>kT,TRANSFER_PUBLIC_FUNCTION:()=>z5,NATIVE_PROGRAM_ID:()=>My,MICRO_CREDITS_PER_CREDIT:()=>G5,HARDENED_OFFSET:()=>cf,ALEO_TRANSFER_PUBLIC_FEE:()=>rf,ALEO_TRANSACTION_ID_REGEX:()=>F1,ALEO_TOKEN_TRANSFER_PUBLIC_FEE:()=>af,ALEO_PROGRAM_ID_REGEX:()=>OT,ALEO_HD_KEY:()=>$T,ALEO_ADDRESS_REGEX:()=>CT});module.exports=V0(C5);var O5=l(()=>{ST();H8()});function ey(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let T=y.slice(2);if(T.length===0||T.length>64)return!1;return U9.test(T)}function VT(y,T,H){if(y<=0n)throw new t.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amount:y.toString(),asset:T.toString(),...H}});return y}async function Y9({aptos:y,assetValue:T,senderAddress:H}){let f=T.address;if(!f)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");let[X]=await y.getCurrentFungibleAssetBalances({options:{limit:1,where:{asset_type:{_eq:f},is_primary:{_eq:!0},owner_address:{_eq:H}}}});return VT(BigInt(X?.amount??0),T)}function AT({derivationPath:y,provider:T,...H}={}){let f,X=t.derivationPathToString(y||t.NetworkDerivationPath[t.Chain.Aptos],{allHardened:!0});async function Q(){if(f)return f;return f=await Vy.match(H).with({phrase:Vy.P.string},async({phrase:C})=>{let{Ed25519Account:D}=await import("@aptos-labs/ts-sdk");return D.fromDerivationPath({mnemonic:C,path:X})}).with({signer:Vy.P.any},({signer:C})=>C).otherwise(()=>{return}),f}async function Z(){let{Aptos:C,AptosConfig:D,Network:R}=await import("@aptos-labs/ts-sdk"),P=new D({clientConfig:{http2:!1},fullnode:T||t.getRPCUrlSync(t.Chain.Aptos),network:R.MAINNET});return new C(P)}async function q(){return(await Q())?.accountAddress.toString()||""}async function Y(C){let D=C||await q();if(!D)throw new t.SwapKitError("toolbox_aptos_address_required");let{baseDecimal:R,chain:P}=t.getChainConfig(t.Chain.Aptos);try{let E=await Z(),j=await E.getAccountAPTAmount({accountAddress:D}),K=[t.AssetValue.from({chain:P,fromBaseDecimal:R,value:j.toString()})],$=await E.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:D}}}});for(let B of $){if(B.asset_type===Sy.COIN_TYPE||Number(B.amount)<=0)continue;let L=B.asset_type;if(L){let U=("metadata"in B&&typeof B.metadata==="object"&&B.metadata!==null?B.metadata:void 0)?.decimals??R;K.push(t.AssetValue.from({asset:`${t.Chain.Aptos}.APT-${L}`,fromBaseDecimal:U,value:String(B.amount)}))}}return K}catch{return[t.AssetValue.from({chain:P})]}}async function W(C){if(!C){let{baseDecimal:K}=t.getChainConfig(t.Chain.Aptos),$=T||t.getRPCUrlSync(t.Chain.Aptos),B=await fetch(`${$}/estimate_gas_price`),{gas_estimate:L}=await B.json();return t.AssetValue.from({chain:t.Chain.Aptos,fromBaseDecimal:K,value:String(L)})}let D=await z(C),R=await Z(),[P]=await R.transaction.simulate.simple({transaction:D});if(!P)throw new t.SwapKitError("toolbox_aptos_transaction_creation_error");let E=BigInt(P.gas_used)*BigInt(P.gas_unit_price),{baseDecimal:j}=t.getChainConfig(t.Chain.Aptos);return t.AssetValue.from({chain:t.Chain.Aptos,fromBaseDecimal:j,value:E.toString()})}async function z({recipient:C,assetValue:D,maxGasAmount:R,sender:P,sweep:E}){if(!ey(C))throw new t.SwapKitError("core_transaction_invalid_recipient_address");let j=P||await q();if(!j)throw new t.SwapKitError("toolbox_aptos_no_sender");let{AccountAddress:K}=await import("@aptos-labs/ts-sdk"),$=await Z(),B=K.from(j);try{let L=D.isGasAsset?Sy.TRANSFER:Sy.FUNGIBLE_STORE_TRANSFER,J=D.address,U=(a,X0)=>{let Y0=Vy.match({address:J,isGasAsset:D.isGasAsset}).with({isGasAsset:!0},()=>[K.from(C),a]).with({address:Vy.P.string},({address:V})=>[K.from(V),K.from(C),a]).otherwise(()=>null);if(!Y0)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");let I=X0?.maxGasAmount??R;return $.transaction.build.simple({data:{function:L,functionArguments:Y0,typeArguments:D.isGasAsset?[]:[Sy.FUNGIBLE_ASSET_METADATA]},options:I!==void 0||X0?.gasUnitPrice!==void 0?{gasUnitPrice:X0?.gasUnitPrice,maxGasAmount:I}:void 0,sender:B})};if(!E)return U(D.getBaseValue("bigint"));if(!D.isGasAsset){let a=await Y9({aptos:$,assetValue:D,senderAddress:j});return U(a)}let G=BigInt(await $.getAccountAPTAmount({accountAddress:j})),N=await U(1n,{maxGasAmount:R??q9}),[F]=await $.transaction.simulate.simple({options:{estimateMaxGasAmount:R===void 0},transaction:N});if(!F)throw new t.SwapKitError("toolbox_aptos_transaction_creation_error");if(!F.success)throw new t.SwapKitError({errorKey:"toolbox_aptos_transaction_creation_error",info:{vmStatus:F.vm_status}});let x=BigInt(F.gas_used),A=x>0n?(x*6n+4n)/5n:1n,w=A*BigInt(F.gas_unit_price),b=VT(G-w,D,{balance:G.toString(),fee:w.toString()});return U(b,{gasUnitPrice:Number(F.gas_unit_price),maxGasAmount:Number(A)})}catch(L){if(L instanceof t.SwapKitError)throw L;throw new t.SwapKitError("toolbox_aptos_transaction_creation_error",L)}}async function k(C){let D=await Q();if(!D)throw new t.SwapKitError("toolbox_aptos_no_signer");return(await Z()).transaction.sign({signer:D,transaction:C})}async function _({assetValue:C,maxGasAmount:D,recipient:R,sweep:P}){let E=await Q();if(!E)throw new t.SwapKitError("toolbox_aptos_no_signer");if(!ey(R))throw new t.SwapKitError("core_transaction_invalid_recipient_address");try{let j=E.accountAddress.toString(),K=await z({assetValue:C,maxGasAmount:D,recipient:R,sender:j,sweep:P});return(await(await Z()).signAndSubmitTransaction({signer:E,transaction:K})).hash}catch(j){if(j instanceof t.SwapKitError)throw j;throw new t.SwapKitError("toolbox_aptos_transaction_creation_error",j)}}async function M({senderAuthenticator:C,transaction:D}){try{return(await(await Z()).transaction.submit.simple({senderAuthenticator:C,transaction:D})).hash}catch(R){throw new t.SwapKitError("toolbox_aptos_broadcast_error",R)}}async function O(C){let D=await k(C);return M({senderAuthenticator:D,transaction:C})}return{broadcastTransaction:M,createTransaction:z,estimateTransactionFee:W,getAddress:q,getBalance:Y,signAndBroadcastTransaction:O,signTransaction:k,transfer:_,validateAddress:ey}}function wT({provider:y}){return async function({assetValue:H,recipient:f,sweep:X}){if(X)throw new t.SwapKitError({errorKey:"toolbox_not_supported",info:{chain:t.Chain.Aptos,feature:"extension_provider_sweep",reason:"Aptos extension providers cannot query balances or simulate transactions"}});if(!ey(f))throw new t.SwapKitError("core_transaction_invalid_recipient_address");let{AccountAddress:Q}=await import("@aptos-labs/ts-sdk");if(H.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[Q.from(f).toString(),H.getBaseValue("string")],function:Sy.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let Z=H.address;if(!Z)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[Z,Q.from(f).toString(),H.getBaseValue("string")],function:Sy.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[Sy.FUNGIBLE_ASSET_METADATA]})).hash}}var t,Vy,Sy,q9=2000,U9;var ET=l(()=>{t=require("@swapkit/helpers"),Vy=require("ts-pattern"),Sy={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},U9=/^[0-9a-fA-F]+$/});var $5={};P0($5,{validateAptosAddress:()=>ey,getAptosToolbox:()=>AT,createAptosExtensionTransfer:()=>wT});module.exports=V0($5);var N5=l(()=>{ET()});function I1(y){return{getBalance:w0(y)}}function J9(y){return y}var k5=l(()=>{Hy()});function bT(y){return new o0.JsonRpcProvider(y)}async function W9(y,T){return bT(T||await y0.getRPCUrl(y))}function Y8(y){let T=y0.SKConfig.get("rpcUrls")[y]?.filter(Boolean)??[];if(T.length===0)throw new y0.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:y});let{chainId:H}=y0.getChainConfig(y),f=o0.Network.from(Number(H)),[X]=T;if(T.length===1)return new o0.JsonRpcProvider(X,f,{staticNetwork:f});return new o0.FallbackProvider(T.map((Q,Z)=>({priority:Z+1,provider:new o0.JsonRpcProvider(Q,f,{staticNetwork:f}),stallTimeout:2000})),f,{quorum:1})}function l0(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function J8(y){let{explorerUrl:T,chainIdHex:H,rpcUrls:f}=y0.getChainConfig(y);return function(){return y!==y0.Chain.Ethereum?{...z9({chain:y}),blockExplorerUrls:[T],chainId:H,rpcUrls:f}:void 0}}function W8(y){return![y0.Chain.Adi,y0.Chain.Arbitrum,y0.Chain.BinanceSmartChain,y0.Chain.Robinhood].includes(y)}function z9({chain:y}){let{name:T,nativeCurrency:H,baseDecimal:f}=y0.getChainConfig(y);return U8.match(y).with(y0.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:y0.Chain.Ethereum}})).with(y0.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:y0.Chain.Ethereum}})).with(y0.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(y0.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:y0.Chain.Ethereum}})).with(y0.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(y0.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(y0.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(y0.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(y0.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:y0.Chain.Ethereum}})).with(y0.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:y0.Chain.Polygon}})).with(y0.Chain.Robinhood,()=>({chainName:"Robinhood Chain",nativeCurrency:{decimals:f,name:"Ethereum",symbol:y0.Chain.Ethereum}})).otherwise(()=>({chainName:T,nativeCurrency:{decimals:f,name:H,symbol:H}}))}async function z8(y,T){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let H={...T,nonce:T.nonce!==void 0?BigInt(T.nonce):void 0};return await y.authorize(H)}function hT(y,T){let H=T!==void 0?`index ${T}: `:"",f=(X,Q)=>{throw new y0.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:X,message:`${H}${Q}`}})};U8.match(y).when(({chainId:X})=>typeof X!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:X})=>!G9(X),()=>f("address","address must be a valid checksummed address")).when(({nonce:X})=>typeof X!=="bigint"||X<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:X})=>!X,()=>f("signature","signature is required")).when(({signature:X})=>typeof X?.yParity!=="number"||![0,1].includes(X.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:X})=>!vT(X?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:X})=>!vT(X?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function lT(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:T})=>y[T]!=null).map(({key:T,type:H})=>({name:T,type:H}))}function Q8(y){return y.charAt(0).toUpperCase()+y.slice(1)}function Z8(y,T){if(y.isTuple()&&y.components){let H=Q8(y.name);return T[H]=y.components.map((f)=>({name:f.name,type:Z8(f,T)})),H}if(y.isArray()){let H=y.arrayChildren;if(H?.isTuple()&&H.components){let f=Q8(y.name.replace(/s$/,""));return T[f]=H.components.map((X)=>({name:X.name,type:Z8(X,T)})),`${f}[]`}return`${H?.type??"bytes"}[]`}return y.type}function q8(y,T){if(typeof y==="bigint")return y;if(T?.isTuple()&&typeof y?.toObject==="function"){let H=y.toObject(),f={};for(let[X,Q]of(T.components??[]).entries())f[Q.name]=q8(H[Q.name]??y[X],Q);return f}if(Array.isArray(y)){let H=T?.arrayChildren;return y.map((f)=>q8(f,H??void 0))}return y}function L9({chain:y,abi:T,data:H,to:f}){let Q=new o0.Interface(T).parseTransaction({data:H});if(!Q)throw new y0.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let Z={},q=Q8(Q.name);Z[q]=Q.fragment.inputs.map((_)=>({name:_.name,type:Z8(_,Z)}));let Y={};for(let[_,M]of Q.fragment.inputs.entries())Y[M.name]=q8(Q.args[_],M);let{chainId:W}=y0.getChainConfig(y),z={chainId:Number(W),verifyingContract:o0.getAddress(f)},k=lT(z);return{domain:z,message:Y,primaryType:q,types:{EIP712Domain:k,...Z}}}function G8(y,T){if(!Array.isArray(y)||y.length===0)throw new y0.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[H,f]of y.entries())if(hT(f,H),T!==void 0&&f.chainId!==T)throw new y0.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${H}: authorization chainId (${f.chainId}) does not match transaction chainId (${T})`}})}var y0,o0,U8,vT=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),G9=(y)=>{try{return typeof y==="string"&&!!o0.getAddress(y)}catch{return!1}};var P1=l(()=>{y0=require("@swapkit/helpers"),o0=require("ethers"),U8=require("ts-pattern")});var uT;var pT=l(()=>{uT=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});function y1({chain:y=S.Chain.Ethereum,provider:T,signer:H,isEIP1559Compatible:f=!0,estimateGasPrices:X,estimateAdditionalFee:Q}){let Z=X??vy({chain:y,isEIP1559Compatible:f,provider:T}),q=dT({chain:y,estimateAdditionalFee:Q,estimateGasPrices:Z,isEIP1559Compatible:f,provider:T,signer:H});return{approve:$9({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),approvedAmount:oT({chain:y,provider:T}),broadcastTransaction:T.broadcastTransaction,call:B5({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),createApprovalTx:K9({chain:y,provider:T,signer:H}),createContract:_8({chain:y,provider:T}),createContractTxObject:Ey({chain:y,provider:T}),createTransaction:q,createTransferTx:q,EIP1193SendTransaction:T1(T),estimateCall:nT({provider:T,signer:H}),estimateGasLimit:k9({chain:y,provider:T,signer:H}),estimateGasPrices:Z,estimateTransactionFee:S9({chain:y,isEIP1559Compatible:f,provider:T}),getAddress:()=>{return H?H.getAddress():void 0},getBalance:I1(y).getBalance,getNetworkParams:J8(y),isApproved:O9({chain:y,provider:T}),sendTransaction:cT({chain:y,estimateGasPrices:Z,isEIP1559Compatible:f,provider:T,signer:H}),signAuthorization:B9({signer:H}),signMessage:H?(Y)=>H.signMessage(Y):void 0,signTypedData:H?({domain:Y,types:W,value:z})=>H.signTypedData(Y,W,z):void 0,transfer:N9({chain:y,estimateAdditionalFee:Q,estimateGasPrices:Z,isEIP1559Compatible:f,provider:T,signer:H}),validateAddress:K1}}function K1(y){try{return b0.getAddress(y),!0}catch{return!1}}function f1(y){return y instanceof b0.BrowserProvider}function S1(y,T,H){return new b0.Contract(y,b0.Interface.from(T),H)}function _8({provider:y}){return function(H,f){return new b0.Contract(H,b0.Interface.from(f),y)}}function C8({abi:y,funcName:T}){let H=y.find((f)=>f.name===T);if(!H)throw new S.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:T});return H.stateMutability&&M9.includes(H.stateMutability)}function mT(y){return b0.getAddress(y)}function T1(y,T=!1){return function({value:f,...X}){if(!f1(y))throw new S.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let Q={...X,gasPrice:"gasPrice"in X?X.gasPrice:void 0,maxFeePerGas:"maxFeePerGas"in X?X.maxFeePerGas:void 0,maxPriorityFeePerGas:"maxPriorityFeePerGas"in X?X.maxPriorityFeePerGas:void 0},{gasLimit:Z,gasPrice:q,maxFeePerGas:Y,maxPriorityFeePerGas:W,...z}=Q,k={...z,...T&&Z!==void 0&&{gas:l0(BigInt(Z))},...T&&q!==void 0&&{gasPrice:l0(BigInt(q))},...T&&Y!==void 0&&{maxFeePerGas:l0(BigInt(Y))},...T&&W!==void 0&&{maxPriorityFeePerGas:l0(BigInt(W))},value:l0(BigInt(f||0))};return y.send("eth_sendTransaction",[k])}}function gT(y,T){let H=V1(y,T);if(H)return b0.getAddress(H.toLowerCase());throw new S.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function V1({chain:y,symbol:T,ticker:H},f){try{let X=y===S.Chain.BinanceSmartChain&&T==="BNB"&&H==="BNB",Q=y===S.Chain.Hyperevm&&T==="HYPE"&&H==="HYPE",Z=y===f&&T===f&&H===f,q=C9.includes(y)&&T==="ETH"&&H==="ETH";if(Z||X||Q||q)return O8[f];return b0.getAddress(T.slice(H.length+1).replace(/^0X/,""))}catch{return null}}function Ey({provider:y}){return async({contractAddress:T,abi:H,funcName:f,funcParams:X=[],txOverrides:Q})=>{let Z=await S1(T,H,y).getFunction(f).populateTransaction(...X.concat(Q).filter((q)=>typeof q<"u"));return{...Z,value:l0(BigInt(Z.value||0))}}}function vy({chain:y,provider:T,isEIP1559Compatible:H=!0}){return M8.match(y).with(S.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:X,maxPriorityFeePerGas:Q}=await T.getFeeData();if(!X||Q===null)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{[S.FeeOption.Average]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(X,S.FeeOption.Average),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(Q,S.FeeOption.Average)},[S.FeeOption.Fast]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(X,S.FeeOption.Fast),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(Q,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(X,S.FeeOption.Fastest),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(Q,S.FeeOption.Fastest)}}}catch(X){throw new S.SwapKitError("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}}}).with(S.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:X}=await T.getFeeData();if(!X)throw new S.SwapKitError("toolbox_evm_no_fee_data");let Q=X*12n/10n;return{[S.FeeOption.Average]:{gasPrice:Q},[S.FeeOption.Fast]:{gasPrice:S.applyFeeMultiplierToBigInt(Q,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{gasPrice:S.applyFeeMultiplierToBigInt(Q,S.FeeOption.Fastest)}}}catch(X){throw new S.SwapKitError("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:X,maxPriorityFeePerGas:Q,gasPrice:Z}=await T.getFeeData();if(H){if(X===null||Q===null)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{[S.FeeOption.Average]:{maxFeePerGas:X,maxPriorityFeePerGas:Q},[S.FeeOption.Fast]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(X,S.FeeOption.Fast),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(Q,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(X,S.FeeOption.Fastest),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(Q,S.FeeOption.Fastest)}}}if(!Z)throw new S.SwapKitError("toolbox_evm_no_gas_price");return{[S.FeeOption.Average]:{gasPrice:Z},[S.FeeOption.Fast]:{gasPrice:S.applyFeeMultiplierToBigInt(Z,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{gasPrice:S.applyFeeMultiplierToBigInt(Z,S.FeeOption.Fastest)}}}catch(X){throw new S.SwapKitError("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}}})}function B5({provider:y,isEIP1559Compatible:T,signer:H,chain:f}){return async function({callProvider:Q,contractAddress:Z,abi:q,funcName:Y,funcParams:W=[],txOverrides:z={},feeOption:k=S.FeeOption.Fast}){let _=Q||y;if(!Z)throw new S.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let M=C8({abi:q,funcName:Y});if(M&&f1(_)&&H){let D=Ey({chain:f,provider:_}),R=z?.from||await H?.getAddress(),P=await D({abi:q,contractAddress:Z,funcName:Y,funcParams:W,txOverrides:{...z,from:R}});return T1(_)(P)}let O=S1(Z,q,_);if(M){if(!H)throw new S.SwapKitError("toolbox_evm_no_signer");let D=z?.from||await H.getAddress();if(!D)throw new S.SwapKitError("toolbox_evm_no_signer_address");let R=O.connect(H),P=vy({chain:f,isEIP1559Compatible:T,provider:y}),{maxFeePerGas:E,maxPriorityFeePerGas:j,gasPrice:K}=(await P())[k],$=await O.getFunction(Y).estimateGas(...W,z),B=await R[Y](...W,{...z,gasLimit:$,gasPrice:K,maxFeePerGas:E,maxPriorityFeePerGas:j,nonce:z?.nonce||await _.getTransactionCount(D)});return typeof B?.hash==="string"?B?.hash:B}let C=await O[Y]?.(...W);return typeof C?.hash==="string"?C?.hash:C}}function oT({provider:y,chain:T}){return function({assetAddress:f,spenderAddress:X,from:Q}){return B5({chain:T,isEIP1559Compatible:!0,provider:y})({abi:wy.erc20ABI,contractAddress:f,funcName:"allowance",funcParams:[Q,X]})}}function O9({provider:y,chain:T}){return async function({assetAddress:f,spenderAddress:X,from:Q,amount:Z=j1}){let q=await oT({chain:T,provider:y})({assetAddress:f,from:Q,spenderAddress:X});return S.SwapKitNumber.fromBigInt(q).gte(S.SwapKitNumber.fromBigInt(BigInt(Z)))}}function $9({signer:y,isEIP1559Compatible:T=!0,provider:H,chain:f}){return async function({assetAddress:Q,spenderAddress:Z,feeOptionKey:q=S.FeeOption.Fast,amount:Y,gasLimitFallback:W,from:z,nonce:k}){let _=[Z,BigInt(Y||j1)],M=await y?.getAddress()||z,O={abi:wy.erc20ABI,contractAddress:Q,funcName:"approve",funcParams:_,signer:y,txOverrides:{from:M}};if(f1(H)){let D=Ey({chain:f,provider:H}),R=T1(H),P=await D(O);return R(P)}return B5({chain:f,isEIP1559Compatible:T,provider:H,signer:y})({...O,feeOption:q,funcParams:_,txOverrides:{from:M,gasLimit:W?BigInt(W.toString()):void 0,nonce:k}})}}function N9({chain:y,estimateGasPrices:T,estimateAdditionalFee:H,signer:f,isEIP1559Compatible:X=!0,provider:Q}){return async function({assetValue:q,memo:Y,recipient:W,feeOptionKey:z=S.FeeOption.Fast,sender:k,sweep:_,...M}){let O=k||await f?.getAddress(),C=cT({chain:y,estimateGasPrices:T,isEIP1559Compatible:X,provider:Q,signer:f});if(!O)throw new S.SwapKitError("toolbox_evm_no_from_address");let D=await dT({chain:y,estimateAdditionalFee:H,estimateGasPrices:T,isEIP1559Compatible:X,provider:Q,signer:f})({assetValue:q,feeOptionKey:z,memo:Y,recipient:W,sender:O,sweep:_,...M});return C({...D,feeOptionKey:z,sweep:_})}}function nT({provider:y,signer:T}){return function({contractAddress:f,abi:X,funcName:Q,funcParams:Z=[],txOverrides:q}){if(!f)throw new S.SwapKitError("toolbox_evm_no_contract_address");let Y=S1(f,X,y);return T?Y.connect(T).getFunction(Q).estimateGas(...Z,q):Y.getFunction(Q).estimateGas(...Z,q)}}function k9({provider:y,signer:T}){return async function({assetValue:f,recipient:X,memo:Q,data:Z,sender:q,funcName:Y,funcParams:W,txOverrides:z}){let k=f.bigIntValue,_=f.isGasAsset?null:V1(f,f.chain);if(_&&Y)return nT({provider:y,signer:T})({abi:wy.erc20ABI,contractAddress:_,funcName:Y,funcParams:W,txOverrides:z});let{hexlify:M,toUtf8Bytes:O}=await import("ethers");return y.estimateGas({data:Z?Z:Q?M(O(Q)):void 0,from:q,to:X,value:k})}}function B9({signer:y}){if(!y)return;return(T)=>z8(y,T)}function D9(y,T){if(y==="legacy"){if(T.gasPrice===void 0)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{gasPrice:l0(T.gasPrice)}}if(T.maxFeePerGas===void 0||T.maxPriorityFeePerGas===void 0)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{maxFeePerGas:l0(T.maxFeePerGas),maxPriorityFeePerGas:l0(T.maxPriorityFeePerGas)}}function cT({chain:y,estimateGasPrices:T,provider:H,signer:f,isEIP1559Compatible:X=!0}){return async function({feeOptionKey:Z=S.FeeOption.Fast,sweep:q,...Y}){let{from:W,to:z,data:k,value:_,...M}=Y;if(!f)throw new S.SwapKitError("toolbox_evm_no_signer");if(!z)throw new S.SwapKitError("toolbox_evm_no_to_address");let O={...M,data:k||"0x",from:W,to:z,value:BigInt(_||0)};if(f1(H))return T1(H,q)(O);let C=W||await f.getAddress(),D=Y.nonce??await H.getTransactionCount(C),R=(await H.getNetwork()).chainId,P=N8(O,X);if(P==="eip7702")G8(O.authorizations||[],R);let E=M8.match(P).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),j={...O,chainId:R,nonce:D,type:E,...P==="eip7702"&&{authorizationList:O.authorizations}},K=T??vy({chain:y,isEIP1559Compatible:X,provider:H}),B=(P==="legacy"?O.gasPrice!==void 0:O.maxFeePerGas!==void 0&&O.maxPriorityFeePerGas!==void 0)?{}:D9(P,(await K())[Z]),L;try{L=l0(O.gasLimit?BigInt(O.gasLimit):await H.estimateGas(j)*11n/10n)}catch(J){throw new S.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:J})}try{let J={...j,gasLimit:L,...B};try{return(await f.sendTransaction(J)).hash}catch{let U=await f.signTransaction({...J,from:C});return(await H.broadcastTransaction(U)).hash}}catch(J){throw new S.SwapKitError("toolbox_evm_error_sending_transaction",{error:J})}}}function Ay(y,T){throw new S.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{balance:y.toString(),fee:T.toString()}})}function F9(y,T){if(T){if(y.maxFeePerGas===void 0||y.maxPriorityFeePerGas===void 0)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{feeFields:{maxFeePerGas:y.maxFeePerGas,maxPriorityFeePerGas:y.maxPriorityFeePerGas},feePerGas:y.maxFeePerGas}}if(y.gasPrice===void 0)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{feeFields:{gasPrice:y.gasPrice},feePerGas:y.gasPrice}}function R9(y,T){if(y>T)return y;return T}function x9(y){return b0.getBytes(y).reduce((T,H)=>T+(H===0?4n:16n),21000n)}function L8(y){let H=(y instanceof Error?y.message:String(y)).toLowerCase();return H.includes("insufficient funds")||H.includes("insufficient balance")||H.includes("gas required exceeds allowance")}async function I9({balance:y,estimateAdditionalFee:T,feeOptionKey:H,l2Reserve:f,sweepTx:X,valueBeforeL1Fee:Q}){if(!T)return 0n;let Z=await T({...X,value:Q})??0n,q=S.applyFeeMultiplierToBigInt(Z,H),Y=Q-q;if(Y<=0n)Ay(y,f+q);let W=await T({...X,value:Y})??Z;return S.applyFeeMultiplierToBigInt(R9(Z,W),H)}async function P9({chain:y,data:T,estimateGasPrices:H,estimateAdditionalFee:f,feeOptionKey:X,from:Q,isEIP1559Compatible:Z,provider:q,recipient:Y,transaction:W}){let z=await q.getBalance(Q),k=H??vy({chain:y,isEIP1559Compatible:Z,provider:q}),{feeFields:_,feePerGas:M}=F9((await k())[X],Z),C={...f&&W.nonce===void 0?{...W,nonce:await q.getTransactionCount(Q)}:W,..._,data:T,from:Q,to:Y},D=x9(T)*M;if(z-D<=0n)Ay(z,D);let R=(z-D)/2n,P;try{P=await q.estimateGas({...C,value:R})}catch(F){if(!L8(F))throw F;try{P=await q.estimateGas({...C,value:0n})}catch(x){if(L8(x))Ay(z,D);throw x}}let E=P*M;if(z-E<=0n)Ay(z,E);let $=P*11n/10n*M,B=z>$?z-$:0n,L;try{L=await q.estimateGas({...C,value:B})}catch(F){if(!L8(F))throw F;Ay(z,$)}let J=L*M,U=z-J;if(U<=0n)Ay(z,J);let G=await I9({balance:z,estimateAdditionalFee:f,feeOptionKey:X,l2Reserve:J,sweepTx:{...C,gasLimit:L},valueBeforeL1Fee:U}),N=U-G;if(N<=0n)Ay(z,J+G);return{...C,gasLimit:L,value:l0(N)}}async function j9({chain:y,contractAddress:T,from:H,provider:f}){let X=await B5({chain:y,provider:f})({abi:wy.erc20ABI,contractAddress:T,funcName:"balanceOf",funcParams:[H]});if(typeof X!=="bigint")throw new S.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid ERC20 balance"}});return X}function dT({chain:y,estimateAdditionalFee:T,estimateGasPrices:H,isEIP1559Compatible:f=!0,provider:X,signer:Q}){return async function({assetValue:q,authorizations:Y,memo:W,recipient:z,data:k,feeOptionKey:_=S.FeeOption.Fast,gasLimit:M,sender:O,sweep:C,type:D,maxFeePerGas:R,maxPriorityFeePerGas:P,gasPrice:E,...j}){let K=q.getBaseValue("bigint"),$=O||await Q?.getAddress();if(!$)throw new S.SwapKitError("toolbox_evm_no_from_address");if(C&&(D===4||(Y?.length??0)>0))throw new S.SwapKitError({errorKey:"toolbox_not_supported",info:{chain:y,reason:"EIP-7702 sweep transactions are not supported"}});if(S.isGasAsset(q)){let{hexlify:U,toUtf8Bytes:G}=await import("ethers"),N=k||U(G(W||""));if(!C)return{...j,...Y!==void 0&&{authorizations:Y},data:N,from:$,...M!==void 0&&{gasLimit:M},to:z,...D!==void 0&&{type:D},value:l0(K)};return P9({chain:y,data:N,estimateAdditionalFee:T,estimateGasPrices:H,feeOptionKey:_,from:$,isEIP1559Compatible:f,provider:X,recipient:z,transaction:{nonce:j.nonce,type:D}})}let B=V1(q,y);if(!B)throw new S.SwapKitError("toolbox_evm_no_contract_address");let L=Ey({chain:y,provider:X}),J=C?await j9({chain:y,contractAddress:B,from:$,provider:X}):K;if(C&&J<=0n)throw new S.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:q.toString(),balance:J.toString()}});return L({abi:wy.erc20ABI,contractAddress:B,funcName:"transfer",funcParams:[z,J],txOverrides:{from:$,gasLimit:M,gasPrice:E,maxFeePerGas:R,maxPriorityFeePerGas:P}})}}function K9({provider:y,signer:T,chain:H}){return async function({assetAddress:X,spenderAddress:Q,amount:Z,from:q}){let Y=await T?.getAddress()||q,W=Ey({chain:H,provider:y}),z=["bigint","number"].includes(typeof Z)?Z:Z||j1;return await W({abi:wy.erc20ABI,contractAddress:X,funcName:"approve",funcParams:[Q,BigInt(z)],txOverrides:{from:Y}})}}function S9({provider:y,isEIP1559Compatible:T=!0,chain:H}){return async function({feeOption:X=S.FeeOption.Fast,...Q}){let q=await vy({chain:H,isEIP1559Compatible:T,provider:y})(),Y=await y.estimateGas(Q),W=S.AssetValue.from({chain:H}),{gasPrice:z,maxFeePerGas:k,maxPriorityFeePerGas:_}=q[X];if(!T&&z)return W.set(S.SwapKitNumber.fromBigInt(z*Y,W.decimal));if(k&&_){let M=(k+_)*Y;return W.set(S.SwapKitNumber.fromBigInt(M,W.decimal))}throw new S.SwapKitError("toolbox_evm_no_gas_price")}}var S,wy,b0,M8,j1,M9,_9,O8,C9,D5=(y)=>y.type===4||(y.authorizations?.length??0)>0,$8=(y)=>!D5(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),N8=(y,T=!0)=>{if(D5(y))return"eip7702";if($8(y)||T)return"eip1559";return"legacy"};var F5=l(()=>{k5();P1();S=require("@swapkit/helpers"),wy=require("@swapkit/helpers/contracts"),b0=require("ethers"),M8=require("ts-pattern"),j1=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");M9=["payable","nonpayable"];_9=S.EVMChains.reduce((y,T)=>{return y[T]="0x0000000000000000000000000000000000000000",y},{}),O8={..._9,[S.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[S.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},C9=[S.Chain.Arbitrum,S.Chain.Aurora,S.Chain.Base,S.Chain.Optimism,S.Chain.Robinhood]});var iT;var tT=l(()=>{iT=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_gasUsed",type:"uint256"}],name:"getOperatorFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});function x5(y){return new R5.Contract(V9,iT,y)}function rT(y){return async function(){let H=x5(y);if(H&&"l1BaseFee"in H)return await H?.l1BaseFee();return}}function aT(y){return async function({from:H,to:f,nonce:X,...Q}){let{Transaction:Z}=await import("ethers");if(!f)throw new M0.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return Z.from({...Q,authorizationList:Q.authorizationList,nonce:X??(H?await y.getTransactionCount(H):0),to:f}).unsignedSerialized}}function k8(y,T){return async function(f){let X=x5(y),Q=f.chainId??T??(await y.getNetwork()).chainId,Z=await aT(y)({...f,chainId:Q});if(X&&"getL1Fee"in X){let q=await X.getL1Fee(Z);if(typeof q!=="bigint")throw new M0.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid OP-stack L1 fee"}});return q}return}}function B8(y){return async function(H){let f=x5(y);if(f&&"getOperatorFee"in f){let X=await f.getOperatorFee(H);if(typeof X!=="bigint")throw new M0.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid OP-stack operator fee"}});return X}return 0n}}function A9(y,T){let H=k8(y,T),f=B8(y);return async function(Q){if(Q.gasLimit===void 0||Q.gasLimit===null)throw new M0.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Missing gas limit for OP-stack fee estimation"}});let[Z,q]=await Promise.all([H(Q),f(BigInt(Q.gasLimit.toString()))]);return(Z??0n)+q}}function sT(y){return async function(H){let X=(await y.getFeeData()).gasPrice??0n,Q=await y.estimateGas(H);return X*Q}}function w9(y){return async function(H){let f=await k8(y)(H)??0n,X=await sT(y)(H),Q=H.gasLimit??await y.estimateGas(H),Z=await B8(y)(BigInt(Q.toString()));return f+X+Z}}function E9(y){return async function(H){let f=x5(y),X=await aT(y)(H);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(X)}}function v9(y){return async function(){try{let{maxFeePerGas:H,maxPriorityFeePerGas:f,gasPrice:X}=await y.getFeeData(),Q=await rT(y)(),Z=X;if(!(H&&f))throw new M0.SwapKitError("toolbox_evm_no_fee_data");return{[M0.FeeOption.Average]:{gasPrice:Z,l1GasPrice:Q,maxFeePerGas:H,maxPriorityFeePerGas:f},[M0.FeeOption.Fast]:{gasPrice:M0.applyFeeMultiplierToBigInt(Z,M0.FeeOption.Fast),l1GasPrice:M0.applyFeeMultiplierToBigInt(Q||0n,M0.FeeOption.Fast),maxFeePerGas:H,maxPriorityFeePerGas:M0.applyFeeMultiplierToBigInt(f,M0.FeeOption.Fast)},[M0.FeeOption.Fastest]:{gasPrice:M0.applyFeeMultiplierToBigInt(Z,M0.FeeOption.Fastest),l1GasPrice:M0.applyFeeMultiplierToBigInt(Q||0n,M0.FeeOption.Fastest),maxFeePerGas:H,maxPriorityFeePerGas:M0.applyFeeMultiplierToBigInt(f,M0.FeeOption.Fastest)}}}catch(H){throw new M0.SwapKitError("toolbox_evm_gas_estimation_error",{error:H.msg??H.toString()})}}}function H1(y){return function({provider:H,...f}){let X=A1.match(f).with({phrase:A1.P.string},({phrase:_})=>R5.HDNodeWallet.fromPhrase(_).connect(H)).with({signer:A1.P.any},({signer:_})=>_).otherwise(()=>{return}),Q=rT(H),Z=BigInt(M0.getChainConfig(y).chainId),q=k8(H,Z),Y=A9(H,Z),W=B8(H),z=y===M0.Chain.Optimism?v9(H):void 0;return{...y1({chain:y,estimateAdditionalFee:Y,estimateGasPrices:z,provider:H,signer:X}),estimateL1Gas:E9(H),estimateL1GasCost:q,estimateL2GasCost:sT(H),estimateOperatorFee:W,estimateTotalGasCost:w9(H),getBalance:I1(y).getBalance,getL1GasPrice:Q}}}var M0,R5,A1,V9="0x420000000000000000000000000000000000000f",I5;var P5=l(()=>{k5();tT();F5();M0=require("@swapkit/helpers"),R5=require("ethers"),A1=require("ts-pattern");I5=H1(M0.Chain.Optimism)});function j5(y){let T=x0(O0.Chain.Ethereum)(y);async function H(f,X="0x5ba1e12693dc8f9c48aad8770482f4739beed696",Q="aggregate",Z=O0.FeeOption.Fast){let q=await T.createContractTxObject({abi:uT,contractAddress:X,funcName:Q,funcParams:[f]});return T.sendTransaction({...q,feeOptionKey:Z})}return{...T,multicall:H}}function x0(y){return function({provider:H,...f}){let X=W8(y),Q=w1.match(f).with({phrase:w1.P.string},({phrase:q})=>eT.HDNodeWallet.fromPhrase(q).connect(H)).with({signer:w1.P.any},({signer:q})=>q).otherwise(()=>{return});return y1({chain:y,isEIP1559Compatible:X,provider:H,signer:Q})}}var O0,eT,w1,K5,S5,V5,A5,w5,E5,v5,y4,b5,h5,l5,u5,p5,m5,g5,o5,n5,c5,d5,E1,i5,t5;var D8=l(()=>{pT();P1();F5();P5();O0=require("@swapkit/helpers"),eT=require("ethers"),w1=require("ts-pattern");K5=x0(O0.Chain.Adi),S5=x0(O0.Chain.Arbitrum),V5=x0(O0.Chain.Aurora),A5=x0(O0.Chain.Avalanche),w5=H1(O0.Chain.Base),E5=x0(O0.Chain.Berachain),v5=x0(O0.Chain.BinanceSmartChain),y4=x0(O0.Chain.Botanix),b5=x0(O0.Chain.Core),h5=x0(O0.Chain.Corn),l5=x0(O0.Chain.Cronos),u5=x0(O0.Chain.Gnosis),p5=x0(O0.Chain.Robinhood),m5=x0(O0.Chain.Hyperevm),g5=x0(O0.Chain.Linea),o5=x0(O0.Chain.Polygon),n5=x0(O0.Chain.MegaETH),c5=x0(O0.Chain.Monad),d5=x0(O0.Chain.Plasma),E1=x0(O0.Chain.Sonic),i5=H1(O0.Chain.Unichain),t5=x0(O0.Chain.XLayer)});var H4={};P0(H4,{validateEVMAddress:()=>K1,toChecksumAddress:()=>mT,isStateChangingCall:()=>C8,isEIP7702Transaction:()=>D5,isEIP1559Transaction:()=>$8,isBrowserProvider:()=>f1,getTokenAddress:()=>V1,getEvmToolboxAsync:()=>T4,getEvmToolbox:()=>F8,getEstimateGasPrices:()=>vy,getEVMTxType:()=>N8,getEIP1193SendTransaction:()=>T1,getCreateContractTxObject:()=>Ey,getCreateContract:()=>_8,getChecksumAddressFromAsset:()=>gT,createOPStackToolbox:()=>H1,createContract:()=>S1,XLayerToolbox:()=>t5,UNIToolbox:()=>i5,SONICToolbox:()=>E1,PLASMAToolbox:()=>d5,OPToolbox:()=>I5,MONADToolbox:()=>c5,MEGAETHToolbox:()=>n5,MAX_APPROVAL:()=>j1,MATICToolbox:()=>o5,LINEAToolbox:()=>g5,HYPEREVMToolbox:()=>m5,HOODToolbox:()=>p5,GNOToolbox:()=>u5,ETHToolbox:()=>j5,ContractAddress:()=>O8,CROToolbox:()=>l5,CORNToolbox:()=>h5,COREToolbox:()=>b5,BotanixToolbox:()=>y4,BaseEVMToolbox:()=>y1,BSCToolbox:()=>v5,BERAToolbox:()=>E5,BASEToolbox:()=>w5,AVAXToolbox:()=>A5,AURORAToolbox:()=>V5,ARBToolbox:()=>S5,ADIToolbox:()=>K5});function F8(y,T){return f4.match(y).with($0.Chain.Adi,()=>K5(T)).with($0.Chain.Arbitrum,()=>S5(T)).with($0.Chain.Aurora,()=>V5(T)).with($0.Chain.Avalanche,()=>A5(T)).with($0.Chain.Base,()=>w5(T)).with($0.Chain.Berachain,()=>E5(T)).with($0.Chain.BinanceSmartChain,()=>v5(T)).with($0.Chain.Botanix,()=>E1(T)).with($0.Chain.Core,()=>b5(T)).with($0.Chain.Corn,()=>h5(T)).with($0.Chain.Cronos,()=>l5(T)).with($0.Chain.Ethereum,()=>j5(T)).with($0.Chain.Gnosis,()=>u5(T)).with($0.Chain.Hyperevm,()=>m5(T)).with($0.Chain.Linea,()=>g5(T)).with($0.Chain.MegaETH,()=>n5(T)).with($0.Chain.Monad,()=>c5(T)).with($0.Chain.Optimism,()=>I5(T)).with($0.Chain.Plasma,()=>d5(T)).with($0.Chain.Polygon,()=>o5(T)).with($0.Chain.Robinhood,()=>p5(T)).with($0.Chain.Sonic,()=>E1(T)).with($0.Chain.Unichain,()=>i5(T)).with($0.Chain.XLayer,()=>t5(T)).exhaustive()}async function T4(y,T){let H={...T,provider:T?.provider||Y8(y)};return F8(y,H)}var $0,f4;var R8=l(()=>{P1();D8();P5();$0=require("@swapkit/helpers"),f4=require("ts-pattern");F5();D8();P5()});var X4;var Q4=l(()=>{((H)=>{H.Test="goerli";H.Main="homestead"})(X4||={})});var Z4={};P0(Z4,{validateEVMAddress:()=>K1,validateAuthorizations:()=>G8,validateAuthorization:()=>hT,toHexString:()=>l0,toChecksumAddress:()=>mT,signAuthorization:()=>z8,parseEIP712FromEVMTx:()=>L9,isStateChangingCall:()=>C8,isEIP7702Transaction:()=>D5,isEIP1559Transaction:()=>$8,isBrowserProvider:()=>f1,getTokenAddress:()=>V1,getProviderSync:()=>bT,getProvider:()=>W9,getNetworkParams:()=>J8,getIsEIP1559Compatible:()=>W8,getFallbackProvider:()=>Y8,getEvmToolboxAsync:()=>T4,getEvmToolbox:()=>F8,getEvmApi:()=>I1,getEstimateGasPrices:()=>vy,getEVMTxType:()=>N8,getEIP1193SendTransaction:()=>T1,getCreateContractTxObject:()=>Ey,getCreateContract:()=>_8,getChecksumAddressFromAsset:()=>gT,createOPStackToolbox:()=>H1,createCustomEvmApi:()=>J9,createContract:()=>S1,buildEIP712DomainType:()=>lT,XLayerToolbox:()=>t5,UNIToolbox:()=>i5,SONICToolbox:()=>E1,PLASMAToolbox:()=>d5,OPToolbox:()=>I5,MONADToolbox:()=>c5,MEGAETHToolbox:()=>n5,MAX_APPROVAL:()=>j1,MATICToolbox:()=>o5,LINEAToolbox:()=>g5,HYPEREVMToolbox:()=>m5,HOODToolbox:()=>p5,GNOToolbox:()=>u5,EthNetwork:()=>X4,ETHToolbox:()=>j5,ContractAddress:()=>O8,CROToolbox:()=>l5,CORNToolbox:()=>h5,COREToolbox:()=>b5,BotanixToolbox:()=>y4,BaseEVMToolbox:()=>y1,BSCToolbox:()=>v5,BERAToolbox:()=>E5,BASEToolbox:()=>w5,AVAXToolbox:()=>A5,AURORAToolbox:()=>V5,ARBToolbox:()=>S5,ADIToolbox:()=>K5});module.exports=V0(Z4);var x8=l(()=>{k5();P1();R8();Q4()});async function P8(y,T){let H=await fetch(`${G4}${y}`,{...T,headers:{project_id:z4,...T?.headers}});if(!H.ok)throw Error(`Blockfrost API error: ${H.status} ${H.statusText}`);return H.json()}async function L4(y){try{return await P8(`/addresses/${y}/utxos`)}catch{return[]}}async function h9(){return(await P8("/blocks/latest")).slot}async function l9(){let y=await P8("/epochs/latest/parameters"),T={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new u0.default(y.collateral_percent),languageView:T,maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new u0.default(y.min_fee_a),minFeeB:new u0.default(y.min_fee_b),minFeeRefScriptCostPerByte:new u0.default(15),priceMem:new u0.default(y.price_mem),priceSteps:new u0.default(y.price_step),stakeKeyDeposit:new u0.default(2000000),utxoCostPerByte:new u0.default(y.coins_per_utxo_size)}}async function U4(y){let T=await fetch(`${G4}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:z4},method:"POST"});if(!T.ok){let H=await T.text();throw Error(`Transaction submission failed: ${H}`)}return T.json()}function u9(y,T){return y.map((H)=>{let f=H.amount.find((Z)=>Z.unit==="lovelace"),X=f?new u0.default(f.quantity):new u0.default(0),Q=H.amount.filter((Z)=>Z.unit!=="lovelace").map((Z)=>({amount:new u0.default(Z.quantity),assetName:Z.unit.slice(56),policyId:Z.unit.slice(0,56)}));return{address:T,amount:X,index:H.output_index,tokens:Q,txId:H.tx_hash}})}function p9({TransactionConstructor:y,auxiliaryData:T,bufferedParams:H,currentSlot:f,inputs:X,recipientAddress:Q}){let Z=X.reduce((M,O)=>M.plus(O.amount),new u0.default(0));if(!Z.isPositive())throw new _0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{available:Z.toString()}});let q=new y({protocolParams:H});for(let M of X)q.addInput(M);if(q.addOutput({address:Q,amount:Z,tokens:[]}),q.setTTL(f+3600),T)q.setAuxiliaryData(T);q.setFee(q.calculateFee());let Y=q.getFee(),W=Z.minus(Y),z={address:Q,amount:W,tokens:[]},k=q.calculateMinUtxoAmountBabbage(z);if(!W.isPositive()||W.lt(k))throw new _0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{available:Z.toString(),fee:Y.toString(),minimumOutput:k.toString()}});return new y({protocolParams:H}).paymentTransaction({auxiliaryData:T,changeAddress:Q,inputs:X,outputs:[z],ttl:f+3600})}async function m9(y){try{let T=await L4(y),H=0n,f=new Map;for(let Z of T){if(!Z.amount||!Array.isArray(Z.amount))continue;for(let q of Z.amount){let{unit:Y,quantity:W}=q;if(Y==="lovelace")H+=BigInt(W);else{let z=f.get(Y)||0n;f.set(Y,z+BigInt(W))}}}let X=[],{baseDecimal:Q}=_0.getChainConfig(_0.Chain.Cardano);if(H>0n)X.push(_0.AssetValue.from({chain:_0.Chain.Cardano,fromBaseDecimal:Q,value:H.toString()}));for(let[Z,q]of f)X.push(_0.AssetValue.from({asset:`${_0.Chain.Cardano}.${Z}`,value:q.toString()}));if(X.length===0)return[_0.AssetValue.from({chain:_0.Chain.Cardano})];return X}catch(T){let H=T instanceof Error?T.message:String(T);return console.error(`Cardano balance fetch error: ${H}`),[_0.AssetValue.from({chain:_0.Chain.Cardano})]}}function M4(y){if(!y||typeof y!=="string")return!1;try{let T=Y4.bech32.decode(y,120);return T.prefix==="addr"||T.prefix==="addr_test"}catch{return!1}}async function g9(y,T=0,H=0){let{Bip32PrivateKey:f}=await import("@stricahq/bip32ed25519"),{types:X,address:Q,crypto:Z}=await import("@stricahq/typhonjs"),q=J4.mnemonicToEntropy(y,W4.wordlist),W=(await f.fromEntropy(Buffer.from(Array.from(q)))).derive(I8+1852).derive(I8+1815).derive(I8+T),z=W.derive(0).derive(H),k=z.toBip32PublicKey().toPublicKey().toBytes(),_=Z.hash28(k),O=W.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),C=Z.hash28(O),D={hash:_,type:X.HashType.ADDRESS},R={hash:C,type:X.HashType.ADDRESS},E=new Q.BaseAddress(X.NetworkId.MAINNET,D,R).getBech32(),j=z.toPrivateKey();return{getAddress:()=>E,publicKey:k,publicKeyHash:_,signTransaction:async(K)=>{try{let $=await import("@stricahq/cbors"),B=Buffer.from(K,"hex"),L=$.Decoder.decode(B),[J,U,G,N]=L.value,F=$.Encoder.encode(J),x=Z.hash32(F),A=j.sign(x),w=U instanceof Map?U:new Map,b=w.get(q4)||[];b.push([k,A]),w.set(q4,b);let a=[J,w,G,N];return $.Encoder.encode(a).toString("hex")}catch($){throw new _0.SwapKitError("toolbox_cardano_sign_transaction_failed",{message:String($)})}}}}function o9(y){let T,H,f;async function X(){if(!f)f=await l9();return f}async function Q(){if(T!==void 0)return T;if(y&&"phrase"in y&&y.phrase){let M=y.index??0;return T=await g9(y.phrase,0,M),T}if(y&&"signer"in y&&y.signer)return T=y.signer,T;return}async function Z(){if(H)return H;let M=await Q();if(!M)return"";if("getAddress"in M)return H=await M.getAddress(),H;return""}async function q(M){let O=M||await Z();if(!O)throw new _0.SwapKitError("core_wallet_connection_not_found");return m9(O)}async function Y(M){if(M)try{let{tx:R}=await W(M),P=R.getFee();return _0.AssetValue.from({chain:_0.Chain.Cardano,fromBaseDecimal:6,value:P.toString()})}catch{}let O=await X(),C=400,D=O.minFeeB.plus(O.minFeeA.times(C));return _0.AssetValue.from({chain:_0.Chain.Cardano,fromBaseDecimal:6,value:D.toString()})}async function W({sender:M="",recipient:O,assetValue:C,memo:D,pureLovelaceOnly:R=!1,sweep:P=!1}){let{Transaction:E,utils:j}=await import("@stricahq/typhonjs"),K=M||await Z();if(!K)throw new _0.SwapKitError("core_wallet_connection_not_found");let[$,B,L]=await Promise.all([L4(K),h9(),X()]);if(P&&!C.isGasAsset)throw new _0.SwapKitError({errorKey:"toolbox_not_supported",info:{asset:C.toString(),chain:_0.Chain.Cardano,feature:"token_sweep"}});let J=P&&C.isGasAsset,U=R||J,G=$.filter((V)=>U?V.amount.some((h)=>h.unit==="lovelace")&&V.amount.every((h)=>h.unit==="lovelace"):V.amount.some((h)=>h.unit==="lovelace")).sort((V,h)=>{let c=V.amount.some((f0)=>f0.unit!=="lovelace"),i=h.amount.some((f0)=>f0.unit!=="lovelace");if(c===i)return 0;return c?1:-1}),N=j.getAddressFromString(K),F=j.getAddressFromString(O),x=u9(G,N),A;if(D){let V=new Map;V.set("msg",[D]),A={metadata:[{data:V,label:674}]}}let w={...L,minFeeB:L.minFeeB.plus(L.minFeeA.times(4))};if(J){let V=p9({auxiliaryData:A,bufferedParams:w,currentSlot:B,inputs:x,recipientAddress:F,TransactionConstructor:E}),{payload:h}=V.buildTransaction();return{tx:V,unsignedTx:h}}let b=new u0.default(C.getBaseValue("string")),a=[{address:F,amount:b,tokens:[]}],Y0=new E({protocolParams:w}).paymentTransaction({auxiliaryData:A,changeAddress:N,inputs:x,outputs:a,ttl:B+3600}),{payload:I}=Y0.buildTransaction();return{tx:Y0,unsignedTx:I}}async function z(M){let O=await Q();if(!O||!("signTransaction"in O))throw new _0.SwapKitError("core_wallet_connection_not_found");return O.signTransaction(M)}async function k({recipient:M,assetValue:O,memo:C,sweep:D}){let R=await Q();if(!R||!("signTransaction"in R))throw new _0.SwapKitError("core_wallet_connection_not_found");let{unsignedTx:P}=await W({assetValue:O,memo:C,recipient:M,sender:await Z(),sweep:D}),E=await z(P);return await U4(E)}async function _(M){let O=await z(M);return await U4(O)}return{createTransaction:W,estimateTransactionFee:Y,getAddress:Z,getBalance:q,signAndBroadcastTransaction:_,signTransaction:z,transfer:k,validateAddress:M4}}var Y4,J4,W4,_0,u0,z4="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",G4="https://cardano-mainnet.blockfrost.io/api/v0",I8=2147483648,q4=0;var _4=l(()=>{Y4=require("@scure/base"),J4=require("@scure/bip39"),W4=require("@scure/bip39/wordlists/english.js"),_0=require("@swapkit/helpers"),u0=_T(require("bignumber.js"))});var j8={};P0(j8,{validateCardanoAddress:()=>M4,getCardanoToolbox:()=>o9});module.exports=V0(j8);var K8=l(()=>{_4()});function v1(y){return Xy.base64.encode(Uint8Array.from(Xy.bech32.fromWords(Xy.bech32.decode(y).words)))}function b1(y,T="thor"){return Xy.bech32.encode(T,Xy.bech32.toWords(Xy.base64.decode(y)))}function n9(y){return Xy.base64.encode(y)}function c9(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new C4.SwapKitError("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return Xy.base64.decode(y)}var Xy,C4;var S8=l(()=>{Xy=require("@scure/base"),C4=require("@swapkit/helpers")});function r0(y){switch(y){case p.Chain.Maya:return{amount:[],gas:"10000000000"};case p.Chain.THORChain:return{amount:[],gas:"500000000"};case p.Chain.Kujira:return N4;case p.Chain.Noble:return k4;default:return $4}}async function h1(y){let{isStagenet:T}=p.SKConfig.get("envs"),H=p.SKConfig.get("thornodeUrls"),f=y===p.Chain.Maya,Q=`${f?T?H.MAYA_STAGENET:H.MAYA:T?H.THOR_STAGENET:H.THOR}/${f?"mayachain":"thorchain"}/constants`,Z=p.getChainConfig(y).baseDecimal;try{let{int_64_values:{NativeTransactionFee:q}}=await p.RequestClient.get(Q);if(!Number.isInteger(q)||q<=0)throw new p.SwapKitError("toolbox_cosmos_invalid_fee",{nativeFee:q.toString()});return p.SwapKitNumber.fromBigInt(BigInt(q),Z)}catch{let q=f?10000000000n:2000000n;return p.SwapKitNumber.fromBigInt(q,Z)}}async function Qy(y){let T=await import("@cosmjs/stargate"),H=T.StargateClient??T.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return H.connect({headers:f,url:y})}async function by(y,T,H={}){let f=await import("@cosmjs/stargate"),X=f.SigningStargateClient??f.default?.SigningStargateClient,Q=f.GasPrice??f.default?.GasPrice,Z=typeof H==="string"?H:"0.0003uatom",q=typeof H==="string"?{}:H;return X.connectWithSigner(y,T,{gasPrice:Q.fromString(Z),...q})}async function A8(y,T){let H=await import("@cosmjs/stargate");return(H.SigningStargateClient??H.default?.SigningStargateClient).offline(y,T)}async function w8({sender:y,recipient:T,assetValue:H,memo:f="",feeRate:X,sequence:Q,accountNumber:Z,sweep:q}){let{chain:Y,chainId:W}=H,z=await p.getRPCUrl(Y),k=await Qy(z),_=await k.getAccount(y);if(!_)throw new p.SwapKitError("toolbox_cosmos_account_not_found",{sender:y});let M=p.AssetValue.from({chain:Y}),O=Yy(M.symbol),C=r0(Y),D=O&&X?{amount:[{amount:X.toString(),denom:O}],gas:C.gas}:C,R=Yy(H.symbol),E={amount:[{amount:(q?X1({assetValue:H,balances:await k.getAllBalances(y),denom:R,feeAmount:r5(D.amount,R)}):H).getBaseValue("string"),denom:R}],fromAddress:y,toAddress:T};return{accountNumber:Z??Number(_.accountNumber),chainId:W,fee:D,memo:f,msgs:[{typeUrl:d9(Y),value:E}],sequence:Q??_.sequence}}function r5(y,T){let H=T.toLowerCase();return y.reduce((f,X)=>X.denom.toLowerCase()===H?f+BigInt(X.amount):f,0n)}function X1({assetValue:y,balances:T,denom:H,feeAmount:f=0n}){let X=H.toLowerCase(),Q=T.find(({denom:Y})=>Y.toLowerCase()===X),Z=BigInt(Q?.amount??"0"),q=Z-f;if(q<=0n)throw new p.SwapKitError("toolbox_sweep_amount_too_low",{asset:y.toString(),balance:Z.toString(),fee:f.toString()});return y.set(p.SwapKitNumber.fromBigInt(q,y.decimal))}var p,V8="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",O4="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",$4,N4,k4,Yy=(y,T=!1)=>{if(T)return y.toLowerCase();switch(y){case"uUSK":case"USK":return V8;case"uYUM":case"YUM":return O4;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":case"NOBLE":return"uusdc";default:return y}},l1=({symbol:y,chain:T})=>{if(T===p.Chain.Maya)return(y.toUpperCase()!=="CACAO"?y:`${p.Chain.Maya}.${y}`).toUpperCase();if(T===p.Chain.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${p.Chain.THORChain}.${y}`:y).toUpperCase();return Yy(y,!1)},d9=(y)=>{switch(y){case p.Chain.Maya:case p.Chain.THORChain:return"/types.MsgSend";case p.Chain.Cosmos:case p.Chain.Kujira:case p.Chain.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new p.SwapKitError("toolbox_cosmos_not_supported",{chain:y})}},i9,E8=(y,T)=>{let H=i9[y.toLowerCase()];if(!H)return p.AssetValue.from({asset:y,fromBaseDecimal:8,value:T});let{chain:f,asset:X,decimals:Q}=H,Z=f?{chain:f}:{asset:X};return p.AssetValue.from({...Z,fromBaseDecimal:Q,value:T})};var u1=l(()=>{p=require("@swapkit/helpers"),$4={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},N4={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},k4={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};i9={atom:{chain:p.Chain.Cosmos,decimals:p.getChainConfig(p.Chain.Cosmos).baseDecimal},cacao:{chain:p.Chain.Maya,decimals:10},kuji:{chain:p.Chain.Kujira,decimals:p.getChainConfig(p.Chain.Kujira).baseDecimal},maya:{asset:`${p.Chain.Maya}.${p.Chain.Maya}`,decimals:4},rune:{chain:p.Chain.THORChain,decimals:p.getChainConfig(p.Chain.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:p.getChainConfig(p.Chain.THORChain).baseDecimal},uatom:{chain:p.Chain.Cosmos,decimals:p.getChainConfig(p.Chain.Cosmos).baseDecimal},ukuji:{chain:p.Chain.Kujira,decimals:p.getChainConfig(p.Chain.Kujira).baseDecimal},usdc:{chain:p.Chain.Noble,decimals:p.getChainConfig(p.Chain.Noble).baseDecimal},uusdc:{chain:p.Chain.Noble,decimals:p.getChainConfig(p.Chain.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:p.getChainConfig(p.Chain.THORChain).baseDecimal},[V8.toLowerCase()]:{asset:`${p.Chain.Kujira}.USK`,decimals:p.getChainConfig(p.Chain.Kujira).baseDecimal}}});var B4={};P0(B4,{$root:()=>u});var K0,r,c0,n,u;var D4=l(()=>{K0=_T(require("protobufjs/minimal.js")),r=K0.default.Reader,c0=K0.default.Writer,n=K0.default.util,u=K0.default.roots.default||(K0.default.roots.default={});u.common=(()=>{let y={};return y.Asset=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.chain="",T.prototype.symbol="",T.prototype.ticker="",T.prototype.synth=!1,T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))X.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))X.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))X.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))X.uint32(32).bool(f.synth);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new u.common.Asset;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.chain=f.string();break;case 2:Z.symbol=f.string();break;case 3:Z.ticker=f.string();break;case 4:Z.synth=f.bool();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!n.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!n.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!n.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},T.fromObject=function(f){if(f instanceof u.common.Asset)return f;let X=new u.common.Asset;if(f.chain!=null)X.chain=String(f.chain);if(f.symbol!=null)X.symbol=String(f.symbol);if(f.ticker!=null)X.ticker=String(f.ticker);if(f.synth!=null)X.synth=Boolean(f.synth);return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.defaults)Q.chain="",Q.symbol="",Q.ticker="",Q.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))Q.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))Q.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))Q.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))Q.synth=f.synth;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y.Coin=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.asset=null,T.prototype.amount="",T.prototype.decimals=n.Long?n.Long.fromBits(0,0,!1):0,T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))u.common.Asset.encode(f.asset,X.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))X.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))X.uint32(24).int64(f.decimals);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new u.common.Coin;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.asset=u.common.Asset.decode(f,f.uint32());break;case 2:Z.amount=f.string();break;case 3:Z.decimals=f.int64();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let X=u.common.Asset.verify(f.asset);if(X)return"asset."+X}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!n.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!n.isInteger(f.decimals)&&!(f.decimals&&n.isInteger(f.decimals.low)&&n.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},T.fromObject=function(f){if(f instanceof u.common.Coin)return f;let X=new u.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");X.asset=u.common.Asset.fromObject(f.asset)}if(f.amount!=null)X.amount=String(f.amount);if(f.decimals!=null){if(n.Long)(X.decimals=n.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")X.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")X.decimals=f.decimals;else if(typeof f.decimals==="object")X.decimals=new n.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.defaults)if(Q.asset=null,Q.amount="",n.Long){let Z=new n.Long(0,0,!1);Q.decimals=X.longs===String?Z.toString():X.longs===Number?Z.toNumber():Z}else Q.decimals=X.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))Q.asset=u.common.Asset.toObject(f.asset,X);if(f.amount!=null&&f.hasOwnProperty("amount"))Q.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")Q.decimals=X.longs===String?String(f.decimals):f.decimals;else Q.decimals=X.longs===String?n.Long.prototype.toString.call(f.decimals):X.longs===Number?new n.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y.PubKeySet=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.secp256k1="",T.prototype.ed25519="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))X.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))X.uint32(18).string(f.ed25519);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new u.common.PubKeySet;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.secp256k1=f.string();break;case 2:Z.ed25519=f.string();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!n.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!n.isString(f.ed25519))return"ed25519: string expected"}return null},T.fromObject=function(f){if(f instanceof u.common.PubKeySet)return f;let X=new u.common.PubKeySet;if(f.secp256k1!=null)X.secp256k1=String(f.secp256k1);if(f.ed25519!=null)X.ed25519=String(f.ed25519);return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.defaults)Q.secp256k1="",Q.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))Q.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))Q.ed25519=f.ed25519;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y.Tx=(()=>{function T(H){if(this.coins=[],this.gas=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.id="",T.prototype.chain="",T.prototype.fromAddress="",T.prototype.toAddress="",T.prototype.coins=n.emptyArray,T.prototype.gas=n.emptyArray,T.prototype.memo="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))X.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))X.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))X.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))X.uint32(34).string(f.toAddress);if(f.coins?.length)for(let Q=0;Q<f.coins.length;++Q)u.common.Coin.encode(f.coins[Q],X.uint32(42).fork()).ldelim();if(f.gas?.length)for(let Q=0;Q<f.gas.length;++Q)u.common.Coin.encode(f.gas[Q],X.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))X.uint32(58).string(f.memo);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new u.common.Tx;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.id=f.string();break;case 2:Z.chain=f.string();break;case 3:Z.fromAddress=f.string();break;case 4:Z.toAddress=f.string();break;case 5:if(!Z.coins?.length)Z.coins=[];Z.coins.push(u.common.Coin.decode(f,f.uint32()));break;case 6:if(!Z.gas?.length)Z.gas=[];Z.gas.push(u.common.Coin.decode(f,f.uint32()));break;case 7:Z.memo=f.string();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!n.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!n.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!n.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!n.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let X=0;X<f.coins.length;++X){let Q=u.common.Coin.verify(f.coins[X]);if(Q)return"coins."+Q}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let X=0;X<f.gas.length;++X){let Q=u.common.Coin.verify(f.gas[X]);if(Q)return"gas."+Q}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!n.isString(f.memo))return"memo: string expected"}return null},T.fromObject=function(f){if(f instanceof u.common.Tx)return f;let X=new u.common.Tx;if(f.id!=null)X.id=String(f.id);if(f.chain!=null)X.chain=String(f.chain);if(f.fromAddress!=null)X.fromAddress=String(f.fromAddress);if(f.toAddress!=null)X.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");X.coins=[];for(let Q=0;Q<f.coins.length;++Q){if(typeof f.coins[Q]!=="object")throw TypeError(".common.Tx.coins: object expected");X.coins[Q]=u.common.Coin.fromObject(f.coins[Q])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");X.gas=[];for(let Q=0;Q<f.gas.length;++Q){if(typeof f.gas[Q]!=="object")throw TypeError(".common.Tx.gas: object expected");X.gas[Q]=u.common.Coin.fromObject(f.gas[Q])}}if(f.memo!=null)X.memo=String(f.memo);return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.arrays||X.defaults)Q.coins=[],Q.gas=[];if(X.defaults)Q.id="",Q.chain="",Q.fromAddress="",Q.toAddress="",Q.memo="";if(f.id!=null&&f.hasOwnProperty("id"))Q.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))Q.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))Q.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))Q.toAddress=f.toAddress;if(f.coins?.length){Q.coins=[];for(let Z=0;Z<f.coins.length;++Z)Q.coins[Z]=u.common.Coin.toObject(f.coins[Z],X)}if(f.gas?.length){Q.gas=[];for(let Z=0;Z<f.gas.length;++Z)Q.gas[Z]=u.common.Coin.toObject(f.gas[Z],X)}if(f.memo!=null&&f.hasOwnProperty("memo"))Q.memo=f.memo;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y.Fee=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.coins=n.emptyArray,T.prototype.poolDeduct="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.coins?.length)for(let Q=0;Q<f.coins.length;++Q)u.common.Coin.encode(f.coins[Q],X.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))X.uint32(18).string(f.poolDeduct);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new u.common.Fee;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:if(!Z.coins?.length)Z.coins=[];Z.coins.push(u.common.Coin.decode(f,f.uint32()));break;case 2:Z.poolDeduct=f.string();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let X=0;X<f.coins.length;++X){let Q=u.common.Coin.verify(f.coins[X]);if(Q)return"coins."+Q}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!n.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},T.fromObject=function(f){if(f instanceof u.common.Fee)return f;let X=new u.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");X.coins=[];for(let Q=0;Q<f.coins.length;++Q){if(typeof f.coins[Q]!=="object")throw TypeError(".common.Fee.coins: object expected");X.coins[Q]=u.common.Coin.fromObject(f.coins[Q])}}if(f.poolDeduct!=null)X.poolDeduct=String(f.poolDeduct);return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.arrays||X.defaults)Q.coins=[];if(X.defaults)Q.poolDeduct="";if(f.coins?.length){Q.coins=[];for(let Z=0;Z<f.coins.length;++Z)Q.coins[Z]=u.common.Coin.toObject(f.coins[Z],X)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))Q.poolDeduct=f.poolDeduct;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y.ProtoUint=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.value="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))X.uint32(10).string(f.value);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new u.common.ProtoUint;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.value=f.string();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!n.isString(f.value))return"value: string expected"}return null},T.fromObject=function(f){if(f instanceof u.common.ProtoUint)return f;let X=new u.common.ProtoUint;if(f.value!=null)X.value=String(f.value);return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.defaults)Q.value="";if(f.value!=null&&f.hasOwnProperty("value"))Q.value=f.value;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y})();u.types=(()=>{let y={};return y.MsgDeposit=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.coins=n.emptyArray,T.prototype.memo="",T.prototype.signer=n.newBuffer([]),T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.coins?.length)for(let Q=0;Q<f.coins.length;++Q)u.common.Coin.encode(f.coins[Q],X.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))X.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))X.uint32(26).bytes(f.signer);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new u.types.MsgDeposit;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:if(!Z.coins?.length)Z.coins=[];Z.coins.push(u.common.Coin.decode(f,f.uint32()));break;case 2:Z.memo=f.string();break;case 3:Z.signer=f.bytes();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let X=0;X<f.coins.length;++X){let Q=u.common.Coin.verify(f.coins[X]);if(Q)return"coins."+Q}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!n.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||n.isString(f.signer)))return"signer: buffer expected"}return null},T.fromObject=function(f){if(f instanceof u.types.MsgDeposit)return f;let X=new u.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");X.coins=[];for(let Q=0;Q<f.coins.length;++Q){if(typeof f.coins[Q]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");X.coins[Q]=u.common.Coin.fromObject(f.coins[Q])}}if(f.memo!=null)X.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")n.base64.decode(f.signer,X.signer=n.newBuffer(n.base64.length(f.signer)),0);else if(f.signer.length)X.signer=f.signer}return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.arrays||X.defaults)Q.coins=[];if(X.defaults){if(Q.memo="",X.bytes===String)Q.signer="";else if(Q.signer=[],X.bytes!==Array)Q.signer=n.newBuffer(Q.signer)}if(f.coins?.length){Q.coins=[];for(let Z=0;Z<f.coins.length;++Z)Q.coins[Z]=u.common.Coin.toObject(f.coins[Z],X)}if(f.memo!=null&&f.hasOwnProperty("memo"))Q.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))Q.signer=X.bytes===String?n.base64.encode(f.signer,0,f.signer.length):X.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y.MsgSend=(()=>{function T(H){if(this.amount=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.fromAddress=n.newBuffer([]),T.prototype.toAddress=n.newBuffer([]),T.prototype.amount=n.emptyArray,T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))X.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))X.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let Q=0;Q<f.amount.length;++Q)u.cosmos.base.v1beta1.Coin.encode(f.amount[Q],X.uint32(26).fork()).ldelim();return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new u.types.MsgSend;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.fromAddress=f.bytes();break;case 2:Z.toAddress=f.bytes();break;case 3:if(!Z.amount?.length)Z.amount=[];Z.amount.push(u.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||n.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||n.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let X=0;X<f.amount.length;++X){let Q=u.cosmos.base.v1beta1.Coin.verify(f.amount[X]);if(Q)return"amount."+Q}}return null},T.fromObject=function(f){if(f instanceof u.types.MsgSend)return f;let X=new u.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")n.base64.decode(f.fromAddress,X.fromAddress=n.newBuffer(n.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)X.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")n.base64.decode(f.toAddress,X.toAddress=n.newBuffer(n.base64.length(f.toAddress)),0);else if(f.toAddress.length)X.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");X.amount=[];for(let Q=0;Q<f.amount.length;++Q){if(typeof f.amount[Q]!=="object")throw TypeError(".types.MsgSend.amount: object expected");X.amount[Q]=u.cosmos.base.v1beta1.Coin.fromObject(f.amount[Q])}}return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.arrays||X.defaults)Q.amount=[];if(X.defaults){if(X.bytes===String)Q.fromAddress="";else if(Q.fromAddress=[],X.bytes!==Array)Q.fromAddress=n.newBuffer(Q.fromAddress);if(X.bytes===String)Q.toAddress="";else if(Q.toAddress=[],X.bytes!==Array)Q.toAddress=n.newBuffer(Q.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))Q.fromAddress=X.bytes===String?n.base64.encode(f.fromAddress,0,f.fromAddress.length):X.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))Q.toAddress=X.bytes===String?n.base64.encode(f.toAddress,0,f.toAddress.length):X.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){Q.amount=[];for(let Z=0;Z<f.amount.length;++Z)Q.amount[Z]=u.cosmos.base.v1beta1.Coin.toObject(f.amount[Z],X)}return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},T})(),y})();u.cosmos=(()=>{let y={};return y.base=(()=>{let T={};return T.v1beta1=(()=>{let H={};return H.Coin=(()=>{function f(X){if(X){for(let Q=Object.keys(X),Z=0;Z<Q.length;++Z)if(X[Q[Z]]!=null)this[Q[Z]]=X[Q[Z]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(Q){return new f(Q)},f.encode=function(Q,Z){if(!Z)Z=c0.create();if(Q.denom!=null&&Object.hasOwnProperty.call(Q,"denom"))Z.uint32(10).string(Q.denom);if(Q.amount!=null&&Object.hasOwnProperty.call(Q,"amount"))Z.uint32(18).string(Q.amount);return Z},f.encodeDelimited=function(Q,Z){return this.encode(Q,Z).ldelim()},f.decode=function(Q,Z){if(!(Q instanceof r))Q=r.create(Q);let q=Z===void 0?Q.len:Q.pos+Z,Y=new u.cosmos.base.v1beta1.Coin;while(Q.pos<q){let W=Q.uint32();switch(W>>>3){case 1:Y.denom=Q.string();break;case 2:Y.amount=Q.string();break;default:Q.skipType(W&7);break}}return Y},f.decodeDelimited=function(Q){if(!(Q instanceof r))Q=new r(Q);return this.decode(Q,Q.uint32())},f.verify=function(Q){if(typeof Q!=="object"||Q===null)return"object expected";if(Q.denom!=null&&Q.hasOwnProperty("denom")){if(!n.isString(Q.denom))return"denom: string expected"}if(Q.amount!=null&&Q.hasOwnProperty("amount")){if(!n.isString(Q.amount))return"amount: string expected"}return null},f.fromObject=function(Q){if(Q instanceof u.cosmos.base.v1beta1.Coin)return Q;let Z=new u.cosmos.base.v1beta1.Coin;if(Q.denom!=null)Z.denom=String(Q.denom);if(Q.amount!=null)Z.amount=String(Q.amount);return Z},f.toObject=function(Q,Z){if(!Z)Z={};let q={};if(Z.defaults)q.denom="",q.amount="";if(Q.denom!=null&&Q.hasOwnProperty("denom"))q.denom=Q.denom;if(Q.amount!=null&&Q.hasOwnProperty("amount"))q.amount=Q.amount;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},f})(),H.DecCoin=(()=>{function f(X){if(X){for(let Q=Object.keys(X),Z=0;Z<Q.length;++Z)if(X[Q[Z]]!=null)this[Q[Z]]=X[Q[Z]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(Q){return new f(Q)},f.encode=function(Q,Z){if(!Z)Z=c0.create();if(Q.denom!=null&&Object.hasOwnProperty.call(Q,"denom"))Z.uint32(10).string(Q.denom);if(Q.amount!=null&&Object.hasOwnProperty.call(Q,"amount"))Z.uint32(18).string(Q.amount);return Z},f.encodeDelimited=function(Q,Z){return this.encode(Q,Z).ldelim()},f.decode=function(Q,Z){if(!(Q instanceof r))Q=r.create(Q);let q=Z===void 0?Q.len:Q.pos+Z,Y=new u.cosmos.base.v1beta1.DecCoin;while(Q.pos<q){let W=Q.uint32();switch(W>>>3){case 1:Y.denom=Q.string();break;case 2:Y.amount=Q.string();break;default:Q.skipType(W&7);break}}return Y},f.decodeDelimited=function(Q){if(!(Q instanceof r))Q=new r(Q);return this.decode(Q,Q.uint32())},f.verify=function(Q){if(typeof Q!=="object"||Q===null)return"object expected";if(Q.denom!=null&&Q.hasOwnProperty("denom")){if(!n.isString(Q.denom))return"denom: string expected"}if(Q.amount!=null&&Q.hasOwnProperty("amount")){if(!n.isString(Q.amount))return"amount: string expected"}return null},f.fromObject=function(Q){if(Q instanceof u.cosmos.base.v1beta1.DecCoin)return Q;let Z=new u.cosmos.base.v1beta1.DecCoin;if(Q.denom!=null)Z.denom=String(Q.denom);if(Q.amount!=null)Z.amount=String(Q.amount);return Z},f.toObject=function(Q,Z){if(!Z)Z={};let q={};if(Z.defaults)q.denom="",q.amount="";if(Q.denom!=null&&Q.hasOwnProperty("denom"))q.denom=Q.denom;if(Q.amount!=null&&Q.hasOwnProperty("amount"))q.amount=Q.amount;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},f})(),H.IntProto=(()=>{function f(X){if(X){for(let Q=Object.keys(X),Z=0;Z<Q.length;++Z)if(X[Q[Z]]!=null)this[Q[Z]]=X[Q[Z]]}}return f.prototype.int="",f.create=function(Q){return new f(Q)},f.encode=function(Q,Z){if(!Z)Z=c0.create();if(Q.int!=null&&Object.hasOwnProperty.call(Q,"int"))Z.uint32(10).string(Q.int);return Z},f.encodeDelimited=function(Q,Z){return this.encode(Q,Z).ldelim()},f.decode=function(Q,Z){if(!(Q instanceof r))Q=r.create(Q);let q=Z===void 0?Q.len:Q.pos+Z,Y=new u.cosmos.base.v1beta1.IntProto;while(Q.pos<q){let W=Q.uint32();switch(W>>>3){case 1:Y.int=Q.string();break;default:Q.skipType(W&7);break}}return Y},f.decodeDelimited=function(Q){if(!(Q instanceof r))Q=new r(Q);return this.decode(Q,Q.uint32())},f.verify=function(Q){if(typeof Q!=="object"||Q===null)return"object expected";if(Q.int!=null&&Q.hasOwnProperty("int")){if(!n.isString(Q.int))return"int: string expected"}return null},f.fromObject=function(Q){if(Q instanceof u.cosmos.base.v1beta1.IntProto)return Q;let Z=new u.cosmos.base.v1beta1.IntProto;if(Q.int!=null)Z.int=String(Q.int);return Z},f.toObject=function(Q,Z){if(!Z)Z={};let q={};if(Z.defaults)q.int="";if(Q.int!=null&&Q.hasOwnProperty("int"))q.int=Q.int;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},f})(),H.DecProto=(()=>{function f(X){if(X){for(let Q=Object.keys(X),Z=0;Z<Q.length;++Z)if(X[Q[Z]]!=null)this[Q[Z]]=X[Q[Z]]}}return f.prototype.dec="",f.create=function(Q){return new f(Q)},f.encode=function(Q,Z){if(!Z)Z=c0.create();if(Q.dec!=null&&Object.hasOwnProperty.call(Q,"dec"))Z.uint32(10).string(Q.dec);return Z},f.encodeDelimited=function(Q,Z){return this.encode(Q,Z).ldelim()},f.decode=function(Q,Z){if(!(Q instanceof r))Q=r.create(Q);let q=Z===void 0?Q.len:Q.pos+Z,Y=new u.cosmos.base.v1beta1.DecProto;while(Q.pos<q){let W=Q.uint32();switch(W>>>3){case 1:Y.dec=Q.string();break;default:Q.skipType(W&7);break}}return Y},f.decodeDelimited=function(Q){if(!(Q instanceof r))Q=new r(Q);return this.decode(Q,Q.uint32())},f.verify=function(Q){if(typeof Q!=="object"||Q===null)return"object expected";if(Q.dec!=null&&Q.hasOwnProperty("dec")){if(!n.isString(Q.dec))return"dec: string expected"}return null},f.fromObject=function(Q){if(Q instanceof u.cosmos.base.v1beta1.DecProto)return Q;let Z=new u.cosmos.base.v1beta1.DecProto;if(Q.dec!=null)Z.dec=String(Q.dec);return Z},f.toObject=function(Q,Z){if(!Z)Z={};let q={};if(Z.defaults)q.dec="";if(Q.dec!=null&&Q.hasOwnProperty("dec"))q.dec=Q.dec;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,K0.default.util.toJSONOptions)},f})(),H})(),T})(),y})()});async function hy(){let{$root:y}=await Promise.resolve().then(() => (D4(),B4)),T=await import("@cosmjs/proto-signing"),H=await import("@cosmjs/stargate"),f=T.Registry??T.default?.Registry,X=H.defaultRegistryTypes??H.default?.defaultRegistryTypes;return new f([...X,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function Cy(y,T=y===v8.Chain.THORChain?"thor":"maya"){let H=await import("@cosmjs/stargate"),f=H.AminoTypes??H.default?.AminoTypes,X=y===v8.Chain.THORChain?"thorchain":"mayachain";return new f({"/types.MsgDeposit":{aminoType:`${X}/MsgDeposit`,fromAmino:({signer:Q,...Z})=>({...Z,signer:v1(Q)}),toAmino:({signer:Q,...Z})=>({...Z,signer:b1(Q,T)})},"/types.MsgSend":{aminoType:`${X}/MsgSend`,fromAmino:({from_address:Q,to_address:Z,...q})=>({...q,fromAddress:v1(Q),toAddress:v1(Z)}),toAmino:({fromAddress:Q,toAddress:Z,...q})=>({...q,from_address:b1(Q,T),to_address:b1(Z,T)})}})}var v8;var b8=l(()=>{S8();v8=require("@swapkit/helpers")});async function u8(y){let{assetValue:T,recipient:H,memo:f,sender:X,asSignable:Q,asAminoMessage:Z}=y,q=y.sweep?await s5({assetValue:T,sender:X}):T;if(H)return R4({asAminoMessage:Z,asSignable:Q,assetValue:q,memo:f,recipient:H,sender:X});return x4({asAminoMessage:Z,asSignable:Q,assetValue:q,memo:f,sender:X})}async function s5({assetValue:y,sender:T}){let H=y.chain,f=await E0.getRPCUrl(H),Q=await(await Qy(f)).getAllBalances(T),Z=y.isGasAsset?(await h1(H)).getBaseValue("bigint"):0n;return X1({assetValue:y,balances:Q,denom:Yy(y.symbol,!0),feeAmount:Z})}async function R4({sender:y,recipient:T,assetValue:H,memo:f="",asSignable:X=!0,asAminoMessage:Q=!1,sequence:Z,accountNumber:q}){let Y=H.chain,W=await E0.getRPCUrl(Y),z=await F4({rpcUrl:W,sender:y}),{chainId:k}=E0.getChainConfig(Y),_=h8({assetValue:H,recipient:T,sender:y}),M=X?await Oy(Q?_:$y(_),Y):_;return{accountNumber:q||Number(z.accountNumber),chainId:k,fee:r0(Y),memo:f,msgs:[M],sequence:Z||z.sequence}}async function x4({sender:y,assetValue:T,memo:H="",asSignable:f=!0,asAminoMessage:X=!1,sequence:Q,accountNumber:Z}){let q=T.chain,Y=await E0.getRPCUrl(q),W=await F4({rpcUrl:Y,sender:y}),{chainId:z}=E0.getChainConfig(q),k=l8({assetValue:T,memo:H,sender:y}),_=f?await Oy(X?k:$y(k),q):k;return{accountNumber:Z||Number(W.accountNumber),chainId:z,fee:r0(q),memo:H,msgs:[_],sequence:Q||W.sequence}}function $y(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((T)=>{let H=E0.AssetValue.from({asset:T.asset}),f=(H.isSynthetic?H.symbol.split("/")?.[1]:H.symbol)?.toUpperCase(),X=(H.isSynthetic?H.symbol.split("/")?.[0]:H.chain)?.toUpperCase();return{...T,asset:{chain:X,symbol:f,synth:H.isSynthetic,ticker:H.ticker}}})}}}async function p1({chain:y,memo:T,msgs:H}){let f=await hy(),X=await Cy(y),Q={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:T,messages:H.map((Z)=>X.fromAmino(Z))}};return f.encode(Q)}var E0,t9,r9,h8=({sender:y,recipient:T,assetValue:H})=>{return{type:`${H.chain===E0.Chain.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:H.getBaseValue("string"),denom:Yy(H.symbol,!0)}],from_address:y,to_address:T}}},l8=({sender:y,assetValue:T,memo:H=""})=>{return{type:`${T.chain===E0.Chain.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:T.getBaseValue("string"),asset:l1(T)}],memo:H,signer:y}}},a5=({sender:y,recipient:T,assetValue:H,memo:f})=>{return!T?l8({assetValue:H,memo:f,sender:y}):h8({assetValue:H,recipient:T,sender:y})},Oy=async(y,T)=>{return(await Cy(T)).fromAmino(y)},F4=async({rpcUrl:y,sender:T})=>{let f=await(await Qy(y)).getAccount(T);if(!f)throw new E0.SwapKitError("toolbox_cosmos_account_not_found",{sender:T});return f};var I4=l(()=>{u1();b8();E0=require("@swapkit/helpers"),t9=r0(E0.Chain.THORChain).gas,r9=r0(E0.Chain.Maya).gas});var P4=()=>{};var j4=l(()=>{P4()});var p8=l(()=>{S8();I4();b8();j4()});async function n8(y,T){try{let f=(await o8.SwapKitApi.getGasRate()).find((X)=>X.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}async function g8({phrase:y,prefix:T,...H}){let f=await import("@cosmjs/proto-signing"),X=await import("@cosmjs/crypto"),Q=f.DirectSecp256k1HdWallet??f.default?.DirectSecp256k1HdWallet,Z=X.stringToPath??X.default?.stringToPath,q="derivationPath"in H?H.derivationPath:`${o.DerivationPath[H.chain]}/${H.index}`;return await Q.fromMnemonic(y,{hdPaths:[Z(q)],prefix:T})}async function a9({privateKey:y,prefix:T}){let H=await import("@cosmjs/proto-signing");return(H.DirectSecp256k1Wallet??H.default?.DirectSecp256k1Wallet).fromKey(y,T)}function V4(y){return async function({signature:H,message:f,address:X}){let Q=await y(X);if(!Q?.pubkey)throw new o.SwapKitError("toolbox_cosmos_verify_signature_no_pubkey");let Z=await import("@cosmjs/crypto"),q=Z.Secp256k1Signature??Z.default?.Secp256k1Signature,Y=Z.Secp256k1??Z.default?.Secp256k1,W=q.fromFixedLength(Ny.base64.decode(H));return Y.verifySignature(W,Ny.base64.decode(f),Q.pubkey.value)}}function g1({chain:y,...T}){let H=o.CosmosChainPrefixes[y],f="index"in T?T.index||0:0,X=o.derivationPathToString("derivationPath"in T&&T.derivationPath?T.derivationPath:o.updateDerivationPath(o.NetworkDerivationPath[y],{index:f})),Q;async function Z(){if(Q)return Q;return Q=await m1.match(T).with({phrase:m1.P.string},({phrase:M})=>g8({derivationPath:X,phrase:M,prefix:H})).with({signer:m1.P.any},({signer:M})=>M).otherwise(()=>{return}),Q}async function q(M){let O=await o.getRPCUrl(y);return(await Qy(O)).getAccount(M)}async function Y(){let M=await Z(),[O]=await M?.getAccounts()||[];return O?.address}async function W(){let M=await Z(),[O]=await M?.getAccounts()||[];if(!O?.pubkey)throw new o.SwapKitError("toolbox_cosmos_signer_not_defined");return Ny.base64.encode(O?.pubkey)}async function z(M){let O=await Z(),C=await Y(),D=await o.getRPCUrl(y);if(!(O&&C))throw new o.SwapKitError("toolbox_cosmos_signer_not_defined");return await(await by(D,O)).sign(C,M.msgs,M.fee,M.memo,{accountNumber:BigInt(M.accountNumber),chainId:M.chainId,sequence:M.sequence})}async function k(M){let O=await Z(),C=await Y(),D=await o.getRPCUrl(y);if(!(O&&C))throw new o.SwapKitError("toolbox_cosmos_signer_not_defined");let P=await(await by(D,O)).signAndBroadcast(C,M.msgs,M.fee,M.memo);if(P.code!==0)throw new o.SwapKitError("core_swap_transaction_error",{code:P.code,message:P.rawLog});return P.transactionHash}async function _({recipient:M,assetValue:O,memo:C="",feeRate:D,feeOptionKey:R=o.FeeOption.Fast,sweep:P}){let E=await Z(),j=await Y();if(!(E&&j))throw new o.SwapKitError("toolbox_cosmos_signer_not_defined");let K=await o.getRPCUrl(y),$=o.AssetValue.from({chain:y}),B=l1($),L=yQ(D||(await S4(y,K4[y]))[R],B,y),J=await by(K,E),U=Yy(O.symbol),N=[{amount:(P?X1({assetValue:O,balances:await m8(y)(j),denom:U,feeAmount:r5(L.amount,U)}):O).getBaseValue("string"),denom:U}],{transactionHash:F}=await J.sendTokens(j,M,N,L,C);return F}return{createPrivateKeyFromPhrase:TQ(X),createTransaction:w8,fetchFeeRateFromSwapKit:n8,getAccount:q,getAddress:Y,getBalance:async(M,O)=>{let C=await m8(y)(M),D=await Promise.all(C.filter(({denom:R})=>R&&!R.includes("IBC/")&&!([o.Chain.THORChain,o.Chain.Maya].includes(y)&&R.split("-").length>2)).map(({denom:R,amount:P})=>{let E=[o.Chain.THORChain,o.Chain.Maya].includes(y)&&(R.includes("/")||R.includes("˜"))?`${y}.${R}`:R;return E8(E,P)}));if(D.length===0)return[o.AssetValue.from({chain:y})];return D},getBalanceAsDenoms:m8(y),getFees:()=>S4(y,K4[y]),getPubKey:W,getSignerFromPhrase:({phrase:M,derivationPath:O})=>g8({derivationPath:o.derivationPathToString(O),index:f,phrase:M,prefix:H}),getSignerFromPrivateKey:async(M)=>{let O=await import("@cosmjs/proto-signing");return(O.DirectSecp256k1Wallet??O.default?.DirectSecp256k1Wallet).fromKey(M,H)},signAndBroadcastTransaction:k,signTransaction:z,transfer:_,validateAddress:A4(y),verifySignature:V4(q)}}async function s9(y,T){try{let f=(await o8.SwapKitApi.getGasRate()).find((X)=>X.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}function e9({assetValue:{chain:y}}){return o.AssetValue.from({chain:y,value:fQ(y)})}async function S4(y,T){let{chainId:H,baseDecimal:f}=o.getChainConfig(y),X=await n8(H,T);return{average:o.SwapKitNumber.fromBigInt(BigInt(X),f),fast:o.SwapKitNumber.fromBigInt(BigInt(o.applyFeeMultiplier(X,o.FeeOption.Fast,!0)),f),fastest:o.SwapKitNumber.fromBigInt(BigInt(o.applyFeeMultiplier(X,o.FeeOption.Fastest,!0)),f)}}function yQ(y,T,H){return{amount:[{amount:typeof y==="number"?y.toString():y.getBaseValue("string"),denom:T}],gas:r0(H).gas}}function fQ(y){return{[o.Chain.Cosmos]:0.007,[o.Chain.Kujira]:0.02,[o.Chain.Noble]:0.01,[o.Chain.THORChain]:0.02,[o.Chain.Maya]:0.02,[o.Chain.Harbor]:0.02}[y]||0}function A4(y){let T=o.CosmosChainPrefixes[y];return function(f){if(!f.startsWith(T))return!1;try{let{prefix:X,words:Q}=Ny.bech32.decode(f);return Ny.bech32.encode(X,Q)===f.toLocaleLowerCase()}catch{return!1}}}function m8(y){return async function(H){let f=await o.getRPCUrl(y);return(await(await Qy(f)).getAllBalances(H)).map((q)=>({...q,denom:q.denom.includes("/")?q.denom.toUpperCase():q.denom}))}}function TQ(y){return async function(H){let f=await import("@cosmjs/crypto"),X=f.stringToPath??f.default?.stringToPath,Q=f.Slip10Curve??f.default?.Slip10Curve,Z=f.Slip10??f.default?.Slip10,q=f.EnglishMnemonic??f.default?.EnglishMnemonic,Y=f.Bip39??f.default?.Bip39,W=new q(H),z=await Y.mnemonicToSeed(W),{privkey:k}=Z.derivePath(Q.Secp256k1,z,X(y));return k}}var Ny,o,o8,m1,K4;var e5=l(()=>{u1();Ny=require("@scure/base"),o=require("@swapkit/helpers"),o8=require("@swapkit/helpers/api"),m1=require("ts-pattern");K4={[o.Chain.Cosmos]:1000,[o.Chain.Kujira]:1000,[o.Chain.Noble]:1000,[o.Chain.THORChain]:5000000,[o.Chain.Maya]:5000000,[o.Chain.Harbor]:5000000}});function HQ({prefix:y,derivationPath:T}){return async function(f,X=0){let Q=await import("@cosmjs/amino"),Z=Q.Secp256k1HdWallet??Q.default?.Secp256k1HdWallet,q=await import("@cosmjs/crypto"),Y=q.stringToPath??q.default?.stringToPath;return Z.fromMnemonic(f,{hdPaths:[Y(`${T}/${X}`)],prefix:y})}}function XQ(y){return ky.base64.encode(y)}function QQ(y,T){return async function({wallet:f,tx:X}){let{msgs:Q,accountNumber:Z,sequence:q,chainId:Y,fee:W,memo:z}=typeof X==="string"?JSON.parse(X):X,k=(await f.getAccounts())?.[0]?.address||"",_=await Cy(y,T),M=await hy(),O=await A8(f,{aminoTypes:_,registry:M}),C=[];for(let P of Q){let E=await Oy(P,y);C.push(E)}let{signatures:[D]}=await O.sign(k,C,W,z,{accountNumber:BigInt(Z),chainId:Y,sequence:q});return{bodyBytes:await p1({chain:y,memo:z,msgs:Q.map($y)}),signature:XQ(D)}}}function ZQ({prefix:y,chain:T}){return async function(f,X,Q,Z,q){let Y=await F0.getRPCUrl(T),{encodeSecp256k1Pubkey:W,pubkeyToAddress:z}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:k}=(await import("@cosmjs/stargate")).default,{sequence:_,fee:M}=JSON.parse(f),O=await w4(Q,Z),C=X.map((P)=>[z(W(ky.base64.decode(P.pubKey)),y),ky.base64.decode(P.signature)]),D=await Qy(Y),{transactionHash:R}=await D.broadcastTx(k(O,_,M,q,new Map(C)));return R}}async function w4(y,T,H=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:X}=(await import("@cosmjs/amino")).default;return f(y.map((Q)=>X(ky.base64.decode(Q))),T,H)}function qQ(y){return ky.base64.decode(y)}async function UQ({privateKey:y,message:T}){let{Secp256k1:H}=(await import("@cosmjs/crypto")).default,f=await H.createSignature(ky.base64.decode(T),y);return ky.base64.encode(Buffer.concat([f.r(32),f.s(32)]))}function c8({chain:y,...T}){let{isStagenet:H}=F0.SKConfig.get("envs"),f=`${H?"s":""}${F0.CosmosChainPrefixes[y]}`,X="index"in T?T.index||0:0,Q="derivationPath"in T&&T.derivationPath?T.derivationPath:F0.updateDerivationPath(F0.NetworkDerivationPath[y],{index:X}),Z=g1({chain:y,...T}),q=r0(y),Y;function W(){return Y??=o1.match(T).with({phrase:o1.P.string},({phrase:C})=>Z.getSignerFromPhrase({derivationPath:Q,phrase:C})).with({signer:o1.P.any},({signer:C})=>Promise.resolve(C)).otherwise(()=>Promise.resolve(void 0)),Y}async function z(){let C=await F0.getRPCUrl(y),D=await W();if(!D)throw new F0.SwapKitError("toolbox_cosmos_no_signer");let R=await hy(),P=await Cy(y,f),E=await by(C,D,{aminoTypes:P,registry:R});return{signer:D,signingClient:E}}async function k({fee:C,memo:D,msgs:R}){let{signer:P,signingClient:E}=await z(),j=(await P.getAccounts())?.[0]?.address;if(!j)throw new F0.SwapKitError("toolbox_cosmos_signer_not_defined");let K=await E.signAndBroadcast(j,R,C,D);if(K.code!==0)throw new F0.SwapKitError("core_swap_transaction_error",{code:K.code,message:K.rawLog});return K.transactionHash}async function _(){let C=await h1(y);return{[F0.FeeOption.Average]:C,[F0.FeeOption.Fast]:C,[F0.FeeOption.Fastest]:C}}async function M({assetValue:C,memo:D="",recipient:R,sweep:P}){let{TxRaw:E}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:j,signingClient:K}=await z(),$=(await j.getAccounts())?.[0]?.address;if(!$)throw new F0.SwapKitError("toolbox_cosmos_no_signer");let B="signAmino"in j,L=P?await s5({assetValue:C,sender:$}):C,J=a5({assetValue:L,memo:D,recipient:R,sender:$});if(B){let N=await Oy(J,y),{signatures:F,authInfoBytes:x}=await K.sign($,[N],q,D),A=E.encode({authInfoBytes:x,bodyBytes:await p1({chain:y,memo:D,msgs:[J].map($y)}),signatures:F}).finish();return(await K.broadcastTx(A)).transactionHash}let U=$y(J),G=await Oy(U,y);return k({fee:q,memo:D,msgs:[G]})}async function O(C){let{signer:D,signingClient:R}=await z(),P=(await D.getAccounts())?.[0]?.address;if(!P)throw new F0.SwapKitError("toolbox_cosmos_signer_not_defined");return R.sign(P,C.msgs,C.fee,C.memo,{accountNumber:BigInt(C.accountNumber),chainId:C.chainId,sequence:C.sequence})}return{...Z,broadcastMultisigTx:ZQ({chain:y,prefix:f}),buildAminoMsg:a5,buildEncodedTxBody:p1,convertToSignable:Oy,createDefaultAminoTypes:()=>Cy(y,f),createDefaultRegistry:hy,createMultisig:w4,createTransaction:u8,deposit:M,getFees:_,importSignature:qQ,parseAminoMessageForDirectSigning:$y,pubkeyToAddress:async(C)=>{let{pubkeyToAddress:D}=(await import("@cosmjs/amino")).default;return D(C,f)},secp256k1HdWalletFromMnemonic:HQ({derivationPath:F0.derivationPathToString(Q),prefix:f}),signAndBroadcastTransaction:k,signMultisigTx:QQ(y,f),signTransaction:O,signWithPrivateKey:UQ,transfer:M}}var ky,F0,o1;var d8=l(()=>{p8();u1();e5();ky=require("@scure/base"),F0=require("@swapkit/helpers"),o1=require("ts-pattern")});var By,YQ=(y,T)=>{switch(y){case By.Chain.Cosmos:case By.Chain.Kujira:case By.Chain.Noble:return g1({chain:y,...T});case By.Chain.Maya:case By.Chain.THORChain:return c8({chain:y,...T});default:throw new By.SwapKitError("toolbox_cosmos_not_supported",{chain:y})}};var E4=l(()=>{e5();d8();By=require("@swapkit/helpers");e5();d8()});var yf={};P0(yf,{verifySignature:()=>V4,transferMsgAmino:()=>h8,toBase64:()=>n9,resolveThorchainSweepAssetValue:()=>s5,parseAminoMessageForDirectSigning:()=>$y,getThorchainNativeFee:()=>h1,getSweepAssetValue:()=>X1,getSignerFromPrivateKey:()=>a9,getSignerFromPhrase:()=>g8,getMsgSendDenom:()=>Yy,getFeeRateFromSwapKit:()=>s9,getFeeAmountForDenom:()=>r5,getDenomWithChain:()=>l1,getDefaultChainFee:()=>r0,getCosmosToolbox:()=>YQ,getCosmosAddressValidator:()=>A4,getAssetFromDenom:()=>E8,fromBase64:()=>c9,fetchFeeRateFromSwapKit:()=>n8,estimateTransactionFee:()=>e9,depositMsgAmino:()=>l8,createTransaction:()=>u8,createThorchainToolbox:()=>c8,createStargateClient:()=>Qy,createSigningStargateClient:()=>by,createOfflineStargateClient:()=>A8,createDefaultRegistry:()=>hy,createDefaultAminoTypes:()=>Cy,createCosmosToolbox:()=>g1,cosmosCreateTransaction:()=>w8,convertToSignable:()=>Oy,buildTransferTx:()=>R4,buildEncodedTxBody:()=>p1,buildDepositTx:()=>x4,buildAminoMsg:()=>a5,bech32ToBase64:()=>v1,base64ToBech32:()=>b1,YUM_KUJIRA_FACTORY_DENOM:()=>O4,USK_KUJIRA_FACTORY_DENOM:()=>V8,THORCHAIN_GAS_VALUE:()=>t9,MAYA_GAS_VALUE:()=>r9,DEFAULT_NOBLE_FEE_MAINNET:()=>k4,DEFAULT_KUJI_FEE_MAINNET:()=>N4,DEFAULT_COSMOS_FEE_MAINNET:()=>$4});module.exports=V0(yf);var ff=l(()=>{p8();E4();u1()});function JQ({builder:y,grouping:T="na",orders:H}){return{builder:y,grouping:T,orders:H,type:"order"}}function WQ({cancels:y}){return{cancels:y,type:"cancel"}}function zQ({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function GQ({oid:y,order:T}){return{oid:y,order:T,type:"modify"}}function LQ({modifies:y}){return{modifies:y,type:"batchModify"}}function MQ({asset:y,isCross:T,leverage:H}){return{asset:y,isCross:T,leverage:H,type:"updateLeverage"}}function _Q({asset:y,isBuy:T,ntli:H}){return{asset:y,isBuy:T,ntli:H,type:"updateIsolatedMargin"}}function CQ({asset:y,leverage:T}){return{asset:y,leverage:T,type:"topUpIsolatedOnlyMargin"}}function OQ({time:y}){return{time:y,type:"scheduleCancel"}}function $Q({amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:X}){return{amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:X,type:"usdClassTransfer"}}function NQ({amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:X,nonce:Q,signatureChainId:Z,sourceDex:q,token:Y}){return{amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:X,nonce:Q,signatureChainId:Z,sourceDex:q,token:Y,type:"sendAsset"}}function kQ({agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:X}){return{agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:X,type:"approveAgent"}}function BQ({builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:X}){return{builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:X,type:"approveBuilderFee"}}function DQ({hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,validator:X,wei:Q}){return{hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,type:"tokenDelegate",validator:X,wei:Q}}function p0(...y){let T=y.reduce((X,Q)=>X+Q.length,0),H=new Uint8Array(T),f=0;for(let X of y)H.set(X,f),f+=X.length;return H}function jQ(y,T,H){if(H<T)return new Uint8Array([y+H]);if(H<=255)return new Uint8Array([y+T,H]);if(H<=65535)return new Uint8Array([y+T+1,H>>8,H&255]);return new Uint8Array([y+T+2,H>>>24&255,H>>>16&255,H>>>8&255,H&255])}function Dy(y,T){let H=new Uint8Array(T),f=y;for(let X=T-1;X>=0;X-=1)H[X]=Number(f&0xffn),f>>=8n;return H}function v4(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return p0(new Uint8Array([205]),Dy(y,2));if(y<=0xffffffffn)return p0(new Uint8Array([206]),Dy(y,4));return p0(new Uint8Array([207]),Dy(y,8))}if(y>=-32n)return new Uint8Array([256+Number(y)]);if(y>=-128n)return new Uint8Array([208,256+Number(y)]);if(y>=-32768n)return p0(new Uint8Array([209]),Dy(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return p0(new Uint8Array([210]),Dy(BigInt.asUintN(32,y),4));return p0(new Uint8Array([211]),Dy(BigInt.asUintN(64,y),8))}function l4(y){let T=PQ.encode(y);if(T.length<32)return p0(new Uint8Array([160+T.length]),T);return p0(jQ(217,0,T.length),T)}function KQ(y){let T=y.map((f)=>i8(f)),H=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return p0(H,...T)}function SQ(y){let T=Object.entries(y).filter(([,f])=>typeof f<"u"),H=T.length<16?new Uint8Array([128+T.length]):T.length<=65535?new Uint8Array([222,T.length>>8,T.length&255]):new Uint8Array([223,T.length>>>24&255,T.length>>>16&255,T.length>>>8&255,T.length&255]);return p0(H,...T.flatMap(([f,X])=>[l4(f),i8(X)]))}function i8(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return l4(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new Tf.SwapKitError("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return v4(BigInt(y))}if(typeof y==="bigint")return v4(y);if(y instanceof Uint8Array){let T=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return p0(T,y)}if(Array.isArray(y))return KQ(y);if(typeof y==="object")return SQ(y);throw new Tf.SwapKitError("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function VQ(y){let T=y.startsWith("0x")?y.slice(2):y;if(T.length%2!==0||/[^a-fA-F0-9]/u.test(T))throw new Tf.SwapKitError("helpers_invalid_params",{hexValue:y});let H=new Uint8Array(T.length/2);for(let f=0;f<T.length;f+=2)H[f/2]=Number.parseInt(T.slice(f,f+2),16);return H}function u4(y){return{domain:FQ,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...RQ.Agent]}}}function p4(y){let T=IQ[y.type],H=xQ[y.type],{type:f,...X}=y;return{domain:{chainId:Number.parseInt(X.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:b4,version:"1"},message:{...X,hyperliquidChain:X.hyperliquidChain||h4},primaryType:T,types:{[T]:H}}}function m4(y){let T=Hf.Signature.from(y);return{r:T.r,s:T.s,v:T.v}}function g4(y,T,{expiresAfter:H,vaultAddress:f}={}){let X=i8(y),Q=Dy(BigInt(T),8),Z=f?p0(new Uint8Array([1]),VQ(f.toLowerCase())):new Uint8Array([0]),q=typeof H==="number"?p0(new Uint8Array([0]),Dy(BigInt(H),8)):new Uint8Array;return Hf.keccak256(p0(X,Q,Z,q))}function o4(y){let T=y.hyperliquidChain||h4;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:T};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:T};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:T};case"tokenDelegate":return{...y,hyperliquidChain:T,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:T};default:return y}}var Tf,Hf,b4="0x0000000000000000000000000000000000000000",FQ,RQ,h4="Mainnet",xQ,IQ,PQ;var n4=l(()=>{Tf=require("@swapkit/helpers"),Hf=require("ethers"),FQ={chainId:1337,name:"Exchange",verifyingContract:b4,version:"1"},RQ={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},xQ={approveAgent:[{name:"hyperliquidChain",type:"string"},{name:"agentAddress",type:"address"},{name:"agentName",type:"string"},{name:"nonce",type:"uint64"}],approveBuilderFee:[{name:"hyperliquidChain",type:"string"},{name:"maxFeeRate",type:"string"},{name:"builder",type:"address"},{name:"nonce",type:"uint64"}],sendAsset:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"sourceDex",type:"string"},{name:"destinationDex",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"fromSubAccount",type:"string"},{name:"nonce",type:"uint64"}],tokenDelegate:[{name:"hyperliquidChain",type:"string"},{name:"validator",type:"address"},{name:"wei",type:"uint64"},{name:"isUndelegate",type:"bool"},{name:"nonce",type:"uint64"}],usdClassTransfer:[{name:"hyperliquidChain",type:"string"},{name:"amount",type:"string"},{name:"toPerp",type:"bool"},{name:"nonce",type:"uint64"}]},IQ={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},PQ=new TextEncoder});function a0(y,T){if(!a8(y))throw new z0.SwapKitError(T,{address:y});return y.toLowerCase()}async function ly(y){let T=await Xf();return z0.RequestClient.post(`${T}/info`,{json:y})}function lQ({dex:y,user:T}){return ly({...y?{dex:y}:{},type:"clearinghouseState",user:a0(T,"helpers_invalid_params")})}function r4({user:y}){return ly({type:"spotClearinghouseState",user:a0(y,"helpers_invalid_params")})}function uQ({dex:y,user:T}){return ly({...y?{dex:y}:{},type:"openOrders",user:a0(T,"helpers_invalid_params")})}function pQ({dex:y,user:T}){return ly({...y?{dex:y}:{},type:"frontendOpenOrders",user:a0(T,"helpers_invalid_params")})}function mQ({oidOrCloid:y,user:T}){return ly({oid:y,type:"orderStatus",user:a0(T,"helpers_invalid_params")})}function gQ({aggregateByTime:y,user:T}){return ly({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:a0(T,"helpers_invalid_params")})}function oQ({aggregateByTime:y,endTime:T,startTime:H,user:f}){return ly({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof T==="number"?{endTime:T}:{},startTime:H,type:"userFillsByTime",user:a0(f,"helpers_invalid_params")})}function c4({coin:y,token:T,value:H,spotMeta:f}){if(!H||Number(H)<=0)return null;let X=y?.toUpperCase()||`TOKEN-${T||"UNKNOWN"}`,Q=AQ[X]||t4,Z=f?.tokens?.find((Y)=>Y.name===y||T!==void 0&&Y.index===Number(T)),q=Z?`${Zy}.${X}-${Z.name}:${Z.tokenId}`:`${Zy}.${X}`;return new z0.AssetValue({decimal:Q,identifier:q,value:H})}function nQ(y){let T=new Map;for(let H of y){let f=H.toString({includeSynthProtocol:!0}),X=T.get(f);T.set(f,X?X.add(H):H)}if(![...T.values()].some((H)=>H.isGasAsset||H.ticker==="HYPE")){let H=z0.AssetValue.from({chain:Zy,value:0});T.set(H.toString({includeSynthProtocol:!0}),H)}return[...T.values()]}async function Xf(){try{return await z0.getRPCUrl(Zy)}catch{let[y]=z0.getChainConfig(Zy).rpcUrls;if(!y)throw new z0.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:Zy});return y}}async function r8(){return`${await Xf()}/exchange`}function cQ(y){let T=hQ[y.type],{type:H,...f}=y,X=bQ[H];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:vQ,version:"1"},message:f,primaryType:T,types:{[T]:X}}}async function a4({action:y,expiresAfter:T,nonce:H,vaultAddress:f}){let X=H||Date.now(),Q=f?a0(f,"helpers_invalid_params"):void 0,Z=await r8(),q=g4(y,X,{expiresAfter:T,vaultAddress:Q});return{action:y,endpoint:Z,expiresAfter:T,nonce:X,typedData:u4(q),vaultAddress:Q}}async function s4({action:y,nonce:T,signatureChainId:H}){let f=T||y.nonce||Date.now(),X=H||y.signatureChainId||"0xa4b1",Q=o4({...y,nonce:f,signatureChainId:X});return{action:Q,endpoint:await r8(),nonce:f,typedData:p4(Q)}}async function dQ({assetValue:y,sender:T,token:H}){let f=await r4({user:T}),X=(f.spotState?.balances||f.balances||[]).find(({coin:Q})=>Q&&H.startsWith(`${Q}:`))?.total;if(!X||Number(X)<=0)throw new z0.SwapKitError("toolbox_sweep_amount_too_low",{asset:y.toString(),balance:X||"0"});return X}async function t8({assetValue:y,recipient:T,sender:H,signatureChainId:f,sweep:X,time:Q}){let Z=a0(T,"core_transaction_invalid_recipient_address"),q=a0(H,"core_transaction_invalid_sender_address"),Y=y.address;if(!Y)throw new z0.SwapKitError("helpers_invalid_params",{asset:y.toString(),from:q});let W=X?await dQ({assetValue:y,sender:q,token:Y}):y.getValue("string"),z=await r8(),k=Q||Date.now(),_={amount:W,destination:Z,hyperliquidChain:wQ,signatureChainId:f||EQ,time:k,token:Y,type:"spotSend"};return{action:_,endpoint:z,nonce:k,typedData:cQ(_)}}async function d4(y){let T=await z0.RequestClient.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(T.status!=="ok")throw new z0.SwapKitError("core_transaction_failed",{response:T});return T}async function iQ(y,T){let H=await Xf(),f=T-5000;for(let X=0;X<5;X++){if(X>0)await new Promise((Q)=>setTimeout(Q,1000));try{let Q=await z0.RequestClient.post(`${H}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),Z=Array.isArray(Q)?Q.find((q)=>q.time&&q.time>=T&&(q.delta?.type==="spotTransfer"||q.delta?.type==="internalTransfer")):void 0;if(Z?.hash)return Z.hash}catch{}}return""}function a8(y){return y.startsWith("0x")&&K1(y)}function tQ(y){let T=w0(Zy),H=y&&"index"in y?y.index||0:0,f=z0.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:z0.updateDerivationPath(z0.NetworkDerivationPath[Zy],{index:H})),X,Q=!1;function Z(){if(Q)return X;return X=Q1.match(y).with({phrase:Q1.P.string},({phrase:_})=>{return i4.HDNodeWallet.fromPhrase(_,void 0,f)}).with({signer:Q1.P.not(Q1.P.nullish)},({signer:_})=>_).otherwise(()=>{return}),Q=!0,X}async function q(){let _=Z();return _?await _.getAddress():""}async function Y(_){let M=Z();if(!M)throw new z0.SwapKitError("toolbox_hypercore_no_signer");let O=await M.signTypedData(_.typedData.domain,_.typedData.types,_.typedData.message);return{action:_.action,endpoint:_.endpoint,nonce:_.nonce,signature:m4(O),..."expiresAfter"in _?{expiresAfter:_.expiresAfter}:{},..."vaultAddress"in _?{vaultAddress:_.vaultAddress}:{}}}async function W(_){let M=a0(_,"helpers_invalid_params");try{let O=await Xf(),[C,D,R]=await Promise.all([z0.RequestClient.post(`${O}/info`,{json:{type:"spotClearinghouseState",user:M}}),z0.RequestClient.post(`${O}/info`,{json:{type:"clearinghouseState",user:M}}),z0.RequestClient.post(`${O}/info`,{json:{type:"spotMeta"}})]),P=(C.spotState?.balances||C.balances||[]).map(({coin:j,token:K,total:$})=>c4({coin:j,spotMeta:R,token:K,value:$})).filter((j)=>!!j),E=c4({coin:"USDC",spotMeta:R,value:D.withdrawable||D.marginSummary?.accountValue||D.marginSummary?.totalRawUsd});return nQ(E?[...P,E]:P)}catch{return T(M)}}async function z({sweep:_,...M}){let O=Z();if(!O)throw new z0.SwapKitError("toolbox_hypercore_no_signer");let C=M.sender||await O.getAddress(),D=await t8({...M,feeRate:0,sender:C,sweep:_}),R=await Y(D);return await d4(R),iQ(C,D.nonce)}function k(){return z0.AssetValue.from({chain:Zy,value:0})}return{broadcastTransaction:d4,createL1ActionRequest:a4,createTransaction:t8,createUserSignedActionRequest:s4,estimateTransactionFee:k,getAddress:q,getBalance:W,getState:{clearinghouse:lQ,frontendOpenOrders:pQ,openOrders:uQ,orderStatus:mQ,spotClearinghouse:r4,userFills:gQ,userFillsByTime:oQ},signTransaction:Y,transfer:z,validateAddress:a8}}var z0,i4,Q1,Zy,t4,AQ,wQ="Mainnet",EQ="0xa4b1",vQ="0x0000000000000000000000000000000000000000",bQ,hQ;var e4=l(()=>{x8();Hy();n4();z0=require("@swapkit/helpers"),i4=require("ethers"),Q1=require("ts-pattern"),Zy=z0.Chain.Hype,{baseDecimal:t4}=z0.getChainConfig(Zy),AQ={HYPE:t4,USDC:6,USDT:6},bQ={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},hQ={spotSend:"HyperliquidTransaction:SpotSend"}});var s8={};P0(s8,{validateHyperCoreAddress:()=>a8,getHyperCoreToolbox:()=>tQ,createUserSignedActionRequest:()=>s4,createTransaction:()=>t8,createL1ActionRequest:()=>a4,buildUsdClassTransferAction:()=>$Q,buildUpdateLeverageAction:()=>MQ,buildUpdateIsolatedMarginAction:()=>_Q,buildTopUpIsolatedOnlyMarginAction:()=>CQ,buildTokenDelegateAction:()=>DQ,buildSendAssetAction:()=>NQ,buildScheduleCancelAction:()=>OQ,buildOrderAction:()=>JQ,buildModifyAction:()=>GQ,buildCancelByCloidAction:()=>zQ,buildCancelAction:()=>WQ,buildBatchModifyAction:()=>LQ,buildApproveBuilderFeeAction:()=>BQ,buildApproveAgentAction:()=>kQ});module.exports=V0(s8);var e8=l(()=>{e4()});async function TH(y){let T=H0.AssetValue.from({address:y,chain:H0.Chain.Solana});if(T.symbol!=="UNKNOWN")return{decimals:T.decimal||0,id:y,logoURI:T.getIconUrl(),name:T.symbol,symbol:T.ticker};let H=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(H);if(!f.ok)return null;let X=await f.json();if(!Array.isArray(X)||X.length===0)return null;return X.find((Z)=>Z.id===y)||null}catch{return null}}async function rQ(y){let T=await Jy(),{PublicKey:H}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),X=new H(y),{baseDecimal:Q}=H0.getChainConfig(H0.Chain.Solana),Z=await T.getBalance(X),q=[H0.AssetValue.from({chain:H0.Chain.Solana,fromBaseDecimal:Q,value:Z||0})],Y=await T.getParsedTokenAccountsByOwner(X,{programId:f});for(let{account:W}of Y.value){let z=W.data.parsed.info,k=z.mint,_=z.tokenAmount.amount;if(Number(_)===0)continue;let M=await TH(k),O=M?.symbol||"UNKNOWN",C=M?.decimals||z.tokenAmount.decimals;q.push(H0.AssetValue.from({asset:`${H0.Chain.Solana}.${O}-${k}`,fromBaseDecimal:C,value:_}))}return q}function f2(y){try{let T=new qy.PublicKey(y);return qy.PublicKey.isOnCurve(T.toBytes())}catch{return!1}}function aQ(y){let T=y&&"index"in y?y.index||0:0,H=H0.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:H0.updateDerivationPath(H0.NetworkDerivationPath[H0.Chain.Solana],{index:T})),f;async function X(){if(f)return f;return f=await n1.match(y).with({phrase:n1.P.string},({phrase:Z})=>y2({derivationPath:H,phrase:Z})).with({signer:n1.P.any},({signer:Z})=>Z).otherwise(()=>{return}),f}async function Q(){let Z=await X();return Z?.publicKey?fH(Z.publicKey):""}return{broadcastTransaction:Qf(Jy),createKeysForPath:y2,createTransaction:T2(Jy),createTransactionFromInstructions:fZ,estimateTransactionFee:sQ(Jy),getAddress:Q,getAddressFromPubKey:fH,getBalance:w0(H0.Chain.Solana),getBalanceFromRPC:rQ,getConnection:Jy,getPubkeyFromAddress:(Z)=>new qy.PublicKey(Z),signAndBroadcastTransaction:async(Z)=>{let q=await yH(Jy,X)(Z);return Qf(Jy)(q)},signTransaction:yH(Jy,X),transfer:TZ(Jy,X),validateAddress:f2}}function sQ(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:X,sender:Q})=>{let Z=await y(),q=await T2(y)({assetValue:H,isProgramDerivedAddress:X,memo:f,recipient:T,sender:Q}),Y=await HH(Z,q),{baseDecimal:W}=H0.getChainConfig(H0.Chain.Solana);return H0.AssetValue.from({chain:H0.Chain.Solana,fromBaseDecimal:W,value:Y})}}async function HH(y,T){let H=await y.getFeeForMessage(T.compileMessage());if(H.value===null)throw new H0.SwapKitError("toolbox_fee_estimation_failed","Could not estimate Solana fee.");return H.value}async function Jy(){let{Connection:y}=await import("@solana/web3.js"),T=await H0.getRPCUrl(H0.Chain.Solana);return new y(T,{commitment:"confirmed",fetchMiddleware:(H,f,X)=>{let Q={};for(let[Z,q]of Object.entries(f?.headers??{})){let Y=Z.toLowerCase();if(Y!=="pragma"&&Y!=="solana-client")Q[Z]=q}X(H,{...f,headers:Q})}})}function eQ(y){return async({assetValue:T,recipient:H,sender:f,isProgramDerivedAddress:X,sweep:Q})=>{let Z=await y(),q=new qy.PublicKey(f);if(T.isGasAsset){let{Transaction:Y,SystemProgram:W}=await import("@solana/web3.js");return new Y().add(W.transfer({fromPubkey:q,lamports:Q?0:T.getBaseValue("number"),toPubkey:new qy.PublicKey(H)}))}if(T.address)return yZ({amount:Q?0:T.getBaseValue("number"),connection:Z,decimals:T.decimal,from:q,isProgramDerivedAddress:X,recipient:H,sweep:Q,tokenAddress:T.address});return}}async function yZ({tokenAddress:y,recipient:T,from:H,connection:f,amount:X,decimals:Q,isProgramDerivedAddress:Z,sweep:q}){let{getAssociatedTokenAddress:Y,getAccount:W,createAssociatedTokenAccountInstruction:z,createTransferCheckedInstruction:k}=await import("@solana/spl-token"),{Transaction:_}=await import("@solana/web3.js"),M=new _,O=new qy.PublicKey(y),C=await Y(O,H),D=new qy.PublicKey(T),R=await Y(O,D,Z),P=!1;try{await W(f,R),P=!0}catch{}if(!P)M.add(z(H,R,D,O));let E=q?BigInt((await f.getTokenAccountBalance(C)).value.amount):X;if(q&&E<=0n)throw new H0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:y,balance:E.toString()}});return M.add(k(C,O,R,H,E,Q)),M}function T2(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:X,sender:Q,sweep:Z})=>{let{createMemoInstruction:q}=await import("@solana/spl-memo"),Y=new qy.PublicKey(Q);if(!(X||f2(T)))throw new H0.SwapKitError("core_transaction_invalid_recipient_address");let W=await y(),z=await eQ(y)({assetValue:H,isProgramDerivedAddress:X,recipient:T,sender:Q,sweep:Z});if(!z)throw new H0.SwapKitError("core_transaction_invalid_sender_address");if(f)z.add(q(f));let k=await W.getLatestBlockhash();if(z.recentBlockhash=k.blockhash,z.feePayer=Y,Z&&H.isGasAsset){let[_,M,O]=await Promise.all([W.getBalance(Y),HH(W,z),W.getMinimumBalanceForRentExemption(0)]),C=_-M-O;if(C<=0)throw new H0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{balance:_,fee:M,rentReserve:O}});let{SystemProgram:D}=await import("@solana/web3.js");z.instructions[0]=D.transfer({fromPubkey:Y,lamports:C,toPubkey:new qy.PublicKey(T)})}return z}}async function fZ({instructions:y}){let{Transaction:T}=await import("@solana/web3.js"),H=new T().add(...y);if(!H)throw new H0.SwapKitError("core_transaction_invalid_sender_address");return H}function TZ(y,T){return async({recipient:H,assetValue:f,memo:X,isProgramDerivedAddress:Q,sweep:Z})=>{let q=await T();if(!q)throw new H0.SwapKitError("core_transaction_invalid_sender_address");let Y=q.publicKey?.toString()??(await q.connect()).publicKey.toString(),W=await T2(y)({assetValue:f,isProgramDerivedAddress:Q,memo:X,recipient:H,sender:Y,sweep:Z});if("signTransaction"in q){let z=await q.signTransaction(W);return Qf(y)(z)}return W.sign(q),Qf(y)(W)}}function Qf(y){return async(T)=>{return(await y()).sendRawTransaction(T.serialize())}}function yH(y,T){return async(H)=>{let f=await T();if(!f)throw new H0.SwapKitError("toolbox_solana_no_signer");let{VersionedTransaction:X}=await import("@solana/web3.js");if(!(H instanceof X)){let Z=await(await y()).getLatestBlockhash();H.recentBlockhash=Z.blockhash,H.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(H);return H.sign([f]),H}}async function y2({phrase:y,derivationPath:T=H0.DerivationPath.SOL}){let{HDKey:H}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:X}=await import("@solana/web3.js"),Q=f(y),Z=H.fromMasterSeed(Q);return X.fromSeed(Z.derive(T,!0).privateKey)}function fH(y){return y.toString()}var qy,H0,n1;var XH=l(()=>{Hy();qy=require("@solana/web3.js"),H0=require("@swapkit/helpers"),n1=require("ts-pattern")});var H2={};P0(H2,{validateSolanaAddress:()=>f2,getSolanaToolbox:()=>aQ,fetchTokenMetaData:()=>TH,createKeysForPath:()=>y2});module.exports=V0(H2);var X2=l(()=>{XH()});function c1(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function qf({phrase:y,derivationPath:T=e.DerivationPath.STRK}){let{HDKey:H}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:X,hash:Q,encode:Z,CallData:q}=await import("starknet"),Y=f(y),z=H.fromMasterSeed(Y).derive(T);if(!z.privateKey)throw new e.SwapKitError("toolbox_starknet_no_signer");let k=Z.addHexPrefix(Buffer.from(z.privateKey).toString("hex")),_=X.starkCurve.grindKey(k),M=Z.addHexPrefix(_),O=X.starkCurve.getStarkKey(M),C=q.compile([O,0]);return{address:Q.calculateContractAddressFromHash(O,Q2,C,0),privateKey:M,publicKey:O}}async function Z2({phrase:y,derivationPath:T=e.DerivationPath.STRK}){let{Account:H,RpcProvider:f}=await import("starknet"),{privateKey:X,address:Q}=await qf({derivationPath:T,phrase:y}),Z=await e.getRPCUrl(e.Chain.Starknet),q=new f({nodeUrl:Z});return new H({address:Q,provider:q,signer:X})}function ZH(y){let T=e.Chain.Starknet,H=y&&"index"in y?y.index||0:0,f=e.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:e.updateDerivationPath(e.NetworkDerivationPath[T],{index:H})),X,Q,Z;async function q(){if(Q)return Q;if(X)return Q=X.provider,Q;let{RpcProvider:J}=await import("starknet"),U=await e.getRPCUrl(T);return Q=new J({nodeUrl:U}),Q}async function Y(J){let U=await q(),G=J||await _();if(!G)return!1;try{return await U.getClassHashAt(G),!0}catch(N){if(N instanceof Error&&N.message.includes("Contract not found"))return!1;let F=N;if(F?.code===20||F?.code===19)return!1;throw N}}async function W(){let{CallData:J,hash:U}=await import("starknet"),G=await q(),N=await k();if(!N)throw new e.SwapKitError("toolbox_starknet_no_signer");if(!Z)throw new e.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await Y())return N.address;let x=J.compile([Z,0]);if(U.calculateContractAddressFromHash(Z,Q2,x,0).toLowerCase()!==N.address.toLowerCase())throw new e.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let w={addressSalt:Z,classHash:Q2,constructorCalldata:x},{transaction_hash:b}=await N.deployAccount(w);return await G.waitForTransaction(b),b}async function z(){if(!await Y()){if(!Z)throw new e.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await W()}}async function k(){if(X)return X;return X=await Fy.match(y).with({phrase:Fy.P.string},async({phrase:J})=>{let{Account:U,RpcProvider:G}=await import("starknet"),{privateKey:N,address:F,publicKey:x}=await qf({derivationPath:f,phrase:J});Z=x;let A=await e.getRPCUrl(e.Chain.Starknet),w=new G({nodeUrl:A});return new U({address:F,provider:w,signer:N})}).with({address:Fy.P.string,privateKey:Fy.P.string},async({privateKey:J,address:U})=>{let{Account:G}=await import("starknet"),N=await q();return new G({address:U,provider:N,signer:J})}).with({signer:Fy.P.instanceOf(Object)},({signer:J})=>J).otherwise(()=>{return}),X}async function _(){return(await k())?.address??""}async function M(J,U){let G=await q(),{uint256:N,CallData:F}=await import("starknet"),[x="0",A="0"]=await G.callContract({calldata:F.compile({account:J}),contractAddress:U,entrypoint:"balanceOf"});return N.uint256ToBN({high:A,low:x})}async function O(J){let{baseDecimal:U}=e.getChainConfig(T),G=[],N=[Zf,QH];for(let F of N)try{let x=await M(J,F);Fy.match(F).with(Zf,()=>{G.push(e.AssetValue.from({chain:T,fromBaseDecimal:U,value:x}))}).with(QH,()=>{if(x>0n)G.push(e.AssetValue.from({asset:`${T}.ETH-${F}`,fromBaseDecimal:U,value:x}))}).otherwise(()=>{})}catch{}return G}async function C(J){let U=await k();if(U&&(!J||U.address.toLowerCase()===J.toLowerCase()))return U;if(J){let{Account:G}=await import("starknet"),N=await q();return new G({address:J,provider:N,signer:"0x0"})}throw new e.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer"}})}async function D(J,U){try{let G=await C(U),{overall_fee:N}=await G.estimateInvokeFee(J);if(N<=0n)throw new e.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Sweep fee estimation returned a non-positive fee",sender:U}});return N}catch(G){throw new e.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Unable to estimate the sweep fee. Verify RPC availability and that the sender account is deployed.",sender:U}},G)}}async function R(J,U){let G=await L(J),N=U.isGasAsset?G.find(({isGasAsset:F})=>F):G.find(({address:F})=>F?.toLowerCase()===U.address?.toLowerCase());if(N)return N.getBaseValue("bigint");if(U.isGasAsset)return M(J,Zf);if(U.address)return M(J,U.address);return 0n}async function P({recipient:J,assetValue:U,sender:G,sweep:N}){let{CallData:F,uint256:x}=await import("starknet");if(!c1(J))throw new e.SwapKitError("core_transaction_invalid_recipient_address",{address:J});let A=U.isGasAsset?Zf:U.address;if(!A)throw new e.SwapKitError("toolbox_starknet_invalid_address",{address:A,assetValue:U});let w=U.getBaseValue("bigint");if(N){let X0=G??await _();if(!c1(X0))throw new e.SwapKitError("core_transaction_invalid_sender_address",{address:X0});if(U.isGasAsset){let Y0=[{calldata:F.compile([J,x.bnToUint256(1n)]),contractAddress:A,entrypoint:"transfer"}],I=await D(Y0,X0);w=await R(X0,U)-I}else w=await R(X0,U);if(w<=0n)throw new e.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amount:w.toString(),asset:U.toString()}})}let b=x.bnToUint256(w);return[{calldata:F.compile([J,b]),contractAddress:A,entrypoint:"transfer"}]}async function E({recipient:J,assetValue:U,sender:G}){let{baseDecimal:N}=e.getChainConfig(e.Chain.Starknet);try{let F=await P({assetValue:U,recipient:J}),A=await(await C(G)).estimateInvokeFee(F);if(A?.overall_fee)return e.AssetValue.from({chain:T,fromBaseDecimal:N,value:A.overall_fee})}catch(F){throw new e.SwapKitError("toolbox_starknet_fee_estimation_failed",F)}return e.AssetValue.from({chain:T,value:"0.00001"})}async function j({recipient:J,assetValue:U,memo:G,sweep:N}){let F=await k();if(!F)throw new e.SwapKitError("toolbox_starknet_no_signer");await z();let x=await P({assetValue:U,memo:G,recipient:J,sender:F.address,sweep:N});return(await F.execute(x)).transaction_hash}async function K(J){let U=await k();if(!U)throw new e.SwapKitError("toolbox_starknet_no_signer");let G=await U.signMessage(J);return Array.isArray(G)?G:[G.r.toString(),G.s.toString()]}async function $(J){let U=await k();if(!U)throw new e.SwapKitError("toolbox_starknet_no_signer");return await z(),(await U.execute(J)).transaction_hash}function B(J){return $(J)}async function L(J,U=!0){try{return await w0(T)(J,U)}catch{return O(J)}}return{broadcastTransaction:$,createKeysForPath:Z2,createTransaction:P,deployAccount:W,estimateTransactionFee:E,getAddress:_,getBalance:L,getProvider:q,isAccountDeployed:Y,signAndBroadcastTransaction:B,signMessage:K,transfer:j,validateAddress:c1}}var e,Fy,Zf="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",QH="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",Q2="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var qH=l(()=>{Hy();e=require("@swapkit/helpers"),Fy=require("ts-pattern")});var Uf={};P0(Uf,{validateStarknetAddress:()=>c1,starknetCreateKeysForPath:()=>Z2,getStarknetToolbox:()=>ZH,deriveStarknetKeys:()=>qf});module.exports=V0(Uf);var Yf=l(()=>{qH()});async function U2(y,T,H,f){let X=[],Q,Z=0n;while(!0){let q=await y.getCoins({coinType:H,cursor:Q,owner:T});if(X.push(...q.data),Z+=q.data.reduce((Y,W)=>Y+BigInt(W.balance),0n),!q.hasNextPage||f!==void 0&&Z>=f)return X;Q=q.nextCursor}}async function JH(y){return BigInt(await y.getReferenceGasPrice())}function Wf({coinObjectId:y,digest:T,version:H}){return{digest:T,objectId:y,version:H}}function XZ(y,T,H,f=!1){let X=T.reduce((z,k)=>z+BigInt(k.balance),0n);if(X<H)throw new U0.SwapKitError("toolbox_sui_insufficient_balance",{available:X.toString(),required:H.toString()});let{selectedCoins:Q}=T.reduce((z,k)=>{if(z.total>=H)return z;return{selectedCoins:[...z.selectedCoins,k],total:z.total+BigInt(k.balance)}},{selectedCoins:[],total:0n}),Z=Q[0],q=y.objectRef(Wf(Z)),Y=Q.slice(1).map((z)=>y.objectRef(Wf(z)));if(Y.length>0)y.mergeCoins(q,Y);if(f)return q;let[W]=y.splitCoins(q,[H]);return W}function WH(y,T){let H=y.reduce((f,X)=>f+BigInt(X.balance),0n);if(H<=0n)throw new U0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:T,available:H.toString()}});return H}function zH(y){if(y.length>q2)throw new U0.SwapKitError({errorKey:"toolbox_sui_transaction_creation_error",info:{coinCount:y.length,maxGasPaymentCoins:q2,reason:`SUI transactions support at most ${q2} gas payment coins`}})}function QZ(y,T,H,f,X,Q){let Z=H.getBaseValue("bigint");if(Q)WH(T,H.toString()),zH(T);else GH(T,Z+BigInt(f));if(y.setGasPayment(T.map(Wf)),Q)y.transferObjects([y.gas],X);else{let[q]=y.splitCoins(y.gas,[H.getBaseValue("string")]);y.transferObjects([q],X)}}function GH(y,T){let H=y.reduce((f,X)=>f+BigInt(X.balance),0n);if(H<T)throw new U0.SwapKitError("toolbox_sui_insufficient_balance",{available:H.toString(),required:T.toString()})}async function ZZ({assetValue:y,gasBudget:T,recipient:H,sender:f,suiClient:X,sweep:Q,tx:Z}){let q=y.getBaseValue("bigint"),[Y,W]=await Promise.all([JH(X),U2(X,f,Jf,Q?void 0:q+BigInt(T))]);if(Z.setGasPrice(Y),QZ(Z,W,y,T,H,Q),Q){let z=W.reduce((k,_)=>k+BigInt(_.balance),0n);return z<BigInt(T)?z:T}return T}async function qZ({assetValue:y,gasBudget:T,recipient:H,sender:f,suiClient:X,sweep:Q,tx:Z}){let q=y.address;if(!q)throw new U0.SwapKitError("toolbox_sui_missing_coin_type");let Y=y.getBaseValue("bigint"),[W,z,k]=await Promise.all([JH(X),U2(X,f,Jf,BigInt(T)),U2(X,f,q,Q?void 0:Y)]);if(!k.length&&!Q)throw new U0.SwapKitError("toolbox_sui_no_coins_found",{coinType:q});let _=Q?WH(k,y.toString()):Y;if(GH(z,BigInt(T)),Q)zH(z);Z.setGasPrice(W),Z.setGasPayment(z.map(Wf));let M=XZ(Z,k,_,Q);Z.transferObjects([M],H)}function LH(y){try{return YH.isValidSuiAddress(y)}catch{return!1}}function UH(y){return"signWithIntent"in y}function UZ({provider:y,...T}={}){let H;async function f(){if(H)return H;return H=await d1.match(T).with({phrase:d1.P.string},async({phrase:O})=>{let{Ed25519Keypair:C}=await import("@mysten/sui/keypairs/ed25519");return C.deriveKeypair(O)}).with({signer:d1.P.any},({signer:O})=>O).otherwise(()=>{return}),H}async function X(O=y){let{SuiJsonRpcClient:C}=await import("@mysten/sui/jsonRpc");return new C({network:"mainnet",url:O||U0.getRPCUrlSync(U0.Chain.Sui)})}async function Q(){return(await f())?.toSuiAddress()||""}function Z(O){try{let C=U0.AssetValue.from({address:O,chain:U0.Chain.Sui});return{asset:C.toString(),decimals:C.decimal}}catch{}return null}async function q(O){let C=O||await Q();if(!C)throw new U0.SwapKitError("toolbox_sui_address_required");let{baseDecimal:D,chain:R}=U0.getChainConfig(U0.Chain.Sui);try{let E=await(await X()).getAllBalances({owner:C}),j=E.find(({coinType:$})=>$===Jf)?.totalBalance||"0",K=[U0.AssetValue.from({chain:R,fromBaseDecimal:D,value:j})];for(let{coinType:$,totalBalance:B}of E){if($===Jf||Number(B)<=0)continue;let L=Z($);if(L)K.push(U0.AssetValue.from({asset:L.asset,fromBaseDecimal:L.decimals,value:B}))}return K}catch{return[U0.AssetValue.from({chain:R})]}}async function Y(O){let C=U0.AssetValue.from({chain:U0.Chain.Sui,value:"0.01"});if(!O)return C;try{let D=await X(),{txBytes:R}=await W(O),{effects:{status:P,gasUsed:E}}=await D.dryRunTransactionBlock({transactionBlock:R});if(P.status!=="success")return C;let{baseDecimal:j}=U0.getChainConfig(U0.Chain.Sui),K=BigInt(E.computationCost)+BigInt(E.storageCost)-BigInt(E.storageRebate);return U0.AssetValue.from({chain:U0.Chain.Sui,fromBaseDecimal:j,value:K.toString()})}catch{return C}}async function W({recipient:O,assetValue:C,gasBudget:D,sender:R,sweep:P}){let{Transaction:E}=await import("@mysten/sui/transactions"),j=R||await Q(),K=D||HZ;if(!j)throw new U0.SwapKitError("toolbox_sui_no_sender");try{let $=await X(),B=new E;B.setSender(j);let L={assetValue:C,gasBudget:K,recipient:O,sender:j,suiClient:$,sweep:P,tx:B},J;if(C.isGasAsset||C.symbol==="SUI"){let G=await ZZ(L);if(BigInt(G)<BigInt(K))J=BigInt(G);B.setGasBudget(G)}else await qZ(L),B.setGasBudget(K);let U=await B.build({client:$});if(J!==void 0){let{effects:{status:G}}=await $.dryRunTransactionBlock({transactionBlock:U});if(G.status!=="success")throw new U0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:C.toString(),budget:J.toString(),error:G.error}})}return{tx:B,txBytes:U}}catch($){if($ instanceof U0.SwapKitError)throw $;throw new U0.SwapKitError("toolbox_sui_transaction_creation_error",{error:$})}}async function z(O){let C=await f();if(!C)throw new U0.SwapKitError("toolbox_sui_no_signer");if(O instanceof Uint8Array)return C.signTransaction(O);let{txBytes:D}="tx"in O?O:await W(O);return C.signTransaction(D)}async function k({assetValue:O,gasBudget:C,recipient:D,sweep:R}){let P=await f();if(!P)throw new U0.SwapKitError("toolbox_sui_no_signer");let E=P.toSuiAddress()||await Q();if(!E)throw new U0.SwapKitError("toolbox_sui_no_sender");let{txBytes:j}=await W({assetValue:O,gasBudget:C,recipient:D,sender:E,sweep:R}),K=await X();if(!UH(P)){let B=await P.signTransaction(j),{digest:L}=await K.executeTransactionBlock({signature:B.signature,transactionBlock:B.bytes});return L}let{digest:$}=await K.signAndExecuteTransaction({signer:P,transaction:j});return $}async function _(O){let C=await X(),{digest:D}=await C.executeTransactionBlock({signature:O.signature,transactionBlock:O.bytes});return D}async function M(O){let C=await f();if(!C)throw new U0.SwapKitError("toolbox_sui_no_signer");let D=await X(),R;if(typeof O==="string")R=Uint8Array.from(Buffer.from(O,"base64"));else if(O instanceof Uint8Array)R=O;else R=await O.build({client:D});if(!UH(C)){let E=await C.signTransaction(R),{digest:j}=await D.executeTransactionBlock({signature:E.signature,transactionBlock:E.bytes});return j}let{digest:P}=await D.signAndExecuteTransaction({signer:C,transaction:R});return P}return{broadcastTransaction:_,createTransaction:W,estimateTransactionFee:Y,getAddress:Q,getBalance:q,signAndBroadcastTransaction:M,signTransaction:z,transfer:k,validateAddress:LH}}var YH,U0,d1,Jf="0x2::sui::SUI",q2=256,HZ=50000000;var MH=l(()=>{YH=require("@mysten/sui/utils"),U0=require("@swapkit/helpers"),d1=require("ts-pattern")});var zf={};P0(zf,{validateSuiAddress:()=>LH,getSuiToolbox:()=>UZ});module.exports=V0(zf);var Gf=l(()=>{MH()});async function LZ(){let y=Date.now();if(Lf&&y-CH<GZ)return Lf;let{getHttpEndpoint:T}=await import("@orbs-network/ton-access");return Lf=await T(),CH=y,Lf}async function MZ(){let[y]=R0.SKConfig.get("rpcUrls")[R0.Chain.Ton]??[];if(y)return y;return await LZ()}function _Z(y={}){let T,H,f;async function X(){if(!T){let{TonClient:$}=await import("@ton/ton"),B=y.provider??await MZ();T=new $({endpoint:B})}return T}async function Q(){return(await q()).address.toString()}async function Z(){if(f)return f;return f=await uy.match(y).with({phrase:uy.P.string},async({phrase:$})=>{let{mnemonicToWalletKey:B}=await import("@ton/crypto");return B($.split(" "))}).with({signer:uy.P.any},({signer:$})=>$).otherwise(()=>{return}),f}async function q($){if(!H||$){let B=await Z(),L=await X(),J=$||B;if(!J)throw new R0.SwapKitError("core_wallet_connection_not_found");let{WalletContractV4:U}=await import("@ton/ton"),G=U.create({publicKey:J.publicKey,workchain:0});H=L.open(G)}return H}let Y=w0(R0.Chain.Ton);async function W({assetValue:$,recipient:B,memo:L,sender:J,sweep:U}){if($.isGasAsset){if(U){let Y0=J||await Q(),V=await(await X()).getBalance(J0.Address.parse(Y0));if(V<=0n)throw new R0.SwapKitError("toolbox_sweep_amount_too_low",{asset:$.toString(),balance:V.toString()})}let X0=L?K(L).toBoc().toString("base64"):void 0;return[{address:B,amount:$.getBaseValue("string"),payload:X0}]}let G=$.address;if(!G)throw new R0.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:$.toString()}});let N=J??await Q(),F=await P({jettonMasterAddress:G,ownerAddress:N}),x=J0.Address.parse(B),A=J0.Address.parse(N),w=U?await E(F):$.getBaseValue("bigint");if(U&&w<=0n)throw new R0.SwapKitError("toolbox_sweep_amount_too_low",{asset:$.toString(),balance:w.toString()});let b=L?K(L):void 0,a=j({destinationAddress:x,forwardPayload:b,jettonAmount:w,responseAddress:A});return[{address:F.toString(),amount:WZ.toString(),payload:a.toBoc().toString("base64")}]}async function z({sender:$,sweep:B,...L}){let J=B&&L.assetValue.isGasAsset?zZ:_H;return{messages:await W({...L,sender:$,sweep:B}),sendMode:J}}function k($){if(!Array.isArray($))return $;let[B]=$;return{messages:$.map(({sendMode:J,...U})=>U),sendMode:B?.sendMode??_H}}function _($){return $.map((B)=>{let L=B.payload?J0.Cell.fromBase64(B.payload):void 0,J=B.stateInit?J0.loadStateInit(J0.Cell.fromBase64(B.stateInit).asSlice()):void 0,U=J0.Address.parse(B.address),G=J0.Address.isFriendly(B.address)?J0.Address.parseFriendly(B.address).isBounceable:!0;return J0.internal({body:L,bounce:G,init:J,to:U,value:BigInt(B.amount)})})}async function M($){let B=await Z(),L=await q();if(!L||!B)throw new R0.SwapKitError("core_wallet_connection_not_found");let J=await X(),{state:U}=await J.getContractState(L.address),G=U==="active",N=G?await L.getSeqno():0,{messages:F,sendMode:x}=k($),A=L.createTransfer({messages:_(F),secretKey:B.secretKey,sendMode:x,seqno:N}),w=J0.external({body:A,init:G?void 0:L.init,to:L.address});return J0.beginCell().store(J0.storeMessage(w)).endCell()}async function O($){return await(await X()).sendFile($.toBoc()),$.hash().toString("hex")}async function C($){let B=await M($);return O(B)}async function D({assetValue:$,recipient:B,memo:L,sweep:J}){let U=await z({assetValue:$,memo:L,recipient:B,sweep:J});return C(U)}async function R({sender:$,...B}){let{baseDecimal:L}=R0.getChainConfig(R0.Chain.Ton),J=await uy.match($).with(uy.P.string,(N)=>{return J0.Address.parseFriendly(N).address}).otherwise(async()=>{return(await q()).address});if(!J)throw new R0.SwapKitError("toolbox_fee_estimation_failed",{chain:R0.Chain.Ton});let U=R0.AssetValue.from({chain:R0.Chain.Ton,value:"0.01"}),G=await X();try{let N=await z({sender:$,...B}),F=await Z(),x=await q();if(!x||!F)return U;let A=await x.getSeqno(),w=x.createTransfer({messages:_(N.messages),secretKey:F.secretKey,sendMode:N.sendMode,seqno:A}),{source_fees:b}=await G.estimateExternalMessageFee(J,{body:w,ignoreSignature:!0,initCode:null,initData:null}),a=b.in_fwd_fee+b.storage_fee+b.gas_fee+b.fwd_fee;return U.set(R0.SwapKitNumber.fromBigInt(BigInt(a),L))}catch{return U}}async function P({jettonMasterAddress:$,ownerAddress:B}){try{let L=await X(),J=J0.Address.parse($),U=J0.Address.parse(B),{JettonMaster:G}=await import("@ton/ton");return await L.open(G.create(J)).getWalletAddress(U)}catch{throw new R0.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:$,ownerAddress:B}})}}async function E($){try{let B=await X(),{JettonWallet:L}=await import("@ton/ton");return await B.open(L.create($)).getBalance()}catch{throw new R0.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonWalletAddress:$.toString()}})}}function j({jettonAmount:$,destinationAddress:B,responseAddress:L,forwardAmount:J=JZ,forwardPayload:U}){let G=J0.beginCell().storeUint(YZ,32).storeUint(0,64).storeCoins($).storeAddress(B).storeAddress(L).storeBit(0).storeCoins(J);if(U)G.storeBit(1).storeRef(U);else G.storeBit(0);return G.endCell()}function K($){return J0.beginCell().storeUint(0,32).storeStringTail($).endCell()}return{broadcastTransaction:O,createTransaction:z,estimateTransactionFee:R,getAddress:Q,getBalance:Y,getJettonWalletAddress:P,sign:M,signAndBroadcastTransaction:C,transfer:D,validateAddress:OH}}function OH(y){try{return J0.Address.parse(y),!0}catch{return!1}}var R0,J0,uy,YZ=260734629,JZ,WZ,_H,zZ,GZ=60000,Lf,CH=0;var $H=l(()=>{Hy();R0=require("@swapkit/helpers"),J0=require("@ton/core"),uy=require("ts-pattern"),JZ=J0.toNano("0.01"),WZ=J0.toNano("0.05"),_H=J0.SendMode.PAY_GAS_SEPARATELY+J0.SendMode.IGNORE_ERRORS,zZ=J0.SendMode.CARRY_ALL_REMAINING_BALANCE+J0.SendMode.IGNORE_ERRORS});var Mf={};P0(Mf,{validateTonAddress:()=>OH,getTONToolbox:()=>_Z});module.exports=V0(Mf);var _f=l(()=>{$H()});function s0(y,T){if(!Number.isInteger(T)||T<0)throw RangeError(`${y} must be a non-negative integer, got: ${T}`)}function Ry({accountIndex:y,chain:T,derivationPath:H}){if(y!==void 0)s0("accountIndex",y);let f=[...H?.slice(0,3)??NH.NetworkDerivationPath[T].slice(0,3)];if(y!==void 0)f[2]=y;return f}function Z1({accountIndex:y,change:T=!1,chain:H,derivationPath:f,index:X}){return s0("index",X),[...Ry({accountIndex:y,chain:H,derivationPath:f}),Number(T),X]}function py(y){return y[2]??0}function kH({deriveAddress:y,getBalance:T,getUtxos:H}){async function f(q){let{accountIndex:Y,count:W,startIndex:z=0,change:k=!1}=q;if(s0("count",W),W<1)throw RangeError("count must be at least 1");s0("startIndex",z);let _=[];for(let M=0;M<W;M++){let O=await y({accountIndex:Y,change:k,index:z+M});if(O)_.push(O)}return _}async function X(q){let{gapLimit:Y=20,change:W=!1}=q??{},z=[],k=0,_=0;while(k<Y){let M=await y({change:W,index:_});if(!M)break;if((await T(M.address)).some((D)=>D.getValue("number")>0))z.push(M),k=0;else k++;_++}return z}async function Q(q=20){let[Y,W]=await Promise.all([X({change:!1,gapLimit:q}),X({change:!0,gapLimit:q})]),z=[...Y,...W],k=await Promise.all(z.map(async(M)=>{let C=(await T(M.address)).reduce((D,R)=>D+R.getValue("number"),0);return{...M,balance:C}})),_=k.reduce((M,O)=>M+O.balance,0);return{addresses:k,total:_}}async function Z(q=20){let[Y,W]=await Promise.all([X({change:!1,gapLimit:q}),X({change:!0,gapLimit:q})]),z=[...Y,...W];return(await Promise.all(z.map(async(_)=>{return(await H(_.address)).map((O)=>({...O,address:_.address,derivationIndex:_.index,isChange:_.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:Q,getAggregatedUtxos:Z,scanForAddresses:X}}var NH;var i1=l(()=>{NH=require("@swapkit/helpers")});async function CZ({chain:y,txHash:T}){let H=`${t1(y)}/push/transaction`,f=JSON.stringify({data:T});try{let X=await T0.RequestClient.post(H,{body:f,headers:{"Content-Type":"application/json"}});if(X.context.code!==200)throw new T0.SwapKitError("toolbox_utxo_broadcast_failed",{error:X.context.error||"Transaction broadcast failed"});return X.data?.transaction_hash||T}catch(X){let Q=await T0.getRPCUrl(y);if(Q){let Z=JSON.stringify({id:IT(),jsonrpc:"2.0",method:"sendrawtransaction",params:[T]}),q=await T0.RequestClient.post(Q,{body:Z,headers:{"Content-Type":"application/json"}});if(q.error)throw new T0.SwapKitError("toolbox_utxo_broadcast_failed",{error:q.error?.message});if(q.result.includes('"code":-26'))throw new T0.SwapKitError("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return q.result}throw X}}function t1(y){return`https://api.blockchair.com/${OZ(y)}`}function BH(y){switch(y){case T0.Chain.Bitcoin:return 5;case T0.Chain.Dogecoin:return 1e4;case T0.Chain.Litecoin:return 1;case T0.Chain.Zcash:return 1;default:return 2}}function OZ(y){switch(y){case T0.Chain.BitcoinCash:return"bitcoin-cash";case T0.Chain.Litecoin:return"litecoin";case T0.Chain.Dash:return"dash";case T0.Chain.Dogecoin:return"dogecoin";case T0.Chain.Zcash:return"zcash";case T0.Chain.Polkadot:return"polkadot";default:return"bitcoin"}}async function $Z(y){try{let{feePerKb:T}=await T0.RequestClient.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),H=T/1000;return Math.max(H,BH(y))}catch{return BH(y)}}async function Cf(y,T){let H=await T0.RequestClient.get(`${y}${T?`${y.includes("?")?"&":"?"}key=${T}`:""}`);if(!H||H.context.code!==200)throw new T0.SwapKitError("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return H.data}async function FH({address:y,chain:T,apiKey:H}){if(!y)throw new T0.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Cf(`${t1(T)}/dashboards/address/${y}?transaction_details=true`,H))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function NZ({address:y,chain:T,apiKey:H}){return(await FH({address:y,apiKey:H,chain:T}))?.address.balance||0}async function RH({chain:y,apiKey:T,txHash:H}){if(!H)throw new T0.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Cf(`${t1(y)}/raw/transaction/${H}`,T))?.[H]?.raw_transaction||""}catch(f){let X=f instanceof Error?f.message:String(f);return console.error(`Failed to fetch raw transaction: ${X}`),""}}async function BZ({chain:y,apiKey:T,txHash:H}){if(!H)throw new T0.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});let X=(await Cf(`${t1(y)}/dashboards/transaction/${H}`,T))?.[H];if(!X)throw new T0.SwapKitError("toolbox_utxo_tx_not_found",{txHash:H});let{transaction:Q,inputs:Z,outputs:q}=X,Y=Z.map((z)=>z.spending_sequence),W=Q.is_rbf===!0||Y.some((z)=>z<kZ);return{blockId:Q.block_id,confirmed:Q.block_id!==-1,fee:Q.fee,inputs:Z,isRBF:W,outputs:q,sequences:Y,size:Q.size,txid:Q.hash,weight:Q.weight}}async function DZ({chain:y,address:T,apiKey:H,offset:f=0,limit:X=30}){return(await Cf(`${t1(y)}/outputs?q=recipient(${T}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${X}&offset=${f}`,H)).map(({is_spent:Y,script_hex:W,block_id:z,transaction_hash:k,index:_,value:M,spending_signature_hex:O})=>({hash:k,index:_,is_confirmed:z!==-1,is_spent:Y,script_hex:W,txHex:O,value:M}))}function FZ(y){return y.reduce((T,H)=>T+H.value,0)}function DH(y,T){let H=[...y].sort((f,X)=>X.value-f.value);if(T){let f=[],X=0;for(let Q of H)if(f.push(Q),X+=Q.value,X>=T)break;return f}return H}async function xH({chain:y,address:T,apiKey:H,targetValue:f,accumulativeValue:X=0,offset:Q=0,limit:Z=30}){if(!T)throw new T0.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{let q=await DZ({address:T,apiKey:H,chain:y,limit:Z,offset:Q,targetValue:f}),W=q.length<Z,z=q.filter(({is_spent:D})=>!D),k=FZ(z),_=X+k,M=f&&_>=f;if(W||M)return DH(z,f);let O=await xH({accumulativeValue:_,address:T,apiKey:H,chain:y,limit:Z,offset:Q+Z,targetValue:f}),C=[...z,...O];return DH(C,f)}catch(q){let Y=q instanceof Error?q.message:String(q);return console.error(`Failed to fetch unspent UTXOs: ${Y}`),[]}}async function RZ({address:y,chain:T,apiKey:H,fetchTxHex:f=!0,targetValue:X}){let Q=await xH({address:y,apiKey:H,chain:T,targetValue:X}),Z=[];for(let{hash:q,index:Y,script_hex:W,value:z}of Q){let k;if(f)k=await RH({apiKey:H,chain:T,txHash:q});Z.push({address:y,hash:q,index:Y,txHex:k,value:z,witnessUtxo:{script:Buffer.from(W,"hex"),value:z}})}return Z}function S0(y){let T=T0.SKConfig.get("apiKeys").blockchair||"";return T0.warnOnce({condition:!T,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(H)=>CZ({chain:y,txHash:H}),getAddressData:(H)=>FH({address:H,apiKey:T,chain:y}),getBalance:(H)=>NZ({address:H,apiKey:T,chain:y}),getRawTx:(H)=>RH({apiKey:T,chain:y,txHash:H}),getSuggestedTxFee:()=>$Z(y),getTransactionDetails:(H)=>BZ({apiKey:T,chain:y,txHash:H}),getUtxos:(H)=>RZ({...H,apiKey:T,chain:y})}}function xZ(y){return y}function IZ(){return function(T){switch(T){case T0.Chain.Bitcoin:return my.NETWORKS.bitcoin;case T0.Chain.BitcoinCash:return my.NETWORKS.bitcoinCash;case T0.Chain.Dash:return my.NETWORKS.dash;case T0.Chain.Litecoin:return my.NETWORKS.litecoin;case T0.Chain.Dogecoin:return my.NETWORKS.dogecoin;case T0.Chain.Zcash:return my.NETWORKS.zcash;default:throw new T0.SwapKitError("toolbox_utxo_not_supported",{chain:T})}}}var T0,my,kZ=4294967294;var IH=l(()=>{Hy();T0=require("@swapkit/helpers"),my=require("@swapkit/utxo-signer")});function KZ(y,T,H){return Wy.encodeCashAddr({hash:H,prefix:y,type:PZ[T]})}function SZ(y){let T=Wy.decodeCashAddr(y),H=jZ[T.type];if(!H)throw Error(`Unknown CashAddr type: ${T.type}`);return{hash:T.hash,prefix:T.prefix,type:H}}var Wy,PZ,jZ,Y2;var PH=l(()=>{Wy=require("@swapkit/utxo-signer"),PZ={P2PKH:Wy.CashAddrType.P2PKH,P2SH:Wy.CashAddrType.P2SH},jZ={[Wy.CashAddrType.P2PKH]:"P2PKH",[Wy.CashAddrType.P2SH]:"P2SH"};Y2={decode:SZ,encode:KZ}});function z2(y){try{return Of(y),!0}catch{return!1}}function G2(y){return Of(y)?.network}function zy(y){let T=Of(y);if(T?.format==="legacy")return y;return wZ(T)}function r1(y){let T=Of(y);return EZ(T)}function Of(y){try{let T=VZ(y);if(T)return T}catch{}try{let T=AZ(y);if(T)return T}catch{}throw new J2.SwapKitError("toolbox_utxo_invalid_address",{address:y})}function VZ(y){try{let T=VH.decode(y);if(T.length!==21)throw new J2.SwapKitError("toolbox_utxo_invalid_address",{address:y});let H=T[0],f=Array.prototype.slice.call(T,1);switch(H){case gy.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case gy.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case gy.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case gy.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case gy.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case gy.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function AZ(y){if(y.indexOf(":")!==-1)try{return jH(y)}catch{}else{let T=["bitcoincash","bchtest","bchreg"];for(let H of T)try{return jH(`${H}:${y}`)}catch{}}return}function jH(y){try{let{hash:T,prefix:H,type:f}=Y2.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(T,0),network:H==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function wZ(y){let T=gy.legacy[y.network][y.type],H=Buffer.alloc(1+y.hash.length);return H[0]=T,H.set(y.hash,1),VH.encode(H)}function EZ(y){let T=y.network==="mainnet"?"bitcoincash":"bchtest",H=y.type==="p2pkh"?"P2PKH":"P2SH",f=new Uint8Array(y.hash);return Y2.encode(T,H,f)}var KH,SH,J2,VH,W2,gy;var AH=l(()=>{PH();KH=require("@noble/hashes/sha2.js"),SH=require("@scure/base"),J2=require("@swapkit/helpers"),VH=SH.createBase58check(KH.sha256);((H)=>{H.Mainnet="mainnet";H.Testnet="testnet"})(W2||={});gy={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});function n0(y){let T=new Uint8Array(Buffer.from(y,"utf8"));return EH.Script.encode(["RETURN",T])}var wH,EH,vZ=1000,Nf=10,kf=2,vH=10,bZ=41,hZ=107,Bf,$f,a1,q1=(y)=>{if(y.startsWith("bc1")||y.startsWith("tb1")||y.startsWith("ltc1")||y.startsWith("tltc1"))return"P2WPKH";if(y.startsWith("1")||y.startsWith("m")||y.startsWith("n")||y.startsWith("bitcoincash:q")||y.startsWith("bitcoincash:p")||y.startsWith("q")||y.startsWith("p")||y.startsWith("L")||y.startsWith("M")||y.startsWith("3")||y.startsWith("D")||y.startsWith("A")||y.startsWith("9")||y.startsWith("X")||y.startsWith("7")||y.startsWith("y")||y.startsWith("t1")||y.startsWith("t3")||y.startsWith("tm"))return"P2PKH";throw new wH.SwapKitError("toolbox_utxo_invalid_address",{address:y})},oy=({inputs:y,outputs:T,feeRate:H})=>{let f=y[0]&&"address"in y[0]&&y[0].address?q1(y[0].address):"P2PKH",Q=(H?y.filter((W)=>W.value>=$f["type"in W&&W.type?W.type:"P2PKH"]*Math.ceil(H)):y).reduce((W,z)=>W+xy(z),0),Z=T?.reduce((W,z)=>W+s1(z),0)||a1[f],q=Nf+Q+Z;return f==="P2WPKH"?Math.ceil(q+kf/4):q},xy=(y)=>{if("type"in y&&y.type)return $f[y.type];if("address"in y&&y.address)return $f[q1(y.address)];return bZ+hZ},s1=(y,T)=>{if(y?.script)return vH+y.script.length+(y.script.length>=74?2:1);if(T)return a1[T];if("address"in y&&y.address)return a1[q1(y.address)];return a1.P2PKH};var L2=l(()=>{wH=require("@swapkit/helpers"),EH=require("@swapkit/utxo-signer");((H)=>{H.P2PKH="P2PKH";H.P2WPKH="P2WPKH"})(Bf||={});$f={["P2PKH"]:148,["P2WPKH"]:68},a1={["P2PKH"]:34,["P2WPKH"]:31}});function U1(y){switch(y){case d0.Chain.Bitcoin:case d0.Chain.BitcoinCash:return 550;case d0.Chain.Dash:case d0.Chain.Litecoin:return 5500;case d0.Chain.Dogecoin:return 1e5;case d0.Chain.Zcash:return 546;default:throw new d0.SwapKitError("toolbox_utxo_not_supported",{chain:y})}}function i0({inputs:y,outputs:T,feeRate:H=1,chain:f=d0.Chain.Bitcoin,changeAddress:X="",sweep:Q=!1}){let Z=U1(f),q=y.filter((D)=>{let R=xy(D)*H;return Q?D.value>Math.max(R,Z):R<=D.value});if(Q){let D=Math.ceil(H*oy({inputs:q,outputs:T})),R=q.reduce((j,K)=>j+K.value,0),P=R-D;if(P<=Z)throw new d0.SwapKitError("toolbox_sweep_amount_too_low",{available:R,dustThreshold:Z,fee:D});let E=T.findIndex((j)=>("address"in j)&&j.address);if(E===-1)throw new d0.SwapKitError("toolbox_utxo_invalid_params",{error:"Sweep requires a recipient output"});return{fee:D,inputs:q,outputs:T.map((j,K)=>K===E?{...j,value:P}:j)}}let z=(y[0]&&"address"in y[0]&&y[0].address?q1(y[0].address):"P2PKH")==="P2WPKH"?Math.ceil(kf/4):0,k=Nf+z+T.reduce((D,R)=>D+s1(R),0),_=T.reduce((D,R)=>D+R.value,0),M=k*H,O=0,C=[];for(let D of q){let R=xy(D),P=H*R;M+=P,O+=D.value,C.push(D);let E=M+_;if(O<E)continue;let j=O-E,K=H*s1({address:X,value:0});if(j>K){let $=K+M,B=O-(_+Math.ceil($));if(B>Math.max(xy({value:0})*H,U1(f)))return{fee:Math.ceil($),inputs:C,outputs:T.concat({address:X,value:B})}}return{fee:Math.ceil(M),inputs:C,outputs:T}}return{fee:Math.ceil(H*oy({inputs:y,outputs:T}))}}var d0;var bH=l(()=>{L2();d0=require("@swapkit/helpers")});var Y1=l(()=>{IH();AH();bH();L2()});function ny(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function Iy(y){let T=ny(y);return z2(T)&&G2(T)==="mainnet"}var cy;var e1=l(()=>{Y1();cy=require("@swapkit/utxo-signer")});function C2({address:y,chain:T}){return _2.match(T).with(v.Chain.BitcoinCash,()=>Iy(y)).with(v.Chain.Zcash,()=>cy.validateZcashAddress(y)).otherwise(()=>{try{return Q0.Address(h0(T)).decode(y),!0}catch{return!1}})}function h0(y){return _2.match(y).with(v.Chain.Bitcoin,()=>Q0.NETWORKS.bitcoin).with(v.Chain.BitcoinCash,()=>Q0.NETWORKS.bitcoinCash).with(v.Chain.Dash,()=>Q0.NETWORKS.dash).with(v.Chain.Dogecoin,()=>Q0.NETWORKS.dogecoin).with(v.Chain.Litecoin,()=>Q0.NETWORKS.litecoin).with(v.Chain.Zcash,()=>Q0.NETWORKS.zcash).exhaustive()}function lZ({phrase:y,derivationPath:T,network:H,seed:f}){let X=f??Ff.mnemonicToSeedSync(y),Z=M2.HDKey.fromMasterSeed(X,H.bip32).derive(T);if(!Z.privateKey)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return Z.privateKey}function hH(y){return lH.secp256k1.getPublicKey(y,!0)}function f5({publicKey:y,chain:T,network:H}){if(T===v.Chain.BitcoinCash){let Q=Q0.p2pkh(y,H);if(!Q.hash)throw new v.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return Q0.encodeCashAddr({hash:Q.hash,prefix:Q0.CashAddrPrefix.MAINNET,type:Q0.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}let X=!y5.includes(T)?Q0.p2wpkh(y,H):Q0.p2pkh(y,H);if(!X.address)throw new v.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive address"});return X.address}function J1({phrase:y,derivationPath:T,chain:H,wif:f,seed:X}){let Q=h0(H);if(f){let W=Q0.WIF(Q).decode(f),z=hH(W);return{privateKey:W,publicKey:z}}if(!y)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let Z=T||v.derivationPathToString(v.NetworkDerivationPath[H]),q=lZ({derivationPath:Z,network:Q,phrase:y,seed:X}),Y=hH(q);return{privateKey:q,publicKey:Y}}function uZ(y,T){return Q0.WIF(h0(T)).encode(y)}function pZ({phrase:y,derivationPath:T,chain:H,seed:f}){let X=T.split("/");if(X.length<4)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${X.length}): ${T}`});let Q=h0(H),Z=f??Ff.mnemonicToSeedSync(y),q=M2.HDKey.fromMasterSeed(Z,Q.bip32),Y=X.slice(0,4).join("/");return q.derive(Y)}function jy({inputs:y,outputs:T,chain:H,tx:f,sender:X,compiledMemo:Q,enableRBF:Z=!1}){let q=h0(H),Y=!y5.includes(H),W=Z?Q0.RBF_SEQUENCE:void 0,z=new Set;for(let k of y){let _=`${k.hash}:${k.index}`;if(z.has(_))throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});z.add(_);let M=typeof k.hash==="string"?Py.hex.decode(k.hash):k.hash;if(Y&&k.witnessUtxo)f.addInput({index:k.index,sequence:W,txid:M,witnessUtxo:{amount:BigInt(k.witnessUtxo.value),script:k.witnessUtxo.script}});else if(k.txHex)f.addInput({index:k.index,nonWitnessUtxo:Py.hex.decode(k.txHex),sequence:W,txid:M,...H===v.Chain.BitcoinCash?{sighashType:Q0.BCHSigHash.ALL}:{}});else throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let k of T){let _="address"in k&&k.address?k.address:X;if(H===v.Chain.BitcoinCash)_=zy(_);if(k.script){if(Q)f.addOutput({amount:0n,script:Q})}else f.addOutputAddress(_,BigInt(k.value),q)}return{inputs:y,tx:f}}async function W1(y){let T=await S0(y).getSuggestedTxFee();return{[v.FeeOption.Average]:T,[v.FeeOption.Fast]:v.applyFeeMultiplier(T,v.FeeOption.Fast),[v.FeeOption.Fastest]:v.applyFeeMultiplier(T,v.FeeOption.Fastest)}}async function uH({assetValue:y,recipient:T,memo:H,sender:f,sweep:X,fetchTxHex:Q=!1}){let Z=y.chain,q=Q||y5.includes(Z),Y=y.getBaseValue("number"),W=X?void 0:Math.ceil(Y+(await W1(Z))[v.FeeOption.Fastest]*5000);return{inputs:await S0(Z).getUtxos({address:f,fetchTxHex:q,targetValue:W}),outputs:[{address:T,value:X?0:Y},...H?[{address:"",script:n0(H),value:0}]:[]]}}async function pH({assetValue:y,recipient:T,memo:H,feeRate:f,sender:X,fetchTxHex:Q=!1,enableRBF:Z=!1,sweep:q}){let Y=y.chain,W=H?n0(H):null,z=await uH({assetValue:y,fetchTxHex:Q,memo:H,recipient:T,sender:X,sweep:q}),{inputs:k,outputs:_}=i0({...z,chain:Y,feeRate:f,sweep:q});if(!(k&&_))throw new v.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let M=new Q0.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!W,version:1}),{inputs:O,tx:C}=jy({chain:Y,compiledMemo:W,enableRBF:Z,inputs:k,outputs:_,sender:X,tx:M});return{inputs:O,tx:C,utxos:z.inputs}}async function mH({assetValue:y,feeOptionKey:T=v.FeeOption.Fast,feeRate:H,memo:f,sender:X,recipient:Q,sweep:Z}){let q=y.chain,Y=await uH({assetValue:y,memo:f,recipient:Q,sender:X,sweep:Z}),W=H?Math.floor(H):(await W1(q))[T];return i0({...Y,chain:q,feeRate:W,sweep:Z})}function mZ(y){return async function({from:H,memo:f,feeRate:X,feeOptionKey:Q=v.FeeOption.Fast,recipient:Z=H,recipients:q=1}){let Y=X??(await W1(y))[Q],z=(await S0(y).getUtxos({address:H,fetchTxHex:!1})).filter((C)=>C.value>Math.max(U1(y),xy(C)*Y));if(!z.length)return v.AssetValue.from({chain:y});let k=typeof q==="number"?Math.max(q,1):q.length,_=typeof q==="number"||k===0?Array.from({length:k||1},()=>({address:Z,value:0})):[...q];if(f)_.push({address:H,script:n0(f),value:0});let{outputs:M}=i0({chain:y,feeRate:Y,inputs:z,outputs:_,sweep:!0}),O=M?.[0]?.value??0;return v.AssetValue.from({chain:y,value:BigInt(O)})}}function gZ(y){return async function(H){let{fee:f}=await mH(H);return v.AssetValue.from({chain:y,value:v.SwapKitNumber.fromBigInt(BigInt(f),8).getValue("string")})}}function oZ({chain:y,phrase:T,derivationPath:H,seed:f}){let X=h0(y),{privateKey:Q,publicKey:Z}=J1({chain:y,derivationPath:H,phrase:T,seed:f}),q=y===v.Chain.BitcoinCash?[Q0.BCHSigHash.ALL]:[Q0.SigHash.ALL];return{getAddress:()=>f5({chain:y,network:X,publicKey:Z}),privateKey:Q,publicKey:Z,signTransaction:(Y)=>{return Y.sign(Q,q),Y}}}function nZ(y,T){return async function({memo:f,recipient:X,feeOptionKey:Q,feeRate:Z,assetValue:q,enableRBF:Y=!1,sweep:W}){let z=await T?.getAddress();if(!(T&&z))throw new v.SwapKitError("toolbox_utxo_no_signer");if(!X)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});v.warnOnce({condition:Y&&!Df.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let k=Y&&Df.includes(y),_=Z||(await W1(y))[Q||v.FeeOption.Fast],{tx:M}=await pH({assetValue:q,enableRBF:k,feeRate:_,memo:f,recipient:X,sender:z,sweep:W}),O=await T.signTransaction(M);return O.finalize(),S0(y).broadcastTx(Py.hex.encode(O.extract()))}}function O2(y){return(T)=>C2({address:T,chain:y})}function $2(y){let T=h0(y);return function(f){if(!f)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return f5({chain:y,network:T,publicKey:f.publicKey})}}function Ky({chain:y,...T}){let H="phrase"in T?T.phrase:void 0,f="index"in T?T.index||0:0,X=H?Ff.mnemonicToSeedSync(H):void 0,Q="derivationPath"in T&&T.derivationPath?T.derivationPath:v.updateDerivationPath(v.NetworkDerivationPath[y],{index:f}),Z=v.derivationPathToString(Q),q=H?oZ({chain:y,derivationPath:Z,phrase:H,seed:X}):void 0,Y="signer"in T?T.signer:void 0,W=q||Y,z=H?J1({chain:y,derivationPath:Z,phrase:H,seed:X}):void 0;function k(){if(W)return W.getAddress();return Promise.resolve(void 0)}function _(U){if(!H)return;let G=Ry({accountIndex:U,chain:y,derivationPath:Q});return pZ({chain:y,derivationPath:v.derivationPathToString(G),phrase:H,seed:X})}let M=_();function O(){if(!M)return;return M.publicExtendedKey}function C({accountIndex:U}={}){let G=U===void 0?M:_(U);if(!G)return;let N=Ry({accountIndex:U,chain:y,derivationPath:Q});return{accountIndex:py(N),path:v.derivationPathToString(N),xpub:G.publicExtendedKey}}function D({accountIndex:U,index:G,change:N=!1}){let F=U===void 0?M:_(U);if(!F)return;let x=Z1({accountIndex:U,chain:y,change:N,derivationPath:Q,index:G}),A=h0(y),w=F.deriveChild(Number(N)).deriveChild(G);if(!w.publicKey)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let b=f5({chain:y,network:A,publicKey:w.publicKey}),a=Py.hex.encode(w.publicKey);return{accountIndex:py(x),address:b,change:N,index:G,path:v.derivationPathToString(x),pubkey:a}}async function R(U){if(!Df.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let G=await S0(y).getTransactionDetails(U);return{canReplace:G.isRBF&&!G.confirmed,confirmed:G.confirmed,enabled:G.isRBF,fee:G.fee,sequences:G.sequences,supported:!0}}async function P({txid:U,newFeeRate:G,recipient:N,memo:F}){if(!Df.includes(y))throw new v.SwapKitError("toolbox_utxo_rbf_not_supported",{chain:y});let x=await S0(y).getTransactionDetails(U);if(!x.isRBF)throw new v.SwapKitError("toolbox_utxo_tx_not_replaceable",{txid:U});if(x.confirmed)throw new v.SwapKitError("toolbox_utxo_tx_already_confirmed",{blockId:x.blockId,txid:U});let A=x.inputs.reduce((Z0,C0)=>Z0+C0.value,0),b=x.outputs.find((Z0)=>Z0.recipient===N)?.value||0;if(b===0)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let a=await Promise.all(x.inputs.map(async(Z0)=>{let C0=await S0(y).getRawTx(Z0.transaction_hash);return{hash:Z0.transaction_hash,index:Z0.index,txHex:C0,value:Z0.value,witnessUtxo:void 0}})),X0=F?n0(F):null,Y0=oy({feeRate:G,inputs:a.map((Z0)=>({...Z0,type:"P2WPKH"})),outputs:[{address:N,value:b}]}),I=Math.ceil(Y0*G);if(I<=x.fee)throw new v.SwapKitError("toolbox_utxo_rbf_fee_too_low",{newFee:I,originalFee:x.fee});let V=I-x.fee,h=b-V;if(h<=0)throw new v.SwapKitError("toolbox_utxo_rbf_insufficient_change");let c=new Q0.Transaction({allowLegacyWitnessUtxo:!0,version:1}),i=[{address:N,value:h},...F?[{address:"",script:n0(F),value:0}]:[]],f0=A-h-I,L0=await k();if(f0>U1(y)&&L0)i.push({address:L0,value:f0});return jy({chain:y,compiledMemo:X0,inputs:a,outputs:i,sender:L0||N,tx:c}),{feeDelta:V,newFee:I,originalFee:x.fee,tx:c}}async function E({txid:U,newFeeRate:G,recipient:N,memo:F}){let{tx:x,originalFee:A,newFee:w}=await P({memo:F,newFeeRate:G,recipient:N,txid:U}),b=await L(x);b.finalize();let a=await S0(y).broadcastTx(Py.hex.encode(b.extract()));return{newFee:w,originalFee:A,txid:a}}function j({accountIndex:U,index:G,change:N=!1}){s0("index",G);let F=U===void 0?M:_(U);if(!F)return;return F.deriveChild(Number(N)).deriveChild(G).privateKey||void 0}function K({tx:U,inputDerivations:G}){if(!M)throw new v.SwapKitError("toolbox_utxo_no_signer");let N=y===v.Chain.BitcoinCash?[Q0.BCHSigHash.ALL]:[Q0.SigHash.ALL];for(let F=0;F<G.length;F++){let x=G[F];if(!x)continue;let{derivationIndex:A,isChange:w}=x,b=j({change:w,index:A});if(!b)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${F} at index ${A}`});U.signIdx(b,F,N)}return U}async function $({utxos:U,recipient:G,assetValue:N,memo:F,feeRate:x,feeOptionKey:A,changeAddress:w,sweep:b}){if(b)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Sweep is not supported for transfers from multiple addresses"});if(!M)throw new v.SwapKitError("toolbox_utxo_no_signer");let a=x||(await W1(y))[A||v.FeeOption.Fast],X0=F?n0(F):null,Y0=[{address:G,value:N.getBaseValue("number")}];if(X0)Y0.push({address:"",script:X0,value:0});let I=U.map(({hash:Z0,index:C0,value:A0,txHex:fy,witnessUtxo:Ty})=>({hash:Z0,index:C0,txHex:fy,value:A0,witnessUtxo:Ty?{script:Ty.script,value:Ty.value}:void 0})),{inputs:V,outputs:h}=i0({chain:y,feeRate:a,inputs:I,outputs:Y0});if(!(V&&h))throw new v.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:N,sender:"multiple addresses"});let c=new Q0.Transaction({allowLegacyWitnessUtxo:!0,version:1}),i=U[0]?.address,f0=w||await k()||i||G;jy({chain:y,compiledMemo:X0,inputs:V,outputs:h,sender:f0,tx:c});let L0=V.map((Z0)=>{let C0=U.find((A0)=>A0.hash===Z0.hash&&A0.index===Z0.index);return C0?{derivationIndex:C0.derivationIndex,isChange:C0.isChange}:{derivationIndex:0,isChange:!1}});return K({inputDerivations:L0,tx:c}),c.finalize(),S0(y).broadcastTx(Py.hex.encode(c.extract()))}function B({address:U,gapLimit:G=20}){if(!M)return;for(let N=0;N<G;N++){let F=D({change:!1,index:N}),x=D({change:!0,index:N}),A=F?.address===U?!1:x?.address===U;if(F?.address===U||x?.address===U)return{change:A,index:N}}return}function L(U){if(!W)throw new v.SwapKitError("toolbox_utxo_no_signer");return W.signTransaction(U)}async function J(U){let G=await L(U);return G.finalize(),await S0(y).broadcastTx(Py.hex.encode(G.extract()))}return{accumulative:i0,broadcastTx:(U)=>S0(y).broadcastTx(U),bumpFee:E,calculateTxSize:oy,createKeysForPath:(U)=>J1({...U,chain:y}),createReplacementTransaction:P,createTransaction:pH,deriveAddressAtIndex:D,derivePrivateKeyAtIndex:j,estimateMaxSendableAmount:mZ(y),estimateTransactionFee:gZ(y),getAddress:k,getAddressFromKeys:$2(y),getBalance:w0(y),getExtendedPublicKey:O,getExtendedPublicKeyInfo:C,getFeeRates:()=>W1(y),getInputsOutputsFee:mH,getNetworkForChain:()=>h0(y),getPrivateKeyFromMnemonic:(U)=>uZ(J1({...U,chain:y}).privateKey,y),isRBFEnabled:R,keys:z,resolveDerivationIndex:B,signAndBroadcastTransaction:J,signTransaction:L,signTransactionWithMultipleKeys:K,transfer:nZ(y,W),transferFromMultipleAddresses:$,validateAddress:O2(y)}}var lH,Py,M2,Ff,v,Q0,_2,y5,Df;var z1=l(()=>{Hy();i1();Y1();e1();lH=require("@noble/curves/secp256k1.js"),Py=require("@scure/base"),M2=require("@scure/bip32"),Ff=require("@scure/bip39"),v=require("@swapkit/helpers"),Q0=require("@swapkit/utxo-signer"),_2=require("ts-pattern"),y5=[v.Chain.Dash,v.Chain.Dogecoin,v.Chain.Zcash,v.Chain.BitcoinCash],Df=[v.Chain.Bitcoin]});function T5(y){return ny(r1(y))}function cZ(y){let T=h0(Uy);function H(X){return X.sign(y.privateKey,[j0.BCHSigHash.ALL]),X}function f(){let X=j0.p2pkh(y.publicKey,T);if(!X.hash)throw new I0.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let Q=j0.encodeCashAddr({hash:X.hash,prefix:j0.CashAddrPrefix.MAINNET,type:j0.CashAddrType.P2PKH});return Promise.resolve(Q.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:H}}function k2(y){let T="phrase"in y?y.phrase:void 0,H="index"in y?y.index||0:0,f=I0.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:I0.updateDerivationPath(I0.NetworkDerivationPath[Uy],{index:H})),X=T?J1({chain:Uy,derivationPath:f,phrase:T}):void 0,Q=X?cZ(X):("signer"in y)?y.signer:void 0;function Z(){return Promise.resolve(Q?.getAddress())}let{getBalance:q,getFeeRates:Y,broadcastTx:W,...z}=Ky({chain:Uy});function k(O,C=!0){return q(ny(r1(O)))}function _(O){if(!Q)throw new I0.SwapKitError("toolbox_utxo_no_signer");return Q.signTransaction(O)}async function M(O){let C=await _(O);return C.finalize(),await W(N2.hex.encode(C.extract()))}return{...z,broadcastTx:W,buildTx:iZ,createTransaction:gH,getAddress:Z,getAddressFromKeys:tZ,getBalance:k,getFeeRates:Y,signAndBroadcastTransaction:M,signTransaction:_,stripPrefix:ny,stripToCashAddress:T5,transfer:dZ({broadcastTx:W,getFeeRates:Y,signer:Q}),validateAddress:Iy}}async function gH({assetValue:y,recipient:T,memo:H,feeRate:f,sender:X,sweep:Q}){if(!Iy(T))throw new I0.SwapKitError("toolbox_utxo_invalid_address",{address:T});let Z=Math.ceil(y.getBaseValue("number")+f*7500),q=await S0(Uy).getUtxos({address:T5(X),fetchTxHex:!0,targetValue:Q?void 0:Z}),Y=H?n0(H):null,W=[],z=zy(T);if(W.push({address:z,value:Q?0:y.getBaseValue("number")}),Y)W.push({script:Y,value:0});let{inputs:k,outputs:_}=i0({chain:Uy,feeRate:f,inputs:q,outputs:W,sweep:Q});if(!(k&&_))throw new I0.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let M=new j0.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Y,version:1}),O=zy(X),{inputs:C,tx:D}=jy({chain:Uy,compiledMemo:Y,inputs:k,outputs:_.map((R)=>("address"in R)&&R.address?{...R,address:zy(R.address)}:R),sender:O,tx:M});return{inputs:C,tx:D,utxos:k}}function dZ({broadcastTx:y,getFeeRates:T,signer:H}){return async function({recipient:X,assetValue:Q,feeOptionKey:Z=I0.FeeOption.Fast,sweep:q,...Y}){let W=await H?.getAddress();if(!(H&&W))throw new I0.SwapKitError("toolbox_utxo_no_signer");if(!X)throw new I0.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let z=Y.feeRate||(await T())[Z],{tx:k}=await gH({...Y,assetValue:Q,feeRate:z,recipient:X,sender:W,sweep:q}),_=await H.signTransaction(k);return _.finalize(),y(N2.hex.encode(_.extract()))}}async function iZ({assetValue:y,recipient:T,memo:H,feeRate:f,sender:X}){let Q=r1(T);if(!Iy(Q))throw new I0.SwapKitError("toolbox_utxo_invalid_address",{address:Q});let Z=Math.ceil(y.getBaseValue("number")+f*7500),q=await S0(Uy).getUtxos({address:T5(X),fetchTxHex:!0,targetValue:Z}),Y=Number(f.toFixed(0)),W=H?n0(H):null,z=[];if(z.push({address:zy(T),value:y.getBaseValue("number")}),W)z.push({script:W,value:0});let{inputs:k,outputs:_}=i0({chain:Uy,feeRate:Y,inputs:q,outputs:z});if(!(k&&_))throw new I0.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let M=new j0.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!W,version:1}),{inputs:O,tx:C}=jy({chain:Uy,compiledMemo:W,inputs:k,outputs:_,sender:zy(X),tx:M});return{inputs:O,tx:C,utxos:q}}function tZ(y){let T=j0.NETWORKS.bitcoinCash,H=j0.p2pkh(y.publicKey,T);if(!H.hash)throw new I0.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return j0.encodeCashAddr({hash:H.hash,prefix:j0.CashAddrPrefix.MAINNET,type:j0.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}var N2,I0,j0,Uy;var Rf=l(()=>{Y1();z1();e1();N2=require("@scure/base"),I0=require("@swapkit/helpers"),j0=require("@swapkit/utxo-signer"),Uy=I0.Chain.BitcoinCash});function F2(){let{isStagenet:y}=D0.SKConfig.get("envs");return y?G0.ZCASH_TEST_NETWORK:G0.ZCASH_NETWORK}function aZ(y){return rZ.encode(y)}function sZ({phrase:y,derivationPath:T}){let H=D2.mnemonicToSeedSync(y),X=B2.HDKey.fromMasterSeed(H).derive(T);if(!X.privateKey||!X.publicKey)throw new D0.SwapKitError("toolbox_utxo_invalid_params");let{privateKey:Q,publicKey:Z}=X,q=G0.utils.hash160(Z),{isStagenet:Y}=D0.SKConfig.get("envs"),W=Y?new Uint8Array([29,37]):new Uint8Array([28,184]),z=new Uint8Array(W.length+q.length);z.set(W,0),z.set(q,W.length);let k=aZ(z);return{getAddress:()=>Promise.resolve(k),signTransaction:(_)=>{if(_ instanceof G0.ZcashPSBT){let M=_.toPCZT();return M.signAllInputs(Q,Z,G0.ZcashSigHash.ALL),M.finalizeAllInputs(),Promise.resolve(M.extract())}if(_ instanceof G0.PCZT)return _.signAllInputs(Q,Z,G0.ZcashSigHash.ALL),_.finalizeAllInputs(),Promise.resolve(_.extract());return _.signAllInputs(Q,Z,G0.ZcashSigHash.ALL),Promise.resolve(_)}}}function eZ({inputs:y,outputs:T,tx:H,sender:f,compiledMemo:X}){let Q=F2();for(let Z of y){let q=G0.Address(Q).decode(f),Y=G0.OutScript.encode(q);H.addInput({index:Z.index,script:Y,sequence:4294967295,txid:xf.hex.decode(Z.hash),value:BigInt(Z.value)})}for(let Z of T){let q="address"in Z&&Z.address?Z.address:f,Y=Z.script;if(Y&&!X)continue;if(Y&&X)H.addOutput({amount:0n,script:X});else H.addOutputAddress(q,BigInt(Z.value),Q)}return{inputs:y,tx:H}}async function oH(y){let{assetValue:T,recipient:H,memo:f,feeRate:X,sender:Q,fetchTxHex:Z,sweep:q}=y,Y=F2();if(!G0.isTransparentZcashAddress(Q,Y))throw new D0.SwapKitError("toolbox_utxo_invalid_address",{address:Q});if(!G0.isTransparentZcashAddress(H,Y))throw new D0.SwapKitError("toolbox_utxo_invalid_address",{address:H,error:"Zcash transaction creation currently supports transparent addresses only"});let W=f?n0(f):null,z=await S0(D0.Chain.Zcash).getUtxos({address:Q,fetchTxHex:Z!==!1}),k=[{address:H,value:q?0:Number(T.getBaseValue("string"))},...W?[{script:W,value:0}]:[]],{inputs:_,outputs:M}=i0({chain:D0.Chain.Zcash,changeAddress:Q,feeRate:X,inputs:z,outputs:k,sweep:q});if(!(_&&M))throw new D0.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:T,sender:Q});let O=G0.createZcashTransaction({consensusBranchId:G0.ZcashConsensusBranchId.NU6_2,expiryHeight:0,lockTime:0,version:4,versionGroupId:G0.ZcashVersionGroupId.SAPLING}),{tx:C,inputs:D}=eZ({compiledMemo:W,inputs:_,outputs:M,sender:Q,tx:O});return{inputs:D,outputs:M,tx:C}}function R2(y){let T=G1.match(y).with({signer:G1.P.not(G1.P.nullish)},({signer:Y})=>Y).with({phrase:G1.P.string},({phrase:Y,derivationPath:W,index:z=0})=>{let k=W||D0.NetworkDerivationPath[D0.Chain.Zcash]||[44,133,0,0,0],_=D0.updateDerivationPath(k,{index:z}),M=D0.derivationPathToString(_);return sZ({derivationPath:M,phrase:Y})}).otherwise(()=>{return}),H=Ky({chain:D0.Chain.Zcash,signer:T});async function f(Y){if(!T)throw new D0.SwapKitError("toolbox_utxo_no_signer");return await T.signTransaction(Y)}async function X(Y){let W=await f(Y);return H.broadcastTx(W.toHex())}async function Q({recipient:Y,assetValue:W,feeOptionKey:z=D0.FeeOption.Fast,sweep:k,..._}){let M=await T?.getAddress();if(!(T&&M))throw new D0.SwapKitError("toolbox_utxo_no_signer");let O=_.feeRate||(await H.getFeeRates())[z],{tx:C}=await oH({..._,assetValue:W,feeRate:O,recipient:Y,sender:M,sweep:k}),R=(await T.signTransaction(C)).toHex();return H.broadcastTx(R)}function Z({phrase:Y,derivationPath:W="m/44'/133'/0'/0/0"}){let z=D2.mnemonicToSeedSync(Y),_=B2.HDKey.fromMasterSeed(z).derive(W);if(!_.privateKey||!_.publicKey)throw new D0.SwapKitError("toolbox_utxo_invalid_params");return{privateKey:_.privateKey,publicKey:_.publicKey}}function q({phrase:Y,derivationPath:W="m/44'/133'/0'/0/0"}){let z=Z({derivationPath:W,phrase:Y}),k=F2();return G0.WIF(k).encode(z.privateKey)}return{...H,createKeysForPath:Z,createTransaction:oH,getPrivateKeyFromMnemonic:q,signAndBroadcastTransaction:X,signTransaction:f,transfer:Q,validateAddress:cy.validateZcashAddress}}var xf,B2,D2,D0,G0,G1,rZ;var x2=l(()=>{Y1();z1();e1();xf=require("@scure/base"),B2=require("@scure/bip32"),D2=require("@scure/bip39"),D0=require("@swapkit/helpers"),G0=require("@swapkit/utxo-signer"),G1=require("ts-pattern");rZ=xf.createBase58check(G0.utils.sha256)});function iH({xpub:y,chain:T,count:H,startIndex:f=0,accountIndex:X}){if(s0("count",H),H<1)throw RangeError("count must be at least 1");s0("startIndex",f);let Q=h0(T),Z=cH.HDKey.fromExtendedKey(y,Q.bip32),q=Ry({accountIndex:X,chain:T}),Y=py(q),W=[];for(let z of[!1,!0]){let k=Z.deriveChild(Number(z));for(let _=0;_<H;_++){let M=f+_,O=k.deriveChild(M);if(!O.publicKey)continue;let C=Z1({accountIndex:X,chain:T,change:z,index:M});W.push({accountIndex:Y,address:f5({chain:T,network:Q,publicKey:O.publicKey}),change:z,index:M,path:dH.derivationPathToString(C),pubkey:nH.hex.encode(O.publicKey)})}}return W}var nH,cH,dH;var tH=l(()=>{i1();z1();nH=require("@scure/base"),cH=require("@scure/bip32"),dH=require("@swapkit/helpers")});function yq(y,T){switch(y){case Gy.Chain.BitcoinCash:return k2(T||{});case Gy.Chain.Zcash:return R2(T);case Gy.Chain.Bitcoin:case Gy.Chain.Dogecoin:case Gy.Chain.Litecoin:case Gy.Chain.Dash:return Ky({chain:y,...T});default:throw new Gy.SwapKitError("toolbox_utxo_not_supported",{chain:y})}}var Gy;var rH=l(()=>{Rf();z1();x2();i1();tH();Rf();e1();Gy=require("@swapkit/helpers")});var I2={};P0(I2,{validateZcashAddress:()=>cy.validateZcashAddress,validateUtxoAddress:()=>C2,validateBchAddress:()=>Iy,toLegacyAddress:()=>zy,toCashAddress:()=>r1,stripToCashAddress:()=>T5,stripPrefix:()=>ny,nonSegwitChains:()=>y5,isValidAddress:()=>z2,getUtxoToolbox:()=>yq,getUtxoNetwork:()=>IZ,getUtxoApi:()=>S0,getUTXOAddressValidator:()=>O2,getUTXOAddressPath:()=>Z1,getUTXOAccountPath:()=>Ry,getUTXOAccountIndexFromPath:()=>py,getScriptTypeForAddress:()=>q1,getOutputSize:()=>s1,getNetworkForChain:()=>h0,getInputSize:()=>xy,getDustThreshold:()=>U1,detectAddressNetwork:()=>G2,deriveAddressesFromXpub:()=>iH,createZcashToolbox:()=>R2,createUTXOToolbox:()=>Ky,createHDWalletHelpers:()=>kH,createCustomUtxoApi:()=>xZ,createBCHToolbox:()=>k2,compileMemo:()=>n0,calculateTxSize:()=>oy,assertDerivationIndex:()=>s0,addressFromKeysGetter:()=>$2,addInputsAndOutputs:()=>jy,accumulative:()=>i0,UtxoNetwork:()=>W2,UTXOScriptType:()=>Bf,TX_OVERHEAD:()=>Nf,SEGWIT_MARKER_FLAG_WEIGHT:()=>kf,OutputSizes:()=>a1,OP_RETURN_OVERHEAD:()=>vH,MIN_TX_FEE:()=>vZ,InputSizes:()=>$f});module.exports=V0(I2);var P2=l(()=>{z1();i1();Y1();rH();Rf();x2()});function H5(y){return y.length>=2&&y.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(y)}async function Pf(y){let{KeyPair:T}=await import("@near-js/crypto"),H=y.index||0,f=y.derivationPath?If.derivationPathToString(y.derivationPath.slice(0,3)):`m/44'/397'/${H}'`,{parseSeedPhrase:X}=await import("near-seed-phrase"),{secretKey:Q}=X(y.phrase,f),Z=T.fromString(Q);return aH(Z)}async function j2(y){let{KeyPair:T}=await import("@near-js/crypto"),H=T.fromString(y);return aH(H)}async function aH(y){let{KeyPairSigner:T}=await import("@near-js/signers");class H extends T{#y;constructor(f){super(f);this.#y=f}getAddress(){let f=this.#y.getPublicKey(),X=Buffer.from(f.data).toString("hex");return Promise.resolve(X)}}return new H(y)}async function jf(y,T){let f=(await y.query({account_id:T,finality:"final",request_type:"view_access_key_list"})).keys.find((q)=>q.access_key.permission==="FullAccess");if(!f)throw new If.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:X}=await import("@near-js/crypto"),Q=X.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:Q}}var If;var K2=l(()=>{If=require("@swapkit/helpers")});function S2(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function V2(y){return"contractId"in y&&"methodName"in y}function A2(y){return"actions"in y}function w2(y){return"newAccountId"in y}function E2(y){return"contractCode"in y}function v2(y){return"customEstimator"in y}function b2(y){let T=0;for(let H of y)switch(H.enum){case"transfer":T+=Number(v0.SIMPLE_TRANSFER);break;case"functionCall":T+=Number(v0.CONTRACT_CALL);break;case"createAccount":T+=Number(v0.ACCOUNT_CREATION);break;case"deployContract":T+=Number(v0.CONTRACT_DEPLOYMENT);break;case"addKey":T+=Number(v0.ACCESS_KEY_ADDITION);break;case"deleteKey":T+=Number(v0.ACCESS_KEY_DELETION);break;case"stake":T+=Number(v0.STAKE);break;default:T+=Number(v0.CONTRACT_CALL)}return T.toString()}function h2(y){if(y==="ft_transfer"||y==="ft_transfer_call")return v0.TOKEN_TRANSFER;if(y==="storage_deposit")return v0.STORAGE_DEPOSIT;return v0.CONTRACT_CALL}function fq(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function Tq(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var v0;var l2=l(()=>{v0={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function u2({account:y,contractId:T,viewMethods:H,changeMethods:f}){let{Contract:X}=await import("@near-js/accounts");return new X(y,T,{changeMethods:f,useLocalViewExecution:!0,viewMethods:H})}function qq(y){let T;async function H(){if(T)return T;return T=await L1.match(y).with({phrase:L1.P.string},async(I)=>{return await Pf(I)}).with({signer:L1.P.any},({signer:I})=>I).otherwise(()=>{return}),T}async function f(){let{JsonRpcProvider:I}=await import("@near-js/providers"),V=await W0.getRPCUrl(W0.Chain.Near);return new I({url:V})}async function X(I){let{Account:V}=await import("@near-js/accounts"),h=await f(),c=await H(),i=I||await Q();return new V(i,h,c)}async function Q(){let I=await H();if(!I)throw new W0.SwapKitError("toolbox_near_no_signer");return await I.getAddress()}async function Z(I,V){return(V||await f()).callFunction(I.contractId,"storage_balance_of",{account_id:I.accountId},{finality:"final"})}async function q(I,V){try{let h=await V.callFunction(I,"storage_balance_bounds",{},{finality:"final"});return h?.min?BigInt(h.min):sH}catch{return sH}}function Y(I){return(I*(p2+Zq)+p2-1n)/p2}function W(I,V){return BigInt(I)*BigInt(V.runtime_config.storage_amount_per_byte)}function z(I,V){if(I<=0n)throw new W0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:V});return I}async function k(I){return await(I||await f()).experimental_protocolConfig({finality:"final"})}async function _(I,V,h){let i=await(h||await f()).callFunction(I,"ft_balance_of",{account_id:V},{finality:"final"});return BigInt(i||"0")}async function M(I){if(!await H())throw new W0.SwapKitError("toolbox_near_no_signer");let{assetValue:h,recipient:c,memo:i,sweep:f0}=I,L0=await Q(),Z0=await D({assetValue:h,memo:i,recipient:c,sender:L0,sweep:f0});return U(Z0)}async function O({assetValue:I,attachedDeposit:V,memo:h,provider:c,recipient:i,sender:f0,sweep:L0}){let Z0=I.address;if(!Z0)throw new W0.SwapKitError("toolbox_near_missing_contract_address");let C0=await Z({accountId:i,contractId:Z0},c),A0=C0?0n:await q(Z0,c),fy=C0?Xq:Hq,Ty=BigInt(V||"1"),ry=I.getBaseValue("bigint");if(L0){let[ay,sy,k1,Y5]=await Promise.all([_(Z0,f0,c),c.viewAccount(f0,{finality:"final"}),k(c),N(c)]);ry=z(ay,{asset:I.toString(),balance:ay.toString()});let J5=W(sy.storage_usage,k1),B1=sy.amount-J5,W5=A0,WT=(fy+(C0?0n:eH))*Y(Y5)+W5+Ty;if(B1<WT)throw new W0.SwapKitError("toolbox_sweep_amount_too_low",{asset:I.toString(),availableNear:B1.toString(),reason:"Insufficient NEAR to cover token transfer gas and storage deposit",requiredNear:WT.toString()})}let Ly=[];if(!C0)Ly.push(await j({args:{account_id:i},attachedDeposit:A0.toString(),gas:eH.toString(),methodName:"storage_deposit"}));return Ly.push(await j({args:{amount:ry.toString(),memo:h||null,receiver_id:i},attachedDeposit:Ty.toString(),gas:fy.toString(),methodName:"ft_transfer"})),E({actions:Ly,receiverId:Z0,sender:f0})}async function C({assetValue:I,attachedDeposit:V,memo:h,provider:c,recipient:i,sender:f0,sweep:L0}){let{publicKey:Z0,nonce:C0}=await jf(c,f0),A0=I.getBaseValue("bigint");if(L0){let[k1,Y5]=await Promise.all([c.viewAccount(f0,{finality:"final"}),k(c)]),J5=await G({assetValue:I,memo:h,recipient:i,sweep:L0},Y5),B1=W(k1.storage_usage,Y5),W5=0n;if(h&&V){let JT=await N(c);W5=Qq*Y(JT)+BigInt(V)}A0=z(k1.amount-J5.getBaseValue("bigint")-B1-W5,{asset:I.toString(),balance:k1.amount.toString(),fee:J5.getBaseValue("bigint").toString(),storageStakeReserve:B1.toString()})}let{actionCreators:fy,createTransaction:Ty}=await import("@near-js/transactions"),{baseDecode:ry}=await import("@near-js/utils"),Ly=[fy.transfer(A0)];if(h&&V)Ly.push(fy.functionCall("memo",{memo:h},BigInt("250000000000000"),BigInt(V)));let ay=await c.block({finality:"final"}),sy=ry(ay.header.hash);return Ty(f0,Z0,i,C0+1,Ly,sy)}async function D({recipient:I,assetValue:V,memo:h,attachedDeposit:c,sender:i,functionCall:f0,sweep:L0}){if(!H5(I))throw new W0.SwapKitError("toolbox_near_invalid_address",{recipient:I});if(!H5(i))throw new W0.SwapKitError("toolbox_near_invalid_address",{sender:i});if(f0)return P({...f0,sender:i});if(L0&&!await H())throw new W0.SwapKitError("toolbox_near_no_signer");let Z0=await f(),C0={assetValue:V,attachedDeposit:c,memo:h,provider:Z0,recipient:I,sender:i,sweep:L0};return V.isGasAsset?C(C0):O(C0)}function R(I){let V=I.encode();return Buffer.from(V).toString("base64")}async function P({args:I,attachedDeposit:V,contractId:h,gas:c,methodName:i,sender:f0}){let L0=await j({args:I,attachedDeposit:V,gas:c,methodName:i});return E({actions:[L0],receiverId:h,sender:f0})}async function E({actions:I,receiverId:V,sender:h}){let c=await f(),{publicKey:i,nonce:f0}=await jf(c,h),{createTransaction:L0}=await import("@near-js/transactions"),{baseDecode:Z0}=await import("@near-js/utils"),C0=await c.block({finality:"final"}),A0=Z0(C0.header.hash);return L0(h,i,V,f0+1,I,A0)}async function j(I){let{actionCreators:V}=await import("@near-js/transactions");return V.functionCall(I.methodName,Buffer.from(JSON.stringify(I.args)),BigInt(I.gas),BigInt(I.attachedDeposit))}async function K(I){let V=await H();if(!V)throw new W0.SwapKitError("toolbox_near_no_signer");await $(I);let[h,c]=await V.signTransaction(I);return c}async function $(I){let V=I.publicKey;if(V.toString?.().startsWith("ed25519:")||V.toString?.().startsWith("secp256k1:"))return;let{KeyType:h,PublicKey:c}=await import("@near-js/crypto"),i=V.data||V.ed25519Key?.data,f0=V.secp256k1Key?.data;if(i){I.publicKey=new c({data:Uint8Array.from(i),keyType:h.ED25519});return}if(f0)I.publicKey=new c({data:Uint8Array.from(f0),keyType:h.SECP256K1})}function B(I){if(typeof I==="string")return I;if(Array.isArray(I))return I.map(B).find(Boolean);if(!(I&&typeof I==="object"))return;let V=I;return V.transaction?.hash||V.transaction_outcome?.id}function L(I){return I instanceof Error?I.message:String(I)}async function J(I){let h=await(await f()).sendTransaction(I),c=B(h);if(!c)throw new W0.SwapKitError("toolbox_near_transfer_failed",{result:h});return c}async function U(I){let V=await H();if(!V)throw new W0.SwapKitError("toolbox_near_no_signer");let h;try{h=await K(I)}catch(c){let i;try{i=V.signAndSendTransaction?await V.signAndSendTransaction({actions:I.actions,receiverId:I.receiverId,signerId:I.signerId}):await V.signAndSendTransactions?.({transactions:[I]})}catch(L0){throw new W0.SwapKitError({errorKey:"toolbox_near_sign_transaction_failed",info:{directSignError:L(c),signAndSendError:L(L0)}},L0)}let f0=B(i);if(f0)return f0;throw c}return J(h)}async function G(I,V){let h=await H();if("assetValue"in I){if(I.sweep&&!h)throw new W0.SwapKitError("toolbox_near_no_signer");try{let[i,f0]=await Promise.all([N(),V?Promise.resolve(V):k()]),{runtime_config:L0}=f0,{execution:Z0,send_sir:C0}=L0.transaction_costs.action_receipt_creation_config,{execution:A0,send_sir:fy}=L0.transaction_costs.action_creation_config.transfer_cost,Ty=BigInt(fy)+BigInt(A0),ry=BigInt(C0)+BigInt(Z0),Ly=Ty+ry,ay=I.sweep?Y(i):i,sy=Ly*ay;return W0.AssetValue.from({chain:W0.Chain.Near,value:sy})}catch(i){throw new W0.SwapKitError({errorKey:"toolbox_fee_estimation_failed",info:{chain:W0.Chain.Near,message:L(i)}},i)}}let c=h?await X():void 0;return b(I,c)}async function N(I){let h=await(I||await f()).gasPrice(null);return BigInt(h.gas_price)}async function F(I,V,h){if(!await H())throw new W0.SwapKitError("toolbox_near_no_signer");let i=await X(),{formatNearAmount:f0}=await import("@near-js/utils"),{PublicKey:L0}=await import("@near-js/crypto"),Z0=f0(h)||"0";return(await i.createAccount(I,L0.fromString(V),BigInt(Z0))).transaction.hash}async function x(I){let V=await H();try{if(!V)throw new W0.SwapKitError("toolbox_near_no_signer");let{actionCreators:h}=await import("@near-js/transactions"),{contractId:c,methodName:i,args:f0,deposit:L0}=I,Z0=await X(),C0=await b({args:f0||{},contractId:c,methodName:i}),A0=h.functionCall(i,f0||{},C0.getBaseValue("bigint"),BigInt(L0||"1"));return(await Z0.signAndSendTransaction({actions:[A0],receiverId:c})).transaction_outcome.id}catch(h){throw new W0.SwapKitError("toolbox_near_transfer_failed",{error:h})}}async function A(I){let V=await X();return u2({account:V,changeMethods:I.changeMethods,contractId:I.contractId,viewMethods:I.viewMethods})}async function w(I){if(!await H())throw new W0.SwapKitError("toolbox_near_no_signer");if(I.actions.length===0)throw new W0.SwapKitError("toolbox_near_empty_batch");return(await(await X()).signAndSendTransaction({actions:I.actions,receiverId:I.receiverId})).transaction.hash}async function b(I,V){let h=await L1.match(I).when(S2,()=>v0.SIMPLE_TRANSFER).when(V2,(i)=>h2(i.methodName)).when(A2,(i)=>b2(i.actions)).when(w2,()=>v0.ACCOUNT_CREATION).when(E2,()=>v0.CONTRACT_DEPLOYMENT).when(v2,(i)=>{if(!V)throw new W0.SwapKitError("toolbox_near_no_account");return i.customEstimator(V)}).otherwise(()=>{throw new W0.SwapKitError("toolbox_near_invalid_gas_params")}),c=BigInt(h)*BigInt(1000000000000);return W0.AssetValue.from({chain:W0.Chain.Near,value:c})}function a(I,V){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),b(I,V)}async function X0(){let I=await f();try{return(await I.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function Y0(){let I=await H();return I?(await I.getPublicKey()).toString():""}return{broadcastTransaction:J,callFunction:x,createAction:j,createContract:A,createContractFunctionCall:P,createSubAccount:F,createTransaction:D,estimateGas:a,estimateGasLimit:b,estimateTransactionFee:G,executeBatchTransaction:w,getAddress:Q,getBalance:w0(W0.Chain.Near),getGasPrice:X0,getNearProvider:f,getPublicKey:Y0,getSignerFromPhrase:Pf,getSignerFromPrivateKey:j2,serializeTransaction:R,signAndBroadcastTransaction:U,signTransaction:K,transfer:M,validateAddress:H5}}var W0,L1,sH=1250000000000000000000n,eH=150000000000000n,Hq=150000000000000n,Xq=250000000000000n,Qq=250000000000000n,Zq=500n,p2=10000n;var m2=l(()=>{Hy();K2();l2();W0=require("@swapkit/helpers"),L1=require("ts-pattern")});var yX=l(()=>{m2()});var g2={};P0(g2,{validateNearAddress:()=>H5,tgasToGas:()=>fq,isSimpleTransfer:()=>S2,isCustomEstimator:()=>v2,isContractDeployment:()=>E2,isContractCall:()=>V2,isBatchTransaction:()=>A2,isAccountCreation:()=>w2,getNearToolbox:()=>qq,getNearSignerFromPrivateKey:()=>j2,getNearSignerFromPhrase:()=>Pf,getFullAccessPublicKey:()=>jf,getContractMethodGas:()=>h2,gasToTGas:()=>Tq,estimateBatchGas:()=>b2,createNearContract:()=>u2,GAS_COSTS:()=>v0});module.exports=V0(g2);var o2=l(()=>{K2();l2();m2();yX()});var n2={};P0(n2,{validateRadixAddress:()=>fX,getRadixToolbox:()=>Wq});module.exports=V0(n2);function fX(y){return y.startsWith("account_rdx1")&&y.length===66}async function Uq({address:y,networkApi:T}){let H=!0,f,X=[],Q=await Jq(T);while(H){let Z={address:y,at_ledger_state:{state_version:Q},cursor:f,limit_per_page:100},q=await T.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:Z});if(X=X.concat(q.items),q.next_cursor)f=q.next_cursor;else H=!1}return X}async function Yq({resources:y,networkApi:T}){let H=[],f=50,X=[];for(let Q=0;Q<y.length;Q+=50)X.push(y.slice(Q,Q+50));for(let Q of X){let Z=Q.map((W)=>W.resource_address),q=await T.state.getEntityDetailsVaultAggregated(Z),Y=new Map;for(let W of q)if(W.details!==void 0){let z=W.metadata?.items.find((_)=>_.key==="symbol"),k=z?.value.typed.type==="String"?z.value.typed.value:"?";if(W.details.type==="FungibleResource")Y.set(W.address,{decimals:W.details.divisibility,symbol:k})}for(let W of Q)if(W.aggregation_level==="Global"){let z=Y.get(W.resource_address)||{decimals:0,symbol:"?"},k=e0.AssetValue.from({asset:z.symbol!==e0.Chain.Radix?`${e0.Chain.Radix}.${z.symbol}-${W.resource_address}`:"XRD.XRD",value:W.amount});H.push(k)}}return H}async function Jq(y){return(await y.status.getCurrent()).ledger_state.state_version}function Wq({dappConfig:y}={}){let T=y||e0.SKConfig.get("integrations").radix,H;async function f(){if(H)return H;let{GatewayApiClient:Q}=await import("@radixdlt/babylon-gateway-api-sdk"),{RadixDappToolkit:Z}=await import("@radixdlt/radix-dapp-toolkit"),q=Z({...T,networkId:T.network?.networkId||1});return H=Q.initialize(q.gatewayApi.clientConfig),H}async function X(Q){let Z=await f(),q=await Uq({address:Q,networkApi:Z}),Y=await Yq({networkApi:Z,resources:q});if(!Y.some((z)=>z.isGasAsset))return[e0.AssetValue.from({chain:e0.Chain.Radix}),...Y];return Y}return{getAddress:()=>"",getBalance:X,getNetworkApi:f,signAndBroadcast:()=>{throw new e0.SwapKitError("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:fX}}var e0;var c2=l(()=>{e0=require("@swapkit/helpers")});function Kf(y){return/^[0-9A-Fa-f]{40}$/.test(y)}function dy(y){if(Kf(y))return y.toUpperCase();if(y.length<=3){let H=Buffer.from(y.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${H}${"0".repeat(10)}`.toUpperCase()}let T=Buffer.from(y).toString("hex").toUpperCase();if(T.length>40)throw new TX.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return T.padEnd(40,"0")}function zq(y){if(!Kf(y))return y;if(y.toUpperCase().startsWith("00")){let T=y.slice(24,30);try{let H=Buffer.from(T,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(H)&&H.length>0)return H}catch{}return y.toUpperCase()}try{let T=y.replace(/0+$/,""),H=T.length%2===0?T:`${T}0`,f=Buffer.from(H,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function M1(y){if(Kf(y))return y.toUpperCase();if(y.length<=3)return y;return dy(y)}var TX;var Sf=l(()=>{TX=require("@swapkit/helpers")});async function Gq(y,T){let H=M1(y),f=Af.find((X)=>M1(X.currency)===H&&X.issuer===T);if(f)return f;try{let X=await Vf.RequestClient.get(`https://api.xrplmeta.org/token/${y}:${T}`);if(X)return{currency:y,decimals:15,description:X.desc,domain:X.domain,icon:X.icon,issuer:T,name:X.name,verified:X.self_assessment?.is_regulated||X.self_assessment?.is_licensed}}catch(X){Vf.warnOnce({condition:!0,id:`xrpl_token_lookup_${y}_${T}`,warning:`Failed to fetch XRPL token info for ${y}:${T}: ${X}`})}return{currency:y,decimals:15,issuer:T,verified:!1}}function Lq(y){return Af.filter((T)=>T.issuer===y)}function Mq(y,T){let H=M1(y);return Af.some((f)=>M1(f.currency)===H&&f.issuer===T)}var Vf,Af;var HX=l(()=>{Sf();Vf=require("@swapkit/helpers"),Af=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var i2={};P0(i2,{validateRippleAddress:()=>X5,parseXrplTokenIdentifier:()=>d2,normalizeCurrency:()=>M1,isKnownToken:()=>Mq,isHexCurrency:()=>Kf,hexToCurrency:()=>zq,getXrplTokenInfo:()=>Gq,getRippleToolbox:()=>Cq,getKnownTokensByIssuer:()=>Lq,formatXrplTokenIdentifier:()=>qX,currencyToHex:()=>dy,XRPL_TOKEN_ERROR_CODES:()=>wf,XRPL_KNOWN_TOKENS:()=>Af});module.exports=V0(i2);function XX(y){if(typeof y!=="object"||y===null||!("data"in y))return!1;let{data:T}=y;return typeof T==="object"&&T!==null&&"error_code"in T&&T.error_code===_q.ACCOUNT_NOT_FOUND}function d2(y){let T=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!T?.[1]||!T?.[2])return null;if(!X5(T[2]))return null;return{currency:T[1],issuer:T[2]}}function qX(y,T){return`${s.Chain.Ripple}.${y}-${T}`}async function QX(y){if(y.isGasAsset){let{xrpToDrops:H}=await import("xrpl");return H(y.getValue("string"))}let T=d2(y.toString());if(!T)throw new s.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:T.currency,issuer:T.issuer,value:y.getValue("string")}}function ZX(y){let T,H=()=>{return T??=import("xrpl").then(({Wallet:f})=>f.fromMnemonic(y)),T};return{getAddress:async()=>(await H()).address,signTransaction:async(f)=>(await H()).sign(f)}}function X5(y){return Ef.isValidClassicAddress(y)||Ef.isValidXAddress(y)}function Cq(y={}){let T;async function H(){if(T)return T;return T=await _1.match(y).with({phrase:_1.P.string},({phrase:$})=>ZX($)).with({signer:_1.P.any},({signer:$})=>$).otherwise(()=>{return}),T}let f;async function X(){let $=await s.getRPCUrl(s.Chain.Ripple);if(!$)throw new s.SwapKitError({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:s.Chain.Ripple}});let{Client:B}=await import("xrpl"),L=new B($);return await L.connect(),L}async function Q(){if(f){let $=await f.catch(()=>null);if($?.isConnected())return $}return f=X(),f}async function Z($){let B=await $.request({command:"server_state"}),L=B.result.state.validated_ledger??B.result.state.closed_ledger;if(!L||!Number.isSafeInteger(L.reserve_base)||L.reserve_base<0||!Number.isSafeInteger(L.reserve_inc)||L.reserve_inc<0)throw new s.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{reason:"XRPL reserve data is unavailable or invalid"}});return{baseReserveDrops:BigInt(L.reserve_base),ownerReserveDrops:BigInt(L.reserve_inc)}}let q=async()=>{let $=await H();if(!$)throw new s.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return $.getAddress()},Y=async($)=>{let B=$||await q(),{baseDecimal:L}=s.getChainConfig(s.Chain.Ripple),J=await Q();try{let[U,G]=await Promise.all([J.request({account:B,command:"account_info"}),J.request({account:B,command:"account_lines"})]),N=U.result.account_data.Balance,F=[s.AssetValue.from({chain:s.Chain.Ripple,fromBaseDecimal:L,value:N})];for(let x of G.result.lines){let A=qX(x.currency,x.account);if(Number.parseFloat(x.balance)!==0)F.push(s.AssetValue.from({asset:A,asyncTokenLookup:!1,value:x.balance}))}return F}catch(U){if(XX(U))return[s.AssetValue.from({chain:s.Chain.Ripple,value:0})];throw new s.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{address:B,error:U}})}},W=async()=>{let{baseDecimal:$}=s.getChainConfig(s.Chain.Ripple),J=(await(await Q()).request({command:"fee"})).result.drops.open_ledger_fee;return s.AssetValue.from({chain:s.Chain.Ripple,fromBaseDecimal:$,value:J})};async function z($){let B=$||await q(),L=await Q();try{return(await L.request({account:B,command:"account_lines"})).result.lines.map((U)=>({account:U.account,authorized:U.authorized??!1,balance:U.balance,currency:U.currency,freeze:U.freeze??!1,freezePeer:U.freeze_peer??!1,limit:U.limit,limitPeer:U.limit_peer,noRipple:U.no_ripple??!1,noRipplePeer:U.no_ripple_peer??!1,peerAuthorized:U.peer_authorized??!1,qualityIn:U.quality_in??0,qualityOut:U.quality_out??0}))}catch(J){if(XX(J))return[];throw new s.SwapKitError({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:B,error:J}})}}async function k({address:$,currency:B,issuer:L}){let J=await z($),U=dy(B);return J.some((G)=>{return dy(G.currency)===U&&G.account===L})}async function _({currency:$,issuer:B,limit:L,sender:J}){let U=J||await q();if(!X5(B))throw new s.SwapKitError({errorKey:"core_transaction_invalid_recipient_address",info:{address:B}});let G=Number.parseFloat(L);if(Number.isNaN(G)||G<0)throw new s.SwapKitError({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:L}});let N=await Q(),F={Account:U,LimitAmount:{currency:$,issuer:B,value:L},TransactionType:"TrustSet"};return N.autofill(F)}async function M($,B){let[L,J,U]=await Promise.all([$.request({account:B,command:"account_info"}),Z($),W()]),{Balance:G,OwnerCount:N}=L.result.account_data,F=U.getBaseValue("bigint"),x=BigInt(G)-J.baseReserveDrops-BigInt(N)*J.ownerReserveDrops-F;if(x<=0n)throw new s.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:s.Chain.Ripple,balance:G,baseReserve:J.baseReserveDrops.toString(),fee:F.toString(),ownerCount:N,ownerReserve:J.ownerReserveDrops.toString()}});let{baseDecimal:A}=s.getChainConfig(s.Chain.Ripple),w=s.AssetValue.from({chain:s.Chain.Ripple,fromBaseDecimal:A,value:x.toString()});return{amount:await QX(w),fee:F.toString()}}async function O($,B){let L=d2($.toString());if(!L)throw new s.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:$.toString()}});let J=await Q(),U="0",G;while(!0){let N=await J.request({account:B,command:"account_lines",peer:L.issuer,...G!==void 0&&{marker:G}}),F=N.result.lines.find((A)=>A.account===L.issuer&&dy(A.currency)===dy(L.currency));if(F){U=F.balance;break}let x=N.result.marker;if(x===void 0||x===null)break;G=x}if(!Number.isFinite(Number(U))||Number(U)<=0)throw new s.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:$.toString(),balance:U}});return{currency:L.currency,issuer:L.issuer,value:U}}async function C({assetValue:$,recipient:B,memo:L,sender:J,sweep:U,destinationTag:G,extendBySeconds:N=150}){if(!X5(B))throw new s.SwapKitError({errorKey:"core_transaction_invalid_recipient_address"});let F=J||await q();if($.chain!==s.Chain.Ripple)throw new s.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:$.toString()}});let x=U&&$.isGasAsset?await M(await Q(),F):void 0,A=x?x.amount:U?await O($,F):await QX($),w={Account:F,Amount:A,Destination:B,TransactionType:"Payment",...x&&{Fee:x.fee},...G!==void 0&&{DestinationTag:G}};if(L)w.Memos=[{Memo:{MemoData:Buffer.from(L).toString("hex")}}];let a=await(await Q()).autofill(w);if(a.LastLedgerSequence&&N>0)a.LastLedgerSequence+=Math.ceil(N/4);return a}async function D($){let B=await H();if(!B)throw new s.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return B.signTransaction($)}async function R($){let L=await(await Q()).submitAndWait($),{result:J}=L;if(J.validated)return J.hash;let U=J.meta?.TransactionResult,G=_1.match(U).with(wf.tecNO_LINE,()=>"No trust line exists for this token").with(wf.tecPATH_DRY,()=>"Payment path could not deliver funds").with(wf.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new s.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:s.Chain.Ripple,...G?{reason:G}:{txResult:U}}})}let P=async($)=>{try{let B=await D($);return R(B.tx_blob)}catch(B){if(B instanceof s.SwapKitError)throw B;throw new s.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:s.Chain.Ripple,error:B}})}};async function E({assetValue:$,memo:B,recipient:L,sweep:J}){let U=await H();if(!U)throw new s.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let G=await U.getAddress(),N=await C({assetValue:$,memo:B,recipient:L,sender:G,sweep:J}),F=await D(N);return R(F.tx_blob)}async function j($){let B=await H();if(!B)throw new s.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let L=await B.getAddress(),J=await _({...$,sender:L}),U=await D(J);return R(U.tx_blob)}function K(){let $=f;if(f=null,$)$.then((B)=>{if(B?.isConnected())return B.disconnect();return}).catch((B)=>{console.warn("XRPL Cleanup failed silently:",B)})}return{broadcastTransaction:R,createSigner:ZX,createTransaction:C,disconnect:K,estimateTransactionFee:W,getAddress:q,getBalance:Y,getTrustLines:z,hasTrustLine:k,setTrustLine:_,setTrustLineAndBroadcast:j,signAndBroadcastTransaction:P,signTransaction:D,transfer:E,validateAddress:X5}}var s,Ef,_1,_q,wf;var t2=l(()=>{Sf();s=require("@swapkit/helpers"),Ef=require("ripple-address-codec"),_1=require("ts-pattern");Sf();HX();_q={ACCOUNT_NOT_FOUND:19};wf={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});function r2(y,T){let H=0n,f=0n,X=T;while(X<y.length&&X-T<10){let Q=y[X++];if(Q===void 0)break;if(H|=BigInt(Q&127)<<f,f+=7n,(Q&128)===0)return[H,X]}throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed")}function Q5(y){let T=[],H=y<0n?y+2n**64n:y;while(H>=128n)T.push(Number(H&0x7fn)|128),H>>=7n;return T.push(Number(H)),T}function vf(y,T,H){let f=y.get(T);if(f)f.push(H);else y.set(T,[H])}function kq(y){let T=new Map,H=0;while(H<y.length){let[f,X]=r2(y,H);H=X;let Q=Number(f>>3n),Z=Number(f&7n);if(Z===bf){let[q,Y]=r2(y,H);H=Y,vf(T,Q,{data:new Uint8Array(Q5(q)),wireType:bf})}else if(Z===hf){let[q,Y]=r2(y,H);H=Y;let W=Number(q);if(W<0||H+W>y.length)throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed");let z=y.slice(H,H+W);H+=W,vf(T,Q,{data:z,wireType:hf})}else if(Z===UX){if(H+8>y.length)throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed");let q=y.slice(H,H+8);H+=8,vf(T,Q,{data:q,wireType:UX})}else if(Z===YX){if(H+4>y.length)throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed");let q=y.slice(H,H+4);H+=4,vf(T,Q,{data:q,wireType:YX})}else throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed")}return T}function Bq(y){let T=[];for(let[Q,Z]of[...y.entries()].sort(([q],[Y])=>q-Y))for(let{wireType:q,data:Y}of Z){let W=BigInt(Q<<3|q);if(T.push(new Uint8Array(Q5(W))),q===hf)T.push(new Uint8Array(Q5(BigInt(Y.length))));T.push(Y)}let H=T.reduce((Q,Z)=>Q+Z.length,0),f=new Uint8Array(H),X=0;for(let Q of T)f.set(Q,X),X+=Q.length;return f}function WX(y,T){if(!y||y.length%2!==0)throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed");let H=C1.hexToBytes(y),f=kq(H);if(T.expiration!==void 0)f.set(Oq,[{data:new Uint8Array(Q5(BigInt(T.expiration))),wireType:bf}]);if(T.data!==void 0)f.set($q,[{data:C1.hexToBytes(T.data),wireType:hf}]);if(T.fee_limit!==void 0)f.set(Nq,[{data:new Uint8Array(Q5(BigInt(T.fee_limit))),wireType:bf}]);let X=Bq(f),Q=C1.bytesToHex(X),Z=C1.bytesToHex(JX.sha256(X));return{raw_data_hex:Q,txID:Z}}var JX,C1,iy,bf=0,UX=1,hf=2,YX=5,Oq=8,$q=10,Nq=18;var zX=l(()=>{JX=require("@noble/hashes/sha2.js"),C1=require("@noble/hashes/utils.js"),iy=require("@swapkit/helpers")});function yy(y){if(typeof y!=="string")return!1;try{let T=lf.decode(y);return T.length===21&&T[0]===MX}catch{return!1}}function _X(y){return t0.bytesToHex(lf.decode(y))}function Fq(y){return lf.decode(y).slice(1)}function CX(y){let T=a2.secp256k1.getPublicKey(t0.hexToBytes(y),!1),H=GX.keccak_256(T.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=MX,f.set(H,1),lf.encode(f)}function OX({txID:y,privateKey:T}){let H=a2.secp256k1.sign(t0.hexToBytes(y),t0.hexToBytes(T),{format:"recovered",prehash:!1}),f=H[0]??0,X=t0.bytesToHex(H.slice(1,33)),Q=t0.bytesToHex(H.slice(33,65)),Z=(f+27).toString(16).padStart(2,"0");return X+Q+Z}function O1({txID:y,raw_data_hex:T}){let H=t0.bytesToHex(s2.sha256(t0.hexToBytes(T)));if(y!==H)throw new e2.SwapKitError("toolbox_tron_invalid_transaction_integrity",{expected:H,txID:y})}function Rq(y){return`000000000000000000000000${t0.bytesToHex(Fq(y))}`}function xq(y){let T=typeof y==="bigint"?y:BigInt(y);if(T<0n||T>=Dq)throw new e2.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:T.toString()});return T.toString(16).padStart(64,"0")}function $1(y){return y.map(({type:T,value:H})=>T==="address"?Rq(H):xq(BigInt(H))).join("")}function $X(y){return t0.bytesToHex(new TextEncoder().encode(y))}var a2,s2,GX,t0,LX,e2,lf,MX=65,Dq;var yT=l(()=>{a2=require("@noble/curves/secp256k1.js"),s2=require("@noble/hashes/sha2.js"),GX=require("@noble/hashes/sha3.js"),t0=require("@noble/hashes/utils.js"),LX=require("@scure/base"),e2=require("@swapkit/helpers"),lf=LX.createBase58check(s2.sha256),Dq=2n**256n});function BX(){try{return k0.getRPCUrlSync(k0.Chain.Tron)}catch{return kX}}function DX(){let y=new AbortController,T=setTimeout(()=>y.abort(),Sq);return{cleanup:()=>clearTimeout(T),signal:y.signal}}async function ty(y,T){let{signal:H,cleanup:f}=DX();try{let X=await fetch(`${BX()}${y}`,{body:JSON.stringify(T),headers:{"Content-Type":"application/json"},method:"POST",signal:H});if(!X.ok)throw new k0.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${X.status} ${X.statusText} on ${y}`});return await X.json()}finally{f()}}async function FX(y,T){let{signal:H,cleanup:f}=DX();try{let X=await fetch(`${T??BX()}${y}`,{headers:{"Content-Type":"application/json"},signal:H});if(!X.ok)throw new k0.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${X.status} ${X.statusText} on ${y}`});return await X.json()}finally{f()}}async function uf(y){if(!yy(y))throw new k0.SwapKitError("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let T=await FX(`/v1/accounts/${y}`,kX);if(!(T.success&&T.data)||T.data.length===0)return;let H;try{H=_X(y).toLowerCase()}catch{H=y.toLowerCase()}let f=T.data.find((X)=>X.address.toLowerCase()===H);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(T){if(T instanceof k0.SwapKitError)throw T;throw new k0.SwapKitError("toolbox_tron_trongrid_api_error",{address:y,message:T instanceof Error?T.message:"Unknown error"})}}async function RX({from:y,to:T,amount:H}){let X=await ty("/wallet/createtransaction",{amount:H,owner_address:y,to_address:T,visible:!0});if(!X.txID||!X.raw_data_hex||!X.raw_data)throw new k0.SwapKitError("toolbox_tron_transaction_creation_failed");let Z=X.raw_data?.contract?.[0]?.parameter?.value;if(Z?.to_address!==T||Z?.owner_address!==y||Z?.amount!==H)throw new k0.SwapKitError("toolbox_tron_transaction_creation_failed");return O1(X),X}async function xX({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f,feeLimit:X,callValue:Q=0}){let Z=await ty("/wallet/triggersmartcontract",{call_value:Q,contract_address:T,fee_limit:X,function_selector:H,owner_address:y,parameter:f,visible:!0});if(!Z.result.result||!Z.transaction?.txID||!Z.transaction?.raw_data_hex)throw new k0.SwapKitError("toolbox_tron_transaction_creation_failed");let Y=Z.transaction.raw_data?.contract?.[0]?.parameter?.value;if(Y?.contract_address!==T||Y?.owner_address!==y)throw new k0.SwapKitError("toolbox_tron_transaction_creation_failed");return O1(Z.transaction),Z.transaction}function IX({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return ty("/wallet/triggerconstantcontract",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}function Vq({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return ty("/wallet/estimateenergy",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}function NX(y){let T=typeof y==="number"?y:typeof y==="string"?Number(y):Number.NaN;return Number.isFinite(T)&&T>0?T:void 0}async function Z5(y){try{let{result:T,txid:H}=await ty("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!T||!H)throw new k0.SwapKitError("toolbox_tron_token_transfer_failed");return H}catch(T){throw new k0.SwapKitError("toolbox_tron_broadcast_failed",{error:T})}}async function q5(){let y={};try{let{chainParameter:T}=await FX("/wallet/getchainparameters");for(let H of T)y[H.key]=H.value}catch(T){k0.warnOnce({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${T instanceof Error?T.message:T}`})}return{bandwidthFee:y.getTransactionFee??Iq,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??Pq,energyFee:y.getEnergyFee??jq,memoFee:y.getMemoFee??Kq}}async function fT(y){try{let T=await ty("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(T.freeNetLimit??600)-(T.freeNetUsed??0),total:T.NetLimit??0,used:T.NetUsed??0},energy:{total:T.EnergyLimit??0,used:T.EnergyUsed??0}}}catch(T){return k0.warnOnce({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${T instanceof Error?T.message:T}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function U5(y){try{let T=await ty("/wallet/getaccount",{address:y,visible:!0});return T&&Object.keys(T).length>0}catch{return!1}}async function TT(y){try{let T=await Vq({...y,ownerAddress:y.sender}),H=T.energy_required??T.energyRequired;if(T.result&&!T.result.result)throw new k0.SwapKitError("toolbox_tron_trongrid_api_error",{message:T.result.message||"estimateenergy failed"});if(H!==void 0){let f=NX(H);if(f!==void 0)return f;throw new k0.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(T){k0.warnOnce({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${T instanceof Error?T.message:T}`})}try{let{energy_used:T}=await IX({...y,ownerAddress:y.sender}),H=NX(T);if(H!==void 0)return H;throw new k0.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid triggerconstantcontract energy response"})}catch(T){throw k0.warnOnce({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy: ${T instanceof Error?T.message:T}`}),new k0.SwapKitError("toolbox_tron_trongrid_api_error",{message:`Unable to estimate contract energy: ${T instanceof Error?T.message:T}`})}}async function PX({assetAddress:y,owner:T,spender:H}){let f=$1([{type:"address",value:T},{type:"address",value:H}]),Q=(await IX({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:H,parameter:f})).constant_result?.[0];if(!Q)return 0n;try{return BigInt(`0x${Q}`)}catch{return 0n}}var k0,kX="https://api.trongrid.io",Iq=1000,Pq=1e6,jq=420,Kq=1e6,Sq=30000;var jX=l(()=>{yT();k0=require("@swapkit/helpers")});function hX({phrase:y,derivationPath:T}){let H=EX.HDKey.fromMasterSeed(vX.mnemonicToSeedSync(y)).derive(T);if(!H.privateKey)throw new m.SwapKitError("toolbox_tron_no_signer");return wX.bytesToHex(H.privateKey)}function lX(y,T){return{...y,value:String(T)}}function uX(y,T){if(!T)return y;return{...y,data:T.startsWith("0x")?T:`0x${T}`}}function pX({phrase:y,derivationPath:T,index:H}){let f=T||m.derivationPathToString(m.updateDerivationPath(m.NetworkDerivationPath[m.Chain.Tron],{index:H||0}));return hX({derivationPath:f,phrase:y})}function wq({phrase:y,derivationPath:T}){let H=hX({derivationPath:T,phrase:y}),f=CX(H);return{getAddress:()=>Promise.resolve(f),signTransaction:(X)=>{O1(X);let Q=OX({privateKey:H,txID:X.txID});return Promise.resolve({...X,signature:[Q]})}}}function AX({transaction:y,memo:T,expiration:H,feeLimit:f}){let X={},Q={};if(f!==void 0&&y.raw_data)X.fee_limit=f,Q.fee_limit=f;if(T){let Y=T.startsWith("0x")?T.replace(/^0x/,""):$X(T);X.data=Y,Q.data=Y}if(H){let Y=y.raw_data.expiration+H*1000;X.expiration=Y,Q.expiration=Y}if(Object.keys(X).length===0)return y;let{raw_data_hex:Z,txID:q}=WX(y.raw_data_hex,X);return{...y,raw_data:{...y.raw_data,...Q},raw_data_hex:Z,txID:q}}function mX(y={}){let T="index"in y?y.index||0:0,H=m.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:m.updateDerivationPath(m.NetworkDerivationPath[m.Chain.Tron],{index:T})),f,X=!1;function Q(){if(X)return Promise.resolve(f);return f=N1.match(y).with({phrase:N1.P.string},({phrase:L})=>wq({derivationPath:H,phrase:L})).with({signer:N1.P.not(N1.P.nullish)},({signer:L})=>L).otherwise(()=>{return}),X=!0,Promise.resolve(f)}async function Z(){let L=await Q();if(!L)throw new m.SwapKitError("toolbox_tron_no_signer");return L.getAddress()}async function q(L,J){let U=L||SX,G=J??(await q5()).energyFee,N=U*G,F=Math.ceil(N*1.5);return Math.min(Math.max(F,1e7),150000000)}async function Y({contractAddress:L,functionSelector:J,parameter:U,sender:G,memo:N,expiration:F,extraEnergy:x=0}){let A=await TT({contractAddress:L,functionSelector:J,parameter:U,sender:G}),w=await q(A+x),b=await xX({contractAddress:L,feeLimit:w,functionSelector:J,ownerAddress:G,parameter:U});return AX({expiration:F,feeLimit:w,memo:N,transaction:b})}async function W(L){if(!yy(L))return[m.AssetValue.from({chain:m.Chain.Tron})];try{let J=await uf(L);if(!J)return[m.AssetValue.from({chain:m.Chain.Tron})];let U=[m.AssetValue.from({chain:m.Chain.Tron,fromBaseDecimal:6,value:String(J.balance)})],G=J.trc20?.find((N)=>(XT in N));if(G){let N=G[XT];U.push(m.AssetValue.from({asset:`TRON.USDT-${XT}`,fromBaseDecimal:6,value:N}))}return U}catch(J){return m.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${J instanceof Error?J.message:J}`}),[m.AssetValue.from({chain:m.Chain.Tron})]}}async function z({recipient:L,assetValue:J,memo:U,expiration:G,sweep:N}){if(!yy(L))throw new m.SwapKitError("toolbox_tron_token_transfer_failed",{message:"invalid address"});let F=await Q();if(!F)throw new m.SwapKitError("toolbox_tron_no_signer");try{let x=await Z(),A=await P({assetValue:J,expiration:G,memo:U,recipient:L,sender:x,sweep:N}),w=await F.signTransaction(A),b=await Z5(w);if(!b)throw new m.SwapKitError("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return b}catch(x){if(x instanceof m.SwapKitError&&x.errorKey==="toolbox_sweep_amount_too_low")throw x;throw new m.SwapKitError("toolbox_tron_token_transfer_failed",{message:x instanceof Error?x.message:String(x)})}}function k({requiredBandwidth:L,resources:J,feePerUnit:U}){let G=Math.max(0,J.free+J.total-J.used);return L>G?(L-G)*U:0}async function _({memo:L,recipient:J,senderAddress:U}){let[G,N,F]=await Promise.all([q5(),U5(J),fT(U)]),x=N?0:G.createAccountFee,A=k({feePerUnit:G.bandwidthFee,requiredBandwidth:KX,resources:F.bandwidth}),w=L?G.memoFee:0;return m.AssetValue.from({chain:m.Chain.Tron,fromBaseDecimal:m.BaseDecimal.TRON,value:x+A+w})}async function M({assetValue:L,amountInBaseUnits:J=L.getBaseValue("string"),memo:U,recipient:G,senderAddress:N}){let F=L.address;if(!F)throw new m.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:L.toString()});let[x,A,w,b]=await Promise.all([q5(),U5(G),fT(N),TT({contractAddress:F,functionSelector:"transfer(address,uint256)",parameter:$1([{type:"address",value:G},{type:"uint256",value:J}]),sender:N})]),X0=b+(A?0:HT),Y0=k({feePerUnit:x.bandwidthFee,requiredBandwidth:VX,resources:w.bandwidth}),I=Math.max(0,w.energy.total-w.energy.used),V=X0>I?(X0-I)*x.energyFee:0,h=U?x.memoFee:0;return m.AssetValue.from({chain:m.Chain.Tron,fromBaseDecimal:m.BaseDecimal.TRON,value:Y0+V+h})}async function O({assetValue:L,memo:J,recipient:U}){let[G,N]=await Promise.all([q5(),U5(U)]);if(L.isGasAsset){let w=N?0:G.createAccountFee,b=J?G.memoFee:0;return m.AssetValue.from({chain:m.Chain.Tron,fromBaseDecimal:m.BaseDecimal.TRON,value:w+KX*G.bandwidthFee+b})}let x=await q(SX+(N?0:HT),G.energyFee),A=J?G.memoFee:0;return m.AssetValue.from({chain:m.Chain.Tron,fromBaseDecimal:m.BaseDecimal.TRON,value:x+VX*G.bandwidthFee+A})}async function C({assetValue:L,memo:J,recipient:U,sender:G}){let N=await Q();try{let F=G?G:N?await Z():void 0;if(!F)return O({assetValue:L,memo:J,recipient:U});return L.isGasAsset?_({memo:J,recipient:U,senderAddress:F}):M({assetValue:L,memo:J,recipient:U,senderAddress:F})}catch(F){throw m.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${F instanceof Error?F.message:F}`}),new m.SwapKitError("toolbox_fee_estimation_failed",{chain:m.Chain.Tron,error:F})}}async function D({assetValue:L,memo:J,recipient:U,sender:G,sweep:N}){if(!N)return L.getBaseValue("bigint");let[F,x]=await Promise.all([uf(G),_({memo:J,recipient:U,senderAddress:G})]),A=BigInt(F?.balance??0)-x.getBaseValue("bigint");if(A<=0n)throw new m.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amount:A.toString(),asset:L.toString()}});return A}async function R({assetValue:L,memo:J,recipient:U,sender:G,sweep:N}){if(!N)return L.getBaseValue("string");let F=L.address;if(!F)throw new m.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:L.toString()});let x=await uf(G),w=x?.trc20.find((Y0)=>(F in Y0))?.[F]??"0";if(BigInt(w)<=0n)throw new m.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:L.toString(),balance:w}});let b=await M({amountInBaseUnits:w,assetValue:L,memo:J,recipient:U,senderAddress:G}),a=BigInt(x?.balance??0),X0=b.getBaseValue("bigint");if(a<X0)throw new m.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:L.toString(),nativeBalance:a.toString(),requiredNativeFee:X0.toString()}});return w}async function P({recipient:L,assetValue:J,memo:U,sender:G,expiration:N,sweep:F}){if(!yy(L)||!yy(G))throw new m.SwapKitError("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(J.isGasAsset){let b=await D({assetValue:J,expiration:N,memo:U,recipient:L,sender:G,sweep:F});if(b>BigInt(Number.MAX_SAFE_INTEGER))throw new m.SwapKitError({errorKey:"toolbox_tron_transaction_creation_failed",info:{amount:b.toString(),reason:`Native transfer amount exceeds the safe integer limit of ${Number.MAX_SAFE_INTEGER} SUN`}});let a=await RX({amount:Number(b),from:G,to:L});return AX({expiration:N,memo:U,transaction:a})}let x=J.address;if(!x)throw new m.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:J.toString()});let A=await R({assetValue:J,expiration:N,memo:U,recipient:L,sender:G,sweep:F}),w=await U5(L);return Y({contractAddress:x,expiration:N,extraEnergy:w?0:HT,functionSelector:"transfer(address,uint256)",memo:U,parameter:$1([{type:"address",value:L},{type:"uint256",value:A}]),sender:G})}async function E(L){O1(L);let J=await Q();if(!J)throw new m.SwapKitError("toolbox_tron_no_signer");return J.signTransaction(L)}async function j(L){let J=await E(L);return Z5(J)}function K({assetAddress:L,spenderAddress:J,from:U}){return PX({assetAddress:L,owner:U,spender:J})}async function $({assetAddress:L,spenderAddress:J,from:U,amount:G}){let N=await K({assetAddress:L,from:U,spenderAddress:J});if(!G)return N>0n;return N>=BigInt(G)}async function B({assetAddress:L,spenderAddress:J,amount:U,from:G}){if(!yy(L)||!yy(J))throw new m.SwapKitError("toolbox_tron_approve_failed");let N=await Q();if(!N)throw new m.SwapKitError("toolbox_tron_no_signer");let F=G||await Z(),x=U!==void 0?BigInt(U).toString():Aq;try{let A=await Y({contractAddress:L,functionSelector:"approve(address,uint256)",parameter:$1([{type:"address",value:J},{type:"uint256",value:x}]),sender:F}),w=await N.signTransaction(A),b=await Z5(w);if(!b)throw new m.SwapKitError("toolbox_tron_approve_failed");return b}catch(A){if(A instanceof m.SwapKitError)throw A;throw new m.SwapKitError("toolbox_tron_approve_failed",{error:A})}}return{approve:B,broadcastTransaction:Z5,createTransaction:P,estimateTransactionFee:C,getAddress:Z,getApprovedAmount:K,getBalance:W,getRpcUrl:()=>m.getRPCUrl(m.Chain.Tron),isApproved:$,signAndBroadcastTransaction:j,signTransaction:E,transfer:z,validateAddress:yy}}var wX,EX,vX,m,N1,bX,KX=268,SX=65000,HT=25000,VX=345,XT="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",Aq="115792089237316195423570985008687907853269984665640564039457584007913129639935";var gX=l(()=>{zX();jX();yT();wX=require("@noble/hashes/utils.js"),EX=require("@scure/bip32"),vX=require("@scure/bip39"),m=require("@swapkit/helpers"),N1=require("ts-pattern"),bX=yy});var QT={};P0(QT,{withTronTransactionValue:()=>lX,withTronTransactionData:()=>uX,validateTronAddress:()=>bX,getTronToolbox:()=>mX,getTronPrivateKeyFromMnemonic:()=>pX});module.exports=V0(QT);var ZT=l(()=>{gX()});async function oX(y){if(pf&&Date.now()-pf.timestamp<bq)return pf.value;let H=(await y.ledgers().order("desc").limit(1).call()).records[0]?.base_reserve_in_stroops;if(H===void 0)throw new d.SwapKitError({errorKey:"toolbox_stellar_balance_error",info:{reason:"base_reserve_unavailable"}});return pf={timestamp:Date.now(),value:H},H}function qT(y){return d.AssetValue.from({chain:d.Chain.Stellar,value:y}).getBaseValue("bigint")}function hq(y){let{baseDecimal:T}=d.getChainConfig(d.Chain.Stellar);return d.AssetValue.from({chain:d.Chain.Stellar,fromBaseDecimal:T,value:y}).getValue("string")}function dX({balance:y,baseReserveInStroops:T,numSponsored:H,numSponsoring:f,sellingLiabilities:X,subentryCount:Q}){let Z=qT(y),q=qT(X),Y=cX+Q+f-H,W=BigInt(Y)*BigInt(T),z=Z-W-q;return z>0n?z:0n}function lq({account:y,assetValue:T,baseReserveInStroops:H,fee:f}){let X=y.balances.find((q)=>q.asset_type==="native"),Z=(X?dX({balance:X.balance,baseReserveInStroops:H,numSponsored:y.num_sponsored,numSponsoring:y.num_sponsoring,sellingLiabilities:X.selling_liabilities,subentryCount:y.subentry_count}):0n)-BigInt(f);if(Z<=0n)throw new d.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:T.toString(),reason:"spendable balance does not cover the transaction fee"}});return Z}function uq({baseReserveInStroops:y,sweepAmountInStroops:T}){if(T===void 0||y===void 0)return;let H=BigInt(cX)*BigInt(y);if(T<H)throw new d.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amountInStroops:T,minimumStartingBalanceInStroops:H,reason:"starting balance is below the Stellar account minimum"}})}function pq({account:y,assetCode:T,assetValue:H,issuer:f,sweep:X}){if(!X)return H.getValue("string");let Q=y.balances.find((Z)=>("asset_code"in Z)&&Z.asset_code===T&&Z.asset_issuer===f)?.balance??"0";if(qT(Q)<=0n)throw new d.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:H.toString(),balance:Q,reason:"trust-line balance is not positive"}});return Q}function mq(y){if(!y)return;if(new TextEncoder().encode(y).length>28)throw new d.SwapKitError("helpers_invalid_memo_type")}function gf(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return Eq.test(y)}function UT(y){if(typeof y!=="object"||y===null)return;let T="response"in y?y.response:void 0;return typeof T?.status==="number"?T.status:void 0}function gq(y){return UT(y)===504}function oq(y){return y.hash?.().toString("hex")}function nq(y){return[...new Set([y,...d.SKConfig.get("rpcUrls")[d.Chain.Stellar]])].filter(Boolean)}async function iX(y){if(!gf(y))return!1;try{let{StrKey:T}=await import("@stellar/stellar-sdk");return T.isValidEd25519PublicKey(y)}catch{return!1}}async function nX(y){let{address:T,ticker:H}=y,f=T?await iX(T):!1;if(y.chain!==d.Chain.Stellar||y.isGasAsset||!vq.test(H)||!T||!f)throw new d.SwapKitError({errorKey:"helpers_invalid_asset_identifier",info:{identifier:y.toString()}});return{assetCode:H,issuer:T}}function tX(y={}){let T,H=y.derivationPath||d.NetworkDerivationPath[d.Chain.Stellar],f=d.derivationPathToString(H.slice(0,3));async function X({phrase:j,path:K}){let{HDKey:$}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:B}=await import("@scure/bip39"),{Keypair:L}=await import("@stellar/stellar-sdk"),J=B(j),G=$.fromMasterSeed(J).derive(K,!0);return L.fromRawEd25519Seed(Buffer.from(G.privateKey))}async function Q(){if(T)return T;let j=mf.match(y).with({phrase:mf.P.string},({phrase:K})=>K).otherwise(()=>{return});if(!j)throw new d.SwapKitError("toolbox_stellar_no_signer");return T=await X({path:f,phrase:j}),T}async function Z(j){let{Horizon:K}=await import("@stellar/stellar-sdk"),$=j||await d.getRPCUrl(d.Chain.Stellar);return new K.Server($)}async function q(j,K){for(let $ of K)try{return(await(await Z($)).transactions().transaction(j).call()).hash||j}catch{}return}async function Y(j,K){let $=await d.getRPCUrl(d.Chain.Stellar),B=nq($),L=oq(j),J;for(let U of B)try{let G=await Z(U),{hash:N}=await G.submitTransaction(j);return N}catch(G){if(J=G,!gq(G))break;let N=L?await q(L,B):void 0;if(N)return N}throw new d.SwapKitError(K,J)}async function W(){try{return(await Q()).publicKey()}catch{return""}}async function z(j){let K=j||await W();if(!K)throw new d.SwapKitError("toolbox_stellar_account_not_found");let $=await Z(),[B,L]=await Promise.allSettled([$.loadAccount(K),oX($)]);if(B.status==="rejected"){let J=B.reason;if(UT(J)===404)return[d.AssetValue.from({chain:d.Chain.Stellar,value:0})];throw J}if(L.status==="rejected")throw L.reason;return B.value.balances.map((J)=>{if(J.asset_type==="native"){let N=dX({balance:J.balance,baseReserveInStroops:L.value,numSponsored:B.value.num_sponsored,numSponsoring:B.value.num_sponsoring,sellingLiabilities:J.selling_liabilities,subentryCount:B.value.subentry_count}),{baseDecimal:F}=d.getChainConfig(d.Chain.Stellar);return d.AssetValue.from({chain:d.Chain.Stellar,fromBaseDecimal:F,value:N})}let U="asset_code"in J?J.asset_code:"",G="asset_issuer"in J?J.asset_issuer:"";return d.AssetValue.from({asset:`${d.Chain.Stellar}.${U}-${G}`,asyncTokenLookup:!1,value:J.balance})})}async function k({address:j,assetValue:K}){if(K.chain!==d.Chain.Stellar)throw new d.SwapKitError({errorKey:"toolbox_stellar_trustline_asset_invalid",info:{asset:K.toString()}});if(K.isGasAsset)return!0;if(!K.address)throw new d.SwapKitError({errorKey:"toolbox_stellar_trustline_asset_invalid",info:{asset:K.toString(),reason:"missing issuer"}});let $=await Z(),B;try{B=await $.loadAccount(j)}catch(L){if(UT(L)===404)return!1;throw L}return B.balances.some((L)=>("asset_code"in L)&&L.asset_code===K.ticker&&L.asset_issuer===K.address)}async function _({recipient:j,assetValue:K,memo:$,sender:B,sweep:L}){if(mq($),!await iX(j))throw new d.SwapKitError("core_transaction_invalid_recipient_address");let U=B||await W();if(!U)throw new d.SwapKitError("toolbox_stellar_no_signer");let{Asset:G,Memo:N,Networks:F,Operation:x,TransactionBuilder:A}=await import("@stellar/stellar-sdk"),w=await Z(),b=await w.fetchBaseFee(),a=await w.loadAccount(U),X0=L&&K.isGasAsset?await oX(w):void 0,Y0=new A(a,{fee:String(b),networkPassphrase:F.PUBLIC});if(K.isGasAsset){let V=L&&X0!==void 0?lq({account:a,assetValue:K,baseReserveInStroops:X0,fee:b}):void 0,h=V===void 0?K.getValue("string"):hq(V);try{await w.loadAccount(j),Y0.addOperation(x.payment({amount:h,asset:G.native(),destination:j}))}catch{uq({baseReserveInStroops:X0,sweepAmountInStroops:V}),Y0.addOperation(x.createAccount({destination:j,startingBalance:h}))}}else{let{assetCode:V,issuer:h}=await nX(K),c=pq({account:a,assetCode:V,assetValue:K,issuer:h,sweep:L});Y0.addOperation(x.payment({amount:c,asset:new G(V,h),destination:j}))}if($)Y0.addMemo(N.text($));return Y0.setTimeout(30).build()}async function M({assetValue:j,limit:K,sender:$}){let B=$||await W();if(!B)throw new d.SwapKitError("toolbox_stellar_no_signer");let{Asset:L,Networks:J,Operation:U,TransactionBuilder:G}=await import("@stellar/stellar-sdk"),{assetCode:N,issuer:F}=await nX(j),x=await Z(),[A,w]=await Promise.all([x.fetchBaseFee(),x.loadAccount(B)]),b=new L(N,F),a=K!==void 0?U.changeTrust({asset:b,limit:K}):U.changeTrust({asset:b});return new G(w,{fee:String(A),networkPassphrase:J.PUBLIC}).addOperation(a).setTimeout(30).build()}async function O(j){let{TransactionBuilder:K,Networks:$}=await import("@stellar/stellar-sdk"),B=await Q(),L=K.fromXDR(j.toXDR(),$.PUBLIC);return L.sign(B),L}function C(j){return Y(j,"toolbox_stellar_broadcast_error")}async function D({recipient:j,assetValue:K,memo:$,sweep:B}){let L=await Q(),J=L.publicKey(),U=await _({assetValue:K,memo:$,recipient:j,sender:J,sweep:B});return U.sign(L),Y(U,"toolbox_stellar_transaction_failed")}async function R({assetValue:j,limit:K}){let $=await Q(),B=await M({assetValue:j,limit:K,sender:$.publicKey()});return B.sign($),Y(B,"toolbox_stellar_transaction_failed")}async function P(j){let K=await O(j);return C(K)}async function E(){let{baseDecimal:j}=d.getChainConfig(d.Chain.Stellar);try{let B=(await(await Z()).feeStats()).fee_charged.p50;return d.AssetValue.from({chain:d.Chain.Stellar,fromBaseDecimal:j,value:B})}catch{return d.AssetValue.from({chain:d.Chain.Stellar,fromBaseDecimal:j,value:"100"})}}return{broadcastTransaction:C,createTransaction:_,createTrustline:R,createTrustlineTransaction:M,estimateTransactionFee:E,getAddress:W,getBalance:z,hasTrustline:k,signAndBroadcastTransaction:P,signTransaction:O,transfer:D,validateAddress:gf}}var d,mf,Eq,vq,cX=2,bq=600000,pf;var rX=l(()=>{d=require("@swapkit/helpers"),mf=require("ts-pattern"),Eq=/^G[A-Z2-7]{55}$/,vq=/^[A-Za-z0-9]{1,12}$/});var of={};P0(of,{validateStellarAddress:()=>gf,getStellarToolbox:()=>tX});module.exports=V0(of);var nf=l(()=>{rX()});var iq={};P0(iq,{getToolbox:()=>YT,getFeeEstimator:()=>dq,getAddressValidator:()=>cq});module.exports=V0(iq);var g=require("@swapkit/helpers");async function cq(){let{match:y}=await import("ts-pattern"),{validateAleoAddress:T}=await Promise.resolve().then(() => (O5(),C5)),{validateAptosAddress:H}=await Promise.resolve().then(() => (N5(),$5)),{validateEVMAddress:f}=await Promise.resolve().then(() => (x8(),Z4)),{validateCardanoAddress:X}=await Promise.resolve().then(() => (K8(),j8)),{getCosmosAddressValidator:Q}=await Promise.resolve().then(() => (ff(),yf)),{validateHyperCoreAddress:Z}=await Promise.resolve().then(() => (e8(),s8)),{validateSolanaAddress:q}=await Promise.resolve().then(() => (X2(),H2)),{validateStarknetAddress:Y}=await Promise.resolve().then(() => (Yf(),Uf)),{validateSuiAddress:W}=await Promise.resolve().then(() => (Gf(),zf)),{validateTonAddress:z}=await Promise.resolve().then(() => (_f(),Mf)),{getUTXOAddressValidator:k}=await Promise.resolve().then(() => (P2(),I2)),{validateNearAddress:_}=await Promise.resolve().then(() => (o2(),g2)),{validateRadixAddress:M}=await Promise.resolve().then(() => (c2(),n2)),{validateRippleAddress:O}=await Promise.resolve().then(() => (t2(),i2)),{validateTronAddress:C}=await Promise.resolve().then(() => (ZT(),QT)),{validateStellarAddress:D}=await Promise.resolve().then(() => (nf(),of));return function({address:P,chain:E}){return y(E).with(...g.EVMChains,()=>f(P)).with(...g.UTXOChains,(K)=>{return k(K)(P)}).with(...g.CosmosChains,(K)=>{return Q(K)(P)}).with(g.Chain.Aleo,()=>T(P)).with(g.Chain.Aptos,()=>H(P)).with(g.Chain.Radix,()=>M(P)).with(g.Chain.Hype,()=>Z(P)).with(g.Chain.Near,()=>_(P)).with(g.Chain.Ripple,()=>O(P)).with(g.Chain.Solana,()=>q(P)).with(g.Chain.Stellar,()=>D(P)).with(g.Chain.Starknet,()=>Y(P)).with(g.Chain.Sui,()=>W(P)).with(g.Chain.Ton,()=>z(P)).with(g.Chain.Tron,()=>C(P)).with(g.Chain.Cardano,()=>X(P)).otherwise(()=>!1)}}function dq(y){return async function(H){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...g.EVMChains,async(X)=>{let Q=await YT(X),Z=await Q.createTransaction(H),q="feeOptionKey"in H?H.feeOptionKey:g.FeeOption.Fast;return Q.estimateTransactionFee({...Z,feeOption:q})}).with(g.Chain.Bitcoin,g.Chain.BitcoinCash,g.Chain.Dogecoin,g.Chain.Dash,g.Chain.Litecoin,g.Chain.Solana,g.Chain.Ripple,g.Chain.Tron,g.Chain.Near,g.Chain.Cardano,g.Chain.Hype,async(X)=>{return(await YT(X)).estimateTransactionFee(H)}).with(g.Chain.Aptos,async()=>{let{getAptosToolbox:X}=await Promise.resolve().then(() => (N5(),$5));return X().estimateTransactionFee(H)}).with(g.Chain.Aleo,async()=>{let{getAleoToolbox:X}=await Promise.resolve().then(() => (O5(),C5));return X().estimateTransactionFee(H)}).with(g.Chain.Starknet,async()=>{let{getStarknetToolbox:X}=await Promise.resolve().then(() => (Yf(),Uf));return(await X()).estimateTransactionFee(H)}).with(g.Chain.Stellar,async()=>{let{getStellarToolbox:X}=await Promise.resolve().then(() => (nf(),of));return X().estimateTransactionFee()}).with(g.Chain.Sui,async()=>{let{getSuiToolbox:X}=await Promise.resolve().then(() => (Gf(),zf));return X().estimateTransactionFee(H)}).with(g.Chain.Ton,async()=>{let{getTONToolbox:X}=await Promise.resolve().then(() => (_f(),Mf));return X().estimateTransactionFee(H)}).with(...g.CosmosChains,async()=>{let{estimateTransactionFee:X}=await Promise.resolve().then(() => (ff(),yf));return X(H)}).otherwise(async()=>g.AssetValue.from({chain:y}))}}async function YT(y,T){let{match:H}=await import("ts-pattern");return H(y).returnType().with(...g.EVMChains,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (R8(),H4));return await f(y,T)}).with(...g.UTXOChains,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (P2(),I2));return f(y,T)}).with(...g.CosmosChains,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (ff(),yf));return f(y,T)}).with(g.Chain.Aleo,async()=>{let{getAleoToolbox:f}=await Promise.resolve().then(() => (O5(),C5));return f(T)}).with(g.Chain.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (N5(),$5));return f(T)}).with(g.Chain.Hype,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (e8(),s8));return f(T)}).with(g.Chain.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (c2(),n2));return f(T)}).with(g.Chain.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (t2(),i2));return f(T)}).with(g.Chain.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => (X2(),H2));return f(T)}).with(g.Chain.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (nf(),of));return f(T)}).with(g.Chain.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (Yf(),Uf));return f(T)}).with(g.Chain.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (Gf(),zf));return f(T)}).with(g.Chain.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (ZT(),QT));return f(T)}).with(g.Chain.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (o2(),g2));return f(T)}).with(g.Chain.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (K8(),j8));return f(T)}).with(g.Chain.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (_f(),Mf));return f(T)}).otherwise(()=>{throw new g.SwapKitError("toolbox_not_supported",{chain:y})})}
|