@swapkit/toolboxes 4.13.1 → 4.13.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/src/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var SG=Object.create;var{getPrototypeOf:EG,defineProperty:mf,getOwnPropertyNames:E5,getOwnPropertyDescriptor:nG}=Object,n5=Object.prototype.hasOwnProperty;function V5(f){return this[f]}var VG,vG,v5=(f,y,G)=>{var T=f!=null&&typeof f==="object";if(T){var _=y?VG??=new WeakMap:vG??=new WeakMap,X=_.get(f);if(X)return X}G=f!=null?SG(EG(f)):{};let W=y||!f||!f.__esModule?mf(G,"default",{value:f,enumerable:!0}):G;for(let Z of E5(f))if(!n5.call(W,Z))mf(W,Z,{get:V5.bind(f,Z),enumerable:!0});if(T)_.set(f,W);return W},HT=(f)=>{var y=(S5??=new WeakMap).get(f),G;if(y)return y;if(y=mf({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var T of E5(f))if(!n5.call(y,T))mf(y,T,{get:V5.bind(f,T),enumerable:!(G=nG(f,T))||G.enumerable})}return S5.set(f,y),y},S5;var oG=(f)=>f;function KG(f,y){this[f]=oG.bind(null,y)}var wT=(f,y)=>{for(var G in y)mf(f,G,{get:y[G],enumerable:!0,configurable:!0,set:KG.bind(y,G)})};var E=(f,y)=>()=>(f&&(y=f(f=0)),y);function Cf(f){if(!f||typeof f!=="string"||!f.startsWith("0x"))return!1;let y=f.slice(2);if(y.length===0||y.length>64)return!1;return jG.test(y)}function o5({derivationPath:f,provider:y,...G}={}){let T,_=u.derivationPathToString(f||u.NetworkDerivationPath[u.Chain.Aptos],{allHardened:!0});async function X(){if(T)return T;return T=await Yf.match(G).with({phrase:Yf.P.string},async({phrase:z})=>{let{Ed25519Account:B}=await import("@aptos-labs/ts-sdk");return B.fromDerivationPath({mnemonic:z,path:_})}).with({signer:Yf.P.any},({signer:z})=>z).otherwise(()=>{return}),T}async function W(){let{Aptos:z,AptosConfig:B}=await import("@aptos-labs/ts-sdk"),k=new B({fullnode:y||u.getRPCUrlSync(u.Chain.Aptos)});return new z(k)}async function Z(){return(await X())?.accountAddress.toString()||""}async function J(z){let B=z||await Z();if(!B)throw new u.SwapKitError("toolbox_aptos_address_required");let{baseDecimal:k,chain:H}=u.getChainConfig(u.Chain.Aptos);try{let F=await W(),w=await F.getAccountAPTAmount({accountAddress:B}),Y=[u.AssetValue.from({chain:H,fromBaseDecimal:k,value:w.toString()})],q=await F.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:B}}}});for(let D of q){if(D.asset_type===Qf.COIN_TYPE||Number(D.amount)<=0)continue;let R=D.asset_type;if(R){let C=("metadata"in D&&typeof D.metadata==="object"&&D.metadata!==null?D.metadata:void 0)?.decimals??k;Y.push(u.AssetValue.from({asset:`${u.Chain.Aptos}.APT-${R}`,fromBaseDecimal:C,value:String(D.amount)}))}}return Y}catch{return[u.AssetValue.from({chain:H})]}}async function Q(z){if(!z){let{baseDecimal:q}=u.getChainConfig(u.Chain.Aptos),D=y||u.getRPCUrlSync(u.Chain.Aptos),R=await fetch(`${D}/estimate_gas_price`),{gas_estimate:$}=await R.json();return u.AssetValue.from({chain:u.Chain.Aptos,fromBaseDecimal:q,value:String($)})}let B=await X();if(!B)throw new u.SwapKitError("toolbox_aptos_no_signer");let k=await L(z),H=await W(),[F]=await H.transaction.simulate.simple({signerPublicKey:B.publicKey,transaction:k});if(!F)throw new u.SwapKitError("toolbox_aptos_transaction_creation_error");let w=BigInt(F.gas_used)*BigInt(F.gas_unit_price),{baseDecimal:Y}=u.getChainConfig(u.Chain.Aptos);return u.AssetValue.from({chain:u.Chain.Aptos,fromBaseDecimal:Y,value:w.toString()})}async function L({recipient:z,assetValue:B,maxGasAmount:k,sender:H}){if(!Cf(z))throw new u.SwapKitError("core_transaction_invalid_recipient_address");let F=H||await Z();if(!F)throw new u.SwapKitError("toolbox_aptos_no_sender");let{AccountAddress:w}=await import("@aptos-labs/ts-sdk"),Y=await W(),q=w.from(F);try{let D=B.isGasAsset?Qf.TRANSFER:Qf.FUNGIBLE_STORE_TRANSFER,R=Yf.match({address:B?.address,isGasAsset:B.isGasAsset}).with({isGasAsset:!0},()=>[w.from(z),B.getBaseValue("bigint")]).with({address:Yf.P.string},({address:$})=>[w.from($),w.from(z),B.getBaseValue("bigint")]).otherwise(()=>null);if(!R)throw new u.SwapKitError("toolbox_aptos_missing_asset_type");return Y.transaction.build.simple({data:{function:D,functionArguments:R,typeArguments:B.isGasAsset?[]:[Qf.FUNGIBLE_ASSET_METADATA]},options:k?{maxGasAmount:k}:void 0,sender:q})}catch(D){if(D instanceof u.SwapKitError)throw D;throw new u.SwapKitError("toolbox_aptos_transaction_creation_error",D)}}async function O(z){let B=await X();if(!B)throw new u.SwapKitError("toolbox_aptos_no_signer");return(await W()).transaction.sign({signer:B,transaction:z})}async function U({assetValue:z,maxGasAmount:B,recipient:k}){let H=await X();if(!H)throw new u.SwapKitError("toolbox_aptos_no_signer");if(!Cf(k))throw new u.SwapKitError("core_transaction_invalid_recipient_address");try{let F=H.accountAddress.toString(),w=await L({assetValue:z,maxGasAmount:B,recipient:k,sender:F});return(await(await W()).signAndSubmitTransaction({signer:H,transaction:w})).hash}catch(F){if(F instanceof u.SwapKitError)throw F;throw new u.SwapKitError("toolbox_aptos_transaction_creation_error",F)}}async function M({senderAuthenticator:z,transaction:B}){try{return(await(await W()).transaction.submit.simple({senderAuthenticator:z,transaction:B})).hash}catch(k){throw new u.SwapKitError("toolbox_aptos_broadcast_error",k)}}async function N(z){let B=await O(z);return M({senderAuthenticator:B,transaction:z})}return{broadcastTransaction:M,createTransaction:L,estimateTransactionFee:Q,getAddress:Z,getBalance:J,signAndBroadcastTransaction:N,signTransaction:O,transfer:U,validateAddress:Cf}}function K5({provider:f}){return async function({assetValue:G,recipient:T}){if(!Cf(T))throw new u.SwapKitError("core_transaction_invalid_recipient_address");let{AccountAddress:_}=await import("@aptos-labs/ts-sdk");if(G.isGasAsset)return(await f.signAndSubmitTransaction({arguments:[_.from(T).toString(),G.getBaseValue("string")],function:Qf.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let X=G.address;if(!X)throw new u.SwapKitError("toolbox_aptos_missing_asset_type");return(await f.signAndSubmitTransaction({arguments:[X,_.from(T).toString(),G.getBaseValue("string")],function:Qf.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[Qf.FUNGIBLE_ASSET_METADATA]})).hash}}var u,Yf,Qf,jG;var j5=E(()=>{u=require("@swapkit/helpers"),Yf=require("ts-pattern"),Qf={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"},jG=/^[0-9a-fA-F]+$/});var C0={};wT(C0,{validateAptosAddress:()=>Cf,getAptosToolbox:()=>o5,createAptosExtensionTransfer:()=>K5});module.exports=HT(C0);var F0=E(()=>{j5()});function l5(){function f(){let y=Date.now(),G=Ky||y;return Ky=G,y>Ky?y:G+1}return bG+f().toString(36)}function ST(f){return async function(G,T=!0){let _=await b5.SwapKitApi.getChainBalance({address:G,chain:f,scamFilter:T}),{baseDecimal:X}=pf.getChainConfig(f),W=_.map(({identifier:J,value:Q,decimal:L})=>{return new pf.AssetValue({decimal:L||X,identifier:J,value:Q})});if(!W.some((J)=>J.isGasAsset))return[pf.AssetValue.from({chain:f}),...W];return W}}var pf,b5,bG,Ky=0;var dT=E(()=>{pf=require("@swapkit/helpers"),b5=require("@swapkit/helpers/api"),bG=typeof process<"u"&&process.pid?process.pid.toString(36):""});function tf(f){return{getBalance:ST(f)}}function lG(f){return f}var k0=E(()=>{dT()});function h5(f){return new qf.JsonRpcProvider(f)}async function hy(f,y){return h5(y||await r.getRPCUrl(f))}function cf(f){return f>0n?`0x${f.toString(16)}`:"0x0"}function my(f){let{explorerUrl:y,chainIdHex:G,rpcUrls:T}=r.getChainConfig(f);return function(){return f!==r.Chain.Ethereum?{...uG({chain:f}),blockExplorerUrls:[y],chainId:G,rpcUrls:T}:void 0}}function py(f){return![r.Chain.Adi,r.Chain.Arbitrum,r.Chain.BinanceSmartChain].includes(f)}function uG({chain:f}){let{name:y,nativeCurrency:G,baseDecimal:T}=r.getChainConfig(f);return uy.match(f).with(r.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:T,name:"Ethereum",symbol:r.Chain.Ethereum}})).with(r.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:T,name:"Ethereum",symbol:r.Chain.Ethereum}})).with(r.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:T,name:"Avalanche",symbol:f}})).with(r.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:T,name:"Ethereum",symbol:r.Chain.Ethereum}})).with(r.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:T,name:"Berachain",symbol:"BERA"}})).with(r.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:T,name:"OKB",symbol:"OKB"}})).with(r.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:T,name:"Binance Coin",symbol:"BNB"}})).with(r.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:T,name:"xDAI",symbol:"XDAI"}})).with(r.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:T,name:"Ethereum",symbol:r.Chain.Ethereum}})).with(r.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:T,name:"Polygon",symbol:r.Chain.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:T,name:G,symbol:G}}))}async function ty(f,y){if(!("authorize"in f))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let G={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await f.authorize(G)}function m5(f,y){let G=y!==void 0?`index ${y}: `:"",T=(_,X)=>{throw new r.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:_,message:`${G}${X}`}})};uy.match(f).when(({chainId:_})=>typeof _!=="bigint",()=>T("chainId","chainId must be a bigint")).when(({address:_})=>!hG(_),()=>T("address","address must be a valid checksummed address")).when(({nonce:_})=>typeof _!=="bigint"||_<0n,()=>T("nonce","nonce must be a non-negative bigint")).when(({signature:_})=>!_,()=>T("signature","signature is required")).when(({signature:_})=>typeof _?.yParity!=="number"||![0,1].includes(_.yParity),()=>T("signature.yParity","yParity must be 0 or 1")).when(({signature:_})=>!u5(_?.r),()=>T("signature.r","r must be a 32-byte hex string")).when(({signature:_})=>!u5(_?.s),()=>T("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function p5(f){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>f[y]!=null).map(({key:y,type:G})=>({name:y,type:G}))}function jy(f){return f.charAt(0).toUpperCase()+f.slice(1)}function by(f,y){if(f.isTuple()&&f.components){let G=jy(f.name);return y[G]=f.components.map((T)=>({name:T.name,type:by(T,y)})),G}if(f.isArray()){let G=f.arrayChildren;if(G?.isTuple()&&G.components){let T=jy(f.name.replace(/s$/,""));return y[T]=G.components.map((_)=>({name:_.name,type:by(_,y)})),`${T}[]`}return`${G?.type??"bytes"}[]`}return f.type}function ly(f,y){if(typeof f==="bigint")return f;if(y?.isTuple()&&typeof f?.toObject==="function"){let G=f.toObject(),T={};for(let[_,X]of(y.components??[]).entries())T[X.name]=ly(G[X.name]??f[_],X);return T}if(Array.isArray(f)){let G=y?.arrayChildren;return f.map((T)=>ly(T,G??void 0))}return f}function mG({chain:f,abi:y,data:G,to:T}){let X=new qf.Interface(y).parseTransaction({data:G});if(!X)throw new r.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let W={},Z=jy(X.name);W[Z]=X.fragment.inputs.map((U)=>({name:U.name,type:by(U,W)}));let J={};for(let[U,M]of X.fragment.inputs.entries())J[M.name]=ly(X.args[U],M);let{chainId:Q}=r.getChainConfig(f),L={chainId:Number(Q),verifyingContract:qf.getAddress(T)},O=p5(L);return{domain:L,message:J,primaryType:Z,types:{EIP712Domain:O,...W}}}function cy(f,y){if(!Array.isArray(f)||f.length===0)throw new r.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[G,T]of f.entries())if(m5(T,G),y!==void 0&&T.chainId!==y)throw new r.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${G}: authorization chainId (${T.chainId}) does not match transaction chainId (${y})`}})}var r,qf,uy,u5=(f)=>typeof f==="string"&&/^0x[a-fA-F0-9]{64}$/.test(f),hG=(f)=>{try{return typeof f==="string"&&!!qf.getAddress(f)}catch{return!1}};var gf=E(()=>{r=require("@swapkit/helpers"),qf=require("ethers"),uy=require("ts-pattern")});var t5;var c5=E(()=>{t5=[{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 kf({chain:f=A.Chain.Ethereum,provider:y,signer:G,isEIP1559Compatible:T=!0}){return{approve:iG({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),approvedAmount:d5({chain:f,provider:y}),broadcastTransaction:y.broadcastTransaction,call:ey({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),createApprovalTx:sG({chain:f,provider:y,signer:G}),createContract:ry({chain:f,provider:y}),createContractTxObject:Lf({chain:f,provider:y}),createTransaction:gy({chain:f,provider:y,signer:G}),createTransferTx:gy({chain:f,provider:y,signer:G}),EIP1193SendTransaction:If(y),estimateCall:r5({provider:y,signer:G}),estimateGasLimit:rG({chain:f,provider:y,signer:G}),estimateGasPrices:zf({chain:f,isEIP1559Compatible:T,provider:y}),estimateTransactionFee:eG({chain:f,isEIP1559Compatible:T,provider:y}),getAddress:()=>{return G?G.getAddress():void 0},getBalance:tf(f).getBalance,getNetworkParams:my(f),isApproved:gG({chain:f,provider:y}),sendTransaction:a5({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),signAuthorization:aG({signer:G}),signMessage:G?(_)=>G.signMessage(_):void 0,signTypedData:G?({domain:_,types:X,value:W})=>G.signTypedData(_,X,W):void 0,transfer:dG({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),validateAddress:dy}}function dy(f){try{return AT.getAddress(f),!0}catch{return!1}}function $f(f){return f instanceof AT.BrowserProvider}function rf(f,y,G){return new AT.Contract(f,AT.Interface.from(y),G)}function ry({provider:f}){return function(G,T){return new AT.Contract(G,AT.Interface.from(T),f)}}function ay({abi:f,funcName:y}){let G=f.find((T)=>T.name===y);if(!G)throw new A.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:y});return G.stateMutability&&pG.includes(G.stateMutability)}function g5(f){return AT.getAddress(f)}function If(f){return function({value:G,...T}){if(!$f(f))throw new A.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:_,gasPrice:X,maxFeePerGas:W,maxPriorityFeePerGas:Z,...J}=T;return f.send("eth_sendTransaction",[{...J,value:cf(BigInt(G||0))}])}}function i5(f,y){let G=Af(f,y);if(G)return AT.getAddress(G.toLowerCase());throw new A.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function Af({chain:f,symbol:y,ticker:G},T){try{let _=f===A.Chain.BinanceSmartChain&&y==="BNB"&&G==="BNB",X=f===A.Chain.Hyperevm&&y==="HYPE"&&G==="HYPE",W=f===T&&y===T&&G===T,Z=cG.includes(f)&&y==="ETH"&&G==="ETH";if(W||_||X||Z)return sy[T];return AT.getAddress(y.slice(G.length+1).replace(/^0X/,""))}catch{return null}}function Lf({provider:f}){return async({contractAddress:y,abi:G,funcName:T,funcParams:_=[],txOverrides:X})=>rf(y,G,f).getFunction(T).populateTransaction(..._.concat(X).filter((W)=>typeof W<"u"))}function zf({chain:f,provider:y,isEIP1559Compatible:G=!0}){return iy.match(f).with(A.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:_,maxPriorityFeePerGas:X}=await y.getFeeData();if(!_||X===null)throw new A.SwapKitError("toolbox_evm_no_fee_data");return{[A.FeeOption.Average]:{maxFeePerGas:A.applyFeeMultiplierToBigInt(_,A.FeeOption.Average),maxPriorityFeePerGas:A.applyFeeMultiplierToBigInt(X,A.FeeOption.Average)},[A.FeeOption.Fast]:{maxFeePerGas:A.applyFeeMultiplierToBigInt(_,A.FeeOption.Fast),maxPriorityFeePerGas:A.applyFeeMultiplierToBigInt(X,A.FeeOption.Fast)},[A.FeeOption.Fastest]:{maxFeePerGas:A.applyFeeMultiplierToBigInt(_,A.FeeOption.Fastest),maxPriorityFeePerGas:A.applyFeeMultiplierToBigInt(X,A.FeeOption.Fastest)}}}catch(_){throw new A.SwapKitError("toolbox_evm_gas_estimation_error",{error:_.msg??_.toString()})}}}).with(A.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:_}=await y.getFeeData();if(!_)throw new A.SwapKitError("toolbox_evm_no_fee_data");return{[A.FeeOption.Average]:{gasPrice:_},[A.FeeOption.Fast]:{gasPrice:_},[A.FeeOption.Fastest]:{gasPrice:_}}}catch(_){throw new A.SwapKitError("toolbox_evm_gas_estimation_error",{error:_.msg??_.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:_,maxPriorityFeePerGas:X,gasPrice:W}=await y.getFeeData();if(G){if(_===null||X===null)throw new A.SwapKitError("toolbox_evm_no_fee_data");return{[A.FeeOption.Average]:{maxFeePerGas:_,maxPriorityFeePerGas:X},[A.FeeOption.Fast]:{maxFeePerGas:A.applyFeeMultiplierToBigInt(_,A.FeeOption.Fast),maxPriorityFeePerGas:A.applyFeeMultiplierToBigInt(X,A.FeeOption.Fast)},[A.FeeOption.Fastest]:{maxFeePerGas:A.applyFeeMultiplierToBigInt(_,A.FeeOption.Fastest),maxPriorityFeePerGas:A.applyFeeMultiplierToBigInt(X,A.FeeOption.Fastest)}}}if(!W)throw new A.SwapKitError("toolbox_evm_no_gas_price");return{[A.FeeOption.Average]:{gasPrice:W},[A.FeeOption.Fast]:{gasPrice:A.applyFeeMultiplierToBigInt(W,A.FeeOption.Fast)},[A.FeeOption.Fastest]:{gasPrice:A.applyFeeMultiplierToBigInt(W,A.FeeOption.Fastest)}}}catch(_){throw new A.SwapKitError("toolbox_evm_gas_estimation_error",{error:_.msg??_.toString()})}}})}function ey({provider:f,isEIP1559Compatible:y,signer:G,chain:T}){return async function({callProvider:X,contractAddress:W,abi:Z,funcName:J,funcParams:Q=[],txOverrides:L={},feeOption:O=A.FeeOption.Fast}){let U=X||f;if(!W)throw new A.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let M=ay({abi:Z,funcName:J});if(M&&$f(U)&&G){let B=Lf({chain:T,provider:U}),k=L?.from||await G?.getAddress(),H=await B({abi:Z,contractAddress:W,funcName:J,funcParams:Q,txOverrides:{...L,from:k}});return If(U)(H)}let N=rf(W,Z,U);if(M){if(!G)throw new A.SwapKitError("toolbox_evm_no_signer");let B=L?.from||await G.getAddress();if(!B)throw new A.SwapKitError("toolbox_evm_no_signer_address");let k=N.connect(G),H=zf({chain:T,isEIP1559Compatible:y,provider:f}),{maxFeePerGas:F,maxPriorityFeePerGas:w,gasPrice:Y}=(await H())[O],q=await N.getFunction(J).estimateGas(...Q,L),D=await k[J](...Q,{...L,gasLimit:q,gasPrice:Y,maxFeePerGas:F,maxPriorityFeePerGas:w,nonce:L?.nonce||await U.getTransactionCount(B)});return typeof D?.hash==="string"?D?.hash:D}let z=await N[J]?.(...Q);return typeof z?.hash==="string"?z?.hash:z}}function d5({provider:f,chain:y}){return function({assetAddress:T,spenderAddress:_,from:X}){return ey({chain:y,isEIP1559Compatible:!0,provider:f})({abi:Ff.erc20ABI,contractAddress:T,funcName:"allowance",funcParams:[X,_]})}}function gG({provider:f,chain:y}){return async function({assetAddress:T,spenderAddress:_,from:X,amount:W=df}){let Z=await d5({chain:y,provider:f})({assetAddress:T,from:X,spenderAddress:_});return A.SwapKitNumber.fromBigInt(Z).gte(A.SwapKitNumber.fromBigInt(BigInt(W)))}}function iG({signer:f,isEIP1559Compatible:y=!0,provider:G,chain:T}){return async function({assetAddress:X,spenderAddress:W,feeOptionKey:Z=A.FeeOption.Fast,amount:J,gasLimitFallback:Q,from:L,nonce:O}){let U=[W,BigInt(J||df)],M=await f?.getAddress()||L,N={abi:Ff.erc20ABI,contractAddress:X,funcName:"approve",funcParams:U,signer:f,txOverrides:{from:M}};if($f(G)){let B=Lf({chain:T,provider:G}),k=If(G),H=await B(N);return k(H)}return ey({chain:T,isEIP1559Compatible:y,provider:G,signer:f})({...N,feeOption:Z,funcParams:U,txOverrides:{from:M,gasLimit:Q?BigInt(Q.toString()):void 0,nonce:O}})}}function dG({signer:f,isEIP1559Compatible:y=!0,provider:G}){return async function({assetValue:_,memo:X,recipient:W,feeOptionKey:Z=A.FeeOption.Fast,sender:J,...Q}){let{hexlify:L,toUtf8Bytes:O}=await import("ethers"),U=_.getBaseValue("bigint"),M=_.chain,N=J||await f?.getAddress(),z=a5({chain:M,isEIP1559Compatible:y,provider:G,signer:f});if(!N)throw new A.SwapKitError("toolbox_evm_no_from_address");if(_.isGasAsset){let Y={...Q,data:L(O(X||"")),feeOptionKey:Z,from:N,to:W,value:U};return z(Y)}if(!Af(_,M))throw new A.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:k,maxPriorityFeePerGas:H,gasPrice:F}=(await zf({chain:M,isEIP1559Compatible:y,provider:G})())[Z],w=await gy({chain:M,provider:G,signer:f})({assetValue:_,data:L(O(X||"")),gasPrice:F,maxFeePerGas:k,maxPriorityFeePerGas:H,memo:X,recipient:W,sender:N});return z(w)}}function r5({provider:f,signer:y}){return function({contractAddress:T,abi:_,funcName:X,funcParams:W=[],txOverrides:Z}){if(!T)throw new A.SwapKitError("toolbox_evm_no_contract_address");let J=rf(T,_,f);return y?J.connect(y).getFunction(X).estimateGas(...W,Z):J.getFunction(X).estimateGas(...W,Z)}}function rG({provider:f,signer:y}){return async function({assetValue:T,recipient:_,memo:X,data:W,sender:Z,funcName:J,funcParams:Q,txOverrides:L}){let O=T.bigIntValue,U=T.isGasAsset?null:Af(T,T.chain);if(U&&J)return r5({provider:f,signer:y})({abi:Ff.erc20ABI,contractAddress:U,funcName:J,funcParams:Q,txOverrides:L});let{hexlify:M,toUtf8Bytes:N}=await import("ethers");return f.estimateGas({data:W?W:X?M(N(X)):void 0,from:Z,to:_,value:O})}}function aG({signer:f}){if(!f)return;return(y)=>ty(f,y)}function a5({provider:f,signer:y,isEIP1559Compatible:G=!0,chain:T}){return async function({feeOptionKey:X=A.FeeOption.Fast,...W}){let{from:Z,to:J,data:Q,value:L,...O}=W;if(!y)throw new A.SwapKitError("toolbox_evm_no_signer");if(!J)throw new A.SwapKitError("toolbox_evm_no_to_address");let U={...O,data:Q||"0x",from:Z,to:J,value:BigInt(L||0)};if($f(f))return If(f)(U);let M=Z||await y.getAddress(),N=W.nonce||await f.getTransactionCount(M),z=(await f.getNetwork()).chainId,B=f1(U,G);if(B==="eip7702")cy(U.authorizations||[],z);let k=iy.match(B).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),H={...U,chainId:z,nonce:N,type:k,...B==="eip7702"&&{authorizationList:U.authorizations}},F=zf({chain:T,isEIP1559Compatible:G,provider:f}),Y=B!=="legacy"&&!(U.maxFeePerGas&&U.maxPriorityFeePerGas)||!U.gasPrice?Object.entries((await F())[X]).reduce((D,[R,$])=>({...D,[R]:cf(BigInt($))}),{}):{},q;try{q=cf(U.gasLimit||await f.estimateGas(H)*11n/10n)}catch(D){throw new A.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:D})}try{let D={...H,gasLimit:q,...Y};try{return(await y.sendTransaction(D)).hash}catch{let R=await y.signTransaction({...D,from:M});return(await f.broadcastTransaction(R)).hash}}catch(D){throw new A.SwapKitError("toolbox_evm_error_sending_transaction",{error:D})}}}function gy({provider:f,signer:y}){return async function({assetValue:T,memo:_,recipient:X,data:W,sender:Z,maxFeePerGas:J,maxPriorityFeePerGas:Q,gasPrice:L,...O}){let U=T.getBaseValue("bigint"),M=T.chain,N=Z||await y?.getAddress();if(!N)throw new A.SwapKitError("toolbox_evm_no_from_address");if(A.isGasAsset(T)){let{hexlify:k,toUtf8Bytes:H}=await import("ethers");return{...O,data:W||k(H(_||"")),from:N,to:X,value:U}}let z=Af(T,M);if(!z)throw new A.SwapKitError("toolbox_evm_no_contract_address");return Lf({chain:T.chain,provider:f})({abi:Ff.erc20ABI,contractAddress:z,funcName:"transfer",funcParams:[X,U],txOverrides:{from:N,gasPrice:L,maxFeePerGas:J,maxPriorityFeePerGas:Q}})}}function sG({provider:f,signer:y,chain:G}){return async function({assetAddress:_,spenderAddress:X,amount:W,from:Z}){let J=await y?.getAddress()||Z,Q=Lf({chain:G,provider:f}),L=["bigint","number"].includes(typeof W)?W:W||df;return await Q({abi:Ff.erc20ABI,contractAddress:_,funcName:"approve",funcParams:[X,BigInt(L)],txOverrides:{from:J}})}}function eG({provider:f,isEIP1559Compatible:y=!0,chain:G}){return async function({feeOption:_=A.FeeOption.Fast,...X}){let Z=await zf({chain:G,isEIP1559Compatible:y,provider:f})(),J=await f.estimateGas(X),Q=A.AssetValue.from({chain:G}),{gasPrice:L,maxFeePerGas:O,maxPriorityFeePerGas:U}=Z[_];if(!y&&L)return Q.set(A.SwapKitNumber.fromBigInt(L*J,Q.decimal));if(O&&U){let M=(O+U)*J;return Q.set(A.SwapKitNumber.fromBigInt(M,Q.decimal))}throw new A.SwapKitError("toolbox_evm_no_gas_price")}}var A,Ff,AT,iy,df,pG,tG,sy,cG,$0=(f)=>f.type===4||(f.authorizations?.length??0)>0,T1=(f)=>!$0(f)&&(f.type===2||!!f.maxFeePerGas||!!f.maxPriorityFeePerGas),f1=(f,y=!0)=>{if($0(f))return"eip7702";if(T1(f)||y)return"eip1559";return"legacy"};var I0=E(()=>{k0();gf();A=require("@swapkit/helpers"),Ff=require("@swapkit/helpers/contracts"),AT=require("ethers"),iy=require("ts-pattern"),df=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");pG=["payable","nonpayable"];tG=A.EVMChains.reduce((f,y)=>{return f[y]="0x0000000000000000000000000000000000000000",f},{}),sy={...tG,[A.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[A.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},cG=[A.Chain.Arbitrum,A.Chain.Aurora,A.Chain.Base,A.Chain.Optimism]});function A0(f){let y=YT(_T.Chain.Ethereum)(f);async function G(T,_="0x5ba1e12693dc8f9c48aad8770482f4739beed696",X="aggregate",W=_T.FeeOption.Fast){let Z=await y.createContractTxObject({abi:t5,contractAddress:_,funcName:X,funcParams:[T]});return y.sendTransaction({...Z,feeOptionKey:W})}return{...y,multicall:G}}function YT(f){return function({provider:G,...T}){let _=py(f),X=af.match(T).with({phrase:af.P.string},({phrase:Z})=>s5.HDNodeWallet.fromPhrase(Z).connect(G)).with({signer:af.P.any},({signer:Z})=>Z).otherwise(()=>{return});return kf({chain:f,isEIP1559Compatible:_,provider:G,signer:X})}}var _T,s5,af,P0,x0,S0,E0,n0,V0,v0,e5,o0,K0,j0,b0,l0,u0,sf,h0,m0,p0,t0;var y1=E(()=>{c5();gf();I0();_T=require("@swapkit/helpers"),s5=require("ethers"),af=require("ts-pattern");P0=YT(_T.Chain.Adi),x0=YT(_T.Chain.Arbitrum),S0=YT(_T.Chain.Aurora),E0=YT(_T.Chain.Avalanche),n0=YT(_T.Chain.Base),V0=YT(_T.Chain.Berachain),v0=YT(_T.Chain.BinanceSmartChain),e5=YT(_T.Chain.Botanix),o0=YT(_T.Chain.Core),K0=YT(_T.Chain.Corn),j0=YT(_T.Chain.Cronos),b0=YT(_T.Chain.Gnosis),l0=YT(_T.Chain.Hyperevm),u0=YT(_T.Chain.Polygon),sf=YT(_T.Chain.Sonic),h0=YT(_T.Chain.Unichain),m0=YT(_T.Chain.XLayer),p0=YT(_T.Chain.Monad),t0=YT(_T.Chain.MegaETH)});var T_;var f_=E(()=>{T_=[{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:[],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 _1(f){return new c0.Contract(fX,T_,f)}function y_(f){return async function(){let G=_1(f);if(G&&"l1BaseFee"in G)return await G?.l1BaseFee();return}}function __(f){return async function({from:G,to:T,nonce:_,...X}){let{Transaction:W}=await import("ethers");if(!T)throw new GT.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return W.from({...X,authorizationList:X.authorizationList,nonce:_?_:G?await f.getTransactionCount(G):0,to:T}).serialized}}function G_(f){return async function(G){let T=_1(f),_=await __(f)(G);if(T&&"getL1Fee"in T)return T.getL1Fee(_)}}function X_(f){return async function(G){let _=(await f.getFeeData()).gasPrice??0n,X=await f.estimateGas(G);return _*X}}function yX(f){return async function(G){let T=await G_(f)(G)??0n,_=await X_(f)(G);return T+_}}function _X(f){return async function(G){let T=_1(f),_=await __(f)(G);if(T&&"getL1GasUsed"in T)return T.getL1GasUsed(_)}}function GX(f){return async function(){try{let{maxFeePerGas:G,maxPriorityFeePerGas:T,gasPrice:_}=await f.getFeeData(),X=await y_(f)(),W=_;if(!(G&&T))throw new GT.SwapKitError("toolbox_evm_no_fee_data");return{[GT.FeeOption.Average]:{gasPrice:W,l1GasPrice:X,maxFeePerGas:G,maxPriorityFeePerGas:T},[GT.FeeOption.Fast]:{gasPrice:GT.applyFeeMultiplierToBigInt(W,GT.FeeOption.Fast),l1GasPrice:GT.applyFeeMultiplierToBigInt(X||0n,GT.FeeOption.Fast),maxFeePerGas:G,maxPriorityFeePerGas:GT.applyFeeMultiplierToBigInt(T,GT.FeeOption.Fast)},[GT.FeeOption.Fastest]:{gasPrice:GT.applyFeeMultiplierToBigInt(W,GT.FeeOption.Fastest),l1GasPrice:GT.applyFeeMultiplierToBigInt(X||0n,GT.FeeOption.Fastest),maxFeePerGas:G,maxPriorityFeePerGas:GT.applyFeeMultiplierToBigInt(T,GT.FeeOption.Fastest)}}}catch(G){throw new GT.SwapKitError("toolbox_evm_gas_estimation_error",{error:G.msg??G.toString()})}}}function g0({provider:f,...y}){let G=ef.match(y).with({phrase:ef.P.string},({phrase:X})=>c0.HDNodeWallet.fromPhrase(X).connect(f)).with({signer:ef.P.any},({signer:X})=>X).otherwise(()=>{return}),T=kf({provider:f,signer:G}),_=y_(f);return{...T,estimateGasPrices:GX(f),estimateL1Gas:_X(f),estimateL1GasCost:G_(f),estimateL2GasCost:X_(f),estimateTotalGasCost:yX(f),getBalance:tf(GT.Chain.Optimism).getBalance,getL1GasPrice:_}}var GT,c0,ef,fX="0x420000000000000000000000000000000000000f";var G1=E(()=>{k0();f_();I0();GT=require("@swapkit/helpers"),c0=require("ethers"),ef=require("ts-pattern")});var J_={};wT(J_,{validateEVMAddress:()=>dy,toChecksumAddress:()=>g5,isStateChangingCall:()=>ay,isEIP7702Transaction:()=>$0,isEIP1559Transaction:()=>T1,isBrowserProvider:()=>$f,getTokenAddress:()=>Af,getEvmToolboxAsync:()=>Z_,getEvmToolbox:()=>X1,getEstimateGasPrices:()=>zf,getEVMTxType:()=>f1,getEIP1193SendTransaction:()=>If,getCreateContractTxObject:()=>Lf,getCreateContract:()=>ry,getChecksumAddressFromAsset:()=>i5,createContract:()=>rf,XLayerToolbox:()=>m0,UNIToolbox:()=>h0,SONICToolbox:()=>sf,OPToolbox:()=>g0,MONADToolbox:()=>p0,MEGAETHToolbox:()=>t0,MAX_APPROVAL:()=>df,MATICToolbox:()=>u0,HYPEREVMToolbox:()=>l0,GNOToolbox:()=>b0,ETHToolbox:()=>A0,ContractAddress:()=>sy,CROToolbox:()=>j0,CORNToolbox:()=>K0,COREToolbox:()=>o0,BotanixToolbox:()=>e5,BaseEVMToolbox:()=>kf,BSCToolbox:()=>v0,BERAToolbox:()=>V0,BASEToolbox:()=>n0,AVAXToolbox:()=>E0,AURORAToolbox:()=>S0,ARBToolbox:()=>x0,ADIToolbox:()=>P0});function X1(f,y){return W_.match(f).with(QT.Chain.Adi,()=>P0(y)).with(QT.Chain.Arbitrum,()=>x0(y)).with(QT.Chain.Aurora,()=>S0(y)).with(QT.Chain.Avalanche,()=>E0(y)).with(QT.Chain.Base,()=>n0(y)).with(QT.Chain.Berachain,()=>V0(y)).with(QT.Chain.BinanceSmartChain,()=>v0(y)).with(QT.Chain.Botanix,()=>sf(y)).with(QT.Chain.Core,()=>o0(y)).with(QT.Chain.Corn,()=>K0(y)).with(QT.Chain.Cronos,()=>j0(y)).with(QT.Chain.Ethereum,()=>A0(y)).with(QT.Chain.Gnosis,()=>b0(y)).with(QT.Chain.Hyperevm,()=>l0(y)).with(QT.Chain.Optimism,()=>g0(y)).with(QT.Chain.Polygon,()=>u0(y)).with(QT.Chain.Sonic,()=>sf(y)).with(QT.Chain.Unichain,()=>h0(y)).with(QT.Chain.XLayer,()=>m0(y)).with(QT.Chain.Monad,()=>p0(y)).with(QT.Chain.MegaETH,()=>t0(y)).exhaustive()}async function Z_(f,y){let G={...y,provider:y?.provider||await hy(f)};return X1(f,G)}var QT,W_;var W1=E(()=>{gf();y1();G1();QT=require("@swapkit/helpers"),W_=require("ts-pattern");I0();y1();G1()});var Q_;var Y_=E(()=>{((G)=>{G.Test="goerli";G.Main="homestead"})(Q_||={})});var q_={};wT(q_,{validateEVMAddress:()=>dy,validateAuthorizations:()=>cy,validateAuthorization:()=>m5,toHexString:()=>cf,toChecksumAddress:()=>g5,signAuthorization:()=>ty,parseEIP712FromEVMTx:()=>mG,isStateChangingCall:()=>ay,isEIP7702Transaction:()=>$0,isEIP1559Transaction:()=>T1,isBrowserProvider:()=>$f,getTokenAddress:()=>Af,getProviderSync:()=>h5,getProvider:()=>hy,getNetworkParams:()=>my,getIsEIP1559Compatible:()=>py,getEvmToolboxAsync:()=>Z_,getEvmToolbox:()=>X1,getEvmApi:()=>tf,getEstimateGasPrices:()=>zf,getEVMTxType:()=>f1,getEIP1193SendTransaction:()=>If,getCreateContractTxObject:()=>Lf,getCreateContract:()=>ry,getChecksumAddressFromAsset:()=>i5,createCustomEvmApi:()=>lG,createContract:()=>rf,buildEIP712DomainType:()=>p5,XLayerToolbox:()=>m0,UNIToolbox:()=>h0,SONICToolbox:()=>sf,OPToolbox:()=>g0,MONADToolbox:()=>p0,MEGAETHToolbox:()=>t0,MAX_APPROVAL:()=>df,MATICToolbox:()=>u0,HYPEREVMToolbox:()=>l0,GNOToolbox:()=>b0,EthNetwork:()=>Q_,ETHToolbox:()=>A0,ContractAddress:()=>sy,CROToolbox:()=>j0,CORNToolbox:()=>K0,COREToolbox:()=>o0,BotanixToolbox:()=>e5,BaseEVMToolbox:()=>kf,BSCToolbox:()=>v0,BERAToolbox:()=>V0,BASEToolbox:()=>n0,AVAXToolbox:()=>E0,AURORAToolbox:()=>S0,ARBToolbox:()=>x0,ADIToolbox:()=>P0});module.exports=HT(q_);var L_=E(()=>{k0();gf();W1();Y_()});async function J1(f,y){let G=await fetch(`${D_}${f}`,{...y,headers:{project_id:w_,...y?.headers}});if(!G.ok)throw Error(`Blockfrost API error: ${G.status} ${G.statusText}`);return G.json()}async function O_(f){try{return await J1(`/addresses/${f}/utxos`)}catch{return[]}}async function WX(){return(await J1("/blocks/latest")).slot}async function ZX(){let f=await J1("/epochs/latest/parameters"),y={PlutusScriptV1:f.cost_models.PlutusV1?Object.values(f.cost_models.PlutusV1):[],PlutusScriptV2:f.cost_models.PlutusV2?Object.values(f.cost_models.PlutusV2):[],PlutusScriptV3:f.cost_models.PlutusV3?Object.values(f.cost_models.PlutusV3):[]};return{collateralPercent:new IT.default(f.collateral_percent),languageView:y,lovelacePerUtxoWord:new IT.default(0),maxValueSize:Number.parseInt(f.max_val_size,10),minFeeA:new IT.default(f.min_fee_a),minFeeB:new IT.default(f.min_fee_b),minFeeRefScriptCostPerByte:new IT.default(15),priceMem:new IT.default(f.price_mem),priceSteps:new IT.default(f.price_step),stakeKeyDeposit:new IT.default(2000000),utxoCostPerByte:new IT.default(f.coins_per_utxo_size)}}async function N_(f){let y=await fetch(`${D_}/tx/submit`,{body:Buffer.from(f,"hex"),headers:{"Content-Type":"application/cbor",project_id:w_},method:"POST"});if(!y.ok){let G=await y.text();throw Error(`Transaction submission failed: ${G}`)}return y.json()}function JX(f,y){return f.map((G)=>{let T=G.amount.find((W)=>W.unit==="lovelace"),_=T?new IT.default(T.quantity):new IT.default(0),X=G.amount.filter((W)=>W.unit!=="lovelace").map((W)=>({amount:new IT.default(W.quantity),assetName:W.unit.slice(56),policyId:W.unit.slice(0,56)}));return{address:y,amount:_,index:G.output_index,tokens:X,txId:G.tx_hash}})}async function QX(f){try{let y=await O_(f),G=0n,T=new Map;for(let W of y){if(!W.amount||!Array.isArray(W.amount))continue;for(let Z of W.amount){let{unit:J,quantity:Q}=Z;if(J==="lovelace")G+=BigInt(Q);else{let L=T.get(J)||0n;T.set(J,L+BigInt(Q))}}}let _=[],{baseDecimal:X}=XT.getChainConfig(XT.Chain.Cardano);if(G>0n)_.push(XT.AssetValue.from({chain:XT.Chain.Cardano,fromBaseDecimal:X,value:G.toString()}));for(let[W,Z]of T)_.push(XT.AssetValue.from({asset:`${XT.Chain.Cardano}.${W}`,value:Z.toString()}));if(_.length===0)return[XT.AssetValue.from({chain:XT.Chain.Cardano})];return _}catch(y){let G=y instanceof Error?y.message:String(y);return console.error(`Cardano balance fetch error: ${G}`),[XT.AssetValue.from({chain:XT.Chain.Cardano})]}}function H_(f){if(!f||typeof f!=="string")return!1;try{let y=U_.bech32.decode(f,120);return y.prefix==="addr"||y.prefix==="addr_test"}catch{return!1}}async function YX(f,y=0,G=0){let T=await M_.mnemonicToSeed(f,""),X=(await B_.Bip32PrivateKey.fromEntropy(Buffer.from(T.slice(0,64)))).derive(Z1+1852).derive(Z1+1815).derive(Z1+y),W=X.derive(0).derive(G),Z=W.toBip32PublicKey().toPublicKey().toBytes(),J=RT.crypto.hash28(Z),L=X.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),O=RT.crypto.hash28(L),U={hash:J,type:RT.types.HashType.ADDRESS},M={hash:O,type:RT.types.HashType.ADDRESS},z=new RT.address.BaseAddress(XX,U,M).getBech32(),B=W.toPrivateKey();return{getAddress:()=>z,publicKey:Z,publicKeyHash:J,signTransaction:async(k)=>{try{let H=await import("@stricahq/cbors"),F=Buffer.from(k,"hex"),w=H.Decoder.decode(F),[Y,q,D,R]=w.value,$=H.Encoder.encode(Y),C=RT.crypto.hash32($),I=B.sign(C),P=q instanceof Map?q:new Map,n=P.get(z_)||[];n.push([Z,I]),P.set(z_,n);let b=[Y,P,D,R];return H.Encoder.encode(b).toString("hex")}catch(H){throw new XT.SwapKitError("toolbox_cardano_sign_transaction_failed",{message:String(H)})}}}}function qX(f){let y,G,T;async function _(){if(!T)T=await ZX();return T}async function X(){if(y!==void 0)return y;if(f&&"phrase"in f&&f.phrase){let M=f.index??0;return y=await YX(f.phrase,0,M),y}if(f&&"signer"in f&&f.signer)return y=f.signer,y;return}async function W(){if(G)return G;let M=await X();if(!M)return"";if("getAddress"in M)return G=await M.getAddress(),G;return""}async function Z(M){let N=M||await W();if(!N)throw new XT.SwapKitError("core_wallet_connection_not_found");return QX(N)}async function J(M){if(M)try{let{tx:k}=await Q(M),H=k.getFee();return XT.AssetValue.from({chain:XT.Chain.Cardano,fromBaseDecimal:6,value:H.toString()})}catch{}let N=await _(),z=400,B=N.minFeeB.plus(N.minFeeA.times(z));return XT.AssetValue.from({chain:XT.Chain.Cardano,fromBaseDecimal:6,value:B.toString()})}async function Q({sender:M="",recipient:N,assetValue:z,memo:B,pureLovelaceOnly:k=!1}){let H=M||await W();if(!H)throw new XT.SwapKitError("core_wallet_connection_not_found");let[F,w,Y]=await Promise.all([O_(H),WX(),_()]),q=F.filter((g)=>k?g.amount.every((TT)=>TT.unit==="lovelace"):g.amount.some((TT)=>TT.unit==="lovelace")).sort((g,TT)=>{let UT=g.amount.some((DT)=>DT.unit!=="lovelace"),FT=TT.amount.some((DT)=>DT.unit!=="lovelace");if(UT===FT)return 0;return UT?1:-1}),D=RT.utils.getAddressFromString(H),R=RT.utils.getAddressFromString(N),$=JX(q,D),C=new IT.default(z.getBaseValue("string")),I=[{address:R,amount:C,tokens:[]}],P;if(B){let g=new Map;g.set("msg",[B]),P={metadata:[{data:g,label:674}]}}let b=new RT.Transaction({protocolParams:Y}).paymentTransaction({auxiliaryData:P,changeAddress:D,inputs:$,outputs:I,ttl:w+3600}),{payload:h}=b.buildTransaction();return{tx:b,unsignedTx:h}}async function L(M){let N=await X();if(!N||!("signTransaction"in N))throw new XT.SwapKitError("core_wallet_connection_not_found");return N.signTransaction(M)}async function O({recipient:M,assetValue:N,memo:z}){let B=await X();if(!B||!("signTransaction"in B))throw new XT.SwapKitError("core_wallet_connection_not_found");let{unsignedTx:k}=await Q({assetValue:N,memo:z,recipient:M,sender:await W()}),H=await L(k);return await N_(H)}async function U(M){let N=await L(M);return await N_(N)}return{createTransaction:Q,estimateTransactionFee:J,getAddress:W,getBalance:Z,signAndBroadcastTransaction:U,signTransaction:L,transfer:O,validateAddress:H_}}var U_,M_,B_,RT,XT,IT,w_="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",D_="https://cardano-mainnet.blockfrost.io/api/v0",XX,Z1=2147483648,z_=0;var R_=E(()=>{U_=require("@scure/base"),M_=require("@scure/bip39"),B_=require("@stricahq/bip32ed25519"),RT=require("@stricahq/typhonjs"),XT=require("@swapkit/helpers"),IT=v5(require("bignumber.js")),XX=RT.types.NetworkId.MAINNET});var Q1={};wT(Q1,{validateCardanoAddress:()=>H_,getCardanoToolbox:()=>qX});module.exports=HT(Q1);var Y1=E(()=>{R_()});function T0(f){return jT.base64.encode(Uint8Array.from(jT.bech32.fromWords(jT.bech32.decode(f).words)))}function f0(f,y="thor"){return jT.bech32.encode(y,jT.bech32.toWords(jT.base64.decode(f)))}function LX(f){return jT.base64.encode(f)}function zX(f){if(!f.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new C_.SwapKitError("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return jT.base64.decode(f)}var jT,C_;var q1=E(()=>{jT=require("@scure/base"),C_=require("@swapkit/helpers")});function uT(f){switch(f){case K.Chain.Maya:return{amount:[],gas:"10000000000"};case K.Chain.THORChain:return{amount:[],gas:"500000000"};case K.Chain.Kujira:return $_;case K.Chain.Noble:return I_;default:return k_}}async function hT(f){let y=await import("@cosmjs/stargate"),G=y.StargateClient??y.default?.StargateClient,T=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return G.connect({headers:T,url:f})}async function Nf(f,y,G={}){let T=await import("@cosmjs/stargate"),_=T.SigningStargateClient??T.default?.SigningStargateClient,X=T.GasPrice??T.default?.GasPrice,W=typeof G==="string"?G:"0.0003uatom",Z=typeof G==="string"?{}:G;return _.connectWithSigner(f,y,{gasPrice:X.fromString(W),...Z})}async function z1(f,y){let G=await import("@cosmjs/stargate");return(G.SigningStargateClient??G.default?.SigningStargateClient).offline(f,y)}async function N1({sender:f,recipient:y,assetValue:G,memo:T="",feeRate:_,sequence:X,accountNumber:W}){let{chain:Z,chainId:J}=G,Q=await K.getRPCUrl(Z),O=await(await hT(Q)).getAccount(f);if(!O)throw new K.SwapKitError("toolbox_cosmos_account_not_found",{sender:f});let U=K.AssetValue.from({chain:Z}),M=rT(U.symbol),N=uT(Z),z=M&&_?{amount:[{amount:_.toString(),denom:M}],gas:N.gas}:N,B={amount:[{amount:G.getBaseValue("string"),denom:rT(G.symbol)}],fromAddress:f,toAddress:y};return{accountNumber:W??O.accountNumber,chainId:J,fee:z,memo:T,msgs:[{typeUrl:NX(Z),value:B}],sequence:X??O.sequence}}var K,L1="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",F_="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",k_,$_,I_,rT=(f,y=!1)=>{if(y)return f.toLowerCase();switch(f){case"uUSK":case"USK":return L1;case"uYUM":case"YUM":return F_;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return f}},y0=({symbol:f,chain:y})=>{if(y===K.Chain.Maya)return(f.toUpperCase()!=="CACAO"?f:`${K.Chain.Maya}.${f}`).toUpperCase();if(y===K.Chain.THORChain)return(["RUNE","TCY","RUJI"].includes(f.toUpperCase())?`${K.Chain.THORChain}.${f}`:f).toUpperCase();return rT(f,!1)},NX=(f)=>{switch(f){case K.Chain.Maya:case K.Chain.THORChain:return"/types.MsgSend";case K.Chain.Cosmos:case K.Chain.Kujira:case K.Chain.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new K.SwapKitError("toolbox_cosmos_not_supported",{chain:f})}},UX,U1=(f,y)=>{let G=UX[f.toLowerCase()];if(!G)return K.AssetValue.from({asset:f,fromBaseDecimal:8,value:y});let{chain:T,asset:_,decimals:X}=G,W=T?{chain:T}:{asset:_};return K.AssetValue.from({...W,fromBaseDecimal:X,value:y})};var _0=E(()=>{K=require("@swapkit/helpers"),k_={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},$_={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},I_={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};UX={atom:{chain:K.Chain.Cosmos,decimals:K.getChainConfig(K.Chain.Cosmos).baseDecimal},cacao:{chain:K.Chain.Maya,decimals:10},kuji:{chain:K.Chain.Kujira,decimals:K.getChainConfig(K.Chain.Kujira).baseDecimal},maya:{asset:`${K.Chain.Maya}.${K.Chain.Maya}`,decimals:4},rune:{chain:K.Chain.THORChain,decimals:K.getChainConfig(K.Chain.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:K.getChainConfig(K.Chain.THORChain).baseDecimal},uatom:{chain:K.Chain.Cosmos,decimals:K.getChainConfig(K.Chain.Cosmos).baseDecimal},ukuji:{chain:K.Chain.Kujira,decimals:K.getChainConfig(K.Chain.Kujira).baseDecimal},usdc:{chain:K.Chain.Noble,decimals:K.getChainConfig(K.Chain.Noble).baseDecimal},uusdc:{chain:K.Chain.Noble,decimals:K.getChainConfig(K.Chain.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:K.getChainConfig(K.Chain.THORChain).baseDecimal},[L1.toLowerCase()]:{asset:`${K.Chain.Kujira}.USK`,decimals:K.getChainConfig(K.Chain.Kujira).baseDecimal}}});var A_={};wT(A_,{$root:()=>S});var MT,l,ET,v,S;var P_=E(()=>{MT=v5(require("protobufjs/minimal.js")),l=MT.default.Reader,ET=MT.default.Writer,v=MT.default.util,S=MT.default.roots.default||(MT.default.roots.default={});S.common=(()=>{let f={};return f.Asset=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.chain="",y.prototype.symbol="",y.prototype.ticker="",y.prototype.synth=!1,y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.chain!=null&&Object.hasOwnProperty.call(T,"chain"))_.uint32(10).string(T.chain);if(T.symbol!=null&&Object.hasOwnProperty.call(T,"symbol"))_.uint32(18).string(T.symbol);if(T.ticker!=null&&Object.hasOwnProperty.call(T,"ticker"))_.uint32(26).string(T.ticker);if(T.synth!=null&&Object.hasOwnProperty.call(T,"synth"))_.uint32(32).bool(T.synth);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.common.Asset;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.chain=T.string();break;case 2:W.symbol=T.string();break;case 3:W.ticker=T.string();break;case 4:W.synth=T.bool();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.chain!=null&&T.hasOwnProperty("chain")){if(!v.isString(T.chain))return"chain: string expected"}if(T.symbol!=null&&T.hasOwnProperty("symbol")){if(!v.isString(T.symbol))return"symbol: string expected"}if(T.ticker!=null&&T.hasOwnProperty("ticker")){if(!v.isString(T.ticker))return"ticker: string expected"}if(T.synth!=null&&T.hasOwnProperty("synth")){if(typeof T.synth!=="boolean")return"synth: boolean expected"}return null},y.fromObject=function(T){if(T instanceof S.common.Asset)return T;let _=new S.common.Asset;if(T.chain!=null)_.chain=String(T.chain);if(T.symbol!=null)_.symbol=String(T.symbol);if(T.ticker!=null)_.ticker=String(T.ticker);if(T.synth!=null)_.synth=Boolean(T.synth);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)X.chain="",X.symbol="",X.ticker="",X.synth=!1;if(T.chain!=null&&T.hasOwnProperty("chain"))X.chain=T.chain;if(T.symbol!=null&&T.hasOwnProperty("symbol"))X.symbol=T.symbol;if(T.ticker!=null&&T.hasOwnProperty("ticker"))X.ticker=T.ticker;if(T.synth!=null&&T.hasOwnProperty("synth"))X.synth=T.synth;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f.Coin=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.asset=null,y.prototype.amount="",y.prototype.decimals=v.Long?v.Long.fromBits(0,0,!1):0,y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.asset!=null&&Object.hasOwnProperty.call(T,"asset"))S.common.Asset.encode(T.asset,_.uint32(10).fork()).ldelim();if(T.amount!=null&&Object.hasOwnProperty.call(T,"amount"))_.uint32(18).string(T.amount);if(T.decimals!=null&&Object.hasOwnProperty.call(T,"decimals"))_.uint32(24).int64(T.decimals);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.common.Coin;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.asset=S.common.Asset.decode(T,T.uint32());break;case 2:W.amount=T.string();break;case 3:W.decimals=T.int64();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.asset!=null&&T.hasOwnProperty("asset")){let _=S.common.Asset.verify(T.asset);if(_)return"asset."+_}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!v.isString(T.amount))return"amount: string expected"}if(T.decimals!=null&&T.hasOwnProperty("decimals")){if(!v.isInteger(T.decimals)&&!(T.decimals&&v.isInteger(T.decimals.low)&&v.isInteger(T.decimals.high)))return"decimals: integer|Long expected"}return null},y.fromObject=function(T){if(T instanceof S.common.Coin)return T;let _=new S.common.Coin;if(T.asset!=null){if(typeof T.asset!=="object")throw TypeError(".common.Coin.asset: object expected");_.asset=S.common.Asset.fromObject(T.asset)}if(T.amount!=null)_.amount=String(T.amount);if(T.decimals!=null){if(v.Long)(_.decimals=v.Long.fromValue(T.decimals)).unsigned=!1;else if(typeof T.decimals==="string")_.decimals=Number.parseInt(T.decimals,10);else if(typeof T.decimals==="number")_.decimals=T.decimals;else if(typeof T.decimals==="object")_.decimals=new v.LongBits(T.decimals.low>>>0,T.decimals.high>>>0).toNumber()}return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)if(X.asset=null,X.amount="",v.Long){let W=new v.Long(0,0,!1);X.decimals=_.longs===String?W.toString():_.longs===Number?W.toNumber():W}else X.decimals=_.longs===String?"0":0;if(T.asset!=null&&T.hasOwnProperty("asset"))X.asset=S.common.Asset.toObject(T.asset,_);if(T.amount!=null&&T.hasOwnProperty("amount"))X.amount=T.amount;if(T.decimals!=null&&T.hasOwnProperty("decimals"))if(typeof T.decimals==="number")X.decimals=_.longs===String?String(T.decimals):T.decimals;else X.decimals=_.longs===String?v.Long.prototype.toString.call(T.decimals):_.longs===Number?new v.LongBits(T.decimals.low>>>0,T.decimals.high>>>0).toNumber():T.decimals;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f.PubKeySet=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.secp256k1="",y.prototype.ed25519="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.secp256k1!=null&&Object.hasOwnProperty.call(T,"secp256k1"))_.uint32(10).string(T.secp256k1);if(T.ed25519!=null&&Object.hasOwnProperty.call(T,"ed25519"))_.uint32(18).string(T.ed25519);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.common.PubKeySet;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.secp256k1=T.string();break;case 2:W.ed25519=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.secp256k1!=null&&T.hasOwnProperty("secp256k1")){if(!v.isString(T.secp256k1))return"secp256k1: string expected"}if(T.ed25519!=null&&T.hasOwnProperty("ed25519")){if(!v.isString(T.ed25519))return"ed25519: string expected"}return null},y.fromObject=function(T){if(T instanceof S.common.PubKeySet)return T;let _=new S.common.PubKeySet;if(T.secp256k1!=null)_.secp256k1=String(T.secp256k1);if(T.ed25519!=null)_.ed25519=String(T.ed25519);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)X.secp256k1="",X.ed25519="";if(T.secp256k1!=null&&T.hasOwnProperty("secp256k1"))X.secp256k1=T.secp256k1;if(T.ed25519!=null&&T.hasOwnProperty("ed25519"))X.ed25519=T.ed25519;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f.Tx=(()=>{function y(G){if(this.coins=[],this.gas=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.id="",y.prototype.chain="",y.prototype.fromAddress="",y.prototype.toAddress="",y.prototype.coins=v.emptyArray,y.prototype.gas=v.emptyArray,y.prototype.memo="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.id!=null&&Object.hasOwnProperty.call(T,"id"))_.uint32(10).string(T.id);if(T.chain!=null&&Object.hasOwnProperty.call(T,"chain"))_.uint32(18).string(T.chain);if(T.fromAddress!=null&&Object.hasOwnProperty.call(T,"fromAddress"))_.uint32(26).string(T.fromAddress);if(T.toAddress!=null&&Object.hasOwnProperty.call(T,"toAddress"))_.uint32(34).string(T.toAddress);if(T.coins?.length)for(let X=0;X<T.coins.length;++X)S.common.Coin.encode(T.coins[X],_.uint32(42).fork()).ldelim();if(T.gas?.length)for(let X=0;X<T.gas.length;++X)S.common.Coin.encode(T.gas[X],_.uint32(50).fork()).ldelim();if(T.memo!=null&&Object.hasOwnProperty.call(T,"memo"))_.uint32(58).string(T.memo);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.common.Tx;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.id=T.string();break;case 2:W.chain=T.string();break;case 3:W.fromAddress=T.string();break;case 4:W.toAddress=T.string();break;case 5:if(!W.coins?.length)W.coins=[];W.coins.push(S.common.Coin.decode(T,T.uint32()));break;case 6:if(!W.gas?.length)W.gas=[];W.gas.push(S.common.Coin.decode(T,T.uint32()));break;case 7:W.memo=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.id!=null&&T.hasOwnProperty("id")){if(!v.isString(T.id))return"id: string expected"}if(T.chain!=null&&T.hasOwnProperty("chain")){if(!v.isString(T.chain))return"chain: string expected"}if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress")){if(!v.isString(T.fromAddress))return"fromAddress: string expected"}if(T.toAddress!=null&&T.hasOwnProperty("toAddress")){if(!v.isString(T.toAddress))return"toAddress: string expected"}if(T.coins!=null&&T.hasOwnProperty("coins")){if(!Array.isArray(T.coins))return"coins: array expected";for(let _=0;_<T.coins.length;++_){let X=S.common.Coin.verify(T.coins[_]);if(X)return"coins."+X}}if(T.gas!=null&&T.hasOwnProperty("gas")){if(!Array.isArray(T.gas))return"gas: array expected";for(let _=0;_<T.gas.length;++_){let X=S.common.Coin.verify(T.gas[_]);if(X)return"gas."+X}}if(T.memo!=null&&T.hasOwnProperty("memo")){if(!v.isString(T.memo))return"memo: string expected"}return null},y.fromObject=function(T){if(T instanceof S.common.Tx)return T;let _=new S.common.Tx;if(T.id!=null)_.id=String(T.id);if(T.chain!=null)_.chain=String(T.chain);if(T.fromAddress!=null)_.fromAddress=String(T.fromAddress);if(T.toAddress!=null)_.toAddress=String(T.toAddress);if(T.coins){if(!Array.isArray(T.coins))throw TypeError(".common.Tx.coins: array expected");_.coins=[];for(let X=0;X<T.coins.length;++X){if(typeof T.coins[X]!=="object")throw TypeError(".common.Tx.coins: object expected");_.coins[X]=S.common.Coin.fromObject(T.coins[X])}}if(T.gas){if(!Array.isArray(T.gas))throw TypeError(".common.Tx.gas: array expected");_.gas=[];for(let X=0;X<T.gas.length;++X){if(typeof T.gas[X]!=="object")throw TypeError(".common.Tx.gas: object expected");_.gas[X]=S.common.Coin.fromObject(T.gas[X])}}if(T.memo!=null)_.memo=String(T.memo);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.coins=[],X.gas=[];if(_.defaults)X.id="",X.chain="",X.fromAddress="",X.toAddress="",X.memo="";if(T.id!=null&&T.hasOwnProperty("id"))X.id=T.id;if(T.chain!=null&&T.hasOwnProperty("chain"))X.chain=T.chain;if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress"))X.fromAddress=T.fromAddress;if(T.toAddress!=null&&T.hasOwnProperty("toAddress"))X.toAddress=T.toAddress;if(T.coins?.length){X.coins=[];for(let W=0;W<T.coins.length;++W)X.coins[W]=S.common.Coin.toObject(T.coins[W],_)}if(T.gas?.length){X.gas=[];for(let W=0;W<T.gas.length;++W)X.gas[W]=S.common.Coin.toObject(T.gas[W],_)}if(T.memo!=null&&T.hasOwnProperty("memo"))X.memo=T.memo;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f.Fee=(()=>{function y(G){if(this.coins=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.coins=v.emptyArray,y.prototype.poolDeduct="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.coins?.length)for(let X=0;X<T.coins.length;++X)S.common.Coin.encode(T.coins[X],_.uint32(10).fork()).ldelim();if(T.poolDeduct!=null&&Object.hasOwnProperty.call(T,"poolDeduct"))_.uint32(18).string(T.poolDeduct);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.common.Fee;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:if(!W.coins?.length)W.coins=[];W.coins.push(S.common.Coin.decode(T,T.uint32()));break;case 2:W.poolDeduct=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.coins!=null&&T.hasOwnProperty("coins")){if(!Array.isArray(T.coins))return"coins: array expected";for(let _=0;_<T.coins.length;++_){let X=S.common.Coin.verify(T.coins[_]);if(X)return"coins."+X}}if(T.poolDeduct!=null&&T.hasOwnProperty("poolDeduct")){if(!v.isString(T.poolDeduct))return"poolDeduct: string expected"}return null},y.fromObject=function(T){if(T instanceof S.common.Fee)return T;let _=new S.common.Fee;if(T.coins){if(!Array.isArray(T.coins))throw TypeError(".common.Fee.coins: array expected");_.coins=[];for(let X=0;X<T.coins.length;++X){if(typeof T.coins[X]!=="object")throw TypeError(".common.Fee.coins: object expected");_.coins[X]=S.common.Coin.fromObject(T.coins[X])}}if(T.poolDeduct!=null)_.poolDeduct=String(T.poolDeduct);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.coins=[];if(_.defaults)X.poolDeduct="";if(T.coins?.length){X.coins=[];for(let W=0;W<T.coins.length;++W)X.coins[W]=S.common.Coin.toObject(T.coins[W],_)}if(T.poolDeduct!=null&&T.hasOwnProperty("poolDeduct"))X.poolDeduct=T.poolDeduct;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f.ProtoUint=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.value="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.value!=null&&Object.hasOwnProperty.call(T,"value"))_.uint32(10).string(T.value);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.common.ProtoUint;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.value=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.value!=null&&T.hasOwnProperty("value")){if(!v.isString(T.value))return"value: string expected"}return null},y.fromObject=function(T){if(T instanceof S.common.ProtoUint)return T;let _=new S.common.ProtoUint;if(T.value!=null)_.value=String(T.value);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)X.value="";if(T.value!=null&&T.hasOwnProperty("value"))X.value=T.value;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f})();S.types=(()=>{let f={};return f.MsgDeposit=(()=>{function y(G){if(this.coins=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.coins=v.emptyArray,y.prototype.memo="",y.prototype.signer=v.newBuffer([]),y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.coins?.length)for(let X=0;X<T.coins.length;++X)S.common.Coin.encode(T.coins[X],_.uint32(10).fork()).ldelim();if(T.memo!=null&&Object.hasOwnProperty.call(T,"memo"))_.uint32(18).string(T.memo);if(T.signer!=null&&Object.hasOwnProperty.call(T,"signer"))_.uint32(26).bytes(T.signer);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.types.MsgDeposit;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:if(!W.coins?.length)W.coins=[];W.coins.push(S.common.Coin.decode(T,T.uint32()));break;case 2:W.memo=T.string();break;case 3:W.signer=T.bytes();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.coins!=null&&T.hasOwnProperty("coins")){if(!Array.isArray(T.coins))return"coins: array expected";for(let _=0;_<T.coins.length;++_){let X=S.common.Coin.verify(T.coins[_]);if(X)return"coins."+X}}if(T.memo!=null&&T.hasOwnProperty("memo")){if(!v.isString(T.memo))return"memo: string expected"}if(T.signer!=null&&T.hasOwnProperty("signer")){if(!(T.signer&&typeof T.signer.length==="number"||v.isString(T.signer)))return"signer: buffer expected"}return null},y.fromObject=function(T){if(T instanceof S.types.MsgDeposit)return T;let _=new S.types.MsgDeposit;if(T.coins){if(!Array.isArray(T.coins))throw TypeError(".types.MsgDeposit.coins: array expected");_.coins=[];for(let X=0;X<T.coins.length;++X){if(typeof T.coins[X]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");_.coins[X]=S.common.Coin.fromObject(T.coins[X])}}if(T.memo!=null)_.memo=String(T.memo);if(T.signer!=null){if(typeof T.signer==="string")v.base64.decode(T.signer,_.signer=v.newBuffer(v.base64.length(T.signer)),0);else if(T.signer.length)_.signer=T.signer}return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.coins=[];if(_.defaults){if(X.memo="",_.bytes===String)X.signer="";else if(X.signer=[],_.bytes!==Array)X.signer=v.newBuffer(X.signer)}if(T.coins?.length){X.coins=[];for(let W=0;W<T.coins.length;++W)X.coins[W]=S.common.Coin.toObject(T.coins[W],_)}if(T.memo!=null&&T.hasOwnProperty("memo"))X.memo=T.memo;if(T.signer!=null&&T.hasOwnProperty("signer"))X.signer=_.bytes===String?v.base64.encode(T.signer,0,T.signer.length):_.bytes===Array?Array.prototype.slice.call(T.signer):T.signer;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f.MsgSend=(()=>{function y(G){if(this.amount=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.fromAddress=v.newBuffer([]),y.prototype.toAddress=v.newBuffer([]),y.prototype.amount=v.emptyArray,y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.fromAddress!=null&&Object.hasOwnProperty.call(T,"fromAddress"))_.uint32(10).bytes(T.fromAddress);if(T.toAddress!=null&&Object.hasOwnProperty.call(T,"toAddress"))_.uint32(18).bytes(T.toAddress);if(T.amount?.length)for(let X=0;X<T.amount.length;++X)S.cosmos.base.v1beta1.Coin.encode(T.amount[X],_.uint32(26).fork()).ldelim();return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.types.MsgSend;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.fromAddress=T.bytes();break;case 2:W.toAddress=T.bytes();break;case 3:if(!W.amount?.length)W.amount=[];W.amount.push(S.cosmos.base.v1beta1.Coin.decode(T,T.uint32()));break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress")){if(!(T.fromAddress&&typeof T.fromAddress.length==="number"||v.isString(T.fromAddress)))return"fromAddress: buffer expected"}if(T.toAddress!=null&&T.hasOwnProperty("toAddress")){if(!(T.toAddress&&typeof T.toAddress.length==="number"||v.isString(T.toAddress)))return"toAddress: buffer expected"}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!Array.isArray(T.amount))return"amount: array expected";for(let _=0;_<T.amount.length;++_){let X=S.cosmos.base.v1beta1.Coin.verify(T.amount[_]);if(X)return"amount."+X}}return null},y.fromObject=function(T){if(T instanceof S.types.MsgSend)return T;let _=new S.types.MsgSend;if(T.fromAddress!=null){if(typeof T.fromAddress==="string")v.base64.decode(T.fromAddress,_.fromAddress=v.newBuffer(v.base64.length(T.fromAddress)),0);else if(T.fromAddress.length)_.fromAddress=T.fromAddress}if(T.toAddress!=null){if(typeof T.toAddress==="string")v.base64.decode(T.toAddress,_.toAddress=v.newBuffer(v.base64.length(T.toAddress)),0);else if(T.toAddress.length)_.toAddress=T.toAddress}if(T.amount){if(!Array.isArray(T.amount))throw TypeError(".types.MsgSend.amount: array expected");_.amount=[];for(let X=0;X<T.amount.length;++X){if(typeof T.amount[X]!=="object")throw TypeError(".types.MsgSend.amount: object expected");_.amount[X]=S.cosmos.base.v1beta1.Coin.fromObject(T.amount[X])}}return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.amount=[];if(_.defaults){if(_.bytes===String)X.fromAddress="";else if(X.fromAddress=[],_.bytes!==Array)X.fromAddress=v.newBuffer(X.fromAddress);if(_.bytes===String)X.toAddress="";else if(X.toAddress=[],_.bytes!==Array)X.toAddress=v.newBuffer(X.toAddress)}if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress"))X.fromAddress=_.bytes===String?v.base64.encode(T.fromAddress,0,T.fromAddress.length):_.bytes===Array?Array.prototype.slice.call(T.fromAddress):T.fromAddress;if(T.toAddress!=null&&T.hasOwnProperty("toAddress"))X.toAddress=_.bytes===String?v.base64.encode(T.toAddress,0,T.toAddress.length):_.bytes===Array?Array.prototype.slice.call(T.toAddress):T.toAddress;if(T.amount?.length){X.amount=[];for(let W=0;W<T.amount.length;++W)X.amount[W]=S.cosmos.base.v1beta1.Coin.toObject(T.amount[W],_)}return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f})();S.cosmos=(()=>{let f={};return f.base=(()=>{let y={};return y.v1beta1=(()=>{let G={};return G.Coin=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.denom="",T.prototype.amount="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=ET.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))W.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))W.uint32(18).string(X.amount);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof l))X=l.create(X);let Z=W===void 0?X.len:X.pos+W,J=new S.cosmos.base.v1beta1.Coin;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.denom=X.string();break;case 2:J.amount=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof l))X=new l(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!v.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!v.isString(X.amount))return"amount: string expected"}return null},T.fromObject=function(X){if(X instanceof S.cosmos.base.v1beta1.Coin)return X;let W=new S.cosmos.base.v1beta1.Coin;if(X.denom!=null)W.denom=String(X.denom);if(X.amount!=null)W.amount=String(X.amount);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.denom="",Z.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))Z.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))Z.amount=X.amount;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},T})(),G.DecCoin=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.denom="",T.prototype.amount="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=ET.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))W.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))W.uint32(18).string(X.amount);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof l))X=l.create(X);let Z=W===void 0?X.len:X.pos+W,J=new S.cosmos.base.v1beta1.DecCoin;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.denom=X.string();break;case 2:J.amount=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof l))X=new l(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!v.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!v.isString(X.amount))return"amount: string expected"}return null},T.fromObject=function(X){if(X instanceof S.cosmos.base.v1beta1.DecCoin)return X;let W=new S.cosmos.base.v1beta1.DecCoin;if(X.denom!=null)W.denom=String(X.denom);if(X.amount!=null)W.amount=String(X.amount);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.denom="",Z.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))Z.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))Z.amount=X.amount;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},T})(),G.IntProto=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.int="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=ET.create();if(X.int!=null&&Object.hasOwnProperty.call(X,"int"))W.uint32(10).string(X.int);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof l))X=l.create(X);let Z=W===void 0?X.len:X.pos+W,J=new S.cosmos.base.v1beta1.IntProto;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.int=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof l))X=new l(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.int!=null&&X.hasOwnProperty("int")){if(!v.isString(X.int))return"int: string expected"}return null},T.fromObject=function(X){if(X instanceof S.cosmos.base.v1beta1.IntProto)return X;let W=new S.cosmos.base.v1beta1.IntProto;if(X.int!=null)W.int=String(X.int);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.int="";if(X.int!=null&&X.hasOwnProperty("int"))Z.int=X.int;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},T})(),G.DecProto=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.dec="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=ET.create();if(X.dec!=null&&Object.hasOwnProperty.call(X,"dec"))W.uint32(10).string(X.dec);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof l))X=l.create(X);let Z=W===void 0?X.len:X.pos+W,J=new S.cosmos.base.v1beta1.DecProto;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.dec=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof l))X=new l(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.dec!=null&&X.hasOwnProperty("dec")){if(!v.isString(X.dec))return"dec: string expected"}return null},T.fromObject=function(X){if(X instanceof S.cosmos.base.v1beta1.DecProto)return X;let W=new S.cosmos.base.v1beta1.DecProto;if(X.dec!=null)W.dec=String(X.dec);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.dec="";if(X.dec!=null&&X.hasOwnProperty("dec"))Z.dec=X.dec;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},T})(),G})(),y})(),f})()});async function Uf(){let{$root:f}=await Promise.resolve().then(() => (P_(),A_)),y=await import("@cosmjs/proto-signing"),G=y.Registry??y.default?.Registry,T=await import("@cosmjs/stargate"),_=T.defaultRegistryTypes??T.default?.defaultRegistryTypes;return new G([..._,["/types.MsgSend",f.types.MsgSend],["/types.MsgDeposit",f.types.MsgDeposit]])}async function aT(f){let y=await import("@cosmjs/stargate"),G=y.AminoTypes??y.default?.AminoTypes,T=f===x_.Chain.THORChain?"thorchain":"mayachain";return new G({"/types.MsgDeposit":{aminoType:`${T}/MsgDeposit`,fromAmino:({signer:_,...X})=>({...X,signer:T0(_)}),toAmino:({signer:_,...X})=>({...X,signer:f0(_)})},"/types.MsgSend":{aminoType:`${T}/MsgSend`,fromAmino:({from_address:_,to_address:X,...W})=>({...W,fromAddress:T0(_),toAddress:T0(X)}),toAmino:({fromAddress:_,toAddress:X,...W})=>({...W,from_address:f0(_),to_address:f0(X)})}})}var x_;var M1=E(()=>{q1();x_=require("@swapkit/helpers")});function D1(f){let{assetValue:y,recipient:G,memo:T,sender:_,asSignable:X,asAminoMessage:W}=f;if(G)return E_({asAminoMessage:W,asSignable:X,assetValue:y,memo:T,recipient:G,sender:_});return n_({asAminoMessage:W,asSignable:X,assetValue:y,memo:T,sender:_})}async function E_({sender:f,recipient:y,assetValue:G,memo:T="",asSignable:_=!0,asAminoMessage:X=!1,sequence:W,accountNumber:Z}){let J=G.chain,Q=await CT.getRPCUrl(J),L=await S_({rpcUrl:Q,sender:f}),{chainId:O}=CT.getChainConfig(J),U=B1({assetValue:G,recipient:y,sender:f}),M=_?await sT(X?U:eT(U),J):U;return{accountNumber:Z||L.accountNumber,chainId:O,fee:uT(J),memo:T,msgs:[M],sequence:W||L.sequence}}async function n_({sender:f,assetValue:y,memo:G="",asSignable:T=!0,asAminoMessage:_=!1,sequence:X,accountNumber:W}){let Z=y.chain,J=await CT.getRPCUrl(Z),Q=await S_({rpcUrl:J,sender:f}),{chainId:L}=CT.getChainConfig(Z),O=w1({assetValue:y,memo:G,sender:f}),U=T?await sT(_?O:eT(O),Z):O;return{accountNumber:W||Q.accountNumber,chainId:L,fee:uT(Z),memo:G,msgs:[U],sequence:X||Q.sequence}}function eT(f){if(f.type==="thorchain/MsgSend"||f.type==="mayachain/MsgSend")return f;return{...f,value:{...f.value,coins:f.value.coins.map((y)=>{let G=CT.AssetValue.from({asset:y.asset}),T=(G.isSynthetic?G.symbol.split("/")?.[1]:G.symbol)?.toUpperCase(),_=(G.isSynthetic?G.symbol.split("/")?.[0]:G.chain)?.toUpperCase();return{...y,asset:{chain:_,symbol:T,synth:G.isSynthetic,ticker:G.ticker}}})}}}async function G0({chain:f,memo:y,msgs:G}){let T=await Uf(),_=await aT(f),X={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:y,messages:G.map((W)=>_.fromAmino(W))}};return T.encode(X)}var CT,MX,BX,B1=({sender:f,recipient:y,assetValue:G})=>{return{type:`${G.chain===CT.Chain.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:G.getBaseValue("string"),denom:rT(G.symbol,!0)}],from_address:f,to_address:y}}},w1=({sender:f,assetValue:y,memo:G=""})=>{return{type:`${y.chain===CT.Chain.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:y.getBaseValue("string"),asset:y0(y)}],memo:G,signer:f}}},i0=({sender:f,recipient:y,assetValue:G,memo:T})=>{return!y?w1({assetValue:G,memo:T,sender:f}):B1({assetValue:G,recipient:y,sender:f})},sT=async(f,y)=>{return(await aT(y)).fromAmino(f)},S_=async({rpcUrl:f,sender:y})=>{let T=await(await hT(f)).getAccount(y);if(!T)throw new CT.SwapKitError("toolbox_cosmos_account_not_found",{sender:y});return T};var V_=E(()=>{_0();M1();CT=require("@swapkit/helpers"),MX=uT(CT.Chain.THORChain).gas,BX=uT(CT.Chain.Maya).gas});var v_=()=>{};var o_=E(()=>{v_()});var O1=E(()=>{q1();V_();M1();o_()});async function C1(f,y){try{let T=(await R1.SwapKitApi.getGasRate()).find((_)=>_.chainId===f)?.value;return T?Number.parseFloat(T):y}catch{return y}}async function H1({phrase:f,prefix:y,...G}){let T="derivationPath"in G?G.derivationPath:`${V.DerivationPath[G.chain]}/${G.index}`;return await u_.DirectSecp256k1HdWallet.fromMnemonic(f,{hdPaths:[l_.stringToPath(T)],prefix:y})}async function wX({privateKey:f,prefix:y}){let G=await import("@cosmjs/proto-signing");return(G.DirectSecp256k1Wallet??G.default?.DirectSecp256k1Wallet).fromKey(f,y)}function h_(f){return async function({signature:G,message:T,address:_}){let X=await f(_);if(!X?.pubkey)throw new V.SwapKitError("toolbox_cosmos_verify_signature_no_pubkey");let W=await import("@cosmjs/crypto"),Z=W.Secp256k1Signature??W.default?.Secp256k1Signature,J=W.Secp256k1??W.default?.Secp256k1,Q=Z.fromFixedLength(Tf.base64.decode(G));return J.verifySignature(Q,Tf.base64.decode(T),X.pubkey.value)}}function W0({chain:f,...y}){let G=V.CosmosChainPrefixes[f],T="index"in y?y.index||0:0,_=V.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:V.updateDerivationPath(V.NetworkDerivationPath[f],{index:T})),X;async function W(){if(X)return X;return X=await X0.match(y).with({phrase:X0.P.string},({phrase:M})=>H1({derivationPath:_,phrase:M,prefix:G})).with({signer:X0.P.any},({signer:M})=>M).otherwise(()=>{return}),X}async function Z(M){let N=await V.getRPCUrl(f);return(await hT(N)).getAccount(M)}async function J(){let M=await W(),[N]=await M?.getAccounts()||[];return N?.address}async function Q(){let M=await W(),[N]=await M?.getAccounts()||[];if(!N?.pubkey)throw new V.SwapKitError("toolbox_cosmos_signer_not_defined");return Tf.base64.encode(N?.pubkey)}async function L(M){let N=await W(),z=await J(),B=await V.getRPCUrl(f);if(!(N&&z))throw new V.SwapKitError("toolbox_cosmos_signer_not_defined");return await(await Nf(B,N)).sign(z,M.msgs,M.fee,M.memo,{accountNumber:M.accountNumber,chainId:M.chainId,sequence:M.sequence})}async function O(M){let N=await W(),z=await J(),B=await V.getRPCUrl(f);if(!(N&&z))throw new V.SwapKitError("toolbox_cosmos_signer_not_defined");let H=await(await Nf(B,N)).signAndBroadcast(z,M.msgs,M.fee,M.memo);if(H.code!==0)throw new V.SwapKitError("core_swap_transaction_error",{code:H.code,message:H.rawLog});return H.transactionHash}async function U({recipient:M,assetValue:N,memo:z="",feeRate:B,feeOptionKey:k=V.FeeOption.Fast}){let H=await W(),F=await J();if(!(H&&F))throw new V.SwapKitError("toolbox_cosmos_signer_not_defined");let w=await V.getRPCUrl(f),Y=V.AssetValue.from({chain:f}),q=y0(Y),D=B||HX((await j_(f,K_[f]))[k],q),R=await Nf(w,H),$=rT(N.symbol),C=[{amount:N.getBaseValue("string"),denom:$}],{transactionHash:I}=await R.sendTokens(F,M,C,D,z);return I}return{createPrivateKeyFromPhrase:CX(_),createTransaction:N1,fetchFeeRateFromSwapKit:C1,getAccount:Z,getAddress:J,getBalance:async(M,N)=>{let z=await b_(f)(M),B=await Promise.all(z.filter(({denom:k})=>k&&!k.includes("IBC/")&&!([V.Chain.THORChain,V.Chain.Maya].includes(f)&&k.split("-").length>2)).map(({denom:k,amount:H})=>{let F=[V.Chain.THORChain,V.Chain.Maya].includes(f)&&(k.includes("/")||k.includes("˜"))?`${f}.${k}`:k;return U1(F,H)}));if(B.length===0)return[V.AssetValue.from({chain:f})];return B},getBalanceAsDenoms:b_(f),getFees:()=>j_(f,K_[f]),getPubKey:Q,getSignerFromPhrase:({phrase:M,derivationPath:N})=>H1({derivationPath:V.derivationPathToString(N),index:T,phrase:M,prefix:G}),getSignerFromPrivateKey:async(M)=>{let N=await import("@cosmjs/proto-signing");return(N.DirectSecp256k1Wallet??N.default?.DirectSecp256k1Wallet).fromKey(M,G)},signAndBroadcastTransaction:O,signTransaction:L,transfer:U,validateAddress:m_(f),verifySignature:h_(Z)}}async function DX(f,y){try{let T=(await R1.SwapKitApi.getGasRate()).find((_)=>_.chainId===f)?.value;return T?Number.parseFloat(T):y}catch{return y}}function OX({assetValue:{chain:f}}){return V.AssetValue.from({chain:f,value:RX(f)})}async function j_(f,y){let{chainId:G,baseDecimal:T}=V.getChainConfig(f),_=await C1(G,y);return{average:V.SwapKitNumber.fromBigInt(BigInt(_),T),fast:V.SwapKitNumber.fromBigInt(BigInt(V.applyFeeMultiplier(_,V.FeeOption.Fast,!0)),T),fastest:V.SwapKitNumber.fromBigInt(BigInt(V.applyFeeMultiplier(_,V.FeeOption.Fastest,!0)),T)}}function HX(f,y){return{amount:[{amount:f.getBaseValue("string"),denom:y}],gas:"200000"}}function RX(f){return{[V.Chain.Cosmos]:0.007,[V.Chain.Kujira]:0.02,[V.Chain.Noble]:0.01,[V.Chain.THORChain]:0.02,[V.Chain.Maya]:0.02,[V.Chain.Harbor]:0.02}[f]||0}function m_(f){let y=V.CosmosChainPrefixes[f];return function(T){if(!T.startsWith(y))return!1;try{let{prefix:_,words:X}=Tf.bech32.decode(T);return Tf.bech32.encode(_,X)===T.toLocaleLowerCase()}catch{return!1}}}function b_(f){return async function(G){let T=await V.getRPCUrl(f);return(await(await hT(T)).getAllBalances(G)).map((Z)=>({...Z,denom:Z.denom.includes("/")?Z.denom.toUpperCase():Z.denom}))}}function CX(f){return async function(G){let T=await import("@cosmjs/crypto"),_=T.stringToPath??T.default?.stringToPath,X=T.Slip10Curve??T.default?.Slip10Curve,W=T.Slip10??T.default?.Slip10,Z=T.EnglishMnemonic??T.default?.EnglishMnemonic,J=T.Bip39??T.default?.Bip39,Q=new Z(G),L=await J.mnemonicToSeed(Q),{privkey:O}=W.derivePath(X.Secp256k1,L,_(f));return O}}var l_,u_,Tf,V,R1,X0,K_;var d0=E(()=>{_0();l_=require("@cosmjs/crypto"),u_=require("@cosmjs/proto-signing"),Tf=require("@scure/base"),V=require("@swapkit/helpers"),R1=require("@swapkit/helpers/api"),X0=require("ts-pattern");K_={[V.Chain.Cosmos]:1000,[V.Chain.Kujira]:1000,[V.Chain.Noble]:1000,[V.Chain.THORChain]:5000000,[V.Chain.Maya]:5000000,[V.Chain.Harbor]:5000000}});function FX({prefix:f,derivationPath:y}){return async function(T,_=0){let X=await import("@cosmjs/amino"),W=X.Secp256k1HdWallet??X.default?.Secp256k1HdWallet,Z=await import("@cosmjs/crypto"),J=Z.stringToPath??Z.default?.stringToPath;return W.fromMnemonic(T,{hdPaths:[J(`${y}/${_}`)],prefix:f})}}function kX(f){return ff.base64.encode(f)}function $X(f){return async function({wallet:G,tx:T}){let{msgs:_,accountNumber:X,sequence:W,chainId:Z,fee:J,memo:Q}=typeof T==="string"?JSON.parse(T):T,L=(await G.getAccounts())?.[0]?.address||"",O=await aT(f),U=await Uf(),M=await z1(G,{aminoTypes:O,registry:U}),N=[];for(let k of _){let H=await sT(k,f);N.push(H)}let{signatures:[z]}=await M.sign(L,N,J,Q,{accountNumber:X,chainId:Z,sequence:W});return{bodyBytes:await G0({chain:f,memo:Q,msgs:_.map(eT)}),signature:kX(z)}}}function IX({prefix:f,chain:y}){return async function(T,_,X,W,Z){let J=await s.getRPCUrl(y),{encodeSecp256k1Pubkey:Q,pubkeyToAddress:L}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:O}=(await import("@cosmjs/stargate")).default,{sequence:U,fee:M}=JSON.parse(T),N=await p_(X,W),z=_.map((H)=>[L(Q(ff.base64.decode(H.pubKey)),f),ff.base64.decode(H.signature)]),B=await hT(J),{transactionHash:k}=await B.broadcastTx(O(N,U,M,Z,new Map(z)));return k}}async function p_(f,y,G=!0){let{createMultisigThresholdPubkey:T,encodeSecp256k1Pubkey:_}=(await import("@cosmjs/amino")).default;return T(f.map((X)=>_(ff.base64.decode(X))),y,G)}function AX(f){return ff.base64.decode(f)}async function PX({privateKey:f,message:y}){let{Secp256k1:G}=(await import("@cosmjs/crypto")).default,T=await G.createSignature(ff.base64.decode(y),f);return ff.base64.encode(Buffer.concat([T.r(32),T.s(32)]))}function F1({chain:f,...y}){let{nodeUrl:G}=s.getChainConfig(f),{isStagenet:T}=s.SKConfig.get("envs"),_=f===s.Chain.THORChain,X=`${T?"s":""}${s.CosmosChainPrefixes[f]}`,W="index"in y?y.index||0:0,Z="derivationPath"in y&&y.derivationPath?y.derivationPath:s.updateDerivationPath(s.NetworkDerivationPath[f],{index:W}),J=W0({chain:f,...y}),Q=uT(f);async function L(){let U,M=`${G}/${_?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:N}}=await s.RequestClient.get(M);if(!N||Number.isNaN(N)||N<0)throw new s.SwapKitError("toolbox_cosmos_invalid_fee",{nativeFee:N.toString()});U=new s.SwapKitNumber(N)}catch{U=new s.SwapKitNumber({decimal:s.getChainConfig(f).baseDecimal,value:_?0.02:1})}return{[s.FeeOption.Average]:U,[s.FeeOption.Fast]:U,[s.FeeOption.Fastest]:U}}async function O({assetValue:U,memo:M="",recipient:N}){let z=await s.getRPCUrl(f),B=await Z0.match(y).with({phrase:Z0.P.string},({phrase:I})=>J.getSignerFromPhrase({derivationPath:Z,phrase:I})).with({signer:Z0.P.any},({signer:I})=>I).otherwise(()=>{return}),{TxRaw:k}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),H=(await B?.getAccounts())?.[0]?.address;if(!(H&&B))throw new s.SwapKitError("toolbox_cosmos_no_signer");let F="signAmino"in B,w=await Uf(),Y=await aT(f),q=await Nf(z,B,{aminoTypes:Y,registry:w}),D=i0({assetValue:U,memo:M,recipient:N,sender:H});if(F){let I=await sT(D,f),{signatures:P,authInfoBytes:n}=await q.sign(H,[I],Q,M),b=k.encode({authInfoBytes:n,bodyBytes:await G0({chain:f,memo:M,msgs:[D].map(eT)}),signatures:P}).finish();return(await q.broadcastTx(b)).transactionHash}let R=eT(D),$=await sT(R,f);return(await q.signAndBroadcast(H,[$],Q,M)).transactionHash}return{...J,broadcastMultisigTx:IX({chain:f,prefix:X}),buildAminoMsg:i0,buildEncodedTxBody:G0,convertToSignable:sT,createDefaultAminoTypes:()=>aT(f),createDefaultRegistry:Uf,createMultisig:p_,createTransaction:D1,deposit:O,getFees:L,importSignature:AX,parseAminoMessageForDirectSigning:eT,pubkeyToAddress:async(U)=>{let{pubkeyToAddress:M}=(await import("@cosmjs/amino")).default;return M(U,X)},secp256k1HdWalletFromMnemonic:FX({derivationPath:s.derivationPathToString(Z),prefix:X}),signMultisigTx:$X(f),signWithPrivateKey:PX,transfer:O}}var ff,s,Z0;var k1=E(()=>{O1();_0();d0();ff=require("@scure/base"),s=require("@swapkit/helpers"),Z0=require("ts-pattern")});var yf,xX=(f,y)=>{switch(f){case yf.Chain.Cosmos:case yf.Chain.Kujira:case yf.Chain.Noble:return W0({chain:f,...y});case yf.Chain.Maya:case yf.Chain.THORChain:return F1({chain:f,...y});default:throw new yf.SwapKitError("toolbox_cosmos_not_supported",{chain:f})}};var t_=E(()=>{d0();k1();yf=require("@swapkit/helpers");d0();k1()});var r0={};wT(r0,{verifySignature:()=>h_,transferMsgAmino:()=>B1,toBase64:()=>LX,parseAminoMessageForDirectSigning:()=>eT,getSignerFromPrivateKey:()=>wX,getSignerFromPhrase:()=>H1,getMsgSendDenom:()=>rT,getFeeRateFromSwapKit:()=>DX,getDenomWithChain:()=>y0,getDefaultChainFee:()=>uT,getCosmosToolbox:()=>xX,getCosmosAddressValidator:()=>m_,getAssetFromDenom:()=>U1,fromBase64:()=>zX,fetchFeeRateFromSwapKit:()=>C1,estimateTransactionFee:()=>OX,depositMsgAmino:()=>w1,createTransaction:()=>D1,createThorchainToolbox:()=>F1,createStargateClient:()=>hT,createSigningStargateClient:()=>Nf,createOfflineStargateClient:()=>z1,createDefaultRegistry:()=>Uf,createDefaultAminoTypes:()=>aT,createCosmosToolbox:()=>W0,cosmosCreateTransaction:()=>N1,convertToSignable:()=>sT,buildTransferTx:()=>E_,buildEncodedTxBody:()=>G0,buildDepositTx:()=>n_,buildAminoMsg:()=>i0,bech32ToBase64:()=>T0,base64ToBech32:()=>f0,YUM_KUJIRA_FACTORY_DENOM:()=>F_,USK_KUJIRA_FACTORY_DENOM:()=>L1,THORCHAIN_GAS_VALUE:()=>MX,MAYA_GAS_VALUE:()=>BX,DEFAULT_NOBLE_FEE_MAINNET:()=>I_,DEFAULT_KUJI_FEE_MAINNET:()=>$_,DEFAULT_COSMOS_FEE_MAINNET:()=>k_});module.exports=HT(r0);var a0=E(()=>{O1();t_();_0()});async function i_(f){let y=d.AssetValue.from({address:f,chain:d.Chain.Solana});if(y.symbol!=="UNKNOWN")return{decimals:y.decimal||0,id:f,logoURI:y.getIconUrl(),name:y.symbol,symbol:y.ticker};let G=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(f)}`;try{let T=await fetch(G);if(!T.ok)return null;let _=await T.json();if(!Array.isArray(_)||_.length===0)return null;return _.find((W)=>W.id===f)||null}catch{return null}}async function SX(f){let y=await mT(),{PublicKey:G}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:T}=await import("@solana/spl-token"),_=new G(f),{baseDecimal:X}=d.getChainConfig(d.Chain.Solana),W=await y.getBalance(_),Z=[d.AssetValue.from({chain:d.Chain.Solana,fromBaseDecimal:X,value:W||0})],J=await y.getParsedTokenAccountsByOwner(_,{programId:T});for(let{account:Q}of J.value){let L=Q.data.parsed.info,O=L.mint,U=L.tokenAmount.amount;if(Number(U)===0)continue;let M=await i_(O),N=M?.symbol||"UNKNOWN",z=M?.decimals||L.tokenAmount.decimals;Z.push(d.AssetValue.from({asset:`${d.Chain.Solana}.${N}-${O}`,fromBaseDecimal:z,value:U}))}return Z}function I1(f){try{let y=new pT.PublicKey(f);return pT.PublicKey.isOnCurve(y.toBytes())}catch{return!1}}function EX(f){let y=f&&"index"in f?f.index||0:0,G=d.derivationPathToString(f&&"derivationPath"in f&&f.derivationPath?f.derivationPath:d.updateDerivationPath(d.NetworkDerivationPath[d.Chain.Solana],{index:y})),T;async function _(){if(T)return T;return T=await J0.match(f).with({phrase:J0.P.string},({phrase:W})=>$1({derivationPath:G,phrase:W})).with({signer:J0.P.any},({signer:W})=>W).otherwise(()=>{return}),T}async function X(){let W=await _();return W?.publicKey?g_(W.publicKey):""}return{broadcastTransaction:s0(mT),createKeysForPath:$1,createTransaction:A1(mT),createTransactionFromInstructions:oX,estimateTransactionFee:nX(mT),getAddress:X,getAddressFromPubKey:g_,getBalance:ST(d.Chain.Solana),getBalanceFromRPC:SX,getConnection:mT,getPubkeyFromAddress:(W)=>new pT.PublicKey(W),signAndBroadcastTransaction:async(W)=>{let Z=await c_(mT,_)(W);return s0(mT)(Z)},signTransaction:c_(mT,_),transfer:KX(mT,_),validateAddress:I1}}function nX(f){return async({recipient:y,assetValue:G,memo:T,isProgramDerivedAddress:_,sender:X})=>{let W=await f(),J=(await A1(f)({assetValue:G,isProgramDerivedAddress:_,memo:T,recipient:y,sender:X})).compileMessage(),Q=await W.getFeeForMessage(J);if(Q.value===null)throw new d.SwapKitError("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:L}=d.getChainConfig(d.Chain.Solana);return d.AssetValue.from({chain:d.Chain.Solana,fromBaseDecimal:L,value:Q.value})}}async function mT(){let{Connection:f}=await import("@solana/web3.js"),y=await d.getRPCUrl(d.Chain.Solana);return new f(y,{commitment:"confirmed",fetchMiddleware:(G,T,_)=>{let X={};for(let[W,Z]of Object.entries(T?.headers??{})){let J=W.toLowerCase();if(J!=="pragma"&&J!=="solana-client")X[W]=Z}_(G,{...T,headers:X})}})}function VX(f){return async({assetValue:y,recipient:G,sender:T,isProgramDerivedAddress:_})=>{let X=await f(),W=new pT.PublicKey(T);if(y.isGasAsset){let{Transaction:Z,SystemProgram:J}=await import("@solana/web3.js");return new Z().add(J.transfer({fromPubkey:W,lamports:y.getBaseValue("number"),toPubkey:new pT.PublicKey(G)}))}if(y.address)return vX({amount:y.getBaseValue("number"),connection:X,decimals:y.decimal,from:W,isProgramDerivedAddress:_,recipient:G,tokenAddress:y.address});return}}async function vX({tokenAddress:f,recipient:y,from:G,connection:T,amount:_,decimals:X,isProgramDerivedAddress:W}){let{getAssociatedTokenAddress:Z,getAccount:J,createAssociatedTokenAccountInstruction:Q,createTransferCheckedInstruction:L}=await import("@solana/spl-token"),{Transaction:O}=await import("@solana/web3.js"),U=new O,M=new pT.PublicKey(f),N=await Z(M,G),z=new pT.PublicKey(y),B=await Z(M,z,W),k=!1;try{await J(T,B),k=!0}catch{}if(!k)U.add(Q(G,B,z,M));return U.add(L(N,M,B,G,_,X)),U}function A1(f){return async({recipient:y,assetValue:G,memo:T,isProgramDerivedAddress:_,sender:X})=>{let{createMemoInstruction:W}=await import("@solana/spl-memo"),Z=new pT.PublicKey(X);if(!(_||I1(y)))throw new d.SwapKitError("core_transaction_invalid_recipient_address");let J=await f(),Q=await VX(f)({assetValue:G,isProgramDerivedAddress:_,recipient:y,sender:X});if(!Q)throw new d.SwapKitError("core_transaction_invalid_sender_address");if(T)Q.add(W(T));let L=await J.getLatestBlockhash();return Q.recentBlockhash=L.blockhash,Q.feePayer=Z,Q}}async function oX({instructions:f}){let{Transaction:y}=await import("@solana/web3.js"),G=new y().add(...f);if(!G)throw new d.SwapKitError("core_transaction_invalid_sender_address");return G}function KX(f,y){return async({recipient:G,assetValue:T,memo:_,isProgramDerivedAddress:X})=>{let W=await y();if(!W)throw new d.SwapKitError("core_transaction_invalid_sender_address");let Z=W.publicKey?.toString()??(await W.connect()).publicKey.toString(),J=await A1(f)({assetValue:T,isProgramDerivedAddress:X,memo:_,recipient:G,sender:Z});if("signTransaction"in W){let Q=await W.signTransaction(J);return s0(f)(Q)}return J.sign(W),s0(f)(J)}}function s0(f){return async(y)=>{return(await f()).sendRawTransaction(y.serialize())}}function c_(f,y){return async(G)=>{let T=await y();if(!T)throw new d.SwapKitError("toolbox_solana_no_signer");let{VersionedTransaction:_}=await import("@solana/web3.js");if(!(G instanceof _)){let W=await(await f()).getLatestBlockhash();G.recentBlockhash=W.blockhash,G.feePayer=T.publicKey||void 0}if("connect"in T)return await T.signTransaction(G);return G.sign([T]),G}}async function $1({phrase:f,derivationPath:y=d.DerivationPath.SOL}){let{HDKey:G}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:T}=await import("@scure/bip39"),{Keypair:_}=await import("@solana/web3.js"),X=T(f),W=G.fromMasterSeed(X);return _.fromSeed(W.derive(y,!0).privateKey)}function g_(f){return f.toString()}var pT,d,J0;var d_=E(()=>{dT();pT=require("@solana/web3.js"),d=require("@swapkit/helpers"),J0=require("ts-pattern")});var P1={};wT(P1,{validateSolanaAddress:()=>I1,getSolanaToolbox:()=>EX,fetchTokenMetaData:()=>i_,createKeysForPath:()=>$1});module.exports=HT(P1);var x1=E(()=>{d_()});function e0(f){if(!f)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(f)}async function Ty({phrase:f,derivationPath:y=p.DerivationPath.STRK}){let{HDKey:G}=await import("@scure/bip32"),{mnemonicToSeedSync:T}=await import("@scure/bip39"),{ec:_,hash:X,encode:W,CallData:Z}=await import("starknet"),J=T(f),L=G.fromMasterSeed(J).derive(y);if(!L.privateKey)throw new p.SwapKitError("toolbox_starknet_no_signer");let O=W.addHexPrefix(Buffer.from(L.privateKey).toString("hex")),U=_.starkCurve.grindKey(O),M=W.addHexPrefix(U),N=_.starkCurve.getStarkKey(M),z=Z.compile([N,0]);return{address:X.calculateContractAddressFromHash(N,E1,z,0),privateKey:M,publicKey:N}}async function n1({phrase:f,derivationPath:y=p.DerivationPath.STRK}){let{Account:G,RpcProvider:T}=await import("starknet"),{privateKey:_,address:X}=await Ty({derivationPath:y,phrase:f}),W=await p.getRPCUrl(p.Chain.Starknet),Z=new T({nodeUrl:W});return new G({address:X,provider:Z,signer:_})}function a_(f){let y=p.Chain.Starknet,G=f&&"index"in f?f.index||0:0,T=p.derivationPathToString(f&&"derivationPath"in f&&f.derivationPath?f.derivationPath:p.updateDerivationPath(p.NetworkDerivationPath[y],{index:G})),_,X,W;async function Z(){if(X)return X;let{RpcProvider:Y}=await import("starknet"),q=await p.getRPCUrl(y);return X=new Y({nodeUrl:q}),X}async function J(Y){let q=await Z(),D=Y||await U();if(!D)return!1;try{return await q.getClassHashAt(D),!0}catch(R){if(R instanceof Error&&R.message.includes("Contract not found"))return!1;let $=R;if($?.code===20||$?.code===19)return!1;throw R}}async function Q(){let{CallData:Y,hash:q}=await import("starknet"),D=await Z(),R=await O();if(!R)throw new p.SwapKitError("toolbox_starknet_no_signer");if(!W)throw new p.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await J())return R.address;let C=Y.compile([W,0]);if(q.calculateContractAddressFromHash(W,E1,C,0).toLowerCase()!==R.address.toLowerCase())throw new p.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let P={addressSalt:W,classHash:E1,constructorCalldata:C},{transaction_hash:n}=await R.deployAccount(P);return await D.waitForTransaction(n),n}async function L(){if(!await J()){if(!W)throw new p.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 Q()}}async function O(){if(_)return _;return _=await VT.match(f).with({phrase:VT.P.string},async({phrase:Y})=>{let{Account:q,RpcProvider:D}=await import("starknet"),{privateKey:R,address:$,publicKey:C}=await Ty({derivationPath:T,phrase:Y});W=C;let I=await p.getRPCUrl(p.Chain.Starknet),P=new D({nodeUrl:I});return new q({address:$,provider:P,signer:R})}).with({address:VT.P.string,privateKey:VT.P.string},async({privateKey:Y,address:q})=>{let{Account:D}=await import("starknet"),R=await Z();return new D({address:q,provider:R,signer:Y})}).with({signer:VT.P.instanceOf(Object)},({signer:Y})=>Y).otherwise(()=>{return}),_}async function U(){return(await O())?.address??""}async function M(Y){let q=await Z(),{uint256:D,CallData:R}=await import("starknet"),$=[],C=[S1,r_];for(let I of C)try{let[P="0",n="0"]=await q.callContract({calldata:R.compile({account:Y}),contractAddress:I,entrypoint:"balanceOf"}),b=D.uint256ToBN({high:P,low:n});VT.match(I).with(S1,()=>{$.push(p.AssetValue.from({chain:y,value:b}))}).with(r_,()=>{if(b>0n)$.push(p.AssetValue.from({asset:`${y}.ETH-${I}`,value:b}))}).otherwise(()=>{})}catch{}return $}async function N({recipient:Y,assetValue:q}){let{CallData:D,uint256:R}=await import("starknet");if(!e0(Y))throw new p.SwapKitError("core_transaction_invalid_recipient_address",{address:Y});let $=q.isGasAsset?S1:q.address;if(!$)throw new p.SwapKitError("toolbox_starknet_invalid_address",{address:$,assetValue:q});let C=R.bnToUint256(q.getBaseValue("bigint"));return[{calldata:D.compile([Y,C]),contractAddress:$,entrypoint:"transfer"}]}async function z({recipient:Y,assetValue:q,sender:D}){let{baseDecimal:R}=p.getChainConfig(p.Chain.Starknet),$=await O(),C=await VT.match({sender:D,signer:$}).with({sender:VT.P.string},async({sender:I})=>{let{Account:P}=await import("starknet"),n=await Z();return new P({address:I,provider:n,signer:"0x0"})}).with({signer:VT.P.nonNullable},({signer:I})=>I).otherwise((I)=>{throw new p.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:I}})});try{let I=await N({assetValue:q,recipient:Y}),P=await C.estimateInvokeFee(I);if(P?.overall_fee)return p.AssetValue.from({chain:y,fromBaseDecimal:R,value:P.overall_fee})}catch(I){throw new p.SwapKitError("toolbox_starknet_fee_estimation_failed",I)}return p.AssetValue.from({chain:y,value:"0.00001"})}async function B({recipient:Y,assetValue:q,memo:D}){let R=await O();if(!R)throw new p.SwapKitError("toolbox_starknet_no_signer");await L();let $=await N({assetValue:q,memo:D,recipient:Y});return(await R.execute($)).transaction_hash}async function k(Y){let q=await O();if(!q)throw new p.SwapKitError("toolbox_starknet_no_signer");let D=await q.signMessage(Y);return Array.isArray(D)?D:[D.r.toString(),D.s.toString()]}async function H(Y){let q=await O();if(!q)throw new p.SwapKitError("toolbox_starknet_no_signer");return await L(),(await q.execute(Y)).transaction_hash}function F(Y){return H(Y)}function w(Y,q=!0){try{return ST(y)(Y,q)}catch{return M(Y)}}return{broadcastTransaction:H,createKeysForPath:n1,createTransaction:N,deployAccount:Q,estimateTransactionFee:z,getAddress:U,getBalance:w,getProvider:Z,isAccountDeployed:J,signAndBroadcastTransaction:F,signMessage:k,transfer:B,validateAddress:e0}}var p,VT,S1="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",r_="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",E1="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var s_=E(()=>{dT();p=require("@swapkit/helpers"),VT=require("ts-pattern")});var fy={};wT(fy,{validateStarknetAddress:()=>e0,starknetCreateKeysForPath:()=>n1,getStarknetToolbox:()=>a_,deriveStarknetKeys:()=>Ty});module.exports=HT(fy);var yy=E(()=>{s_()});async function f2(f,y,G,T=[],_){let X=await f.getCoins({coinType:G,cursor:_,owner:y}),W=[...T,...X.data];return X.hasNextPage?f2(f,y,G,W,X.nextCursor):W}function jX(f,y,G){let T=y.reduce((J,Q)=>J+BigInt(Q.balance),0n);if(T<G)throw new fT.SwapKitError("toolbox_sui_insufficient_balance",{available:T.toString(),required:G.toString()});let{ids:_}=y.reduce((J,Q)=>{if(J.total>=G)return J;return{ids:[...J.ids,Q.coinObjectId],total:J.total+BigInt(Q.balance)}},{ids:[],total:0n}),X=_[0],W=_.slice(1);if(W.length>0)f.mergeCoins(X,W);let[Z]=f.splitCoins(X,[G]);return Z}function y2(f){try{return T2.isValidSuiAddress(f)}catch{return!1}}function e_(f){return"signWithIntent"in f}function bX({provider:f,...y}={}){let G;async function T(){if(G)return G;return G=await Q0.match(y).with({phrase:Q0.P.string},async({phrase:N})=>{let{Ed25519Keypair:z}=await import("@mysten/sui/keypairs/ed25519");return z.deriveKeypair(N)}).with({signer:Q0.P.any},({signer:N})=>N).otherwise(()=>{return}),G}async function _(N=f){let{SuiClient:z,getFullnodeUrl:B}=await import("@mysten/sui/client");return new z({url:N||B("mainnet")})}async function X(){return(await T())?.toSuiAddress()||""}function W(N){try{let z=fT.AssetValue.from({address:N,chain:fT.Chain.Sui});return{asset:z.toString(),decimals:z.decimal}}catch{}return null}async function Z(N){let z=N||await X();if(!z)throw new fT.SwapKitError("toolbox_sui_address_required");let{baseDecimal:B,chain:k}=fT.getChainConfig(fT.Chain.Sui);try{let H=await _(),{totalBalance:F}=await H.getBalance({owner:z}),w=[fT.AssetValue.from({chain:k,fromBaseDecimal:B,value:F})],Y=await H.getAllBalances({owner:z});for(let{coinType:q,totalBalance:D}of Y){if(q==="0x2::sui::SUI"||Number(D)<=0)continue;let R=W(q);if(R)w.push(fT.AssetValue.from({asset:R.asset,fromBaseDecimal:R.decimals,value:D}))}return w}catch{return[fT.AssetValue.from({chain:k})]}}async function J(N){let z=fT.AssetValue.from({chain:fT.Chain.Sui,value:"0.01"});if(!N)return z;try{let B=await _(),{txBytes:k}=await Q(N),{effects:{status:H,gasUsed:F}}=await B.dryRunTransactionBlock({transactionBlock:k});if(H.status!=="success")return z;let w=Number(F.computationCost)+Number(F.storageCost)-Number(F.storageRebate);return fT.AssetValue.from({chain:fT.Chain.Sui,value:w.toString()})}catch{return z}}async function Q({recipient:N,assetValue:z,gasBudget:B,sender:k}){let{Transaction:H}=await import("@mysten/sui/transactions"),F=k||await X();if(!F)throw new fT.SwapKitError("toolbox_sui_no_sender");try{let w=new H;if(w.setSender(F),z.isGasAsset||z.symbol==="SUI"){let[D]=w.splitCoins(w.gas,[z.getBaseValue("string")]);w.transferObjects([D],N)}else{let D=z.address;if(!D)throw new fT.SwapKitError("toolbox_sui_missing_coin_type");let R=await _(),$=z.getBaseValue("bigint"),C=await f2(R,F,D);if(!C.length)throw new fT.SwapKitError("toolbox_sui_no_coins_found",{coinType:D});let I=jX(w,C,$);w.transferObjects([I],N)}if(B)w.setGasBudget(B);let Y=await _(),q=await w.build({client:Y});return{tx:w,txBytes:q}}catch(w){if(w instanceof fT.SwapKitError)throw w;throw new fT.SwapKitError("toolbox_sui_transaction_creation_error",{error:w})}}async function L(N){let z=await T();if(!z)throw new fT.SwapKitError("toolbox_sui_no_signer");if(N instanceof Uint8Array)return z.signTransaction(N);let{txBytes:B}="tx"in N?N:await Q(N);return z.signTransaction(B)}async function O({assetValue:N,gasBudget:z,recipient:B}){let k=await T();if(!k)throw new fT.SwapKitError("toolbox_sui_no_signer");let H=k.toSuiAddress()||await X();if(!H)throw new fT.SwapKitError("toolbox_sui_no_sender");let{txBytes:F}=await Q({assetValue:N,gasBudget:z,recipient:B,sender:H}),w=await _();if(!e_(k)){let q=await k.signTransaction(F),{digest:D}=await w.executeTransactionBlock({signature:q.signature,transactionBlock:q.bytes});return D}let{digest:Y}=await w.signAndExecuteTransaction({signer:k,transaction:F});return Y}async function U(N){let z=await _(),{digest:B}=await z.executeTransactionBlock({signature:N.signature,transactionBlock:N.bytes});return B}async function M(N){let z=await T();if(!z)throw new fT.SwapKitError("toolbox_sui_no_signer");let B=await _(),k;if(typeof N==="string")k=Uint8Array.from(Buffer.from(N,"base64"));else if(N instanceof Uint8Array)k=N;else k=await N.build({client:B});if(!e_(z)){let F=await z.signTransaction(k),{digest:w}=await B.executeTransactionBlock({signature:F.signature,transactionBlock:F.bytes});return w}let{digest:H}=await B.signAndExecuteTransaction({signer:z,transaction:k});return H}return{broadcastTransaction:U,createTransaction:Q,estimateTransactionFee:J,getAddress:X,getBalance:Z,signAndBroadcastTransaction:M,signTransaction:L,transfer:O,validateAddress:y2}}var T2,fT,Q0;var _2=E(()=>{T2=require("@mysten/sui/utils"),fT=require("@swapkit/helpers"),Q0=require("ts-pattern")});var _y={};wT(_y,{validateSuiAddress:()=>y2,getSuiToolbox:()=>bX});module.exports=HT(_y);var Gy=E(()=>{_2()});async function pX(){let f=Date.now();if(Xy&&f-X2<mX)return Xy;try{return Xy=await W2.getHttpEndpoint(),X2=f,Xy}catch{return qT.getRPCUrl(qT.Chain.Ton)}}function tX(f={}){let y,G,T;async function _(){if(!y){let w=f.provider??await pX();y=new c.TonClient({endpoint:w})}return y}async function X(){return(await Z()).address.toString()}async function W(){if(T)return T;return T=await Mf.match(f).with({phrase:Mf.P.string},async({phrase:w})=>Z2.mnemonicToWalletKey(w.split(" "))).with({signer:Mf.P.any},({signer:w})=>w).otherwise(()=>{return}),T}async function Z(w){if(!G||w){let Y=await W(),q=await _(),D=w||Y;if(!D)throw new qT.SwapKitError("core_wallet_connection_not_found");let R=c.WalletContractV4.create({publicKey:D.publicKey,workchain:0});G=q.open(R)}return G}let J=ST(qT.Chain.Ton);async function Q({assetValue:w,recipient:Y,memo:q,sender:D}){if(w.isGasAsset){let g=q?F(q).toBoc().toString("base64"):void 0;return[{address:Y,amount:w.getBaseValue("string"),payload:g}]}let R=w.address;if(!R)throw new qT.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:w.toString()}});let $=D??await X(),C=await k({jettonMasterAddress:R,ownerAddress:$}),I=c.Address.parse(Y),P=c.Address.parse($),n=w.getBaseValue("bigint"),b=q?F(q):void 0,h=H({destinationAddress:I,forwardPayload:b,jettonAmount:n,responseAddress:P});return[{address:C.toString(),amount:hX.toString(),payload:h.toBoc().toString("base64")}]}function L({sender:w,...Y}){return Q({...Y,sender:w})}function O(w){return w.map((Y)=>{let q=Y.payload?c.Cell.fromBase64(Y.payload):void 0,D=Y.stateInit?c.loadStateInit(c.Cell.fromBase64(Y.stateInit).asSlice()):void 0,R=c.Address.parse(Y.address),$=c.Address.isFriendly(Y.address)?c.Address.parseFriendly(Y.address).isBounceable:!0;return c.internal({body:q,bounce:$,init:D,to:R,value:BigInt(Y.amount)})})}async function U(w){let Y=await W(),q=await Z();if(!q||!Y)throw new qT.SwapKitError("core_wallet_connection_not_found");let D=await _(),{state:R}=await D.getContractState(q.address),$=R==="active",C=$?await q.getSeqno():0,I=q.createTransfer({messages:O(w),secretKey:Y.secretKey,sendMode:G2,seqno:C}),P=c.external({body:I,init:$?void 0:q.init,to:q.address});return c.beginCell().store(c.storeMessage(P)).endCell()}async function M(w){return await(await _()).sendFile(w.toBoc()),w.hash().toString("hex")}async function N(w){let Y=await U(w);return M(Y)}async function z({assetValue:w,recipient:Y,memo:q}){let D=await L({assetValue:w,memo:q,recipient:Y});return N(D)}async function B({sender:w,...Y}){let{baseDecimal:q}=qT.getChainConfig(qT.Chain.Ton),D=await Mf.match(w).with(Mf.P.string,(C)=>{return c.Address.parseFriendly(C).address}).otherwise(async()=>{return(await Z()).address});if(!D)throw new qT.SwapKitError("toolbox_fee_estimation_failed",{chain:qT.Chain.Ton});let R=qT.AssetValue.from({chain:qT.Chain.Ton,value:"0.01"}),$=await _();try{let C=await L({sender:w,...Y}),I=await W(),P=await Z();if(!P||!I)return R;let n=await P.getSeqno(),b=P.createTransfer({messages:O(C),secretKey:I.secretKey,sendMode:G2,seqno:n}),{source_fees:h}=await $.estimateExternalMessageFee(D,{body:b,ignoreSignature:!0,initCode:null,initData:null}),g=h.in_fwd_fee+h.storage_fee+h.gas_fee+h.fwd_fee;return R.set(qT.SwapKitNumber.fromBigInt(BigInt(g),q))}catch{return R}}async function k({jettonMasterAddress:w,ownerAddress:Y}){try{let q=await _(),D=c.Address.parse(w),R=c.Address.parse(Y);return await q.open(c.JettonMaster.create(D)).getWalletAddress(R)}catch{throw new qT.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:w,ownerAddress:Y}})}}function H({jettonAmount:w,destinationAddress:Y,responseAddress:q,forwardAmount:D=uX,forwardPayload:R}){let $=c.beginCell().storeUint(lX,32).storeUint(0,64).storeCoins(w).storeAddress(Y).storeAddress(q).storeBit(0).storeCoins(D);if(R)$.storeBit(1).storeRef(R);else $.storeBit(0);return $.endCell()}function F(w){return c.beginCell().storeUint(0,32).storeStringTail(w).endCell()}return{broadcastTransaction:M,createTransaction:L,estimateTransactionFee:B,getAddress:X,getBalance:J,getJettonWalletAddress:k,sign:U,signAndBroadcastTransaction:N,transfer:z,validateAddress:J2}}function J2(f){try{return c.Address.parse(f),!0}catch{return!1}}var W2,qT,Z2,c,Mf,lX=260734629,uX,hX,G2,mX=60000,Xy,X2=0;var Q2=E(()=>{dT();W2=require("@orbs-network/ton-access"),qT=require("@swapkit/helpers"),Z2=require("@ton/crypto"),c=require("@ton/ton"),Mf=require("ts-pattern"),uX=c.toNano("0.01"),hX=c.toNano("0.05"),G2=c.SendMode.PAY_GAS_SEPARATELY+c.SendMode.IGNORE_ERRORS});var Wy={};wT(Wy,{validateTonAddress:()=>J2,getTONToolbox:()=>tX});module.exports=HT(Wy);var Zy=E(()=>{Q2()});function Y2({deriveAddress:f,getBalance:y,getUtxos:G}){async function T(Z){let{count:J,startIndex:Q=0,change:L=!1}=Z,O=[];for(let U=0;U<J;U++){let M=await f({change:L,index:Q+U});if(M)O.push(M)}return O}async function _(Z){let{gapLimit:J=20,change:Q=!1}=Z??{},L=[],O=0,U=0;while(O<J){let M=await f({change:Q,index:U});if(!M)break;if((await y(M.address)).some((B)=>B.getValue("number")>0))L.push(M),O=0;else O++;U++}return L}async function X(Z=20){let[J,Q]=await Promise.all([_({change:!1,gapLimit:Z}),_({change:!0,gapLimit:Z})]),L=[...J,...Q],O=await Promise.all(L.map(async(M)=>{let z=(await y(M.address)).reduce((B,k)=>B+k.getValue("number"),0);return{...M,balance:z}})),U=O.reduce((M,N)=>M+N.balance,0);return{addresses:O,total:U}}async function W(Z=20){let[J,Q]=await Promise.all([_({change:!1,gapLimit:Z}),_({change:!0,gapLimit:Z})]),L=[...J,...Q];return(await Promise.all(L.map(async(U)=>{return(await G(U.address)).map((N)=>({...N,address:U.address,derivationIndex:U.index,isChange:U.change}))}))).flat()}return{deriveAddresses:T,getAggregatedBalance:X,getAggregatedUtxos:W,scanForAddresses:_}}async function cX({chain:f,txHash:y}){let G=`${Y0(f)}/push/transaction`,T=JSON.stringify({data:y});try{let _=await m.RequestClient.post(G,{body:T,headers:{"Content-Type":"application/json"}});if(_.context.code!==200)throw new m.SwapKitError("toolbox_utxo_broadcast_failed",{error:_.context.error||"Transaction broadcast failed"});return _.data?.transaction_hash||y}catch(_){let X=await m.getRPCUrl(f);if(X){let W=JSON.stringify({id:l5(),jsonrpc:"2.0",method:"sendrawtransaction",params:[y]}),Z=await m.RequestClient.post(X,{body:W,headers:{"Content-Type":"application/json"}});if(Z.error)throw new m.SwapKitError("toolbox_utxo_broadcast_failed",{error:Z.error?.message});if(Z.result.includes('"code":-26'))throw new m.SwapKitError("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return Z.result}throw _}}function Y0(f){return`https://api.blockchair.com/${gX(f)}`}function q2(f){switch(f){case m.Chain.Bitcoin:return 5;case m.Chain.Dogecoin:return 1e4;case m.Chain.Litecoin:return 1;case m.Chain.Zcash:return 1;default:return 2}}function gX(f){switch(f){case m.Chain.BitcoinCash:return"bitcoin-cash";case m.Chain.Litecoin:return"litecoin";case m.Chain.Dash:return"dash";case m.Chain.Dogecoin:return"dogecoin";case m.Chain.Zcash:return"zcash";case m.Chain.Polkadot:return"polkadot";default:return"bitcoin"}}async function iX(f){try{let{feePerKb:y}=await m.RequestClient.get(`https://app.bitgo.com/api/v2/${f.toLowerCase()}/tx/fee`),G=y/1000;return Math.max(G,q2(f))}catch{return q2(f)}}async function Jy(f,y){let G=await m.RequestClient.get(`${f}${y?`${f.includes("?")?"&":"?"}key=${y}`:""}`);if(!G||G.context.code!==200)throw new m.SwapKitError("toolbox_utxo_api_error",{error:`Failed to query ${f}`});return G.data}async function z2({address:f,chain:y,apiKey:G}){if(!f)throw new m.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Jy(`${Y0(y)}/dashboards/address/${f}?transaction_details=true`,G))[f]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function dX({address:f,chain:y,apiKey:G}){return(await z2({address:f,apiKey:G,chain:y}))?.address.balance||0}async function N2({chain:f,apiKey:y,txHash:G}){if(!G)throw new m.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Jy(`${Y0(f)}/raw/transaction/${G}`,y))?.[G]?.raw_transaction||""}catch(T){let _=T instanceof Error?T.message:String(T);return console.error(`Failed to fetch raw transaction: ${_}`),""}}async function aX({chain:f,apiKey:y,txHash:G}){if(!G)throw new m.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});let _=(await Jy(`${Y0(f)}/dashboards/transaction/${G}`,y))?.[G];if(!_)throw new m.SwapKitError("toolbox_utxo_tx_not_found",{txHash:G});let{transaction:X,inputs:W,outputs:Z}=_,J=W.map((L)=>L.spending_sequence),Q=X.is_rbf===!0||J.some((L)=>L<rX);return{blockId:X.block_id,confirmed:X.block_id!==-1,fee:X.fee,inputs:W,isRBF:Q,outputs:Z,sequences:J,size:X.size,txid:X.hash,weight:X.weight}}async function sX({chain:f,address:y,apiKey:G,offset:T=0,limit:_=30}){return(await Jy(`${Y0(f)}/outputs?q=recipient(${y}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${_}&offset=${T}`,G)).map(({is_spent:J,script_hex:Q,block_id:L,transaction_hash:O,index:U,value:M,spending_signature_hex:N})=>({hash:O,index:U,is_confirmed:L!==-1,is_spent:J,script_hex:Q,txHex:N,value:M}))}function eX(f){return f.reduce((y,G)=>y+G.value,0)}function L2(f,y){let G=[...f].sort((T,_)=>_.value-T.value);if(y){let T=[],_=0;for(let X of G)if(T.push(X),_+=X.value,_>=y)break;return T}return G}async function U2({chain:f,address:y,apiKey:G,targetValue:T,accumulativeValue:_=0,offset:X=0,limit:W=30}){if(!y)throw new m.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{let Z=await sX({address:y,apiKey:G,chain:f,limit:W,offset:X,targetValue:T}),Q=Z.length<W,L=Z.filter(({is_spent:B})=>!B),O=eX(L),U=_+O,M=T&&U>=T;if(Q||M)return L2(L,T);let N=await U2({accumulativeValue:U,address:y,apiKey:G,chain:f,limit:W,offset:X+W,targetValue:T}),z=[...L,...N];return L2(z,T)}catch(Z){let J=Z instanceof Error?Z.message:String(Z);return console.error(`Failed to fetch unspent UTXOs: ${J}`),[]}}async function T6({address:f,chain:y,apiKey:G,fetchTxHex:T=!0,targetValue:_}){let X=await U2({address:f,apiKey:G,chain:y,targetValue:_}),W=[];for(let{hash:Z,index:J,script_hex:Q,value:L}of X){let O;if(T)O=await N2({apiKey:G,chain:y,txHash:Z});W.push({address:f,hash:Z,index:J,txHex:O,value:L,witnessUtxo:{script:Buffer.from(Q,"hex"),value:L}})}return W}function BT(f){let y=m.SKConfig.get("apiKeys").blockchair||"";return m.warnOnce({condition:!y,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(G)=>cX({chain:f,txHash:G}),getAddressData:(G)=>z2({address:G,apiKey:y,chain:f}),getBalance:(G)=>dX({address:G,apiKey:y,chain:f}),getRawTx:(G)=>N2({apiKey:y,chain:f,txHash:G}),getSuggestedTxFee:()=>iX(f),getTransactionDetails:(G)=>aX({apiKey:y,chain:f,txHash:G}),getUtxos:(G)=>T6({...G,apiKey:y,chain:f})}}function f6(f){return f}function y6(){return function(y){switch(y){case m.Chain.Bitcoin:return Bf.NETWORKS.bitcoin;case m.Chain.BitcoinCash:return Bf.NETWORKS.bitcoinCash;case m.Chain.Dash:return Bf.NETWORKS.dash;case m.Chain.Litecoin:return Bf.NETWORKS.litecoin;case m.Chain.Dogecoin:return Bf.NETWORKS.dogecoin;case m.Chain.Zcash:return Bf.NETWORKS.zcash;default:throw new m.SwapKitError("toolbox_utxo_not_supported",{chain:y})}}}var m,Bf,rX=4294967294;var M2=E(()=>{dT();m=require("@swapkit/helpers"),Bf=require("@swapkit/utxo-signer")});function X6(f,y,G){return tT.encodeCashAddr({hash:G,prefix:f,type:_6[y]})}function W6(f){let y=tT.decodeCashAddr(f),G=G6[y.type];if(!G)throw Error(`Unknown CashAddr type: ${y.type}`);return{hash:y.hash,prefix:y.prefix,type:G}}var tT,_6,G6,V1;var B2=E(()=>{tT=require("@swapkit/utxo-signer"),_6={P2PKH:tT.CashAddrType.P2PKH,P2SH:tT.CashAddrType.P2SH},G6={[tT.CashAddrType.P2PKH]:"P2PKH",[tT.CashAddrType.P2SH]:"P2SH"};V1={decode:W6,encode:X6}});function K1(f){try{return Qy(f),!0}catch{return!1}}function j1(f){return Qy(f)?.network}function cT(f){let y=Qy(f);if(y?.format==="legacy")return f;return Q6(y)}function q0(f){let y=Qy(f);return Y6(y)}function Qy(f){try{let y=Z6(f);if(y)return y}catch{}try{let y=J6(f);if(y)return y}catch{}throw new v1.SwapKitError("toolbox_utxo_invalid_address",{address:f})}function Z6(f){try{let y=H2.decode(f);if(y.length!==21)throw new v1.SwapKitError("toolbox_utxo_invalid_address",{address:f});let G=y[0],T=Array.prototype.slice.call(y,1);switch(G){case wf.legacy.mainnet.p2pkh:return{format:"legacy",hash:T,network:"mainnet",type:"p2pkh"};case wf.legacy.mainnet.p2sh:return{format:"legacy",hash:T,network:"mainnet",type:"p2sh"};case wf.legacy.testnet.p2pkh:return{format:"legacy",hash:T,network:"testnet",type:"p2pkh"};case wf.legacy.testnet.p2sh:return{format:"legacy",hash:T,network:"testnet",type:"p2sh"};case wf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:T,network:"mainnet",type:"p2pkh"};case wf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:T,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function J6(f){if(f.indexOf(":")!==-1)try{return w2(f)}catch{}else{let y=["bitcoincash","bchtest","bchreg"];for(let G of y)try{return w2(`${G}:${f}`)}catch{}}return}function w2(f){try{let{hash:y,prefix:G,type:T}=V1.decode(f);return{format:"cashaddr",hash:Array.prototype.slice.call(y,0),network:G==="bitcoincash"?"mainnet":"testnet",type:T==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function Q6(f){let y=wf.legacy[f.network][f.type],G=Buffer.alloc(1+f.hash.length);return G[0]=y,G.set(f.hash,1),H2.encode(G)}function Y6(f){let y=f.network==="mainnet"?"bitcoincash":"bchtest",G=f.type==="p2pkh"?"P2PKH":"P2SH",T=new Uint8Array(f.hash);return V1.encode(y,G,T)}var D2,O2,v1,H2,o1,wf;var R2=E(()=>{B2();D2=require("@noble/hashes/sha2.js"),O2=require("@scure/base"),v1=require("@swapkit/helpers"),H2=O2.createBase58check(D2.sha256);((G)=>{G.Mainnet="mainnet";G.Testnet="testnet"})(o1||={});wf={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});function PT(f){let y=new Uint8Array(Buffer.from(f,"utf8"));return F2.Script.encode(["RETURN",y])}var C2,F2,q6=1000,qy=10,Ly=2,k2=10,L6=41,z6=107,zy,Yy,L0,Pf=(f)=>{if(f.startsWith("bc1")||f.startsWith("tb1")||f.startsWith("ltc1")||f.startsWith("tltc1"))return"P2WPKH";if(f.startsWith("1")||f.startsWith("m")||f.startsWith("n")||f.startsWith("bitcoincash:q")||f.startsWith("bitcoincash:p")||f.startsWith("q")||f.startsWith("p")||f.startsWith("L")||f.startsWith("M")||f.startsWith("3")||f.startsWith("D")||f.startsWith("A")||f.startsWith("9")||f.startsWith("X")||f.startsWith("7")||f.startsWith("y")||f.startsWith("t1")||f.startsWith("t3")||f.startsWith("tm"))return"P2PKH";throw new C2.SwapKitError("toolbox_utxo_invalid_address",{address:f})},Df=({inputs:f,outputs:y,feeRate:G})=>{let T=f[0]&&"address"in f[0]&&f[0].address?Pf(f[0].address):"P2PKH",X=(G?f.filter((Q)=>Q.value>=Yy["type"in Q&&Q.type?Q.type:"P2PKH"]*Math.ceil(G)):f).reduce((Q,L)=>Q+_f(L),0),W=y?.reduce((Q,L)=>Q+z0(L),0)||L0[T],Z=qy+X+W;return T==="P2WPKH"?Math.ceil(Z+Ly/4):Z},_f=(f)=>{if("type"in f&&f.type)return Yy[f.type];if("address"in f&&f.address)return Yy[Pf(f.address)];return L6+z6},z0=(f,y)=>{if(f?.script)return k2+f.script.length+(f.script.length>=74?2:1);if(y)return L0[y];if("address"in f&&f.address)return L0[Pf(f.address)];return L0.P2PKH};var b1=E(()=>{C2=require("@swapkit/helpers"),F2=require("@swapkit/utxo-signer");((G)=>{G.P2PKH="P2PKH";G.P2WPKH="P2WPKH"})(zy||={});Yy={["P2PKH"]:148,["P2WPKH"]:68},L0={["P2PKH"]:34,["P2WPKH"]:31}});function N0(f){switch(f){case bT.Chain.Bitcoin:case bT.Chain.BitcoinCash:return 550;case bT.Chain.Dash:case bT.Chain.Litecoin:return 5500;case bT.Chain.Dogecoin:return 1e5;case bT.Chain.Zcash:return 546;default:throw new bT.SwapKitError("toolbox_utxo_not_supported",{chain:f})}}function vT({inputs:f,outputs:y,feeRate:G=1,chain:T=bT.Chain.Bitcoin,changeAddress:_=""}){let X=f[0]&&"address"in f[0]&&f[0].address?Pf(f[0].address):"P2PKH",W=f.filter((N)=>_f(N)*G<=N.value),J=X==="P2WPKH"?Math.ceil(Ly/4):0,Q=qy+J+y.reduce((N,z)=>N+z0(z),0),L=y.reduce((N,z)=>N+z.value,0),O=Q*G,U=0,M=[];for(let N of W){let z=_f(N),B=G*z;O+=B,U+=N.value,M.push(N);let k=O+L;if(U<k)continue;let H=U-k,F=G*z0({address:_,value:0});if(H>F){let w=F+O,Y=U-(L+Math.ceil(w));if(Y>Math.max(_f({value:0})*G,N0(T)))return{fee:Math.ceil(w),inputs:M,outputs:y.concat({address:_,value:Y})}}return{fee:Math.ceil(O),inputs:M,outputs:y}}return{fee:Math.ceil(G*Df({inputs:f,outputs:y}))}}var bT;var $2=E(()=>{b1();bT=require("@swapkit/helpers")});var xf=E(()=>{M2();R2();$2();b1()});function Of(f){return f.replace(/(bchtest:|bitcoincash:)/,"")}function Gf(f){let y=Of(f);return K1(y)&&j1(y)==="mainnet"}function Sf(f){try{if(f.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let G=Ny.Address(Ny.ZCASH_NETWORK).decode(f);return G.type==="pkh"||G.type==="sh"}catch{return!1}}var Ny;var U0=E(()=>{xf();Ny=require("@swapkit/utxo-signer")});function h1({address:f,chain:y}){return u1.match(y).with(x.Chain.BitcoinCash,()=>Gf(f)).with(x.Chain.Zcash,()=>Sf(f)).otherwise(()=>{try{return i.Address(xT(y)).decode(f),!0}catch{return!1}})}function xT(f){return u1.match(f).with(x.Chain.Bitcoin,()=>i.NETWORKS.bitcoin).with(x.Chain.BitcoinCash,()=>i.NETWORKS.bitcoinCash).with(x.Chain.Dash,()=>i.NETWORKS.dash).with(x.Chain.Dogecoin,()=>i.NETWORKS.dogecoin).with(x.Chain.Litecoin,()=>i.NETWORKS.litecoin).with(x.Chain.Zcash,()=>i.NETWORKS.zcash).exhaustive()}function N6({phrase:f,derivationPath:y,network:G,seed:T}){let _=T??My.mnemonicToSeedSync(f),W=l1.HDKey.fromMasterSeed(_,G.bip32).derive(y);if(!W.privateKey)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return W.privateKey}function I2(f){return A2.secp256k1.getPublicKey(f,!0)}function m1({publicKey:f,chain:y,network:G}){if(y===x.Chain.BitcoinCash){let X=i.p2pkh(f,G);if(!X.hash)throw new x.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return i.encodeCashAddr({hash:X.hash,prefix:i.CashAddrPrefix.MAINNET,type:i.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}let _=!M0.includes(y)?i.p2wpkh(f,G):i.p2pkh(f,G);if(!_.address)throw new x.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive address"});return _.address}function Ef({phrase:f,derivationPath:y,chain:G,wif:T,seed:_}){let X=xT(G);if(T){let Q=i.WIF(X).decode(T),L=I2(Q);return{privateKey:Q,publicKey:L}}if(!f)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let W=y||x.derivationPathToString(x.NetworkDerivationPath[G]),Z=N6({derivationPath:W,network:X,phrase:f,seed:_}),J=I2(Z);return{privateKey:Z,publicKey:J}}function U6(f,y){return i.WIF(xT(y)).encode(f)}function M6({phrase:f,derivationPath:y,chain:G,seed:T}){let _=y.split("/");if(_.length<4)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${_.length}): ${y}`});let X=xT(G),W=T??My.mnemonicToSeedSync(f),Z=l1.HDKey.fromMasterSeed(W,X.bip32),J=_.slice(0,4).join("/");return Z.derive(J)}function Wf({inputs:f,outputs:y,chain:G,tx:T,sender:_,compiledMemo:X,enableRBF:W=!1}){let Z=xT(G),J=!M0.includes(G),Q=W?i.RBF_SEQUENCE:void 0,L=new Set;for(let O of f){let U=`${O.hash}:${O.index}`;if(L.has(U))throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});L.add(U);let M=typeof O.hash==="string"?Xf.hex.decode(O.hash):O.hash;if(J&&O.witnessUtxo)T.addInput({index:O.index,sequence:Q,txid:M,witnessUtxo:{amount:BigInt(O.witnessUtxo.value),script:O.witnessUtxo.script}});else if(O.txHex)T.addInput({index:O.index,nonWitnessUtxo:Xf.hex.decode(O.txHex),sequence:Q,txid:M,...G===x.Chain.BitcoinCash?{sighashType:i.BCHSigHash.ALL}:{}});else throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let O of y){let U="address"in O&&O.address?O.address:_;if(G===x.Chain.BitcoinCash)U=cT(U);if(O.script){if(X)T.addOutput({amount:0n,script:X})}else T.addOutputAddress(U,BigInt(O.value),Z)}return{inputs:f,tx:T}}async function nf(f){let y=await BT(f).getSuggestedTxFee();return{[x.FeeOption.Average]:y,[x.FeeOption.Fast]:x.applyFeeMultiplier(y,x.FeeOption.Fast),[x.FeeOption.Fastest]:x.applyFeeMultiplier(y,x.FeeOption.Fastest)}}async function P2({assetValue:f,recipient:y,memo:G,sender:T,fetchTxHex:_=!1}){let X=f.chain,W=(await nf(X))[x.FeeOption.Fastest],Z=_||M0.includes(X),J=f.getBaseValue("number"),Q=Math.ceil(J+W*5000);return{inputs:await BT(X).getUtxos({address:T,fetchTxHex:Z,targetValue:Q}),outputs:[{address:y,value:J},...G?[{address:"",script:PT(G),value:0}]:[]]}}async function x2({assetValue:f,recipient:y,memo:G,feeRate:T,sender:_,fetchTxHex:X=!1,enableRBF:W=!1}){let Z=f.chain,J=G?PT(G):null,Q=await P2({assetValue:f,fetchTxHex:X,memo:G,recipient:y,sender:_}),{inputs:L,outputs:O}=vT({...Q,chain:Z,feeRate:T});if(!(L&&O))throw new x.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:f,sender:_});let U=new i.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!J,version:1}),{inputs:M,tx:N}=Wf({chain:Z,compiledMemo:J,enableRBF:W,inputs:L,outputs:O,sender:_,tx:U});return{inputs:M,tx:N,utxos:Q.inputs}}async function S2({assetValue:f,feeOptionKey:y=x.FeeOption.Fast,feeRate:G,memo:T,sender:_,recipient:X}){let W=f.chain,Z=await P2({assetValue:f,memo:T,recipient:X,sender:_}),J=G?Math.floor(G):(await nf(W))[y];return vT({...Z,chain:W,feeRate:J})}function B6(f){return async function({from:G,memo:T,feeRate:_,feeOptionKey:X=x.FeeOption.Fast,recipients:W=1}){let Z=await BT(f).getAddressData(G),J=_?Math.ceil(_):(await nf(f))[X],Q=Z?.utxo.map((z)=>({...z,hash:"",type:"P2PKH"})).filter((z)=>z.value>Math.max(N0(f),_f(z)*J));if(!Q?.length)return x.AssetValue.from({chain:f});let L=BigInt(Q.reduce((z,B)=>z+B.value,0)),O=x.AssetValue.from({chain:f,value:L}),U=typeof W==="number"?Array.from({length:W},()=>({address:G,value:0})):W;if(T)U.push({address:G,script:PT(T),value:0});let M=Df({inputs:Q,outputs:U}),N=x.AssetValue.from({chain:f,value:BigInt(M*J)});return O.sub(N)}}function w6(f){return async function(G){let{fee:T}=await S2(G);return x.AssetValue.from({chain:f,value:x.SwapKitNumber.fromBigInt(BigInt(T),8).getValue("string")})}}function D6({chain:f,phrase:y,derivationPath:G,seed:T}){let _=xT(f),{privateKey:X,publicKey:W}=Ef({chain:f,derivationPath:G,phrase:y,seed:T}),Z=f===x.Chain.BitcoinCash?[i.BCHSigHash.ALL]:[i.SigHash.ALL];return{getAddress:()=>m1({chain:f,network:_,publicKey:W}),privateKey:X,publicKey:W,signTransaction:(J)=>{return J.sign(X,Z),J}}}function O6(f,y){return async function({memo:T,recipient:_,feeOptionKey:X,feeRate:W,assetValue:Z,enableRBF:J=!1}){let Q=y?.getAddress();if(!(y&&Q))throw new x.SwapKitError("toolbox_utxo_no_signer");if(!_)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});x.warnOnce({condition:J&&!Uy.includes(f),id:`rbf_not_supported_${f}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${f}. Transaction will be created without RBF signaling.`});let L=J&&Uy.includes(f),O=W||(await nf(f))[X||x.FeeOption.Fast],{tx:U}=await x2({assetValue:Z,enableRBF:L,feeRate:O,memo:T,recipient:_,sender:Q});return y.signTransaction(U),U.finalize(),BT(f).broadcastTx(Xf.hex.encode(U.extract()))}}function p1(f){return(y)=>h1({address:y,chain:f})}function t1(f){let y=xT(f);return function(T){if(!T)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return m1({chain:f,network:y,publicKey:T.publicKey})}}function Zf({chain:f,...y}){let G="phrase"in y?y.phrase:void 0,T="index"in y?y.index||0:0,_=G?My.mnemonicToSeedSync(G):void 0,X=x.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:x.updateDerivationPath(x.NetworkDerivationPath[f],{index:T})),W=G?D6({chain:f,derivationPath:X,phrase:G,seed:_}):void 0,Z="signer"in y?y.signer:void 0,J=G?Ef({chain:f,derivationPath:X,phrase:G,seed:_}):void 0;function Q(){if(W)return Promise.resolve(W.getAddress());if(Z)return Z.getAddress();return Promise.resolve(void 0)}let L=G?M6({chain:f,derivationPath:X,phrase:G,seed:_}):void 0;function O(){if(!L)return;return L.publicExtendedKey}function U({index:w,change:Y=!1}){if(!L)return;if(!Number.isInteger(w)||w<0)throw RangeError(`index must be a non-negative integer, got: ${w}`);let q=xT(f),D=L.deriveChild(Number(Y)).deriveChild(w);if(!D.publicKey)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let R=m1({chain:f,network:q,publicKey:D.publicKey}),$=Xf.hex.encode(D.publicKey);return{address:R,change:Y,index:w,pubkey:$}}async function M(w){if(!Uy.includes(f))return{reason:`RBF is not supported on ${f}`,supported:!1};let Y=await BT(f).getTransactionDetails(w);return{canReplace:Y.isRBF&&!Y.confirmed,confirmed:Y.confirmed,enabled:Y.isRBF,fee:Y.fee,sequences:Y.sequences,supported:!0}}async function N({txid:w,newFeeRate:Y,recipient:q,memo:D}){if(!Uy.includes(f))throw new x.SwapKitError("toolbox_utxo_rbf_not_supported",{chain:f});let R=await BT(f).getTransactionDetails(w);if(!R.isRBF)throw new x.SwapKitError("toolbox_utxo_tx_not_replaceable",{txid:w});if(R.confirmed)throw new x.SwapKitError("toolbox_utxo_tx_already_confirmed",{blockId:R.blockId,txid:w});let $=R.inputs.reduce((JT,$T)=>JT+$T.value,0),I=R.outputs.find((JT)=>JT.recipient===q)?.value||0;if(I===0)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let P=await Promise.all(R.inputs.map(async(JT)=>{let $T=await BT(f).getRawTx(JT.transaction_hash);return{hash:JT.transaction_hash,index:JT.index,txHex:$T,value:JT.value,witnessUtxo:void 0}})),n=D?PT(D):null,b=Df({feeRate:Y,inputs:P.map((JT)=>({...JT,type:"P2WPKH"})),outputs:[{address:q,value:I}]}),h=Math.ceil(b*Y);if(h<=R.fee)throw new x.SwapKitError("toolbox_utxo_rbf_fee_too_low",{newFee:h,originalFee:R.fee});let g=h-R.fee,TT=I-g;if(TT<=0)throw new x.SwapKitError("toolbox_utxo_rbf_insufficient_change");let UT=new i.Transaction({allowLegacyWitnessUtxo:!0,version:1}),FT=[{address:q,value:TT},...D?[{address:"",script:PT(D),value:0}]:[]],DT=$-TT-h,kT=await Q();if(DT>N0(f)&&kT)FT.push({address:kT,value:DT});return Wf({chain:f,compiledMemo:n,inputs:P,outputs:FT,sender:kT||q,tx:UT}),{feeDelta:g,newFee:h,originalFee:R.fee,tx:UT}}async function z({txid:w,newFeeRate:Y,recipient:q,memo:D}){if(!W)throw new x.SwapKitError("toolbox_utxo_no_signer");let{tx:R,originalFee:$,newFee:C}=await N({memo:D,newFeeRate:Y,recipient:q,txid:w});W.signTransaction(R),R.finalize();let I=await BT(f).broadcastTx(Xf.hex.encode(R.extract()));return{newFee:C,originalFee:$,txid:I}}function B({index:w,change:Y=!1}){if(!L)return;return L.deriveChild(Number(Y)).deriveChild(w).privateKey||void 0}function k({tx:w,inputDerivations:Y}){if(!L)throw new x.SwapKitError("toolbox_utxo_no_signer");let q=f===x.Chain.BitcoinCash?[i.BCHSigHash.ALL]:[i.SigHash.ALL];for(let D=0;D<Y.length;D++){let R=Y[D];if(!R)continue;let{derivationIndex:$,isChange:C}=R,I=B({change:C,index:$});if(!I)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${D} at index ${$}`});w.signIdx(I,D,q)}return w}async function H({utxos:w,recipient:Y,assetValue:q,memo:D,feeRate:R,feeOptionKey:$,changeAddress:C}){if(!L)throw new x.SwapKitError("toolbox_utxo_no_signer");let I=R||(await nf(f))[$||x.FeeOption.Fast],P=D?PT(D):null,n=[{address:Y,value:q.getBaseValue("number")}];if(P)n.push({address:"",script:P,value:0});let b=w.map(({hash:kT,index:JT,value:$T,txHex:Jf,witnessUtxo:Rf})=>({hash:kT,index:JT,txHex:Jf,value:$T,witnessUtxo:Rf?{script:Rf.script,value:Rf.value}:void 0})),{inputs:h,outputs:g}=vT({chain:f,feeRate:I,inputs:b,outputs:n});if(!(h&&g))throw new x.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:q,sender:"multiple addresses"});let TT=new i.Transaction({allowLegacyWitnessUtxo:!0,version:1}),UT=w[0]?.address,FT=C||await Q()||UT||Y;Wf({chain:f,compiledMemo:P,inputs:h,outputs:g,sender:FT,tx:TT});let DT=h.map((kT)=>{let JT=w.find(($T)=>$T.hash===kT.hash&&$T.index===kT.index);return JT?{derivationIndex:JT.derivationIndex,isChange:JT.isChange}:{derivationIndex:0,isChange:!1}});return k({inputDerivations:DT,tx:TT}),TT.finalize(),BT(f).broadcastTx(Xf.hex.encode(TT.extract()))}function F({address:w,gapLimit:Y=20}){if(!L)return;for(let q=0;q<Y;q++){let D=U({change:!1,index:q}),R=U({change:!0,index:q}),$=D?.address===w?!1:R?.address===w;if(D?.address===w||R?.address===w)return{change:$,index:q}}return}return{accumulative:vT,broadcastTx:(w)=>BT(f).broadcastTx(w),bumpFee:z,calculateTxSize:Df,createKeysForPath:(w)=>Ef({...w,chain:f}),createReplacementTransaction:N,createTransaction:x2,deriveAddressAtIndex:U,derivePrivateKeyAtIndex:B,estimateMaxSendableAmount:B6(f),estimateTransactionFee:w6(f),getAddress:Q,getAddressFromKeys:t1(f),getBalance:ST(f),getExtendedPublicKey:O,getFeeRates:()=>nf(f),getInputsOutputsFee:S2,getNetworkForChain:()=>xT(f),getPrivateKeyFromMnemonic:(w)=>U6(Ef({...w,chain:f}).privateKey,f),isRBFEnabled:M,keys:J,resolveDerivationIndex:F,signAndBroadcastTransaction:async(w)=>{if(!W)throw new x.SwapKitError("toolbox_utxo_no_signer");return W.signTransaction(w),w.finalize(),await BT(f).broadcastTx(Xf.hex.encode(w.extract()))},signTransactionWithMultipleKeys:k,transfer:O6(f,W),transferFromMultipleAddresses:H,validateAddress:p1(f)}}var A2,Xf,l1,My,x,i,u1,M0,Uy;var B0=E(()=>{dT();xf();U0();A2=require("@noble/curves/secp256k1.js"),Xf=require("@scure/base"),l1=require("@scure/bip32"),My=require("@scure/bip39"),x=require("@swapkit/helpers"),i=require("@swapkit/utxo-signer"),u1=require("ts-pattern"),M0=[x.Chain.Dash,x.Chain.Dogecoin,x.Chain.Zcash,x.Chain.BitcoinCash],Uy=[x.Chain.Bitcoin]});function w0(f){return Of(q0(f))}function H6(f){let y=xT(lT);function G(_){return _.sign(f.privateKey,[zT.BCHSigHash.ALL]),_}function T(){let _=zT.p2pkh(f.publicKey,y);if(!_.hash)throw new LT.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let X=zT.encodeCashAddr({hash:_.hash,prefix:zT.CashAddrPrefix.MAINNET,type:zT.CashAddrType.P2PKH});return Promise.resolve(X.replace(/^bitcoincash:/,""))}return{getAddress:T,signTransaction:G}}function c1(f){let y="phrase"in f?f.phrase:void 0,G="index"in f?f.index||0:0,T=LT.derivationPathToString("derivationPath"in f&&f.derivationPath?f.derivationPath:LT.updateDerivationPath(LT.NetworkDerivationPath[lT],{index:G})),_=y?Ef({chain:lT,derivationPath:T,phrase:y}):void 0,X=_?H6(_):("signer"in f)?f.signer:void 0;function W(){return Promise.resolve(X?.getAddress())}let{getBalance:Z,getFeeRates:J,broadcastTx:Q,...L}=Zf({chain:lT});function O(U,M=!0){return Z(Of(q0(U)))}return{...L,broadcastTx:Q,buildTx:C6,createTransaction:n2,getAddress:W,getAddressFromKeys:F6,getBalance:O,getFeeRates:J,stripPrefix:Of,stripToCashAddress:w0,transfer:R6({broadcastTx:Q,getFeeRates:J,signer:X}),validateAddress:Gf}}async function n2({assetValue:f,recipient:y,memo:G,feeRate:T,sender:_}){if(!Gf(y))throw new LT.SwapKitError("toolbox_utxo_invalid_address",{address:y});let X=Math.ceil(f.getBaseValue("number")+T*7500),W=await BT(lT).getUtxos({address:w0(_),fetchTxHex:!0,targetValue:X}),Z=G?PT(G):null,J=[],Q=cT(y);if(J.push({address:Q,value:f.getBaseValue("number")}),Z)J.push({script:Z,value:0});let{inputs:L,outputs:O}=vT({chain:lT,feeRate:T,inputs:W,outputs:J});if(!(L&&O))throw new LT.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:f,sender:_});let U=new zT.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Z,version:1}),M=cT(_),{inputs:N,tx:z}=Wf({chain:lT,compiledMemo:Z,inputs:L,outputs:O.map((B)=>("address"in B)&&B.address?{...B,address:cT(B.address)}:B),sender:M,tx:U});return{inputs:N,tx:z,utxos:L}}function R6({broadcastTx:f,getFeeRates:y,signer:G}){return async function({recipient:_,assetValue:X,feeOptionKey:W=LT.FeeOption.Fast,...Z}){let J=await G?.getAddress();if(!(G&&J))throw new LT.SwapKitError("toolbox_utxo_no_signer");if(!_)throw new LT.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Q=Z.feeRate||(await y())[W],{tx:L}=await n2({...Z,assetValue:X,feeRate:Q,recipient:_,sender:J}),O=await G.signTransaction(L);return O.finalize(),f(E2.hex.encode(O.extract()))}}async function C6({assetValue:f,recipient:y,memo:G,feeRate:T,sender:_}){let X=q0(y);if(!Gf(X))throw new LT.SwapKitError("toolbox_utxo_invalid_address",{address:X});let W=Math.ceil(f.getBaseValue("number")+T*7500),Z=await BT(lT).getUtxos({address:w0(_),fetchTxHex:!0,targetValue:W}),J=Number(T.toFixed(0)),Q=G?PT(G):null,L=[];if(L.push({address:cT(y),value:f.getBaseValue("number")}),Q)L.push({script:Q,value:0});let{inputs:O,outputs:U}=vT({chain:lT,feeRate:J,inputs:Z,outputs:L});if(!(O&&U))throw new LT.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:f,sender:_});let M=new zT.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Q,version:1}),{inputs:N,tx:z}=Wf({chain:lT,compiledMemo:Q,inputs:O,outputs:U,sender:cT(_),tx:M});return{inputs:N,tx:z,utxos:Z}}function F6(f){let y=zT.NETWORKS.bitcoinCash,G=zT.p2pkh(f.publicKey,y);if(!G.hash)throw new LT.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return zT.encodeCashAddr({hash:G.hash,prefix:zT.CashAddrPrefix.MAINNET,type:zT.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}var E2,LT,zT,lT;var By=E(()=>{xf();B0();U0();E2=require("@scure/base"),LT=require("@swapkit/helpers"),zT=require("@swapkit/utxo-signer"),lT=LT.Chain.BitcoinCash});function v2(){let{isStagenet:f}=ZT.SKConfig.get("envs");return f?yT.ZCASH_TEST_NETWORK:yT.ZCASH_NETWORK}function $6(f){return k6.encode(f)}function I6({phrase:f,derivationPath:y}){let G=i1.mnemonicToSeedSync(f),_=g1.HDKey.fromMasterSeed(G).derive(y);if(!_.privateKey||!_.publicKey)throw new ZT.SwapKitError("toolbox_utxo_invalid_params");let{privateKey:X,publicKey:W}=_,Z=yT.utils.hash160(W),{isStagenet:J}=ZT.SKConfig.get("envs"),Q=J?new Uint8Array([29,37]):new Uint8Array([28,184]),L=new Uint8Array(Q.length+Z.length);L.set(Q,0),L.set(Z,Q.length);let O=$6(L);return{getAddress:()=>Promise.resolve(O),signTransaction:(U)=>{if(U instanceof yT.PCZT)return U.signAllInputs(X,W,yT.ZcashSigHash.ALL),U.finalizeAllInputs(),Promise.resolve(U.extract());return U.signAllInputs(X,W,yT.ZcashSigHash.ALL),Promise.resolve(U)}}}function A6({inputs:f,outputs:y,tx:G,sender:T,compiledMemo:_}){let X=v2();for(let W of f){let Z=yT.Address(X).decode(T),J=yT.OutScript.encode(Z);G.addInput({index:W.index,script:J,sequence:4294967295,txid:wy.hex.decode(W.hash),value:BigInt(W.value)})}for(let W of y){let Z="address"in W&&W.address?W.address:T,J=W.script;if(J&&!_)continue;if(J&&_)G.addOutput({amount:0n,script:_});else G.addOutputAddress(Z,BigInt(W.value),X)}return{inputs:f,tx:G}}async function V2(f){let{assetValue:y,recipient:G,memo:T,feeRate:_,sender:X,fetchTxHex:W}=f,Z=T?PT(T):null,J=await BT(ZT.Chain.Zcash).getUtxos({address:X,fetchTxHex:W!==!1}),Q=[{address:G,value:Number(y.getBaseValue("string"))},...Z?[{script:Z,value:0}]:[]],{inputs:L,outputs:O}=vT({chain:ZT.Chain.Zcash,changeAddress:X,feeRate:_,inputs:J,outputs:Q});if(!(L&&O))throw new ZT.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let U=yT.createZcashTransaction({consensusBranchId:yT.ZcashConsensusBranchId.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:yT.ZcashVersionGroupId.SAPLING}),{tx:M,inputs:N}=A6({compiledMemo:Z,inputs:L,outputs:O,sender:X,tx:U});return{inputs:N,outputs:O,tx:M}}function d1(f){let y=Vf.match(f).with({signer:Vf.P.not(Vf.P.nullish)},({signer:J})=>J).with({phrase:Vf.P.string},({phrase:J,derivationPath:Q,index:L=0})=>{let O=Q||ZT.NetworkDerivationPath[ZT.Chain.Zcash]||[44,133,0,0,0],U=ZT.updateDerivationPath(O,{index:L}),M=ZT.derivationPathToString(U);return I6({derivationPath:M,phrase:J})}).otherwise(()=>{return}),G=Zf({chain:ZT.Chain.Zcash,signer:y});async function T({recipient:J,assetValue:Q,feeOptionKey:L=ZT.FeeOption.Fast,...O}){let U=await y?.getAddress();if(!(y&&U))throw new ZT.SwapKitError("toolbox_utxo_no_signer");let M=O.feeRate||(await G.getFeeRates())[L],{tx:N}=await V2({...O,assetValue:Q,feeRate:M,recipient:J,sender:U}),B=(await y.signTransaction(N)).toHex();return G.broadcastTx(B)}function _({phrase:J,derivationPath:Q="m/44'/133'/0'/0/0"}){let L=i1.mnemonicToSeedSync(J),U=g1.HDKey.fromMasterSeed(L).derive(Q);if(!U.privateKey||!U.publicKey)throw new ZT.SwapKitError("toolbox_utxo_invalid_params");return{privateKey:U.privateKey,publicKey:U.publicKey}}function X({phrase:J,derivationPath:Q="m/44'/133'/0'/0/0"}){let L=_({derivationPath:Q,phrase:J}),O=v2();return yT.WIF(O).encode(L.privateKey)}function W(J){return async function(L){if(!J)throw new ZT.SwapKitError("toolbox_utxo_no_signer");return await J.signTransaction(L)}}function Z(J){return async function(L){if(!J)throw new ZT.SwapKitError("toolbox_utxo_no_signer");let O=await J.signTransaction(L);return G.broadcastTx(O.toHex())}}return{...G,createKeysForPath:_,createTransaction:V2,getPrivateKeyFromMnemonic:X,signAndBroadcastTransaction:Z(y),signTransaction:W(y),transfer:T,validateAddress:Sf}}var wy,g1,i1,ZT,yT,Vf,k6;var r1=E(()=>{xf();B0();U0();wy=require("@scure/base"),g1=require("@scure/bip32"),i1=require("@scure/bip39"),ZT=require("@swapkit/helpers"),yT=require("@swapkit/utxo-signer"),Vf=require("ts-pattern");k6=wy.createBase58check(yT.utils.sha256)});function P6(f,y){switch(f){case gT.Chain.BitcoinCash:return c1(y||{});case gT.Chain.Zcash:return d1(y);case gT.Chain.Bitcoin:case gT.Chain.Dogecoin:case gT.Chain.Litecoin:case gT.Chain.Dash:return Zf({chain:f,...y});default:throw new gT.SwapKitError("toolbox_utxo_not_supported",{chain:f})}}var gT;var o2=E(()=>{By();B0();r1();By();U0();gT=require("@swapkit/helpers")});var a1={};wT(a1,{validateZcashAddress:()=>Sf,validateUtxoAddress:()=>h1,validateBchAddress:()=>Gf,toLegacyAddress:()=>cT,toCashAddress:()=>q0,stripToCashAddress:()=>w0,stripPrefix:()=>Of,nonSegwitChains:()=>M0,isValidAddress:()=>K1,getUtxoToolbox:()=>P6,getUtxoNetwork:()=>y6,getUtxoApi:()=>BT,getUTXOAddressValidator:()=>p1,getScriptTypeForAddress:()=>Pf,getOutputSize:()=>z0,getNetworkForChain:()=>xT,getInputSize:()=>_f,getDustThreshold:()=>N0,detectAddressNetwork:()=>j1,createZcashToolbox:()=>d1,createUTXOToolbox:()=>Zf,createHDWalletHelpers:()=>Y2,createCustomUtxoApi:()=>f6,createBCHToolbox:()=>c1,compileMemo:()=>PT,calculateTxSize:()=>Df,addressFromKeysGetter:()=>t1,addInputsAndOutputs:()=>Wf,accumulative:()=>vT,UtxoNetwork:()=>o1,UTXOScriptType:()=>zy,TX_OVERHEAD:()=>qy,SEGWIT_MARKER_FLAG_WEIGHT:()=>Ly,OutputSizes:()=>L0,OP_RETURN_OVERHEAD:()=>k2,MIN_TX_FEE:()=>q6,InputSizes:()=>Yy});module.exports=HT(a1);var s1=E(()=>{B0();xf();o2();By();r1()});function D0(f){return f.length>=2&&f.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(f)}async function Oy(f){let{parseSeedPhrase:y}=await import("near-seed-phrase"),{KeyPair:G}=await import("@near-js/crypto"),T=f.index||0,_=f.derivationPath?Dy.derivationPathToString(f.derivationPath.slice(0,3)):`m/44'/397'/${T}'`,{secretKey:X}=y(f.phrase,_),W=G.fromString(X);return b2(W)}async function e1(f){let{KeyPair:y}=await import("@near-js/crypto"),G=y.fromString(f);return b2(G)}function b2(f){return new j2(f)}async function Hy(f,y){let T=(await f.query({account_id:y,finality:"final",request_type:"view_access_key_list"})).keys.find((Z)=>Z.access_key.permission==="FullAccess");if(!T)throw new Dy.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:_}=await import("@near-js/crypto"),X=_.fromString(T.public_key);return{nonce:T.access_key.nonce||0,publicKey:X}}var K2,Dy,j2;var T5=E(()=>{K2=require("@near-js/signers"),Dy=require("@swapkit/helpers");j2=class j2 extends K2.KeyPairSigner{#T;constructor(f){super(f);this.#T=f}getAddress(){let f=this.#T.getPublicKey(),y=Buffer.from(f.data).toString("hex");return Promise.resolve(y)}}});function f5(f){return"recipient"in f&&"amount"in f&&!("contractId"in f)}function y5(f){return"contractId"in f&&"methodName"in f}function _5(f){return"actions"in f}function G5(f){return"newAccountId"in f}function X5(f){return"contractCode"in f}function W5(f){return"customEstimator"in f}function Z5(f){let y=0;for(let G of f)switch(G.enum){case"transfer":y+=Number(OT.SIMPLE_TRANSFER);break;case"functionCall":y+=Number(OT.CONTRACT_CALL);break;case"createAccount":y+=Number(OT.ACCOUNT_CREATION);break;case"deployContract":y+=Number(OT.CONTRACT_DEPLOYMENT);break;case"addKey":y+=Number(OT.ACCESS_KEY_ADDITION);break;case"deleteKey":y+=Number(OT.ACCESS_KEY_DELETION);break;case"stake":y+=Number(OT.STAKE);break;default:y+=Number(OT.CONTRACT_CALL)}return y.toString()}function J5(f){if(f==="ft_transfer"||f==="ft_transfer_call")return OT.TOKEN_TRANSFER;if(f==="storage_deposit")return OT.STORAGE_DEPOSIT;return OT.CONTRACT_CALL}function x6(f){return(BigInt(f)*BigInt(1000000000000)).toString()}function S6(f){return(BigInt(f)/BigInt(1000000000000)).toString()}var OT;var Q5=E(()=>{OT={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 Y5({account:f,contractId:y,viewMethods:G,changeMethods:T}){let{Contract:_}=await import("@near-js/accounts");return new _(f,y,{changeMethods:T,useLocalViewExecution:!0,viewMethods:G})}function E6(f){let y;async function G(){if(y)return y;return y=await vf.match(f).with({phrase:vf.P.string},async(C)=>{return await Oy(C)}).with({signer:vf.P.any},({signer:C})=>C).otherwise(()=>{return}),y}async function T(){let C=await e.getRPCUrl(e.Chain.Near);return new l2.JsonRpcProvider({url:C})}async function _(C){let{Account:I}=await import("@near-js/accounts"),P=await T(),n=await G(),b=C||await X();return new I(b,P,n)}async function X(){let C=await G();if(!C)throw new e.SwapKitError("toolbox_near_no_signer");return await C.getAddress()}async function W(C){return(await w({changeMethods:[],contractId:C.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:C.accountId})}async function Z(C){let P=[await U({args:{account_id:C.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await U({args:{amount:C.assetValue.getBaseValue("string"),memo:C.memo||null,receiver_id:C.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return Y({actions:P,receiverId:C.contractId})}async function J(C){if(!await G())throw new e.SwapKitError("toolbox_near_no_signer");let{assetValue:P,recipient:n,memo:b}=C,h=await X();if(!P.isGasAsset&&P.address){if(!await W({accountId:n,contractId:P.address}))return Z({assetValue:P,contractId:P.address,memo:b,recipient:n})}let g=await Q({...C,sender:h});return z(g)}async function Q({recipient:C,assetValue:I,memo:P,attachedDeposit:n,sender:b,functionCall:h}){let g=await T();if(!D0(C))throw new e.SwapKitError("toolbox_near_invalid_address",{recipient:C});if(!D0(b))throw new e.SwapKitError("toolbox_near_invalid_address",{sender:b});if(h)return O({...h,sender:b});if(!I.isGasAsset){let x5=I.address;if(!x5)throw new e.SwapKitError("toolbox_near_missing_contract_address");return O({args:{amount:I.getBaseValue("string"),memo:P||null,receiver_id:C},attachedDeposit:n||"1",contractId:x5,gas:"250000000000000",methodName:"ft_transfer",sender:b})}let{publicKey:TT,nonce:UT}=await Hy(g,b),FT=I.getBaseValue("bigint"),{actionCreators:DT,createTransaction:kT}=await import("@near-js/transactions"),{baseDecode:JT}=await import("@near-js/utils"),$T=[DT.transfer(FT)];if(P&&n)$T.push(DT.functionCall("memo",{memo:P},BigInt("250000000000000"),BigInt(n)));let Jf=await g.block({finality:"final"}),Rf=JT(Jf.header.hash);return kT(b,TT,C,UT+1,$T,Rf)}function L(C){let I=C.encode();return Buffer.from(I).toString("base64")}async function O({args:C,attachedDeposit:I,contractId:P,gas:n,methodName:b,sender:h}){let g=await T(),{publicKey:TT,nonce:UT}=await Hy(g,h),{createTransaction:FT,actionCreators:DT}=await import("@near-js/transactions"),{baseDecode:kT}=await import("@near-js/utils"),JT=await g.block({finality:"final"}),$T=kT(JT.header.hash),Jf=[DT.functionCall(b,Buffer.from(JSON.stringify(C)),BigInt(n),BigInt(I))];return FT(h,TT,P,UT+1,Jf,$T)}async function U(C){let{actionCreators:I}=await import("@near-js/transactions");return I.functionCall(C.methodName,Buffer.from(JSON.stringify(C.args)),BigInt(C.gas),BigInt(C.attachedDeposit))}async function M(C){let I=await G();if(!I)throw new e.SwapKitError("toolbox_near_no_signer");let[P,n]=await I.signTransaction(C);return n}async function N(C){return(await(await T()).sendTransaction(C)).transaction.hash}async function z(C){let I=await G();if(!I)throw new e.SwapKitError("toolbox_near_no_signer");try{let P=await M(C);return await N(P)}catch{return I.signAndSendTransactions?.({transactions:[C]})}}async function B(C){let I=await G();if("assetValue"in C){let n=await k();try{let b=await e.getRPCUrl(e.Chain.Near),h=await fetch(b,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:g}}=await h.json(),{execution:TT,send_sir:UT}=g.transaction_costs.action_receipt_creation_config,{execution:FT,send_sir:DT}=g.transaction_costs.action_creation_config.transfer_cost,kT=BigInt(DT)+BigInt(FT),JT=BigInt(UT)+BigInt(TT),Jf=(kT+JT)*BigInt(n.toString());return e.AssetValue.from({chain:e.Chain.Near,value:Jf})}catch(b){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",b);let h=BigInt("115123062500"),g=BigInt("108059500000"),UT=(h+g)*BigInt(n.toString());return e.AssetValue.from({chain:e.Chain.Near,value:UT})}}let P=I?await _():void 0;return q(C,P)}async function k(){let C=await T();try{return await C.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function H(C,I,P){if(!await G())throw new e.SwapKitError("toolbox_near_no_signer");let b=await _(),{formatNearAmount:h}=await import("@near-js/utils"),{PublicKey:g}=await import("@near-js/crypto"),TT=h(P)||"0";return(await b.createAccount(C,g.fromString(I),BigInt(TT))).transaction.hash}async function F(C){let I=await G();try{if(!I)throw new e.SwapKitError("toolbox_near_no_signer");let{actionCreators:P}=await import("@near-js/transactions"),{contractId:n,methodName:b,args:h,deposit:g}=C,TT=await _(),UT=await q({args:h||{},contractId:n,methodName:b}),FT=P.functionCall(b,h||{},UT.getBaseValue("bigint"),BigInt(g||"1"));return(await TT.signAndSendTransaction({actions:[FT],receiverId:n})).transaction_outcome.id}catch(P){throw new e.SwapKitError("toolbox_near_transfer_failed",{error:P})}}async function w(C){let I=await _();return Y5({account:I,changeMethods:C.changeMethods,contractId:C.contractId,viewMethods:C.viewMethods})}async function Y(C){if(!await G())throw new e.SwapKitError("toolbox_near_no_signer");if(C.actions.length===0)throw new e.SwapKitError("toolbox_near_empty_batch");return(await(await _()).signAndSendTransaction({actions:C.actions,receiverId:C.receiverId})).transaction.hash}async function q(C,I){let P=await vf.match(C).when(f5,()=>OT.SIMPLE_TRANSFER).when(y5,(b)=>J5(b.methodName)).when(_5,(b)=>Z5(b.actions)).when(G5,()=>OT.ACCOUNT_CREATION).when(X5,()=>OT.CONTRACT_DEPLOYMENT).when(W5,(b)=>{if(!I)throw new e.SwapKitError("toolbox_near_no_account");return b.customEstimator(I)}).otherwise(()=>{throw new e.SwapKitError("toolbox_near_invalid_gas_params")}),n=BigInt(P)*BigInt(1000000000000);return e.AssetValue.from({chain:e.Chain.Near,value:n})}function D(C,I){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),q(C,I)}async function R(){let C=await T();try{return(await C.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function $(){let C=await G();return C?(await C.getPublicKey()).toString():""}return{broadcastTransaction:N,callFunction:F,createAction:U,createContract:w,createContractFunctionCall:O,createSubAccount:H,createTransaction:Q,estimateGas:D,estimateGasLimit:q,estimateTransactionFee:B,executeBatchTransaction:Y,getAddress:X,getBalance:ST(e.Chain.Near),getGasPrice:R,getNearProvider:T,getPublicKey:$,getSignerFromPhrase:Oy,getSignerFromPrivateKey:e1,serializeTransaction:L,signAndBroadcastTransaction:z,signTransaction:M,transfer:J,validateAddress:D0}}var l2,e,vf;var q5=E(()=>{dT();T5();Q5();l2=require("@near-js/providers"),e=require("@swapkit/helpers"),vf=require("ts-pattern")});var u2=E(()=>{q5()});var L5={};wT(L5,{validateNearAddress:()=>D0,tgasToGas:()=>x6,isSimpleTransfer:()=>f5,isCustomEstimator:()=>W5,isContractDeployment:()=>X5,isContractCall:()=>y5,isBatchTransaction:()=>_5,isAccountCreation:()=>G5,getNearToolbox:()=>E6,getNearSignerFromPrivateKey:()=>e1,getNearSignerFromPhrase:()=>Oy,getFullAccessPublicKey:()=>Hy,getContractMethodGas:()=>J5,gasToTGas:()=>S6,estimateBatchGas:()=>Z5,createNearContract:()=>Y5,GAS_COSTS:()=>OT});module.exports=HT(L5);var z5=E(()=>{T5();Q5();q5();u2()});var N5={};wT(N5,{validateRadixAddress:()=>p2,getRadixToolbox:()=>K6});module.exports=HT(N5);function p2(f){return f.startsWith("account_rdx1")&&f.length===66}function n6({networkApi:f}){return async function(G){let T=await V6({address:G,networkApi:f}),_=await v6({networkApi:f,resources:T});if(!_.some((W)=>W.isGasAsset))return[oT.AssetValue.from({chain:oT.Chain.Radix}),..._];return _}}async function V6({address:f,networkApi:y}){let G=!0,T,_=[],X=await o6(y);while(G){let W={address:f,at_ledger_state:{state_version:X},cursor:T,limit_per_page:100},Z=await y.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:W});if(_=_.concat(Z.items),Z.next_cursor)T=Z.next_cursor;else G=!1}return _}async function v6({resources:f,networkApi:y}){let G=[],T=50,_=[];for(let X=0;X<f.length;X+=50)_.push(f.slice(X,X+50));for(let X of _){let W=X.map((Q)=>Q.resource_address),Z=await y.state.getEntityDetailsVaultAggregated(W),J=new Map;for(let Q of Z)if(Q.details!==void 0){let L=Q.metadata?.items.find((U)=>U.key==="symbol"),O=L?.value.typed.type==="String"?L.value.typed.value:"?";if(Q.details.type==="FungibleResource")J.set(Q.address,{decimals:Q.details.divisibility,symbol:O})}for(let Q of X)if(Q.aggregation_level==="Global"){let L=J.get(Q.resource_address)||{decimals:0,symbol:"?"},O=oT.AssetValue.from({asset:L.symbol!==oT.Chain.Radix?`${oT.Chain.Radix}.${L.symbol}-${Q.resource_address}`:"XRD.XRD",value:Q.amount});G.push(O)}}return G}async function o6(f){return(await f.status.getCurrent()).ledger_state.state_version}function K6({dappConfig:f}={}){let y=f||oT.SKConfig.get("integrations").radix,G=m2.RadixDappToolkit({...y,networkId:y.network?.networkId||1}),T=h2.GatewayApiClient.initialize(G.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:n6({networkApi:T}),networkApi:T,signAndBroadcast:()=>{throw new oT.SwapKitError("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:p2}}var h2,m2,oT;var U5=E(()=>{h2=require("@radixdlt/babylon-gateway-api-sdk"),m2=require("@radixdlt/radix-dapp-toolkit"),oT=require("@swapkit/helpers")});function Ry(f){return/^[0-9A-Fa-f]{40}$/.test(f)}function O0(f){if(Ry(f))return f.toUpperCase();if(f.length<=3){let G=Buffer.from(f.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${G}${"0".repeat(10)}`.toUpperCase()}let y=Buffer.from(f).toString("hex").toUpperCase();if(y.length>40)throw new t2.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:f,reason:"Currency exceeds maximum length (20 bytes)"}});return y.padEnd(40,"0")}function j6(f){if(!Ry(f))return f;if(f.toUpperCase().startsWith("00")){let y=f.slice(24,30);try{let G=Buffer.from(y,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(G)&&G.length>0)return G}catch{}return f.toUpperCase()}try{let y=f.replace(/0+$/,""),G=y.length%2===0?y:`${y}0`,T=Buffer.from(G,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(T))return T}catch{}return f.toUpperCase()}function of(f){if(Ry(f))return f.toUpperCase();if(f.length<=3)return f;return O0(f)}var t2;var Cy=E(()=>{t2=require("@swapkit/helpers")});async function b6(f,y){let G=of(f),T=ky.find((_)=>of(_.currency)===G&&_.issuer===y);if(T)return T;try{let _=await Fy.RequestClient.get(`https://api.xrplmeta.org/token/${f}:${y}`);if(_)return{currency:f,decimals:15,description:_.desc,domain:_.domain,icon:_.icon,issuer:y,name:_.name,verified:_.self_assessment?.is_regulated||_.self_assessment?.is_licensed}}catch(_){Fy.warnOnce({condition:!0,id:`xrpl_token_lookup_${f}_${y}`,warning:`Failed to fetch XRPL token info for ${f}:${y}: ${_}`})}return{currency:f,decimals:15,issuer:y,verified:!1}}function l6(f){return ky.filter((y)=>y.issuer===f)}function u6(f,y){let G=of(f);return ky.some((T)=>of(T.currency)===G&&T.issuer===y)}var Fy,ky;var c2=E(()=>{Cy();Fy=require("@swapkit/helpers"),ky=[{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 M5={};wT(M5,{validateRippleAddress:()=>Iy,parseXrplTokenIdentifier:()=>d2,normalizeCurrency:()=>of,isKnownToken:()=>u6,isHexCurrency:()=>Ry,hexToCurrency:()=>j6,hashes:()=>a2.hashes,getXrplTokenInfo:()=>b6,getRippleToolbox:()=>m6,getKnownTokensByIssuer:()=>l6,formatXrplTokenIdentifier:()=>r2,currencyToHex:()=>O0,XRPL_TOKEN_ERROR_CODES:()=>$y,XRPL_KNOWN_TOKENS:()=>ky});module.exports=HT(M5);function d2(f){let y=f.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!y?.[1]||!y?.[2])return null;if(!iT.isValidAddress(y[2]))return null;return{currency:y[1],issuer:y[2]}}function r2(f,y){return`${t.Chain.Ripple}.${f}-${y}`}function h6(f){if(f.isGasAsset)return iT.xrpToDrops(f.getValue("string"));let y=d2(f.toString());if(!y)throw new t.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:f.toString()}});return{currency:y.currency,issuer:y.issuer,value:f.getValue("string")}}function i2(f){let y=iT.Wallet.fromMnemonic(f);return{getAddress:()=>Promise.resolve(y.address),signTransaction:(G)=>Promise.resolve(y.sign(G))}}function Iy(f){return iT.isValidAddress(f)}function m6(f={}){let y=Kf.match(f).with({phrase:Kf.P.string},({phrase:H})=>i2(H)).with({signer:Kf.P.any},({signer:H})=>H).otherwise(()=>{return}),G;async function T(){let H=await t.getRPCUrl(t.Chain.Ripple);if(!H)throw new t.SwapKitError({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:t.Chain.Ripple}});let F=new iT.Client(H);return await F.connect(),F}async function _(){if(G){let H=await G.catch(()=>null);if(H?.isConnected())return H}return G=T(),G}let X=()=>{if(!y)throw new t.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return y.getAddress()},W=async(H)=>{let F=H||await X(),{baseDecimal:w}=t.getChainConfig(t.Chain.Ripple),Y=await _();try{let[q,D]=await Promise.all([Y.request({account:F,command:"account_info"}),Y.request({account:F,command:"account_lines"})]),R=q.result.account_data.Balance,$=[t.AssetValue.from({chain:t.Chain.Ripple,fromBaseDecimal:w,value:R})];for(let C of D.result.lines){let I=r2(C.currency,C.account);if(Number.parseFloat(C.balance)!==0)$.push(t.AssetValue.from({asset:I,asyncTokenLookup:!1,value:C.balance}))}return $}catch(q){if(q.data?.error_code===g2.ACCOUNT_NOT_FOUND)return[t.AssetValue.from({chain:t.Chain.Ripple,value:0})];throw new t.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{address:F,error:q}})}},Z=async()=>{let{baseDecimal:H}=t.getChainConfig(t.Chain.Ripple),Y=(await(await _()).request({command:"fee"})).result.drops.open_ledger_fee;return t.AssetValue.from({chain:t.Chain.Ripple,fromBaseDecimal:H,value:Y})};async function J(H){let F=H||await X(),w=await _();try{return(await w.request({account:F,command:"account_lines"})).result.lines.map((q)=>({account:q.account,authorized:q.authorized??!1,balance:q.balance,currency:q.currency,freeze:q.freeze??!1,freezePeer:q.freeze_peer??!1,limit:q.limit,limitPeer:q.limit_peer,noRipple:q.no_ripple??!1,noRipplePeer:q.no_ripple_peer??!1,peerAuthorized:q.peer_authorized??!1,qualityIn:q.quality_in??0,qualityOut:q.quality_out??0}))}catch(Y){if(Y.data?.error_code===g2.ACCOUNT_NOT_FOUND)return[];throw new t.SwapKitError({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:F,error:Y}})}}async function Q({address:H,currency:F,issuer:w}){let Y=await J(H),q=O0(F);return Y.some((D)=>{return O0(D.currency)===q&&D.account===w})}async function L({currency:H,issuer:F,limit:w,sender:Y}){let q=Y||await X();if(!Iy(F))throw new t.SwapKitError({errorKey:"core_transaction_invalid_recipient_address",info:{address:F}});let D=Number.parseFloat(w);if(Number.isNaN(D)||D<0)throw new t.SwapKitError({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:w}});let R=await _(),$={Account:q,LimitAmount:{currency:H,issuer:F,value:w},TransactionType:"TrustSet"};return R.autofill($)}async function O({assetValue:H,recipient:F,memo:w,sender:Y,destinationTag:q,extendBySeconds:D=150}){if(!Iy(F))throw new t.SwapKitError({errorKey:"core_transaction_invalid_recipient_address"});let R=Y||await X();if(H.chain!==t.Chain.Ripple)throw new t.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:H.toString()}});let $=h6(H),C={Account:R,Amount:$,Destination:F,TransactionType:"Payment",...q!==void 0&&{DestinationTag:q}};if(w)C.Memos=[{Memo:{MemoData:Buffer.from(w).toString("hex")}}];let P=await(await _()).autofill(C);if(P.LastLedgerSequence&&D>0)P.LastLedgerSequence+=Math.ceil(D/4);return P}function U(H){if(!y)throw new t.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return y.signTransaction(H)}async function M(H){let w=await(await _()).submitAndWait(H),{result:Y}=w;if(Y.validated)return Y.hash;let q=Y.meta?.TransactionResult,D=Kf.match(q).with($y.tecNO_LINE,()=>"No trust line exists for this token").with($y.tecPATH_DRY,()=>"Payment path could not deliver funds").with($y.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new t.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:t.Chain.Ripple,...D?{reason:D}:{txResult:q}}})}let N=async(H)=>{try{let F=await U(H);return M(F.tx_blob)}catch(F){if(F instanceof t.SwapKitError)throw F;throw new t.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:t.Chain.Ripple,error:F}})}};async function z(H){if(!y)throw new t.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let F=await y.getAddress(),w=await O({...H,sender:F}),Y=await U(w);return M(Y.tx_blob)}async function B(H){if(!y)throw new t.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let F=await y.getAddress(),w=await L({...H,sender:F}),Y=await U(w);return M(Y.tx_blob)}function k(){let H=G;if(G=null,H)H.then((F)=>{if(F?.isConnected())return F.disconnect();return}).catch((F)=>{console.warn("XRPL Cleanup failed silently:",F)})}return{broadcastTransaction:M,createSigner:i2,createTransaction:O,disconnect:k,estimateTransactionFee:Z,getAddress:X,getBalance:W,getTrustLines:J,hasTrustLine:Q,setTrustLine:L,setTrustLineAndBroadcast:B,signAndBroadcastTransaction:N,signTransaction:U,transfer:z,validateAddress:Iy}}var t,Kf,iT,a2,g2,$y;var B5=E(()=>{Cy();t=require("@swapkit/helpers"),Kf=require("ts-pattern"),iT=require("xrpl");Cy();c2();a2=require("xrpl"),g2={ACCOUNT_NOT_FOUND:19},$y={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});function w5(f,y){let G=0n,T=0n,_=y;while(_<f.length&&_-y<10){let X=f[_++];if(X===void 0)break;if(G|=BigInt(X&127)<<T,T+=7n,(X&128)===0)return[G,_]}throw new Hf.SwapKitError("toolbox_tron_transaction_creation_failed")}function H0(f){let y=[],G=f<0n?f+2n**64n:f;while(G>=128n)y.push(Number(G&0x7fn)|128),G>>=7n;return y.push(Number(G)),y}function Ay(f,y,G){let T=f.get(y);if(T)T.push(G);else f.set(y,[G])}function g6(f){let y=new Map,G=0;while(G<f.length){let[T,_]=w5(f,G);G=_;let X=Number(T>>3n),W=Number(T&7n);if(W===Py){let[Z,J]=w5(f,G);G=J,Ay(y,X,{data:new Uint8Array(H0(Z)),wireType:Py})}else if(W===xy){let[Z,J]=w5(f,G);G=J;let Q=Number(Z);if(Q<0||G+Q>f.length)throw new Hf.SwapKitError("toolbox_tron_transaction_creation_failed");let L=f.slice(G,G+Q);G+=Q,Ay(y,X,{data:L,wireType:xy})}else if(W===s2){if(G+8>f.length)throw new Hf.SwapKitError("toolbox_tron_transaction_creation_failed");let Z=f.slice(G,G+8);G+=8,Ay(y,X,{data:Z,wireType:s2})}else if(W===e2){if(G+4>f.length)throw new Hf.SwapKitError("toolbox_tron_transaction_creation_failed");let Z=f.slice(G,G+4);G+=4,Ay(y,X,{data:Z,wireType:e2})}else throw new Hf.SwapKitError("toolbox_tron_transaction_creation_failed")}return y}function i6(f){let y=[];for(let[X,W]of[...f.entries()].sort(([Z],[J])=>Z-J))for(let{wireType:Z,data:J}of W){let Q=BigInt(X<<3|Z);if(y.push(new Uint8Array(H0(Q))),Z===xy)y.push(new Uint8Array(H0(BigInt(J.length))));y.push(J)}let G=y.reduce((X,W)=>X+W.length,0),T=new Uint8Array(G),_=0;for(let X of y)T.set(X,_),_+=X.length;return T}function fG(f,y){if(!f||f.length%2!==0)throw new Hf.SwapKitError("toolbox_tron_transaction_creation_failed");let G=jf.hexToBytes(f),T=g6(G);if(y.expiration!==void 0)T.set(p6,[{data:new Uint8Array(H0(BigInt(y.expiration))),wireType:Py}]);if(y.data!==void 0)T.set(t6,[{data:jf.hexToBytes(y.data),wireType:xy}]);if(y.fee_limit!==void 0)T.set(c6,[{data:new Uint8Array(H0(BigInt(y.fee_limit))),wireType:Py}]);let _=i6(T),X=jf.bytesToHex(_),W=jf.bytesToHex(TG.sha256(_));return{raw_data_hex:X,txID:W}}var TG,jf,Hf,Py=0,s2=1,xy=2,e2=5,p6=8,t6=10,c6=18;var yG=E(()=>{TG=require("@noble/hashes/sha2.js"),jf=require("@noble/hashes/utils.js"),Hf=require("@swapkit/helpers")});function KT(f){if(typeof f!=="string")return!1;try{let y=Sy.decode(f);return y.length===21&&y[0]===XG}catch{return!1}}function WG(f){return nT.bytesToHex(Sy.decode(f))}function r6(f){return Sy.decode(f).slice(1)}function ZG(f){let y=D5.secp256k1.getPublicKey(nT.hexToBytes(f),!1),G=_G.keccak_256(y.slice(1)).slice(-20),T=new Uint8Array(21);return T[0]=XG,T.set(G,1),Sy.encode(T)}function JG({txID:f,privateKey:y}){let G=D5.secp256k1.sign(nT.hexToBytes(f),nT.hexToBytes(y),{format:"recovered",prehash:!1}),T=G[0]??0,_=nT.bytesToHex(G.slice(1,33)),X=nT.bytesToHex(G.slice(33,65)),W=(T+27).toString(16).padStart(2,"0");return _+X+W}function bf({txID:f,raw_data_hex:y}){let G=nT.bytesToHex(O5.sha256(nT.hexToBytes(y)));if(f!==G)throw new H5.SwapKitError("toolbox_tron_token_transfer_failed")}function a6(f){return`000000000000000000000000${nT.bytesToHex(r6(f))}`}function s6(f){let y=typeof f==="bigint"?f:BigInt(f);if(y<0n||y>=d6)throw new H5.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:y.toString()});return y.toString(16).padStart(64,"0")}function lf(f){return f.map(({type:y,value:G})=>y==="address"?a6(G):s6(BigInt(G))).join("")}function QG(f){return nT.bytesToHex(new TextEncoder().encode(f))}var D5,O5,_G,nT,GG,H5,Sy,XG=65,d6;var R5=E(()=>{D5=require("@noble/curves/secp256k1.js"),O5=require("@noble/hashes/sha2.js"),_G=require("@noble/hashes/sha3.js"),nT=require("@noble/hashes/utils.js"),GG=require("@scure/base"),H5=require("@swapkit/helpers"),Sy=GG.createBase58check(O5.sha256),d6=2n**256n});function qG(){try{return NT.getRPCUrlSync(NT.Chain.Tron)}catch{return YG}}function LG(){let f=new AbortController,y=setTimeout(()=>f.abort(),y8);return{cleanup:()=>clearTimeout(y),signal:f.signal}}async function uf(f,y){let{signal:G,cleanup:T}=LG();try{let _=await fetch(`${qG()}${f}`,{body:JSON.stringify(y),headers:{"Content-Type":"application/json"},method:"POST",signal:G});if(!_.ok)throw new NT.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${_.status} ${_.statusText} on ${f}`});return await _.json()}finally{T()}}async function zG(f,y){let{signal:G,cleanup:T}=LG();try{let _=await fetch(`${y??qG()}${f}`,{headers:{"Content-Type":"application/json"},signal:G});if(!_.ok)throw new NT.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${_.status} ${_.statusText} on ${f}`});return await _.json()}finally{T()}}async function NG(f){if(!KT(f))throw new NT.SwapKitError("toolbox_tron_trongrid_api_error",{address:f,message:"Invalid address"});try{let y=await zG(`/v1/accounts/${f}`,YG);if(!(y.success&&y.data)||y.data.length===0)return;let G;try{G=WG(f).toLowerCase()}catch{G=f.toLowerCase()}let T=y.data.find((_)=>_.address.toLowerCase()===G);if(!T)return;return{balance:T.balance,trc20:T.trc20||[]}}catch(y){if(y instanceof NT.SwapKitError)throw y;throw new NT.SwapKitError("toolbox_tron_trongrid_api_error",{address:f,message:y instanceof Error?y.message:"Unknown error"})}}async function UG({from:f,to:y,amount:G}){let _=await uf("/wallet/createtransaction",{amount:G,owner_address:f,to_address:y,visible:!0});if(!_.txID||!_.raw_data_hex||!_.raw_data)throw new NT.SwapKitError("toolbox_tron_transaction_creation_failed");let W=_.raw_data?.contract?.[0]?.parameter?.value;if(W?.to_address!==y||W?.owner_address!==f||W?.amount!==G)throw new NT.SwapKitError("toolbox_tron_transaction_creation_failed");return bf(_),_}async function MG({ownerAddress:f,contractAddress:y,functionSelector:G,parameter:T,feeLimit:_,callValue:X=0}){let W=await uf("/wallet/triggersmartcontract",{call_value:X,contract_address:y,fee_limit:_,function_selector:G,owner_address:f,parameter:T,visible:!0});if(!W.result.result||!W.transaction?.txID||!W.transaction?.raw_data_hex)throw new NT.SwapKitError("toolbox_tron_transaction_creation_failed");let J=W.transaction.raw_data?.contract?.[0]?.parameter?.value;if(J?.contract_address!==y||J?.owner_address!==f)throw new NT.SwapKitError("toolbox_tron_transaction_creation_failed");return bf(W.transaction),W.transaction}function BG({ownerAddress:f,contractAddress:y,functionSelector:G,parameter:T}){return uf("/wallet/triggerconstantcontract",{contract_address:y,function_selector:G,owner_address:f,parameter:T,visible:!0})}async function R0(f){let{result:y,txid:G}=await uf("/wallet/broadcasttransaction",{raw_data:f.raw_data,raw_data_hex:f.raw_data_hex,signature:f.signature,txID:f.txID,visible:f.visible});if(!y||!G)throw new NT.SwapKitError("toolbox_tron_token_transfer_failed");return G}async function Ey(){let f={};try{let{chainParameter:y}=await zG("/wallet/getchainparameters");for(let G of y)f[G.key]=G.value}catch(y){NT.warnOnce({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${y instanceof Error?y.message:y}`})}return{bandwidthFee:f.getTransactionFee??e6,createAccountFee:f.getCreateAccountFee??T8,energyFee:f.getEnergyFee??f8}}async function C5(f){try{let y=await uf("/wallet/getaccountresource",{address:f,visible:!0});return{bandwidth:{free:(y.freeNetLimit??600)-(y.freeNetUsed??0),total:y.NetLimit??0,used:y.NetUsed??0},energy:{total:y.EnergyLimit??0,used:y.EnergyUsed??0}}}catch(y){return NT.warnOnce({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${y instanceof Error?y.message:y}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function F5(f){try{let y=await uf("/wallet/getaccount",{address:f,visible:!0});return y&&Object.keys(y).length>0}catch{return!1}}async function k5(f){try{let{energy_used:y}=await BG({...f,ownerAddress:f.sender});return y}catch(y){return NT.warnOnce({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy, using default: ${y instanceof Error?y.message:y}`}),65000}}async function wG({assetAddress:f,owner:y,spender:G}){let T=lf([{type:"address",value:y},{type:"address",value:G}]),X=(await BG({contractAddress:f,functionSelector:"allowance(address,address)",ownerAddress:G,parameter:T})).constant_result?.[0];if(!X)return 0n;try{return BigInt(`0x${X}`)}catch{return 0n}}var NT,YG="https://api.trongrid.io",e6=1000,T8=1e5,f8=420,y8=30000;var DG=E(()=>{R5();NT=require("@swapkit/helpers")});function kG({phrase:f,derivationPath:y}){let G=RG.HDKey.fromMasterSeed(CG.mnemonicToSeedSync(f)).derive(y);if(!G.privateKey)throw new o.SwapKitError("toolbox_tron_no_signer");return HG.bytesToHex(G.privateKey)}function $G({phrase:f,derivationPath:y,index:G}){let T=y||o.derivationPathToString(o.updateDerivationPath(o.NetworkDerivationPath[o.Chain.Tron],{index:G||0}));return kG({derivationPath:T,phrase:f})}function Z8({phrase:f,derivationPath:y}){let G=kG({derivationPath:y,phrase:f}),T=ZG(G);return{getAddress:()=>Promise.resolve(T),signTransaction:(_)=>{bf(_);let X=JG({privateKey:G,txID:_.txID});return Promise.resolve({..._,signature:[X]})}}}function OG({transaction:f,memo:y,expiration:G,feeLimit:T}){let _={},X={};if(T!==void 0&&f.raw_data)_.fee_limit=T,X.fee_limit=T;if(y){let J=QG(y);_.data=J,X.data=J}if(G){let J=f.raw_data.expiration+G*1000;_.expiration=J,X.expiration=J}if(Object.keys(_).length===0)return f;let{raw_data_hex:W,txID:Z}=fG(f.raw_data_hex,_);return{...f,raw_data:{...f.raw_data,...X},raw_data_hex:W,txID:Z}}function IG(f={}){let y="index"in f?f.index||0:0,G=o.derivationPathToString("derivationPath"in f&&f.derivationPath?f.derivationPath:o.updateDerivationPath(o.NetworkDerivationPath[o.Chain.Tron],{index:y})),T,_=!1;function X(){if(_)return Promise.resolve(T);return T=hf.match(f).with({phrase:hf.P.string},({phrase:Y})=>Z8({derivationPath:G,phrase:Y})).with({signer:hf.P.not(hf.P.nullish)},({signer:Y})=>Y).otherwise(()=>{return}),_=!0,Promise.resolve(T)}async function W(){let Y=await X();if(!Y)throw new o.SwapKitError("toolbox_tron_no_signer");return Y.getAddress()}async function Z(Y){let q=Y||G8,D=await Ey(),R=q*D.energyFee,$=Math.ceil(R*1.5);return Math.min(Math.max($,1e7),150000000)}async function J({contractAddress:Y,functionSelector:q,parameter:D,sender:R,memo:$,expiration:C}){let I=await k5({contractAddress:Y,functionSelector:q,parameter:D,sender:R}),P=await Z(I),n=await MG({contractAddress:Y,feeLimit:P,functionSelector:q,ownerAddress:R,parameter:D});return OG({expiration:C,feeLimit:P,memo:$,transaction:n})}async function Q(Y){if(!KT(Y))return[o.AssetValue.from({chain:o.Chain.Tron})];try{let q=await NG(Y);if(!q)return[o.AssetValue.from({chain:o.Chain.Tron})];let D=[o.AssetValue.from({chain:o.Chain.Tron,fromBaseDecimal:6,value:String(q.balance)})],R=q.trc20?.find(($)=>($5 in $));if(R){let $=R[$5];D.push(o.AssetValue.from({asset:`TRON.USDT-${$5}`,fromBaseDecimal:6,value:$}))}return D}catch(q){return o.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${q instanceof Error?q.message:q}`}),[o.AssetValue.from({chain:o.Chain.Tron})]}}async function L({recipient:Y,assetValue:q,memo:D,expiration:R}){if(!KT(Y))throw new o.SwapKitError("toolbox_tron_token_transfer_failed");let $=await X();if(!$)throw new o.SwapKitError("toolbox_tron_no_signer");let C=await W(),I=await z({assetValue:q,expiration:R,memo:D,recipient:Y,sender:C}),P=await $.signTransaction(I),n=await R0(P);if(!n)throw new o.SwapKitError("toolbox_tron_token_transfer_failed");return n}function O({requiredBandwidth:Y,resources:q,feePerUnit:D}){let R=Math.max(0,q.free+q.total-q.used);return Y>R?(Y-R)*D:0}async function U({recipient:Y,senderAddress:q}){let[D,R,$]=await Promise.all([Ey(),F5(Y),C5(q)]),C=R?0:D.createAccountFee,I=O({feePerUnit:D.bandwidthFee,requiredBandwidth:_8,resources:$.bandwidth});return o.AssetValue.from({chain:o.Chain.Tron,fromBaseDecimal:o.BaseDecimal.TRON,value:C+I})}async function M({assetValue:Y,recipient:q,senderAddress:D}){let R=Y.address;if(!R)throw new o.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let[$,C,I,P]=await Promise.all([Ey(),F5(q),C5(D),k5({contractAddress:R,functionSelector:"transfer(address,uint256)",parameter:lf([{type:"address",value:q},{type:"uint256",value:Y.getBaseValue("string")}]),sender:D})]),n=C?0:$.createAccountFee,b=O({feePerUnit:$.bandwidthFee,requiredBandwidth:X8,resources:I.bandwidth}),h=Math.max(0,I.energy.total-I.energy.used),g=P>h?(P-h)*$.energyFee:0;return o.AssetValue.from({chain:o.Chain.Tron,fromBaseDecimal:o.BaseDecimal.TRON,value:n+b+g})}async function N({assetValue:Y,recipient:q,sender:D}){let R=await X();try{let $=D?D:R?await W():void 0;if(!$)return Y.isGasAsset?o.AssetValue.from({chain:o.Chain.Tron,value:0.1}):o.AssetValue.from({chain:o.Chain.Tron,value:15});return Y.isGasAsset?U({recipient:q,senderAddress:$}):M({assetValue:Y,recipient:q,senderAddress:$})}catch($){throw o.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${$ instanceof Error?$.message:$}`}),new o.SwapKitError("toolbox_fee_estimation_failed",{chain:o.Chain.Tron,error:$})}}async function z({recipient:Y,assetValue:q,memo:D,sender:R,expiration:$}){if(!KT(Y)||!KT(R))throw new o.SwapKitError("toolbox_tron_token_transfer_failed");if(q.isGasAsset){let I=await UG({amount:q.getBaseValue("number"),from:R,to:Y});return OG({expiration:$,memo:D,transaction:I})}let C=q.address;if(!C)throw new o.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:q.toString()});return J({contractAddress:C,expiration:$,functionSelector:"transfer(address,uint256)",memo:D,parameter:lf([{type:"address",value:Y},{type:"uint256",value:q.getBaseValue("string")}]),sender:R})}async function B(Y){bf(Y);let q=await X();if(!q)throw new o.SwapKitError("toolbox_tron_no_signer");return q.signTransaction(Y)}async function k(Y){let q=await B(Y);return R0(q)}function H({assetAddress:Y,spenderAddress:q,from:D}){return wG({assetAddress:Y,owner:D,spender:q})}async function F({assetAddress:Y,spenderAddress:q,from:D,amount:R}){let $=await H({assetAddress:Y,from:D,spenderAddress:q});if(!R)return $>0n;return $>=BigInt(R)}async function w({assetAddress:Y,spenderAddress:q,amount:D,from:R}){if(!KT(Y)||!KT(q))throw new o.SwapKitError("toolbox_tron_approve_failed");let $=await X();if(!$)throw new o.SwapKitError("toolbox_tron_no_signer");let C=R||await W(),I=D!==void 0?BigInt(D).toString():W8;try{let P=await J({contractAddress:Y,functionSelector:"approve(address,uint256)",parameter:lf([{type:"address",value:q},{type:"uint256",value:I}]),sender:C}),n=await $.signTransaction(P),b=await R0(n);if(!b)throw new o.SwapKitError("toolbox_tron_approve_failed");return b}catch(P){if(P instanceof o.SwapKitError)throw P;throw new o.SwapKitError("toolbox_tron_approve_failed",{error:P})}}return{approve:w,broadcastTransaction:R0,createTransaction:z,estimateTransactionFee:N,getAddress:W,getApprovedAmount:H,getBalance:Q,getRpcUrl:()=>o.getRPCUrl(o.Chain.Tron),isApproved:F,signAndBroadcastTransaction:k,signTransaction:B,transfer:L,validateAddress:KT}}var HG,RG,CG,o,hf,FG,_8=268,G8=65000,X8=345,$5="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",W8="115792089237316195423570985008687907853269984665640564039457584007913129639935";var AG=E(()=>{yG();DG();R5();HG=require("@noble/hashes/utils.js"),RG=require("@scure/bip32"),CG=require("@scure/bip39"),o=require("@swapkit/helpers"),hf=require("ts-pattern"),FG=KT});var I5={};wT(I5,{validateTronAddress:()=>FG,getTronToolbox:()=>IG,getTronPrivateKeyFromMnemonic:()=>$G});module.exports=HT(I5);var A5=E(()=>{AG()});function Vy(f){if(!f||typeof f!=="string"||!f.startsWith("G")||f.length!==56)return!1;return J8.test(f)}async function Q8(f){if(!Vy(f))return!1;try{let{StrKey:y}=await import("@stellar/stellar-sdk");return y.isValidEd25519PublicKey(f)}catch{return!1}}function PG(f={}){let y,G=f.derivationPath||a.NetworkDerivationPath[a.Chain.Stellar],T=a.derivationPathToString(G.slice(0,3));async function _({phrase:z,path:B}){let{HDKey:k}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:H}=await import("@scure/bip39"),{Keypair:F}=await import("@stellar/stellar-sdk"),w=H(z),q=k.fromMasterSeed(w).derive(B,!0);return F.fromRawEd25519Seed(Buffer.from(q.privateKey))}async function X(){if(y)return y;let z=ny.match(f).with({phrase:ny.P.string},({phrase:B})=>B).otherwise(()=>{return});if(!z)throw new a.SwapKitError("toolbox_stellar_no_signer");return y=await _({path:T,phrase:z}),y}async function W(){let{Horizon:z}=await import("@stellar/stellar-sdk"),B=await a.getRPCUrl(a.Chain.Stellar);return new z.Server(B)}async function Z(){try{return(await X()).publicKey()}catch{return""}}async function J(z){let B=z||await Z();if(!B)throw new a.SwapKitError("toolbox_stellar_account_not_found");try{return(await(await W()).loadAccount(B)).balances.map((F)=>{if(F.asset_type==="native")return a.AssetValue.from({chain:a.Chain.Stellar,value:F.balance});let w="asset_code"in F?F.asset_code:"",Y="asset_issuer"in F?F.asset_issuer:"";return a.AssetValue.from({asset:`${a.Chain.Stellar}.${w}-${Y}`,asyncTokenLookup:!1,value:F.balance})})}catch{return[a.AssetValue.from({chain:a.Chain.Stellar,value:0})]}}async function Q({recipient:z,assetValue:B,memo:k,sender:H}){if(k){if(new TextEncoder().encode(k).length>28)throw new a.SwapKitError("helpers_invalid_memo_type")}if(!await Q8(z))throw new a.SwapKitError("core_transaction_invalid_recipient_address");let w=H||await Z();if(!w)throw new a.SwapKitError("toolbox_stellar_no_signer");let{Asset:Y,Memo:q,Networks:D,Operation:R,TransactionBuilder:$}=await import("@stellar/stellar-sdk"),C=await W(),I=await C.fetchBaseFee(),P=await C.loadAccount(w),n=new $(P,{fee:String(I),networkPassphrase:D.PUBLIC});if(B.isGasAsset)try{await C.loadAccount(z),n.addOperation(R.payment({amount:B.getValue("string"),asset:Y.native(),destination:z}))}catch{n.addOperation(R.createAccount({destination:z,startingBalance:B.getValue("string")}))}else n.addOperation(R.payment({amount:B.getValue("string"),asset:new Y(B.symbol,B.address),destination:z}));if(k)n.addMemo(q.text(k));return n.setTimeout(30).build()}async function L(z){let{TransactionBuilder:B,Networks:k}=await import("@stellar/stellar-sdk"),H=await X(),F=B.fromXDR(z.toXDR(),k.PUBLIC);return F.sign(H),F}async function O(z){try{let B=await W(),{hash:k}=await B.submitTransaction(z);return k}catch(B){throw new a.SwapKitError("toolbox_stellar_broadcast_error",B)}}async function U({recipient:z,assetValue:B,memo:k}){let H=await X(),F=H.publicKey(),w=await Q({assetValue:B,memo:k,recipient:z,sender:F});w.sign(H);try{return(await(await W()).submitTransaction(w)).hash}catch(Y){if(Y instanceof a.SwapKitError)throw Y;throw new a.SwapKitError("toolbox_stellar_transaction_failed",Y)}}async function M(z){let B=await L(z);return O(B)}async function N(){let{baseDecimal:z}=a.getChainConfig(a.Chain.Stellar);try{let H=(await(await W()).feeStats()).fee_charged.p50;return a.AssetValue.from({chain:a.Chain.Stellar,fromBaseDecimal:z,value:H})}catch{return a.AssetValue.from({chain:a.Chain.Stellar,fromBaseDecimal:z,value:"100"})}}return{broadcastTransaction:O,createTransaction:Q,estimateTransactionFee:N,getAddress:Z,getBalance:J,signAndBroadcastTransaction:M,signTransaction:L,transfer:U,validateAddress:Vy}}var a,ny,J8;var xG=E(()=>{a=require("@swapkit/helpers"),ny=require("ts-pattern"),J8=/^G[A-Z2-7]{55}$/});var vy={};wT(vy,{validateStellarAddress:()=>Vy,getStellarToolbox:()=>PG});module.exports=HT(vy);var oy=E(()=>{xG()});var L8={};wT(L8,{getToolbox:()=>P5,getFeeEstimator:()=>q8,getAddressValidator:()=>Y8});module.exports=HT(L8);var j=require("@swapkit/helpers");async function Y8(){let{match:f}=await import("ts-pattern"),{validateAptosAddress:y}=await Promise.resolve().then(() => (F0(),C0)),{validateEVMAddress:G}=await Promise.resolve().then(() => (L_(),q_)),{validateCardanoAddress:T}=await Promise.resolve().then(() => (Y1(),Q1)),{getCosmosAddressValidator:_}=await Promise.resolve().then(() => (a0(),r0)),{validateSolanaAddress:X}=await Promise.resolve().then(() => (x1(),P1)),{validateStarknetAddress:W}=await Promise.resolve().then(() => (yy(),fy)),{validateSuiAddress:Z}=await Promise.resolve().then(() => (Gy(),_y)),{validateTonAddress:J}=await Promise.resolve().then(() => (Zy(),Wy)),{getUTXOAddressValidator:Q}=await Promise.resolve().then(() => (s1(),a1)),{validateNearAddress:L}=await Promise.resolve().then(() => (z5(),L5)),{validateRadixAddress:O}=await Promise.resolve().then(() => (U5(),N5)),{validateRippleAddress:U}=await Promise.resolve().then(() => (B5(),M5)),{validateTronAddress:M}=await Promise.resolve().then(() => (A5(),I5)),{validateStellarAddress:N}=await Promise.resolve().then(() => (oy(),vy));return function({address:B,chain:k}){return f(k).with(...j.EVMChains,()=>G(B)).with(...j.UTXOChains,(F)=>{return Q(F)(B)}).with(...j.CosmosChains,(F)=>{return _(F)(B)}).with(j.Chain.Aptos,()=>y(B)).with(j.Chain.Radix,()=>O(B)).with(j.Chain.Near,()=>L(B)).with(j.Chain.Ripple,()=>U(B)).with(j.Chain.Solana,()=>X(B)).with(j.Chain.Stellar,()=>N(B)).with(j.Chain.Starknet,()=>W(B)).with(j.Chain.Sui,()=>Z(B)).with(j.Chain.Ton,()=>J(B)).with(j.Chain.Tron,()=>M(B)).with(j.Chain.Cardano,()=>T(B)).otherwise(()=>!1)}}function q8(f){return async function(G){let{match:T}=await import("ts-pattern");return T(f).returnType().with(...j.EVMChains,async(_)=>{let X=await P5(_),W=await X.createTransaction(G),Z="feeOptionKey"in G?G.feeOptionKey:j.FeeOption.Fast;return X.estimateTransactionFee({...W,feeOption:Z})}).with(j.Chain.Bitcoin,j.Chain.BitcoinCash,j.Chain.Dogecoin,j.Chain.Dash,j.Chain.Litecoin,j.Chain.Solana,j.Chain.Ripple,j.Chain.Tron,j.Chain.Near,j.Chain.Cardano,async(_)=>{return(await P5(_)).estimateTransactionFee(G)}).with(j.Chain.Aptos,async()=>{let{getAptosToolbox:_}=await Promise.resolve().then(() => (F0(),C0));return _().estimateTransactionFee(G)}).with(j.Chain.Starknet,async()=>{let{getStarknetToolbox:_}=await Promise.resolve().then(() => (yy(),fy));return(await _()).estimateTransactionFee(G)}).with(j.Chain.Stellar,async()=>{let{getStellarToolbox:_}=await Promise.resolve().then(() => (oy(),vy));return _().estimateTransactionFee()}).with(j.Chain.Sui,async()=>{let{getSuiToolbox:_}=await Promise.resolve().then(() => (Gy(),_y));return _().estimateTransactionFee(G)}).with(j.Chain.Ton,async()=>{let{getTONToolbox:_}=await Promise.resolve().then(() => (Zy(),Wy));return _().estimateTransactionFee(G)}).with(...j.CosmosChains,async()=>{let{estimateTransactionFee:_}=await Promise.resolve().then(() => (a0(),r0));return _(G)}).otherwise(async()=>j.AssetValue.from({chain:f}))}}async function P5(f,y){let{match:G}=await import("ts-pattern");return G(f).returnType().with(...j.EVMChains,async()=>{let{getEvmToolboxAsync:T}=await Promise.resolve().then(() => (W1(),J_));return await T(f,y)}).with(...j.UTXOChains,async()=>{let{getUtxoToolbox:T}=await Promise.resolve().then(() => (s1(),a1));return T(f,y)}).with(...j.CosmosChains,async()=>{let{getCosmosToolbox:T}=await Promise.resolve().then(() => (a0(),r0));return T(f,y)}).with(j.Chain.Aptos,async()=>{let{getAptosToolbox:T}=await Promise.resolve().then(() => (F0(),C0));return T(y)}).with(j.Chain.Radix,async()=>{let{getRadixToolbox:T}=await Promise.resolve().then(() => (U5(),N5));return T(y)}).with(j.Chain.Ripple,async()=>{let{getRippleToolbox:T}=await Promise.resolve().then(() => (B5(),M5));return T(y)}).with(j.Chain.Solana,async()=>{let{getSolanaToolbox:T}=await Promise.resolve().then(() => (x1(),P1));return T(y)}).with(j.Chain.Stellar,async()=>{let{getStellarToolbox:T}=await Promise.resolve().then(() => (oy(),vy));return T(y)}).with(j.Chain.Starknet,async()=>{let{getStarknetToolbox:T}=await Promise.resolve().then(() => (yy(),fy));return T(y)}).with(j.Chain.Sui,async()=>{let{getSuiToolbox:T}=await Promise.resolve().then(() => (Gy(),_y));return T(y)}).with(j.Chain.Tron,async()=>{let{getTronToolbox:T}=await Promise.resolve().then(() => (A5(),I5));return T(y)}).with(j.Chain.Near,async()=>{let{getNearToolbox:T}=await Promise.resolve().then(() => (z5(),L5));return T(y)}).with(j.Chain.Cardano,async()=>{let{getCardanoToolbox:T}=await Promise.resolve().then(() => (Y1(),Q1));return T(y)}).with(j.Chain.Ton,async()=>{let{getTONToolbox:T}=await Promise.resolve().then(() => (Zy(),Wy));return T(y)}).otherwise(()=>{throw new j.SwapKitError("toolbox_not_supported",{chain:f})})}
|
|
1
|
+
var SG=Object.create;var{getPrototypeOf:EG,defineProperty:mf,getOwnPropertyNames:E5,getOwnPropertyDescriptor:nG}=Object,n5=Object.prototype.hasOwnProperty;function V5(f){return this[f]}var VG,vG,v5=(f,y,G)=>{var T=f!=null&&typeof f==="object";if(T){var _=y?VG??=new WeakMap:vG??=new WeakMap,X=_.get(f);if(X)return X}G=f!=null?SG(EG(f)):{};let W=y||!f||!f.__esModule?mf(G,"default",{value:f,enumerable:!0}):G;for(let Z of E5(f))if(!n5.call(W,Z))mf(W,Z,{get:V5.bind(f,Z),enumerable:!0});if(T)_.set(f,W);return W},HT=(f)=>{var y=(S5??=new WeakMap).get(f),G;if(y)return y;if(y=mf({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var T of E5(f))if(!n5.call(y,T))mf(y,T,{get:V5.bind(f,T),enumerable:!(G=nG(f,T))||G.enumerable})}return S5.set(f,y),y},S5;var oG=(f)=>f;function KG(f,y){this[f]=oG.bind(null,y)}var wT=(f,y)=>{for(var G in y)mf(f,G,{get:y[G],enumerable:!0,configurable:!0,set:KG.bind(y,G)})};var E=(f,y)=>()=>(f&&(y=f(f=0)),y);function Cf(f){if(!f||typeof f!=="string"||!f.startsWith("0x"))return!1;let y=f.slice(2);if(y.length===0||y.length>64)return!1;return jG.test(y)}function o5({derivationPath:f,provider:y,...G}={}){let T,_=u.derivationPathToString(f||u.NetworkDerivationPath[u.Chain.Aptos],{allHardened:!0});async function X(){if(T)return T;return T=await Yf.match(G).with({phrase:Yf.P.string},async({phrase:z})=>{let{Ed25519Account:B}=await import("@aptos-labs/ts-sdk");return B.fromDerivationPath({mnemonic:z,path:_})}).with({signer:Yf.P.any},({signer:z})=>z).otherwise(()=>{return}),T}async function W(){let{Aptos:z,AptosConfig:B}=await import("@aptos-labs/ts-sdk"),k=new B({fullnode:y||u.getRPCUrlSync(u.Chain.Aptos)});return new z(k)}async function Z(){return(await X())?.accountAddress.toString()||""}async function J(z){let B=z||await Z();if(!B)throw new u.SwapKitError("toolbox_aptos_address_required");let{baseDecimal:k,chain:R}=u.getChainConfig(u.Chain.Aptos);try{let F=await W(),w=await F.getAccountAPTAmount({accountAddress:B}),Y=[u.AssetValue.from({chain:R,fromBaseDecimal:k,value:w.toString()})],q=await F.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:B}}}});for(let D of q){if(D.asset_type===Qf.COIN_TYPE||Number(D.amount)<=0)continue;let C=D.asset_type;if(C){let H=("metadata"in D&&typeof D.metadata==="object"&&D.metadata!==null?D.metadata:void 0)?.decimals??k;Y.push(u.AssetValue.from({asset:`${u.Chain.Aptos}.APT-${C}`,fromBaseDecimal:H,value:String(D.amount)}))}}return Y}catch{return[u.AssetValue.from({chain:R})]}}async function Q(z){if(!z){let{baseDecimal:q}=u.getChainConfig(u.Chain.Aptos),D=y||u.getRPCUrlSync(u.Chain.Aptos),C=await fetch(`${D}/estimate_gas_price`),{gas_estimate:$}=await C.json();return u.AssetValue.from({chain:u.Chain.Aptos,fromBaseDecimal:q,value:String($)})}let B=await X();if(!B)throw new u.SwapKitError("toolbox_aptos_no_signer");let k=await L(z),R=await W(),[F]=await R.transaction.simulate.simple({signerPublicKey:B.publicKey,transaction:k});if(!F)throw new u.SwapKitError("toolbox_aptos_transaction_creation_error");let w=BigInt(F.gas_used)*BigInt(F.gas_unit_price),{baseDecimal:Y}=u.getChainConfig(u.Chain.Aptos);return u.AssetValue.from({chain:u.Chain.Aptos,fromBaseDecimal:Y,value:w.toString()})}async function L({recipient:z,assetValue:B,maxGasAmount:k,sender:R}){if(!Cf(z))throw new u.SwapKitError("core_transaction_invalid_recipient_address");let F=R||await Z();if(!F)throw new u.SwapKitError("toolbox_aptos_no_sender");let{AccountAddress:w}=await import("@aptos-labs/ts-sdk"),Y=await W(),q=w.from(F);try{let D=B.isGasAsset?Qf.TRANSFER:Qf.FUNGIBLE_STORE_TRANSFER,C=Yf.match({address:B?.address,isGasAsset:B.isGasAsset}).with({isGasAsset:!0},()=>[w.from(z),B.getBaseValue("bigint")]).with({address:Yf.P.string},({address:$})=>[w.from($),w.from(z),B.getBaseValue("bigint")]).otherwise(()=>null);if(!C)throw new u.SwapKitError("toolbox_aptos_missing_asset_type");return Y.transaction.build.simple({data:{function:D,functionArguments:C,typeArguments:B.isGasAsset?[]:[Qf.FUNGIBLE_ASSET_METADATA]},options:k?{maxGasAmount:k}:void 0,sender:q})}catch(D){if(D instanceof u.SwapKitError)throw D;throw new u.SwapKitError("toolbox_aptos_transaction_creation_error",D)}}async function O(z){let B=await X();if(!B)throw new u.SwapKitError("toolbox_aptos_no_signer");return(await W()).transaction.sign({signer:B,transaction:z})}async function U({assetValue:z,maxGasAmount:B,recipient:k}){let R=await X();if(!R)throw new u.SwapKitError("toolbox_aptos_no_signer");if(!Cf(k))throw new u.SwapKitError("core_transaction_invalid_recipient_address");try{let F=R.accountAddress.toString(),w=await L({assetValue:z,maxGasAmount:B,recipient:k,sender:F});return(await(await W()).signAndSubmitTransaction({signer:R,transaction:w})).hash}catch(F){if(F instanceof u.SwapKitError)throw F;throw new u.SwapKitError("toolbox_aptos_transaction_creation_error",F)}}async function M({senderAuthenticator:z,transaction:B}){try{return(await(await W()).transaction.submit.simple({senderAuthenticator:z,transaction:B})).hash}catch(k){throw new u.SwapKitError("toolbox_aptos_broadcast_error",k)}}async function N(z){let B=await O(z);return M({senderAuthenticator:B,transaction:z})}return{broadcastTransaction:M,createTransaction:L,estimateTransactionFee:Q,getAddress:Z,getBalance:J,signAndBroadcastTransaction:N,signTransaction:O,transfer:U,validateAddress:Cf}}function K5({provider:f}){return async function({assetValue:G,recipient:T}){if(!Cf(T))throw new u.SwapKitError("core_transaction_invalid_recipient_address");let{AccountAddress:_}=await import("@aptos-labs/ts-sdk");if(G.isGasAsset)return(await f.signAndSubmitTransaction({arguments:[_.from(T).toString(),G.getBaseValue("string")],function:Qf.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let X=G.address;if(!X)throw new u.SwapKitError("toolbox_aptos_missing_asset_type");return(await f.signAndSubmitTransaction({arguments:[X,_.from(T).toString(),G.getBaseValue("string")],function:Qf.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[Qf.FUNGIBLE_ASSET_METADATA]})).hash}}var u,Yf,Qf,jG;var j5=E(()=>{u=require("@swapkit/helpers"),Yf=require("ts-pattern"),Qf={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"},jG=/^[0-9a-fA-F]+$/});var C0={};wT(C0,{validateAptosAddress:()=>Cf,getAptosToolbox:()=>o5,createAptosExtensionTransfer:()=>K5});module.exports=HT(C0);var F0=E(()=>{j5()});function l5(){function f(){let y=Date.now(),G=Ky||y;return Ky=G,y>Ky?y:G+1}return bG+f().toString(36)}function ST(f){return async function(G,T=!0){let _=await b5.SwapKitApi.getChainBalance({address:G,chain:f,scamFilter:T}),{baseDecimal:X}=pf.getChainConfig(f),W=_.map(({identifier:J,value:Q,decimal:L})=>{return new pf.AssetValue({decimal:L||X,identifier:J,value:Q})});if(!W.some((J)=>J.isGasAsset))return[pf.AssetValue.from({chain:f}),...W];return W}}var pf,b5,bG,Ky=0;var dT=E(()=>{pf=require("@swapkit/helpers"),b5=require("@swapkit/helpers/api"),bG=typeof process<"u"&&process.pid?process.pid.toString(36):""});function tf(f){return{getBalance:ST(f)}}function lG(f){return f}var k0=E(()=>{dT()});function h5(f){return new qf.JsonRpcProvider(f)}async function hy(f,y){return h5(y||await r.getRPCUrl(f))}function cf(f){return f>0n?`0x${f.toString(16)}`:"0x0"}function my(f){let{explorerUrl:y,chainIdHex:G,rpcUrls:T}=r.getChainConfig(f);return function(){return f!==r.Chain.Ethereum?{...uG({chain:f}),blockExplorerUrls:[y],chainId:G,rpcUrls:T}:void 0}}function py(f){return![r.Chain.Adi,r.Chain.Arbitrum,r.Chain.BinanceSmartChain].includes(f)}function uG({chain:f}){let{name:y,nativeCurrency:G,baseDecimal:T}=r.getChainConfig(f);return uy.match(f).with(r.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:T,name:"Ethereum",symbol:r.Chain.Ethereum}})).with(r.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:T,name:"Ethereum",symbol:r.Chain.Ethereum}})).with(r.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:T,name:"Avalanche",symbol:f}})).with(r.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:T,name:"Ethereum",symbol:r.Chain.Ethereum}})).with(r.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:T,name:"Berachain",symbol:"BERA"}})).with(r.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:T,name:"OKB",symbol:"OKB"}})).with(r.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:T,name:"Binance Coin",symbol:"BNB"}})).with(r.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:T,name:"xDAI",symbol:"XDAI"}})).with(r.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:T,name:"Ethereum",symbol:r.Chain.Ethereum}})).with(r.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:T,name:"Polygon",symbol:r.Chain.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:T,name:G,symbol:G}}))}async function ty(f,y){if(!("authorize"in f))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let G={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await f.authorize(G)}function m5(f,y){let G=y!==void 0?`index ${y}: `:"",T=(_,X)=>{throw new r.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:_,message:`${G}${X}`}})};uy.match(f).when(({chainId:_})=>typeof _!=="bigint",()=>T("chainId","chainId must be a bigint")).when(({address:_})=>!hG(_),()=>T("address","address must be a valid checksummed address")).when(({nonce:_})=>typeof _!=="bigint"||_<0n,()=>T("nonce","nonce must be a non-negative bigint")).when(({signature:_})=>!_,()=>T("signature","signature is required")).when(({signature:_})=>typeof _?.yParity!=="number"||![0,1].includes(_.yParity),()=>T("signature.yParity","yParity must be 0 or 1")).when(({signature:_})=>!u5(_?.r),()=>T("signature.r","r must be a 32-byte hex string")).when(({signature:_})=>!u5(_?.s),()=>T("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function p5(f){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>f[y]!=null).map(({key:y,type:G})=>({name:y,type:G}))}function jy(f){return f.charAt(0).toUpperCase()+f.slice(1)}function by(f,y){if(f.isTuple()&&f.components){let G=jy(f.name);return y[G]=f.components.map((T)=>({name:T.name,type:by(T,y)})),G}if(f.isArray()){let G=f.arrayChildren;if(G?.isTuple()&&G.components){let T=jy(f.name.replace(/s$/,""));return y[T]=G.components.map((_)=>({name:_.name,type:by(_,y)})),`${T}[]`}return`${G?.type??"bytes"}[]`}return f.type}function ly(f,y){if(typeof f==="bigint")return f;if(y?.isTuple()&&typeof f?.toObject==="function"){let G=f.toObject(),T={};for(let[_,X]of(y.components??[]).entries())T[X.name]=ly(G[X.name]??f[_],X);return T}if(Array.isArray(f)){let G=y?.arrayChildren;return f.map((T)=>ly(T,G??void 0))}return f}function mG({chain:f,abi:y,data:G,to:T}){let X=new qf.Interface(y).parseTransaction({data:G});if(!X)throw new r.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let W={},Z=jy(X.name);W[Z]=X.fragment.inputs.map((U)=>({name:U.name,type:by(U,W)}));let J={};for(let[U,M]of X.fragment.inputs.entries())J[M.name]=ly(X.args[U],M);let{chainId:Q}=r.getChainConfig(f),L={chainId:Number(Q),verifyingContract:qf.getAddress(T)},O=p5(L);return{domain:L,message:J,primaryType:Z,types:{EIP712Domain:O,...W}}}function cy(f,y){if(!Array.isArray(f)||f.length===0)throw new r.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[G,T]of f.entries())if(m5(T,G),y!==void 0&&T.chainId!==y)throw new r.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${G}: authorization chainId (${T.chainId}) does not match transaction chainId (${y})`}})}var r,qf,uy,u5=(f)=>typeof f==="string"&&/^0x[a-fA-F0-9]{64}$/.test(f),hG=(f)=>{try{return typeof f==="string"&&!!qf.getAddress(f)}catch{return!1}};var gf=E(()=>{r=require("@swapkit/helpers"),qf=require("ethers"),uy=require("ts-pattern")});var t5;var c5=E(()=>{t5=[{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 kf({chain:f=A.Chain.Ethereum,provider:y,signer:G,isEIP1559Compatible:T=!0}){return{approve:iG({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),approvedAmount:d5({chain:f,provider:y}),broadcastTransaction:y.broadcastTransaction,call:ey({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),createApprovalTx:sG({chain:f,provider:y,signer:G}),createContract:ry({chain:f,provider:y}),createContractTxObject:Lf({chain:f,provider:y}),createTransaction:gy({chain:f,provider:y,signer:G}),createTransferTx:gy({chain:f,provider:y,signer:G}),EIP1193SendTransaction:If(y),estimateCall:r5({provider:y,signer:G}),estimateGasLimit:rG({chain:f,provider:y,signer:G}),estimateGasPrices:zf({chain:f,isEIP1559Compatible:T,provider:y}),estimateTransactionFee:eG({chain:f,isEIP1559Compatible:T,provider:y}),getAddress:()=>{return G?G.getAddress():void 0},getBalance:tf(f).getBalance,getNetworkParams:my(f),isApproved:gG({chain:f,provider:y}),sendTransaction:a5({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),signAuthorization:aG({signer:G}),signMessage:G?(_)=>G.signMessage(_):void 0,signTypedData:G?({domain:_,types:X,value:W})=>G.signTypedData(_,X,W):void 0,transfer:dG({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),validateAddress:dy}}function dy(f){try{return AT.getAddress(f),!0}catch{return!1}}function $f(f){return f instanceof AT.BrowserProvider}function rf(f,y,G){return new AT.Contract(f,AT.Interface.from(y),G)}function ry({provider:f}){return function(G,T){return new AT.Contract(G,AT.Interface.from(T),f)}}function ay({abi:f,funcName:y}){let G=f.find((T)=>T.name===y);if(!G)throw new A.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:y});return G.stateMutability&&pG.includes(G.stateMutability)}function g5(f){return AT.getAddress(f)}function If(f){return function({value:G,...T}){if(!$f(f))throw new A.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:_,gasPrice:X,maxFeePerGas:W,maxPriorityFeePerGas:Z,...J}=T;return f.send("eth_sendTransaction",[{...J,value:cf(BigInt(G||0))}])}}function i5(f,y){let G=Af(f,y);if(G)return AT.getAddress(G.toLowerCase());throw new A.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function Af({chain:f,symbol:y,ticker:G},T){try{let _=f===A.Chain.BinanceSmartChain&&y==="BNB"&&G==="BNB",X=f===A.Chain.Hyperevm&&y==="HYPE"&&G==="HYPE",W=f===T&&y===T&&G===T,Z=cG.includes(f)&&y==="ETH"&&G==="ETH";if(W||_||X||Z)return sy[T];return AT.getAddress(y.slice(G.length+1).replace(/^0X/,""))}catch{return null}}function Lf({provider:f}){return async({contractAddress:y,abi:G,funcName:T,funcParams:_=[],txOverrides:X})=>rf(y,G,f).getFunction(T).populateTransaction(..._.concat(X).filter((W)=>typeof W<"u"))}function zf({chain:f,provider:y,isEIP1559Compatible:G=!0}){return iy.match(f).with(A.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:_,maxPriorityFeePerGas:X}=await y.getFeeData();if(!_||X===null)throw new A.SwapKitError("toolbox_evm_no_fee_data");return{[A.FeeOption.Average]:{maxFeePerGas:A.applyFeeMultiplierToBigInt(_,A.FeeOption.Average),maxPriorityFeePerGas:A.applyFeeMultiplierToBigInt(X,A.FeeOption.Average)},[A.FeeOption.Fast]:{maxFeePerGas:A.applyFeeMultiplierToBigInt(_,A.FeeOption.Fast),maxPriorityFeePerGas:A.applyFeeMultiplierToBigInt(X,A.FeeOption.Fast)},[A.FeeOption.Fastest]:{maxFeePerGas:A.applyFeeMultiplierToBigInt(_,A.FeeOption.Fastest),maxPriorityFeePerGas:A.applyFeeMultiplierToBigInt(X,A.FeeOption.Fastest)}}}catch(_){throw new A.SwapKitError("toolbox_evm_gas_estimation_error",{error:_.msg??_.toString()})}}}).with(A.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:_}=await y.getFeeData();if(!_)throw new A.SwapKitError("toolbox_evm_no_fee_data");return{[A.FeeOption.Average]:{gasPrice:_},[A.FeeOption.Fast]:{gasPrice:_},[A.FeeOption.Fastest]:{gasPrice:_}}}catch(_){throw new A.SwapKitError("toolbox_evm_gas_estimation_error",{error:_.msg??_.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:_,maxPriorityFeePerGas:X,gasPrice:W}=await y.getFeeData();if(G){if(_===null||X===null)throw new A.SwapKitError("toolbox_evm_no_fee_data");return{[A.FeeOption.Average]:{maxFeePerGas:_,maxPriorityFeePerGas:X},[A.FeeOption.Fast]:{maxFeePerGas:A.applyFeeMultiplierToBigInt(_,A.FeeOption.Fast),maxPriorityFeePerGas:A.applyFeeMultiplierToBigInt(X,A.FeeOption.Fast)},[A.FeeOption.Fastest]:{maxFeePerGas:A.applyFeeMultiplierToBigInt(_,A.FeeOption.Fastest),maxPriorityFeePerGas:A.applyFeeMultiplierToBigInt(X,A.FeeOption.Fastest)}}}if(!W)throw new A.SwapKitError("toolbox_evm_no_gas_price");return{[A.FeeOption.Average]:{gasPrice:W},[A.FeeOption.Fast]:{gasPrice:A.applyFeeMultiplierToBigInt(W,A.FeeOption.Fast)},[A.FeeOption.Fastest]:{gasPrice:A.applyFeeMultiplierToBigInt(W,A.FeeOption.Fastest)}}}catch(_){throw new A.SwapKitError("toolbox_evm_gas_estimation_error",{error:_.msg??_.toString()})}}})}function ey({provider:f,isEIP1559Compatible:y,signer:G,chain:T}){return async function({callProvider:X,contractAddress:W,abi:Z,funcName:J,funcParams:Q=[],txOverrides:L={},feeOption:O=A.FeeOption.Fast}){let U=X||f;if(!W)throw new A.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let M=ay({abi:Z,funcName:J});if(M&&$f(U)&&G){let B=Lf({chain:T,provider:U}),k=L?.from||await G?.getAddress(),R=await B({abi:Z,contractAddress:W,funcName:J,funcParams:Q,txOverrides:{...L,from:k}});return If(U)(R)}let N=rf(W,Z,U);if(M){if(!G)throw new A.SwapKitError("toolbox_evm_no_signer");let B=L?.from||await G.getAddress();if(!B)throw new A.SwapKitError("toolbox_evm_no_signer_address");let k=N.connect(G),R=zf({chain:T,isEIP1559Compatible:y,provider:f}),{maxFeePerGas:F,maxPriorityFeePerGas:w,gasPrice:Y}=(await R())[O],q=await N.getFunction(J).estimateGas(...Q,L),D=await k[J](...Q,{...L,gasLimit:q,gasPrice:Y,maxFeePerGas:F,maxPriorityFeePerGas:w,nonce:L?.nonce||await U.getTransactionCount(B)});return typeof D?.hash==="string"?D?.hash:D}let z=await N[J]?.(...Q);return typeof z?.hash==="string"?z?.hash:z}}function d5({provider:f,chain:y}){return function({assetAddress:T,spenderAddress:_,from:X}){return ey({chain:y,isEIP1559Compatible:!0,provider:f})({abi:Ff.erc20ABI,contractAddress:T,funcName:"allowance",funcParams:[X,_]})}}function gG({provider:f,chain:y}){return async function({assetAddress:T,spenderAddress:_,from:X,amount:W=df}){let Z=await d5({chain:y,provider:f})({assetAddress:T,from:X,spenderAddress:_});return A.SwapKitNumber.fromBigInt(Z).gte(A.SwapKitNumber.fromBigInt(BigInt(W)))}}function iG({signer:f,isEIP1559Compatible:y=!0,provider:G,chain:T}){return async function({assetAddress:X,spenderAddress:W,feeOptionKey:Z=A.FeeOption.Fast,amount:J,gasLimitFallback:Q,from:L,nonce:O}){let U=[W,BigInt(J||df)],M=await f?.getAddress()||L,N={abi:Ff.erc20ABI,contractAddress:X,funcName:"approve",funcParams:U,signer:f,txOverrides:{from:M}};if($f(G)){let B=Lf({chain:T,provider:G}),k=If(G),R=await B(N);return k(R)}return ey({chain:T,isEIP1559Compatible:y,provider:G,signer:f})({...N,feeOption:Z,funcParams:U,txOverrides:{from:M,gasLimit:Q?BigInt(Q.toString()):void 0,nonce:O}})}}function dG({signer:f,isEIP1559Compatible:y=!0,provider:G}){return async function({assetValue:_,memo:X,recipient:W,feeOptionKey:Z=A.FeeOption.Fast,sender:J,...Q}){let{hexlify:L,toUtf8Bytes:O}=await import("ethers"),U=_.getBaseValue("bigint"),M=_.chain,N=J||await f?.getAddress(),z=a5({chain:M,isEIP1559Compatible:y,provider:G,signer:f});if(!N)throw new A.SwapKitError("toolbox_evm_no_from_address");if(_.isGasAsset){let Y={...Q,data:L(O(X||"")),feeOptionKey:Z,from:N,to:W,value:U};return z(Y)}if(!Af(_,M))throw new A.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:k,maxPriorityFeePerGas:R,gasPrice:F}=(await zf({chain:M,isEIP1559Compatible:y,provider:G})())[Z],w=await gy({chain:M,provider:G,signer:f})({assetValue:_,data:L(O(X||"")),gasPrice:F,maxFeePerGas:k,maxPriorityFeePerGas:R,memo:X,recipient:W,sender:N});return z(w)}}function r5({provider:f,signer:y}){return function({contractAddress:T,abi:_,funcName:X,funcParams:W=[],txOverrides:Z}){if(!T)throw new A.SwapKitError("toolbox_evm_no_contract_address");let J=rf(T,_,f);return y?J.connect(y).getFunction(X).estimateGas(...W,Z):J.getFunction(X).estimateGas(...W,Z)}}function rG({provider:f,signer:y}){return async function({assetValue:T,recipient:_,memo:X,data:W,sender:Z,funcName:J,funcParams:Q,txOverrides:L}){let O=T.bigIntValue,U=T.isGasAsset?null:Af(T,T.chain);if(U&&J)return r5({provider:f,signer:y})({abi:Ff.erc20ABI,contractAddress:U,funcName:J,funcParams:Q,txOverrides:L});let{hexlify:M,toUtf8Bytes:N}=await import("ethers");return f.estimateGas({data:W?W:X?M(N(X)):void 0,from:Z,to:_,value:O})}}function aG({signer:f}){if(!f)return;return(y)=>ty(f,y)}function a5({provider:f,signer:y,isEIP1559Compatible:G=!0,chain:T}){return async function({feeOptionKey:X=A.FeeOption.Fast,...W}){let{from:Z,to:J,data:Q,value:L,...O}=W;if(!y)throw new A.SwapKitError("toolbox_evm_no_signer");if(!J)throw new A.SwapKitError("toolbox_evm_no_to_address");let U={...O,data:Q||"0x",from:Z,to:J,value:BigInt(L||0)};if($f(f))return If(f)(U);let M=Z||await y.getAddress(),N=W.nonce||await f.getTransactionCount(M),z=(await f.getNetwork()).chainId,B=f1(U,G);if(B==="eip7702")cy(U.authorizations||[],z);let k=iy.match(B).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),R={...U,chainId:z,nonce:N,type:k,...B==="eip7702"&&{authorizationList:U.authorizations}},F=zf({chain:T,isEIP1559Compatible:G,provider:f}),Y=B!=="legacy"&&!(U.maxFeePerGas&&U.maxPriorityFeePerGas)||!U.gasPrice?Object.entries((await F())[X]).reduce((D,[C,$])=>({...D,[C]:cf(BigInt($))}),{}):{},q;try{q=cf(U.gasLimit||await f.estimateGas(R)*11n/10n)}catch(D){throw new A.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:D})}try{let D={...R,gasLimit:q,...Y};try{return(await y.sendTransaction(D)).hash}catch{let C=await y.signTransaction({...D,from:M});return(await f.broadcastTransaction(C)).hash}}catch(D){throw new A.SwapKitError("toolbox_evm_error_sending_transaction",{error:D})}}}function gy({provider:f,signer:y}){return async function({assetValue:T,memo:_,recipient:X,data:W,sender:Z,maxFeePerGas:J,maxPriorityFeePerGas:Q,gasPrice:L,...O}){let U=T.getBaseValue("bigint"),M=T.chain,N=Z||await y?.getAddress();if(!N)throw new A.SwapKitError("toolbox_evm_no_from_address");if(A.isGasAsset(T)){let{hexlify:k,toUtf8Bytes:R}=await import("ethers");return{...O,data:W||k(R(_||"")),from:N,to:X,value:U}}let z=Af(T,M);if(!z)throw new A.SwapKitError("toolbox_evm_no_contract_address");return Lf({chain:T.chain,provider:f})({abi:Ff.erc20ABI,contractAddress:z,funcName:"transfer",funcParams:[X,U],txOverrides:{from:N,gasPrice:L,maxFeePerGas:J,maxPriorityFeePerGas:Q}})}}function sG({provider:f,signer:y,chain:G}){return async function({assetAddress:_,spenderAddress:X,amount:W,from:Z}){let J=await y?.getAddress()||Z,Q=Lf({chain:G,provider:f}),L=["bigint","number"].includes(typeof W)?W:W||df;return await Q({abi:Ff.erc20ABI,contractAddress:_,funcName:"approve",funcParams:[X,BigInt(L)],txOverrides:{from:J}})}}function eG({provider:f,isEIP1559Compatible:y=!0,chain:G}){return async function({feeOption:_=A.FeeOption.Fast,...X}){let Z=await zf({chain:G,isEIP1559Compatible:y,provider:f})(),J=await f.estimateGas(X),Q=A.AssetValue.from({chain:G}),{gasPrice:L,maxFeePerGas:O,maxPriorityFeePerGas:U}=Z[_];if(!y&&L)return Q.set(A.SwapKitNumber.fromBigInt(L*J,Q.decimal));if(O&&U){let M=(O+U)*J;return Q.set(A.SwapKitNumber.fromBigInt(M,Q.decimal))}throw new A.SwapKitError("toolbox_evm_no_gas_price")}}var A,Ff,AT,iy,df,pG,tG,sy,cG,$0=(f)=>f.type===4||(f.authorizations?.length??0)>0,T1=(f)=>!$0(f)&&(f.type===2||!!f.maxFeePerGas||!!f.maxPriorityFeePerGas),f1=(f,y=!0)=>{if($0(f))return"eip7702";if(T1(f)||y)return"eip1559";return"legacy"};var I0=E(()=>{k0();gf();A=require("@swapkit/helpers"),Ff=require("@swapkit/helpers/contracts"),AT=require("ethers"),iy=require("ts-pattern"),df=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");pG=["payable","nonpayable"];tG=A.EVMChains.reduce((f,y)=>{return f[y]="0x0000000000000000000000000000000000000000",f},{}),sy={...tG,[A.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[A.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},cG=[A.Chain.Arbitrum,A.Chain.Aurora,A.Chain.Base,A.Chain.Optimism]});function A0(f){let y=YT(_T.Chain.Ethereum)(f);async function G(T,_="0x5ba1e12693dc8f9c48aad8770482f4739beed696",X="aggregate",W=_T.FeeOption.Fast){let Z=await y.createContractTxObject({abi:t5,contractAddress:_,funcName:X,funcParams:[T]});return y.sendTransaction({...Z,feeOptionKey:W})}return{...y,multicall:G}}function YT(f){return function({provider:G,...T}){let _=py(f),X=af.match(T).with({phrase:af.P.string},({phrase:Z})=>s5.HDNodeWallet.fromPhrase(Z).connect(G)).with({signer:af.P.any},({signer:Z})=>Z).otherwise(()=>{return});return kf({chain:f,isEIP1559Compatible:_,provider:G,signer:X})}}var _T,s5,af,P0,x0,S0,E0,n0,V0,v0,e5,o0,K0,j0,b0,l0,u0,sf,h0,m0,p0,t0;var y1=E(()=>{c5();gf();I0();_T=require("@swapkit/helpers"),s5=require("ethers"),af=require("ts-pattern");P0=YT(_T.Chain.Adi),x0=YT(_T.Chain.Arbitrum),S0=YT(_T.Chain.Aurora),E0=YT(_T.Chain.Avalanche),n0=YT(_T.Chain.Base),V0=YT(_T.Chain.Berachain),v0=YT(_T.Chain.BinanceSmartChain),e5=YT(_T.Chain.Botanix),o0=YT(_T.Chain.Core),K0=YT(_T.Chain.Corn),j0=YT(_T.Chain.Cronos),b0=YT(_T.Chain.Gnosis),l0=YT(_T.Chain.Hyperevm),u0=YT(_T.Chain.Polygon),sf=YT(_T.Chain.Sonic),h0=YT(_T.Chain.Unichain),m0=YT(_T.Chain.XLayer),p0=YT(_T.Chain.Monad),t0=YT(_T.Chain.MegaETH)});var T_;var f_=E(()=>{T_=[{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:[],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 _1(f){return new c0.Contract(fX,T_,f)}function y_(f){return async function(){let G=_1(f);if(G&&"l1BaseFee"in G)return await G?.l1BaseFee();return}}function __(f){return async function({from:G,to:T,nonce:_,...X}){let{Transaction:W}=await import("ethers");if(!T)throw new GT.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return W.from({...X,authorizationList:X.authorizationList,nonce:_?_:G?await f.getTransactionCount(G):0,to:T}).serialized}}function G_(f){return async function(G){let T=_1(f),_=await __(f)(G);if(T&&"getL1Fee"in T)return T.getL1Fee(_)}}function X_(f){return async function(G){let _=(await f.getFeeData()).gasPrice??0n,X=await f.estimateGas(G);return _*X}}function yX(f){return async function(G){let T=await G_(f)(G)??0n,_=await X_(f)(G);return T+_}}function _X(f){return async function(G){let T=_1(f),_=await __(f)(G);if(T&&"getL1GasUsed"in T)return T.getL1GasUsed(_)}}function GX(f){return async function(){try{let{maxFeePerGas:G,maxPriorityFeePerGas:T,gasPrice:_}=await f.getFeeData(),X=await y_(f)(),W=_;if(!(G&&T))throw new GT.SwapKitError("toolbox_evm_no_fee_data");return{[GT.FeeOption.Average]:{gasPrice:W,l1GasPrice:X,maxFeePerGas:G,maxPriorityFeePerGas:T},[GT.FeeOption.Fast]:{gasPrice:GT.applyFeeMultiplierToBigInt(W,GT.FeeOption.Fast),l1GasPrice:GT.applyFeeMultiplierToBigInt(X||0n,GT.FeeOption.Fast),maxFeePerGas:G,maxPriorityFeePerGas:GT.applyFeeMultiplierToBigInt(T,GT.FeeOption.Fast)},[GT.FeeOption.Fastest]:{gasPrice:GT.applyFeeMultiplierToBigInt(W,GT.FeeOption.Fastest),l1GasPrice:GT.applyFeeMultiplierToBigInt(X||0n,GT.FeeOption.Fastest),maxFeePerGas:G,maxPriorityFeePerGas:GT.applyFeeMultiplierToBigInt(T,GT.FeeOption.Fastest)}}}catch(G){throw new GT.SwapKitError("toolbox_evm_gas_estimation_error",{error:G.msg??G.toString()})}}}function g0({provider:f,...y}){let G=ef.match(y).with({phrase:ef.P.string},({phrase:X})=>c0.HDNodeWallet.fromPhrase(X).connect(f)).with({signer:ef.P.any},({signer:X})=>X).otherwise(()=>{return}),T=kf({provider:f,signer:G}),_=y_(f);return{...T,estimateGasPrices:GX(f),estimateL1Gas:_X(f),estimateL1GasCost:G_(f),estimateL2GasCost:X_(f),estimateTotalGasCost:yX(f),getBalance:tf(GT.Chain.Optimism).getBalance,getL1GasPrice:_}}var GT,c0,ef,fX="0x420000000000000000000000000000000000000f";var G1=E(()=>{k0();f_();I0();GT=require("@swapkit/helpers"),c0=require("ethers"),ef=require("ts-pattern")});var J_={};wT(J_,{validateEVMAddress:()=>dy,toChecksumAddress:()=>g5,isStateChangingCall:()=>ay,isEIP7702Transaction:()=>$0,isEIP1559Transaction:()=>T1,isBrowserProvider:()=>$f,getTokenAddress:()=>Af,getEvmToolboxAsync:()=>Z_,getEvmToolbox:()=>X1,getEstimateGasPrices:()=>zf,getEVMTxType:()=>f1,getEIP1193SendTransaction:()=>If,getCreateContractTxObject:()=>Lf,getCreateContract:()=>ry,getChecksumAddressFromAsset:()=>i5,createContract:()=>rf,XLayerToolbox:()=>m0,UNIToolbox:()=>h0,SONICToolbox:()=>sf,OPToolbox:()=>g0,MONADToolbox:()=>p0,MEGAETHToolbox:()=>t0,MAX_APPROVAL:()=>df,MATICToolbox:()=>u0,HYPEREVMToolbox:()=>l0,GNOToolbox:()=>b0,ETHToolbox:()=>A0,ContractAddress:()=>sy,CROToolbox:()=>j0,CORNToolbox:()=>K0,COREToolbox:()=>o0,BotanixToolbox:()=>e5,BaseEVMToolbox:()=>kf,BSCToolbox:()=>v0,BERAToolbox:()=>V0,BASEToolbox:()=>n0,AVAXToolbox:()=>E0,AURORAToolbox:()=>S0,ARBToolbox:()=>x0,ADIToolbox:()=>P0});function X1(f,y){return W_.match(f).with(QT.Chain.Adi,()=>P0(y)).with(QT.Chain.Arbitrum,()=>x0(y)).with(QT.Chain.Aurora,()=>S0(y)).with(QT.Chain.Avalanche,()=>E0(y)).with(QT.Chain.Base,()=>n0(y)).with(QT.Chain.Berachain,()=>V0(y)).with(QT.Chain.BinanceSmartChain,()=>v0(y)).with(QT.Chain.Botanix,()=>sf(y)).with(QT.Chain.Core,()=>o0(y)).with(QT.Chain.Corn,()=>K0(y)).with(QT.Chain.Cronos,()=>j0(y)).with(QT.Chain.Ethereum,()=>A0(y)).with(QT.Chain.Gnosis,()=>b0(y)).with(QT.Chain.Hyperevm,()=>l0(y)).with(QT.Chain.Optimism,()=>g0(y)).with(QT.Chain.Polygon,()=>u0(y)).with(QT.Chain.Sonic,()=>sf(y)).with(QT.Chain.Unichain,()=>h0(y)).with(QT.Chain.XLayer,()=>m0(y)).with(QT.Chain.Monad,()=>p0(y)).with(QT.Chain.MegaETH,()=>t0(y)).exhaustive()}async function Z_(f,y){let G={...y,provider:y?.provider||await hy(f)};return X1(f,G)}var QT,W_;var W1=E(()=>{gf();y1();G1();QT=require("@swapkit/helpers"),W_=require("ts-pattern");I0();y1();G1()});var Q_;var Y_=E(()=>{((G)=>{G.Test="goerli";G.Main="homestead"})(Q_||={})});var q_={};wT(q_,{validateEVMAddress:()=>dy,validateAuthorizations:()=>cy,validateAuthorization:()=>m5,toHexString:()=>cf,toChecksumAddress:()=>g5,signAuthorization:()=>ty,parseEIP712FromEVMTx:()=>mG,isStateChangingCall:()=>ay,isEIP7702Transaction:()=>$0,isEIP1559Transaction:()=>T1,isBrowserProvider:()=>$f,getTokenAddress:()=>Af,getProviderSync:()=>h5,getProvider:()=>hy,getNetworkParams:()=>my,getIsEIP1559Compatible:()=>py,getEvmToolboxAsync:()=>Z_,getEvmToolbox:()=>X1,getEvmApi:()=>tf,getEstimateGasPrices:()=>zf,getEVMTxType:()=>f1,getEIP1193SendTransaction:()=>If,getCreateContractTxObject:()=>Lf,getCreateContract:()=>ry,getChecksumAddressFromAsset:()=>i5,createCustomEvmApi:()=>lG,createContract:()=>rf,buildEIP712DomainType:()=>p5,XLayerToolbox:()=>m0,UNIToolbox:()=>h0,SONICToolbox:()=>sf,OPToolbox:()=>g0,MONADToolbox:()=>p0,MEGAETHToolbox:()=>t0,MAX_APPROVAL:()=>df,MATICToolbox:()=>u0,HYPEREVMToolbox:()=>l0,GNOToolbox:()=>b0,EthNetwork:()=>Q_,ETHToolbox:()=>A0,ContractAddress:()=>sy,CROToolbox:()=>j0,CORNToolbox:()=>K0,COREToolbox:()=>o0,BotanixToolbox:()=>e5,BaseEVMToolbox:()=>kf,BSCToolbox:()=>v0,BERAToolbox:()=>V0,BASEToolbox:()=>n0,AVAXToolbox:()=>E0,AURORAToolbox:()=>S0,ARBToolbox:()=>x0,ADIToolbox:()=>P0});module.exports=HT(q_);var L_=E(()=>{k0();gf();W1();Y_()});async function J1(f,y){let G=await fetch(`${D_}${f}`,{...y,headers:{project_id:w_,...y?.headers}});if(!G.ok)throw Error(`Blockfrost API error: ${G.status} ${G.statusText}`);return G.json()}async function O_(f){try{return await J1(`/addresses/${f}/utxos`)}catch{return[]}}async function WX(){return(await J1("/blocks/latest")).slot}async function ZX(){let f=await J1("/epochs/latest/parameters"),y={PlutusScriptV1:f.cost_models.PlutusV1?Object.values(f.cost_models.PlutusV1):[],PlutusScriptV2:f.cost_models.PlutusV2?Object.values(f.cost_models.PlutusV2):[],PlutusScriptV3:f.cost_models.PlutusV3?Object.values(f.cost_models.PlutusV3):[]};return{collateralPercent:new IT.default(f.collateral_percent),languageView:y,lovelacePerUtxoWord:new IT.default(0),maxValueSize:Number.parseInt(f.max_val_size,10),minFeeA:new IT.default(f.min_fee_a),minFeeB:new IT.default(f.min_fee_b),minFeeRefScriptCostPerByte:new IT.default(15),priceMem:new IT.default(f.price_mem),priceSteps:new IT.default(f.price_step),stakeKeyDeposit:new IT.default(2000000),utxoCostPerByte:new IT.default(f.coins_per_utxo_size)}}async function N_(f){let y=await fetch(`${D_}/tx/submit`,{body:Buffer.from(f,"hex"),headers:{"Content-Type":"application/cbor",project_id:w_},method:"POST"});if(!y.ok){let G=await y.text();throw Error(`Transaction submission failed: ${G}`)}return y.json()}function JX(f,y){return f.map((G)=>{let T=G.amount.find((W)=>W.unit==="lovelace"),_=T?new IT.default(T.quantity):new IT.default(0),X=G.amount.filter((W)=>W.unit!=="lovelace").map((W)=>({amount:new IT.default(W.quantity),assetName:W.unit.slice(56),policyId:W.unit.slice(0,56)}));return{address:y,amount:_,index:G.output_index,tokens:X,txId:G.tx_hash}})}async function QX(f){try{let y=await O_(f),G=0n,T=new Map;for(let W of y){if(!W.amount||!Array.isArray(W.amount))continue;for(let Z of W.amount){let{unit:J,quantity:Q}=Z;if(J==="lovelace")G+=BigInt(Q);else{let L=T.get(J)||0n;T.set(J,L+BigInt(Q))}}}let _=[],{baseDecimal:X}=XT.getChainConfig(XT.Chain.Cardano);if(G>0n)_.push(XT.AssetValue.from({chain:XT.Chain.Cardano,fromBaseDecimal:X,value:G.toString()}));for(let[W,Z]of T)_.push(XT.AssetValue.from({asset:`${XT.Chain.Cardano}.${W}`,value:Z.toString()}));if(_.length===0)return[XT.AssetValue.from({chain:XT.Chain.Cardano})];return _}catch(y){let G=y instanceof Error?y.message:String(y);return console.error(`Cardano balance fetch error: ${G}`),[XT.AssetValue.from({chain:XT.Chain.Cardano})]}}function H_(f){if(!f||typeof f!=="string")return!1;try{let y=U_.bech32.decode(f,120);return y.prefix==="addr"||y.prefix==="addr_test"}catch{return!1}}async function YX(f,y=0,G=0){let T=await M_.mnemonicToSeed(f,""),X=(await B_.Bip32PrivateKey.fromEntropy(Buffer.from(T.slice(0,64)))).derive(Z1+1852).derive(Z1+1815).derive(Z1+y),W=X.derive(0).derive(G),Z=W.toBip32PublicKey().toPublicKey().toBytes(),J=RT.crypto.hash28(Z),L=X.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),O=RT.crypto.hash28(L),U={hash:J,type:RT.types.HashType.ADDRESS},M={hash:O,type:RT.types.HashType.ADDRESS},z=new RT.address.BaseAddress(XX,U,M).getBech32(),B=W.toPrivateKey();return{getAddress:()=>z,publicKey:Z,publicKeyHash:J,signTransaction:async(k)=>{try{let R=await import("@stricahq/cbors"),F=Buffer.from(k,"hex"),w=R.Decoder.decode(F),[Y,q,D,C]=w.value,$=R.Encoder.encode(Y),H=RT.crypto.hash32($),I=B.sign(H),P=q instanceof Map?q:new Map,n=P.get(z_)||[];n.push([Z,I]),P.set(z_,n);let b=[Y,P,D,C];return R.Encoder.encode(b).toString("hex")}catch(R){throw new XT.SwapKitError("toolbox_cardano_sign_transaction_failed",{message:String(R)})}}}}function qX(f){let y,G,T;async function _(){if(!T)T=await ZX();return T}async function X(){if(y!==void 0)return y;if(f&&"phrase"in f&&f.phrase){let M=f.index??0;return y=await YX(f.phrase,0,M),y}if(f&&"signer"in f&&f.signer)return y=f.signer,y;return}async function W(){if(G)return G;let M=await X();if(!M)return"";if("getAddress"in M)return G=await M.getAddress(),G;return""}async function Z(M){let N=M||await W();if(!N)throw new XT.SwapKitError("core_wallet_connection_not_found");return QX(N)}async function J(M){if(M)try{let{tx:k}=await Q(M),R=k.getFee();return XT.AssetValue.from({chain:XT.Chain.Cardano,fromBaseDecimal:6,value:R.toString()})}catch{}let N=await _(),z=400,B=N.minFeeB.plus(N.minFeeA.times(z));return XT.AssetValue.from({chain:XT.Chain.Cardano,fromBaseDecimal:6,value:B.toString()})}async function Q({sender:M="",recipient:N,assetValue:z,memo:B,pureLovelaceOnly:k=!1}){let R=M||await W();if(!R)throw new XT.SwapKitError("core_wallet_connection_not_found");let[F,w,Y]=await Promise.all([O_(R),WX(),_()]),q=F.filter((g)=>k?g.amount.every((TT)=>TT.unit==="lovelace"):g.amount.some((TT)=>TT.unit==="lovelace")).sort((g,TT)=>{let UT=g.amount.some((DT)=>DT.unit!=="lovelace"),FT=TT.amount.some((DT)=>DT.unit!=="lovelace");if(UT===FT)return 0;return UT?1:-1}),D=RT.utils.getAddressFromString(R),C=RT.utils.getAddressFromString(N),$=JX(q,D),H=new IT.default(z.getBaseValue("string")),I=[{address:C,amount:H,tokens:[]}],P;if(B){let g=new Map;g.set("msg",[B]),P={metadata:[{data:g,label:674}]}}let b=new RT.Transaction({protocolParams:Y}).paymentTransaction({auxiliaryData:P,changeAddress:D,inputs:$,outputs:I,ttl:w+3600}),{payload:h}=b.buildTransaction();return{tx:b,unsignedTx:h}}async function L(M){let N=await X();if(!N||!("signTransaction"in N))throw new XT.SwapKitError("core_wallet_connection_not_found");return N.signTransaction(M)}async function O({recipient:M,assetValue:N,memo:z}){let B=await X();if(!B||!("signTransaction"in B))throw new XT.SwapKitError("core_wallet_connection_not_found");let{unsignedTx:k}=await Q({assetValue:N,memo:z,recipient:M,sender:await W()}),R=await L(k);return await N_(R)}async function U(M){let N=await L(M);return await N_(N)}return{createTransaction:Q,estimateTransactionFee:J,getAddress:W,getBalance:Z,signAndBroadcastTransaction:U,signTransaction:L,transfer:O,validateAddress:H_}}var U_,M_,B_,RT,XT,IT,w_="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",D_="https://cardano-mainnet.blockfrost.io/api/v0",XX,Z1=2147483648,z_=0;var R_=E(()=>{U_=require("@scure/base"),M_=require("@scure/bip39"),B_=require("@stricahq/bip32ed25519"),RT=require("@stricahq/typhonjs"),XT=require("@swapkit/helpers"),IT=v5(require("bignumber.js")),XX=RT.types.NetworkId.MAINNET});var Q1={};wT(Q1,{validateCardanoAddress:()=>H_,getCardanoToolbox:()=>qX});module.exports=HT(Q1);var Y1=E(()=>{R_()});function T0(f){return jT.base64.encode(Uint8Array.from(jT.bech32.fromWords(jT.bech32.decode(f).words)))}function f0(f,y="thor"){return jT.bech32.encode(y,jT.bech32.toWords(jT.base64.decode(f)))}function LX(f){return jT.base64.encode(f)}function zX(f){if(!f.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new C_.SwapKitError("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return jT.base64.decode(f)}var jT,C_;var q1=E(()=>{jT=require("@scure/base"),C_=require("@swapkit/helpers")});function uT(f){switch(f){case K.Chain.Maya:return{amount:[],gas:"10000000000"};case K.Chain.THORChain:return{amount:[],gas:"500000000"};case K.Chain.Kujira:return $_;case K.Chain.Noble:return I_;default:return k_}}async function hT(f){let y=await import("@cosmjs/stargate"),G=y.StargateClient??y.default?.StargateClient,T=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return G.connect({headers:T,url:f})}async function Nf(f,y,G={}){let T=await import("@cosmjs/stargate"),_=T.SigningStargateClient??T.default?.SigningStargateClient,X=T.GasPrice??T.default?.GasPrice,W=typeof G==="string"?G:"0.0003uatom",Z=typeof G==="string"?{}:G;return _.connectWithSigner(f,y,{gasPrice:X.fromString(W),...Z})}async function z1(f,y){let G=await import("@cosmjs/stargate");return(G.SigningStargateClient??G.default?.SigningStargateClient).offline(f,y)}async function N1({sender:f,recipient:y,assetValue:G,memo:T="",feeRate:_,sequence:X,accountNumber:W}){let{chain:Z,chainId:J}=G,Q=await K.getRPCUrl(Z),O=await(await hT(Q)).getAccount(f);if(!O)throw new K.SwapKitError("toolbox_cosmos_account_not_found",{sender:f});let U=K.AssetValue.from({chain:Z}),M=rT(U.symbol),N=uT(Z),z=M&&_?{amount:[{amount:_.toString(),denom:M}],gas:N.gas}:N,B={amount:[{amount:G.getBaseValue("string"),denom:rT(G.symbol)}],fromAddress:f,toAddress:y};return{accountNumber:W??O.accountNumber,chainId:J,fee:z,memo:T,msgs:[{typeUrl:NX(Z),value:B}],sequence:X??O.sequence}}var K,L1="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",F_="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",k_,$_,I_,rT=(f,y=!1)=>{if(y)return f.toLowerCase();switch(f){case"uUSK":case"USK":return L1;case"uYUM":case"YUM":return F_;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return f}},y0=({symbol:f,chain:y})=>{if(y===K.Chain.Maya)return(f.toUpperCase()!=="CACAO"?f:`${K.Chain.Maya}.${f}`).toUpperCase();if(y===K.Chain.THORChain)return(["RUNE","TCY","RUJI"].includes(f.toUpperCase())?`${K.Chain.THORChain}.${f}`:f).toUpperCase();return rT(f,!1)},NX=(f)=>{switch(f){case K.Chain.Maya:case K.Chain.THORChain:return"/types.MsgSend";case K.Chain.Cosmos:case K.Chain.Kujira:case K.Chain.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new K.SwapKitError("toolbox_cosmos_not_supported",{chain:f})}},UX,U1=(f,y)=>{let G=UX[f.toLowerCase()];if(!G)return K.AssetValue.from({asset:f,fromBaseDecimal:8,value:y});let{chain:T,asset:_,decimals:X}=G,W=T?{chain:T}:{asset:_};return K.AssetValue.from({...W,fromBaseDecimal:X,value:y})};var _0=E(()=>{K=require("@swapkit/helpers"),k_={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},$_={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},I_={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};UX={atom:{chain:K.Chain.Cosmos,decimals:K.getChainConfig(K.Chain.Cosmos).baseDecimal},cacao:{chain:K.Chain.Maya,decimals:10},kuji:{chain:K.Chain.Kujira,decimals:K.getChainConfig(K.Chain.Kujira).baseDecimal},maya:{asset:`${K.Chain.Maya}.${K.Chain.Maya}`,decimals:4},rune:{chain:K.Chain.THORChain,decimals:K.getChainConfig(K.Chain.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:K.getChainConfig(K.Chain.THORChain).baseDecimal},uatom:{chain:K.Chain.Cosmos,decimals:K.getChainConfig(K.Chain.Cosmos).baseDecimal},ukuji:{chain:K.Chain.Kujira,decimals:K.getChainConfig(K.Chain.Kujira).baseDecimal},usdc:{chain:K.Chain.Noble,decimals:K.getChainConfig(K.Chain.Noble).baseDecimal},uusdc:{chain:K.Chain.Noble,decimals:K.getChainConfig(K.Chain.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:K.getChainConfig(K.Chain.THORChain).baseDecimal},[L1.toLowerCase()]:{asset:`${K.Chain.Kujira}.USK`,decimals:K.getChainConfig(K.Chain.Kujira).baseDecimal}}});var A_={};wT(A_,{$root:()=>S});var MT,l,ET,v,S;var P_=E(()=>{MT=v5(require("protobufjs/minimal.js")),l=MT.default.Reader,ET=MT.default.Writer,v=MT.default.util,S=MT.default.roots.default||(MT.default.roots.default={});S.common=(()=>{let f={};return f.Asset=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.chain="",y.prototype.symbol="",y.prototype.ticker="",y.prototype.synth=!1,y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.chain!=null&&Object.hasOwnProperty.call(T,"chain"))_.uint32(10).string(T.chain);if(T.symbol!=null&&Object.hasOwnProperty.call(T,"symbol"))_.uint32(18).string(T.symbol);if(T.ticker!=null&&Object.hasOwnProperty.call(T,"ticker"))_.uint32(26).string(T.ticker);if(T.synth!=null&&Object.hasOwnProperty.call(T,"synth"))_.uint32(32).bool(T.synth);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.common.Asset;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.chain=T.string();break;case 2:W.symbol=T.string();break;case 3:W.ticker=T.string();break;case 4:W.synth=T.bool();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.chain!=null&&T.hasOwnProperty("chain")){if(!v.isString(T.chain))return"chain: string expected"}if(T.symbol!=null&&T.hasOwnProperty("symbol")){if(!v.isString(T.symbol))return"symbol: string expected"}if(T.ticker!=null&&T.hasOwnProperty("ticker")){if(!v.isString(T.ticker))return"ticker: string expected"}if(T.synth!=null&&T.hasOwnProperty("synth")){if(typeof T.synth!=="boolean")return"synth: boolean expected"}return null},y.fromObject=function(T){if(T instanceof S.common.Asset)return T;let _=new S.common.Asset;if(T.chain!=null)_.chain=String(T.chain);if(T.symbol!=null)_.symbol=String(T.symbol);if(T.ticker!=null)_.ticker=String(T.ticker);if(T.synth!=null)_.synth=Boolean(T.synth);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)X.chain="",X.symbol="",X.ticker="",X.synth=!1;if(T.chain!=null&&T.hasOwnProperty("chain"))X.chain=T.chain;if(T.symbol!=null&&T.hasOwnProperty("symbol"))X.symbol=T.symbol;if(T.ticker!=null&&T.hasOwnProperty("ticker"))X.ticker=T.ticker;if(T.synth!=null&&T.hasOwnProperty("synth"))X.synth=T.synth;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f.Coin=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.asset=null,y.prototype.amount="",y.prototype.decimals=v.Long?v.Long.fromBits(0,0,!1):0,y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.asset!=null&&Object.hasOwnProperty.call(T,"asset"))S.common.Asset.encode(T.asset,_.uint32(10).fork()).ldelim();if(T.amount!=null&&Object.hasOwnProperty.call(T,"amount"))_.uint32(18).string(T.amount);if(T.decimals!=null&&Object.hasOwnProperty.call(T,"decimals"))_.uint32(24).int64(T.decimals);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.common.Coin;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.asset=S.common.Asset.decode(T,T.uint32());break;case 2:W.amount=T.string();break;case 3:W.decimals=T.int64();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.asset!=null&&T.hasOwnProperty("asset")){let _=S.common.Asset.verify(T.asset);if(_)return"asset."+_}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!v.isString(T.amount))return"amount: string expected"}if(T.decimals!=null&&T.hasOwnProperty("decimals")){if(!v.isInteger(T.decimals)&&!(T.decimals&&v.isInteger(T.decimals.low)&&v.isInteger(T.decimals.high)))return"decimals: integer|Long expected"}return null},y.fromObject=function(T){if(T instanceof S.common.Coin)return T;let _=new S.common.Coin;if(T.asset!=null){if(typeof T.asset!=="object")throw TypeError(".common.Coin.asset: object expected");_.asset=S.common.Asset.fromObject(T.asset)}if(T.amount!=null)_.amount=String(T.amount);if(T.decimals!=null){if(v.Long)(_.decimals=v.Long.fromValue(T.decimals)).unsigned=!1;else if(typeof T.decimals==="string")_.decimals=Number.parseInt(T.decimals,10);else if(typeof T.decimals==="number")_.decimals=T.decimals;else if(typeof T.decimals==="object")_.decimals=new v.LongBits(T.decimals.low>>>0,T.decimals.high>>>0).toNumber()}return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)if(X.asset=null,X.amount="",v.Long){let W=new v.Long(0,0,!1);X.decimals=_.longs===String?W.toString():_.longs===Number?W.toNumber():W}else X.decimals=_.longs===String?"0":0;if(T.asset!=null&&T.hasOwnProperty("asset"))X.asset=S.common.Asset.toObject(T.asset,_);if(T.amount!=null&&T.hasOwnProperty("amount"))X.amount=T.amount;if(T.decimals!=null&&T.hasOwnProperty("decimals"))if(typeof T.decimals==="number")X.decimals=_.longs===String?String(T.decimals):T.decimals;else X.decimals=_.longs===String?v.Long.prototype.toString.call(T.decimals):_.longs===Number?new v.LongBits(T.decimals.low>>>0,T.decimals.high>>>0).toNumber():T.decimals;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f.PubKeySet=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.secp256k1="",y.prototype.ed25519="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.secp256k1!=null&&Object.hasOwnProperty.call(T,"secp256k1"))_.uint32(10).string(T.secp256k1);if(T.ed25519!=null&&Object.hasOwnProperty.call(T,"ed25519"))_.uint32(18).string(T.ed25519);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.common.PubKeySet;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.secp256k1=T.string();break;case 2:W.ed25519=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.secp256k1!=null&&T.hasOwnProperty("secp256k1")){if(!v.isString(T.secp256k1))return"secp256k1: string expected"}if(T.ed25519!=null&&T.hasOwnProperty("ed25519")){if(!v.isString(T.ed25519))return"ed25519: string expected"}return null},y.fromObject=function(T){if(T instanceof S.common.PubKeySet)return T;let _=new S.common.PubKeySet;if(T.secp256k1!=null)_.secp256k1=String(T.secp256k1);if(T.ed25519!=null)_.ed25519=String(T.ed25519);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)X.secp256k1="",X.ed25519="";if(T.secp256k1!=null&&T.hasOwnProperty("secp256k1"))X.secp256k1=T.secp256k1;if(T.ed25519!=null&&T.hasOwnProperty("ed25519"))X.ed25519=T.ed25519;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f.Tx=(()=>{function y(G){if(this.coins=[],this.gas=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.id="",y.prototype.chain="",y.prototype.fromAddress="",y.prototype.toAddress="",y.prototype.coins=v.emptyArray,y.prototype.gas=v.emptyArray,y.prototype.memo="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.id!=null&&Object.hasOwnProperty.call(T,"id"))_.uint32(10).string(T.id);if(T.chain!=null&&Object.hasOwnProperty.call(T,"chain"))_.uint32(18).string(T.chain);if(T.fromAddress!=null&&Object.hasOwnProperty.call(T,"fromAddress"))_.uint32(26).string(T.fromAddress);if(T.toAddress!=null&&Object.hasOwnProperty.call(T,"toAddress"))_.uint32(34).string(T.toAddress);if(T.coins?.length)for(let X=0;X<T.coins.length;++X)S.common.Coin.encode(T.coins[X],_.uint32(42).fork()).ldelim();if(T.gas?.length)for(let X=0;X<T.gas.length;++X)S.common.Coin.encode(T.gas[X],_.uint32(50).fork()).ldelim();if(T.memo!=null&&Object.hasOwnProperty.call(T,"memo"))_.uint32(58).string(T.memo);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.common.Tx;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.id=T.string();break;case 2:W.chain=T.string();break;case 3:W.fromAddress=T.string();break;case 4:W.toAddress=T.string();break;case 5:if(!W.coins?.length)W.coins=[];W.coins.push(S.common.Coin.decode(T,T.uint32()));break;case 6:if(!W.gas?.length)W.gas=[];W.gas.push(S.common.Coin.decode(T,T.uint32()));break;case 7:W.memo=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.id!=null&&T.hasOwnProperty("id")){if(!v.isString(T.id))return"id: string expected"}if(T.chain!=null&&T.hasOwnProperty("chain")){if(!v.isString(T.chain))return"chain: string expected"}if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress")){if(!v.isString(T.fromAddress))return"fromAddress: string expected"}if(T.toAddress!=null&&T.hasOwnProperty("toAddress")){if(!v.isString(T.toAddress))return"toAddress: string expected"}if(T.coins!=null&&T.hasOwnProperty("coins")){if(!Array.isArray(T.coins))return"coins: array expected";for(let _=0;_<T.coins.length;++_){let X=S.common.Coin.verify(T.coins[_]);if(X)return"coins."+X}}if(T.gas!=null&&T.hasOwnProperty("gas")){if(!Array.isArray(T.gas))return"gas: array expected";for(let _=0;_<T.gas.length;++_){let X=S.common.Coin.verify(T.gas[_]);if(X)return"gas."+X}}if(T.memo!=null&&T.hasOwnProperty("memo")){if(!v.isString(T.memo))return"memo: string expected"}return null},y.fromObject=function(T){if(T instanceof S.common.Tx)return T;let _=new S.common.Tx;if(T.id!=null)_.id=String(T.id);if(T.chain!=null)_.chain=String(T.chain);if(T.fromAddress!=null)_.fromAddress=String(T.fromAddress);if(T.toAddress!=null)_.toAddress=String(T.toAddress);if(T.coins){if(!Array.isArray(T.coins))throw TypeError(".common.Tx.coins: array expected");_.coins=[];for(let X=0;X<T.coins.length;++X){if(typeof T.coins[X]!=="object")throw TypeError(".common.Tx.coins: object expected");_.coins[X]=S.common.Coin.fromObject(T.coins[X])}}if(T.gas){if(!Array.isArray(T.gas))throw TypeError(".common.Tx.gas: array expected");_.gas=[];for(let X=0;X<T.gas.length;++X){if(typeof T.gas[X]!=="object")throw TypeError(".common.Tx.gas: object expected");_.gas[X]=S.common.Coin.fromObject(T.gas[X])}}if(T.memo!=null)_.memo=String(T.memo);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.coins=[],X.gas=[];if(_.defaults)X.id="",X.chain="",X.fromAddress="",X.toAddress="",X.memo="";if(T.id!=null&&T.hasOwnProperty("id"))X.id=T.id;if(T.chain!=null&&T.hasOwnProperty("chain"))X.chain=T.chain;if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress"))X.fromAddress=T.fromAddress;if(T.toAddress!=null&&T.hasOwnProperty("toAddress"))X.toAddress=T.toAddress;if(T.coins?.length){X.coins=[];for(let W=0;W<T.coins.length;++W)X.coins[W]=S.common.Coin.toObject(T.coins[W],_)}if(T.gas?.length){X.gas=[];for(let W=0;W<T.gas.length;++W)X.gas[W]=S.common.Coin.toObject(T.gas[W],_)}if(T.memo!=null&&T.hasOwnProperty("memo"))X.memo=T.memo;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f.Fee=(()=>{function y(G){if(this.coins=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.coins=v.emptyArray,y.prototype.poolDeduct="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.coins?.length)for(let X=0;X<T.coins.length;++X)S.common.Coin.encode(T.coins[X],_.uint32(10).fork()).ldelim();if(T.poolDeduct!=null&&Object.hasOwnProperty.call(T,"poolDeduct"))_.uint32(18).string(T.poolDeduct);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.common.Fee;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:if(!W.coins?.length)W.coins=[];W.coins.push(S.common.Coin.decode(T,T.uint32()));break;case 2:W.poolDeduct=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.coins!=null&&T.hasOwnProperty("coins")){if(!Array.isArray(T.coins))return"coins: array expected";for(let _=0;_<T.coins.length;++_){let X=S.common.Coin.verify(T.coins[_]);if(X)return"coins."+X}}if(T.poolDeduct!=null&&T.hasOwnProperty("poolDeduct")){if(!v.isString(T.poolDeduct))return"poolDeduct: string expected"}return null},y.fromObject=function(T){if(T instanceof S.common.Fee)return T;let _=new S.common.Fee;if(T.coins){if(!Array.isArray(T.coins))throw TypeError(".common.Fee.coins: array expected");_.coins=[];for(let X=0;X<T.coins.length;++X){if(typeof T.coins[X]!=="object")throw TypeError(".common.Fee.coins: object expected");_.coins[X]=S.common.Coin.fromObject(T.coins[X])}}if(T.poolDeduct!=null)_.poolDeduct=String(T.poolDeduct);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.coins=[];if(_.defaults)X.poolDeduct="";if(T.coins?.length){X.coins=[];for(let W=0;W<T.coins.length;++W)X.coins[W]=S.common.Coin.toObject(T.coins[W],_)}if(T.poolDeduct!=null&&T.hasOwnProperty("poolDeduct"))X.poolDeduct=T.poolDeduct;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f.ProtoUint=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.value="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.value!=null&&Object.hasOwnProperty.call(T,"value"))_.uint32(10).string(T.value);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.common.ProtoUint;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.value=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.value!=null&&T.hasOwnProperty("value")){if(!v.isString(T.value))return"value: string expected"}return null},y.fromObject=function(T){if(T instanceof S.common.ProtoUint)return T;let _=new S.common.ProtoUint;if(T.value!=null)_.value=String(T.value);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)X.value="";if(T.value!=null&&T.hasOwnProperty("value"))X.value=T.value;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f})();S.types=(()=>{let f={};return f.MsgDeposit=(()=>{function y(G){if(this.coins=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.coins=v.emptyArray,y.prototype.memo="",y.prototype.signer=v.newBuffer([]),y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.coins?.length)for(let X=0;X<T.coins.length;++X)S.common.Coin.encode(T.coins[X],_.uint32(10).fork()).ldelim();if(T.memo!=null&&Object.hasOwnProperty.call(T,"memo"))_.uint32(18).string(T.memo);if(T.signer!=null&&Object.hasOwnProperty.call(T,"signer"))_.uint32(26).bytes(T.signer);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.types.MsgDeposit;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:if(!W.coins?.length)W.coins=[];W.coins.push(S.common.Coin.decode(T,T.uint32()));break;case 2:W.memo=T.string();break;case 3:W.signer=T.bytes();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.coins!=null&&T.hasOwnProperty("coins")){if(!Array.isArray(T.coins))return"coins: array expected";for(let _=0;_<T.coins.length;++_){let X=S.common.Coin.verify(T.coins[_]);if(X)return"coins."+X}}if(T.memo!=null&&T.hasOwnProperty("memo")){if(!v.isString(T.memo))return"memo: string expected"}if(T.signer!=null&&T.hasOwnProperty("signer")){if(!(T.signer&&typeof T.signer.length==="number"||v.isString(T.signer)))return"signer: buffer expected"}return null},y.fromObject=function(T){if(T instanceof S.types.MsgDeposit)return T;let _=new S.types.MsgDeposit;if(T.coins){if(!Array.isArray(T.coins))throw TypeError(".types.MsgDeposit.coins: array expected");_.coins=[];for(let X=0;X<T.coins.length;++X){if(typeof T.coins[X]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");_.coins[X]=S.common.Coin.fromObject(T.coins[X])}}if(T.memo!=null)_.memo=String(T.memo);if(T.signer!=null){if(typeof T.signer==="string")v.base64.decode(T.signer,_.signer=v.newBuffer(v.base64.length(T.signer)),0);else if(T.signer.length)_.signer=T.signer}return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.coins=[];if(_.defaults){if(X.memo="",_.bytes===String)X.signer="";else if(X.signer=[],_.bytes!==Array)X.signer=v.newBuffer(X.signer)}if(T.coins?.length){X.coins=[];for(let W=0;W<T.coins.length;++W)X.coins[W]=S.common.Coin.toObject(T.coins[W],_)}if(T.memo!=null&&T.hasOwnProperty("memo"))X.memo=T.memo;if(T.signer!=null&&T.hasOwnProperty("signer"))X.signer=_.bytes===String?v.base64.encode(T.signer,0,T.signer.length):_.bytes===Array?Array.prototype.slice.call(T.signer):T.signer;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f.MsgSend=(()=>{function y(G){if(this.amount=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.fromAddress=v.newBuffer([]),y.prototype.toAddress=v.newBuffer([]),y.prototype.amount=v.emptyArray,y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=ET.create();if(T.fromAddress!=null&&Object.hasOwnProperty.call(T,"fromAddress"))_.uint32(10).bytes(T.fromAddress);if(T.toAddress!=null&&Object.hasOwnProperty.call(T,"toAddress"))_.uint32(18).bytes(T.toAddress);if(T.amount?.length)for(let X=0;X<T.amount.length;++X)S.cosmos.base.v1beta1.Coin.encode(T.amount[X],_.uint32(26).fork()).ldelim();return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof l))T=l.create(T);let X=_===void 0?T.len:T.pos+_,W=new S.types.MsgSend;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.fromAddress=T.bytes();break;case 2:W.toAddress=T.bytes();break;case 3:if(!W.amount?.length)W.amount=[];W.amount.push(S.cosmos.base.v1beta1.Coin.decode(T,T.uint32()));break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof l))T=new l(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress")){if(!(T.fromAddress&&typeof T.fromAddress.length==="number"||v.isString(T.fromAddress)))return"fromAddress: buffer expected"}if(T.toAddress!=null&&T.hasOwnProperty("toAddress")){if(!(T.toAddress&&typeof T.toAddress.length==="number"||v.isString(T.toAddress)))return"toAddress: buffer expected"}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!Array.isArray(T.amount))return"amount: array expected";for(let _=0;_<T.amount.length;++_){let X=S.cosmos.base.v1beta1.Coin.verify(T.amount[_]);if(X)return"amount."+X}}return null},y.fromObject=function(T){if(T instanceof S.types.MsgSend)return T;let _=new S.types.MsgSend;if(T.fromAddress!=null){if(typeof T.fromAddress==="string")v.base64.decode(T.fromAddress,_.fromAddress=v.newBuffer(v.base64.length(T.fromAddress)),0);else if(T.fromAddress.length)_.fromAddress=T.fromAddress}if(T.toAddress!=null){if(typeof T.toAddress==="string")v.base64.decode(T.toAddress,_.toAddress=v.newBuffer(v.base64.length(T.toAddress)),0);else if(T.toAddress.length)_.toAddress=T.toAddress}if(T.amount){if(!Array.isArray(T.amount))throw TypeError(".types.MsgSend.amount: array expected");_.amount=[];for(let X=0;X<T.amount.length;++X){if(typeof T.amount[X]!=="object")throw TypeError(".types.MsgSend.amount: object expected");_.amount[X]=S.cosmos.base.v1beta1.Coin.fromObject(T.amount[X])}}return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.amount=[];if(_.defaults){if(_.bytes===String)X.fromAddress="";else if(X.fromAddress=[],_.bytes!==Array)X.fromAddress=v.newBuffer(X.fromAddress);if(_.bytes===String)X.toAddress="";else if(X.toAddress=[],_.bytes!==Array)X.toAddress=v.newBuffer(X.toAddress)}if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress"))X.fromAddress=_.bytes===String?v.base64.encode(T.fromAddress,0,T.fromAddress.length):_.bytes===Array?Array.prototype.slice.call(T.fromAddress):T.fromAddress;if(T.toAddress!=null&&T.hasOwnProperty("toAddress"))X.toAddress=_.bytes===String?v.base64.encode(T.toAddress,0,T.toAddress.length):_.bytes===Array?Array.prototype.slice.call(T.toAddress):T.toAddress;if(T.amount?.length){X.amount=[];for(let W=0;W<T.amount.length;++W)X.amount[W]=S.cosmos.base.v1beta1.Coin.toObject(T.amount[W],_)}return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},y})(),f})();S.cosmos=(()=>{let f={};return f.base=(()=>{let y={};return y.v1beta1=(()=>{let G={};return G.Coin=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.denom="",T.prototype.amount="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=ET.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))W.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))W.uint32(18).string(X.amount);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof l))X=l.create(X);let Z=W===void 0?X.len:X.pos+W,J=new S.cosmos.base.v1beta1.Coin;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.denom=X.string();break;case 2:J.amount=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof l))X=new l(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!v.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!v.isString(X.amount))return"amount: string expected"}return null},T.fromObject=function(X){if(X instanceof S.cosmos.base.v1beta1.Coin)return X;let W=new S.cosmos.base.v1beta1.Coin;if(X.denom!=null)W.denom=String(X.denom);if(X.amount!=null)W.amount=String(X.amount);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.denom="",Z.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))Z.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))Z.amount=X.amount;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},T})(),G.DecCoin=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.denom="",T.prototype.amount="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=ET.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))W.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))W.uint32(18).string(X.amount);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof l))X=l.create(X);let Z=W===void 0?X.len:X.pos+W,J=new S.cosmos.base.v1beta1.DecCoin;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.denom=X.string();break;case 2:J.amount=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof l))X=new l(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!v.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!v.isString(X.amount))return"amount: string expected"}return null},T.fromObject=function(X){if(X instanceof S.cosmos.base.v1beta1.DecCoin)return X;let W=new S.cosmos.base.v1beta1.DecCoin;if(X.denom!=null)W.denom=String(X.denom);if(X.amount!=null)W.amount=String(X.amount);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.denom="",Z.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))Z.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))Z.amount=X.amount;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},T})(),G.IntProto=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.int="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=ET.create();if(X.int!=null&&Object.hasOwnProperty.call(X,"int"))W.uint32(10).string(X.int);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof l))X=l.create(X);let Z=W===void 0?X.len:X.pos+W,J=new S.cosmos.base.v1beta1.IntProto;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.int=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof l))X=new l(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.int!=null&&X.hasOwnProperty("int")){if(!v.isString(X.int))return"int: string expected"}return null},T.fromObject=function(X){if(X instanceof S.cosmos.base.v1beta1.IntProto)return X;let W=new S.cosmos.base.v1beta1.IntProto;if(X.int!=null)W.int=String(X.int);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.int="";if(X.int!=null&&X.hasOwnProperty("int"))Z.int=X.int;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},T})(),G.DecProto=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.dec="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=ET.create();if(X.dec!=null&&Object.hasOwnProperty.call(X,"dec"))W.uint32(10).string(X.dec);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof l))X=l.create(X);let Z=W===void 0?X.len:X.pos+W,J=new S.cosmos.base.v1beta1.DecProto;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.dec=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof l))X=new l(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.dec!=null&&X.hasOwnProperty("dec")){if(!v.isString(X.dec))return"dec: string expected"}return null},T.fromObject=function(X){if(X instanceof S.cosmos.base.v1beta1.DecProto)return X;let W=new S.cosmos.base.v1beta1.DecProto;if(X.dec!=null)W.dec=String(X.dec);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.dec="";if(X.dec!=null&&X.hasOwnProperty("dec"))Z.dec=X.dec;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,MT.default.util.toJSONOptions)},T})(),G})(),y})(),f})()});async function Uf(){let{$root:f}=await Promise.resolve().then(() => (P_(),A_)),y=await import("@cosmjs/proto-signing"),G=y.Registry??y.default?.Registry,T=await import("@cosmjs/stargate"),_=T.defaultRegistryTypes??T.default?.defaultRegistryTypes;return new G([..._,["/types.MsgSend",f.types.MsgSend],["/types.MsgDeposit",f.types.MsgDeposit]])}async function aT(f){let y=await import("@cosmjs/stargate"),G=y.AminoTypes??y.default?.AminoTypes,T=f===x_.Chain.THORChain?"thorchain":"mayachain";return new G({"/types.MsgDeposit":{aminoType:`${T}/MsgDeposit`,fromAmino:({signer:_,...X})=>({...X,signer:T0(_)}),toAmino:({signer:_,...X})=>({...X,signer:f0(_)})},"/types.MsgSend":{aminoType:`${T}/MsgSend`,fromAmino:({from_address:_,to_address:X,...W})=>({...W,fromAddress:T0(_),toAddress:T0(X)}),toAmino:({fromAddress:_,toAddress:X,...W})=>({...W,from_address:f0(_),to_address:f0(X)})}})}var x_;var M1=E(()=>{q1();x_=require("@swapkit/helpers")});function D1(f){let{assetValue:y,recipient:G,memo:T,sender:_,asSignable:X,asAminoMessage:W}=f;if(G)return E_({asAminoMessage:W,asSignable:X,assetValue:y,memo:T,recipient:G,sender:_});return n_({asAminoMessage:W,asSignable:X,assetValue:y,memo:T,sender:_})}async function E_({sender:f,recipient:y,assetValue:G,memo:T="",asSignable:_=!0,asAminoMessage:X=!1,sequence:W,accountNumber:Z}){let J=G.chain,Q=await CT.getRPCUrl(J),L=await S_({rpcUrl:Q,sender:f}),{chainId:O}=CT.getChainConfig(J),U=B1({assetValue:G,recipient:y,sender:f}),M=_?await sT(X?U:eT(U),J):U;return{accountNumber:Z||L.accountNumber,chainId:O,fee:uT(J),memo:T,msgs:[M],sequence:W||L.sequence}}async function n_({sender:f,assetValue:y,memo:G="",asSignable:T=!0,asAminoMessage:_=!1,sequence:X,accountNumber:W}){let Z=y.chain,J=await CT.getRPCUrl(Z),Q=await S_({rpcUrl:J,sender:f}),{chainId:L}=CT.getChainConfig(Z),O=w1({assetValue:y,memo:G,sender:f}),U=T?await sT(_?O:eT(O),Z):O;return{accountNumber:W||Q.accountNumber,chainId:L,fee:uT(Z),memo:G,msgs:[U],sequence:X||Q.sequence}}function eT(f){if(f.type==="thorchain/MsgSend"||f.type==="mayachain/MsgSend")return f;return{...f,value:{...f.value,coins:f.value.coins.map((y)=>{let G=CT.AssetValue.from({asset:y.asset}),T=(G.isSynthetic?G.symbol.split("/")?.[1]:G.symbol)?.toUpperCase(),_=(G.isSynthetic?G.symbol.split("/")?.[0]:G.chain)?.toUpperCase();return{...y,asset:{chain:_,symbol:T,synth:G.isSynthetic,ticker:G.ticker}}})}}}async function G0({chain:f,memo:y,msgs:G}){let T=await Uf(),_=await aT(f),X={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:y,messages:G.map((W)=>_.fromAmino(W))}};return T.encode(X)}var CT,MX,BX,B1=({sender:f,recipient:y,assetValue:G})=>{return{type:`${G.chain===CT.Chain.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:G.getBaseValue("string"),denom:rT(G.symbol,!0)}],from_address:f,to_address:y}}},w1=({sender:f,assetValue:y,memo:G=""})=>{return{type:`${y.chain===CT.Chain.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:y.getBaseValue("string"),asset:y0(y)}],memo:G,signer:f}}},i0=({sender:f,recipient:y,assetValue:G,memo:T})=>{return!y?w1({assetValue:G,memo:T,sender:f}):B1({assetValue:G,recipient:y,sender:f})},sT=async(f,y)=>{return(await aT(y)).fromAmino(f)},S_=async({rpcUrl:f,sender:y})=>{let T=await(await hT(f)).getAccount(y);if(!T)throw new CT.SwapKitError("toolbox_cosmos_account_not_found",{sender:y});return T};var V_=E(()=>{_0();M1();CT=require("@swapkit/helpers"),MX=uT(CT.Chain.THORChain).gas,BX=uT(CT.Chain.Maya).gas});var v_=()=>{};var o_=E(()=>{v_()});var O1=E(()=>{q1();V_();M1();o_()});async function C1(f,y){try{let T=(await R1.SwapKitApi.getGasRate()).find((_)=>_.chainId===f)?.value;return T?Number.parseFloat(T):y}catch{return y}}async function H1({phrase:f,prefix:y,...G}){let T="derivationPath"in G?G.derivationPath:`${V.DerivationPath[G.chain]}/${G.index}`;return await u_.DirectSecp256k1HdWallet.fromMnemonic(f,{hdPaths:[l_.stringToPath(T)],prefix:y})}async function wX({privateKey:f,prefix:y}){let G=await import("@cosmjs/proto-signing");return(G.DirectSecp256k1Wallet??G.default?.DirectSecp256k1Wallet).fromKey(f,y)}function h_(f){return async function({signature:G,message:T,address:_}){let X=await f(_);if(!X?.pubkey)throw new V.SwapKitError("toolbox_cosmos_verify_signature_no_pubkey");let W=await import("@cosmjs/crypto"),Z=W.Secp256k1Signature??W.default?.Secp256k1Signature,J=W.Secp256k1??W.default?.Secp256k1,Q=Z.fromFixedLength(Tf.base64.decode(G));return J.verifySignature(Q,Tf.base64.decode(T),X.pubkey.value)}}function W0({chain:f,...y}){let G=V.CosmosChainPrefixes[f],T="index"in y?y.index||0:0,_=V.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:V.updateDerivationPath(V.NetworkDerivationPath[f],{index:T})),X;async function W(){if(X)return X;return X=await X0.match(y).with({phrase:X0.P.string},({phrase:M})=>H1({derivationPath:_,phrase:M,prefix:G})).with({signer:X0.P.any},({signer:M})=>M).otherwise(()=>{return}),X}async function Z(M){let N=await V.getRPCUrl(f);return(await hT(N)).getAccount(M)}async function J(){let M=await W(),[N]=await M?.getAccounts()||[];return N?.address}async function Q(){let M=await W(),[N]=await M?.getAccounts()||[];if(!N?.pubkey)throw new V.SwapKitError("toolbox_cosmos_signer_not_defined");return Tf.base64.encode(N?.pubkey)}async function L(M){let N=await W(),z=await J(),B=await V.getRPCUrl(f);if(!(N&&z))throw new V.SwapKitError("toolbox_cosmos_signer_not_defined");return await(await Nf(B,N)).sign(z,M.msgs,M.fee,M.memo,{accountNumber:M.accountNumber,chainId:M.chainId,sequence:M.sequence})}async function O(M){let N=await W(),z=await J(),B=await V.getRPCUrl(f);if(!(N&&z))throw new V.SwapKitError("toolbox_cosmos_signer_not_defined");let R=await(await Nf(B,N)).signAndBroadcast(z,M.msgs,M.fee,M.memo);if(R.code!==0)throw new V.SwapKitError("core_swap_transaction_error",{code:R.code,message:R.rawLog});return R.transactionHash}async function U({recipient:M,assetValue:N,memo:z="",feeRate:B,feeOptionKey:k=V.FeeOption.Fast}){let R=await W(),F=await J();if(!(R&&F))throw new V.SwapKitError("toolbox_cosmos_signer_not_defined");let w=await V.getRPCUrl(f),Y=V.AssetValue.from({chain:f}),q=y0(Y),D=B||HX((await j_(f,K_[f]))[k],q),C=await Nf(w,R),$=rT(N.symbol),H=[{amount:N.getBaseValue("string"),denom:$}],{transactionHash:I}=await C.sendTokens(F,M,H,D,z);return I}return{createPrivateKeyFromPhrase:CX(_),createTransaction:N1,fetchFeeRateFromSwapKit:C1,getAccount:Z,getAddress:J,getBalance:async(M,N)=>{let z=await b_(f)(M),B=await Promise.all(z.filter(({denom:k})=>k&&!k.includes("IBC/")&&!([V.Chain.THORChain,V.Chain.Maya].includes(f)&&k.split("-").length>2)).map(({denom:k,amount:R})=>{let F=[V.Chain.THORChain,V.Chain.Maya].includes(f)&&(k.includes("/")||k.includes("˜"))?`${f}.${k}`:k;return U1(F,R)}));if(B.length===0)return[V.AssetValue.from({chain:f})];return B},getBalanceAsDenoms:b_(f),getFees:()=>j_(f,K_[f]),getPubKey:Q,getSignerFromPhrase:({phrase:M,derivationPath:N})=>H1({derivationPath:V.derivationPathToString(N),index:T,phrase:M,prefix:G}),getSignerFromPrivateKey:async(M)=>{let N=await import("@cosmjs/proto-signing");return(N.DirectSecp256k1Wallet??N.default?.DirectSecp256k1Wallet).fromKey(M,G)},signAndBroadcastTransaction:O,signTransaction:L,transfer:U,validateAddress:m_(f),verifySignature:h_(Z)}}async function DX(f,y){try{let T=(await R1.SwapKitApi.getGasRate()).find((_)=>_.chainId===f)?.value;return T?Number.parseFloat(T):y}catch{return y}}function OX({assetValue:{chain:f}}){return V.AssetValue.from({chain:f,value:RX(f)})}async function j_(f,y){let{chainId:G,baseDecimal:T}=V.getChainConfig(f),_=await C1(G,y);return{average:V.SwapKitNumber.fromBigInt(BigInt(_),T),fast:V.SwapKitNumber.fromBigInt(BigInt(V.applyFeeMultiplier(_,V.FeeOption.Fast,!0)),T),fastest:V.SwapKitNumber.fromBigInt(BigInt(V.applyFeeMultiplier(_,V.FeeOption.Fastest,!0)),T)}}function HX(f,y){return{amount:[{amount:f.getBaseValue("string"),denom:y}],gas:"200000"}}function RX(f){return{[V.Chain.Cosmos]:0.007,[V.Chain.Kujira]:0.02,[V.Chain.Noble]:0.01,[V.Chain.THORChain]:0.02,[V.Chain.Maya]:0.02,[V.Chain.Harbor]:0.02}[f]||0}function m_(f){let y=V.CosmosChainPrefixes[f];return function(T){if(!T.startsWith(y))return!1;try{let{prefix:_,words:X}=Tf.bech32.decode(T);return Tf.bech32.encode(_,X)===T.toLocaleLowerCase()}catch{return!1}}}function b_(f){return async function(G){let T=await V.getRPCUrl(f);return(await(await hT(T)).getAllBalances(G)).map((Z)=>({...Z,denom:Z.denom.includes("/")?Z.denom.toUpperCase():Z.denom}))}}function CX(f){return async function(G){let T=await import("@cosmjs/crypto"),_=T.stringToPath??T.default?.stringToPath,X=T.Slip10Curve??T.default?.Slip10Curve,W=T.Slip10??T.default?.Slip10,Z=T.EnglishMnemonic??T.default?.EnglishMnemonic,J=T.Bip39??T.default?.Bip39,Q=new Z(G),L=await J.mnemonicToSeed(Q),{privkey:O}=W.derivePath(X.Secp256k1,L,_(f));return O}}var l_,u_,Tf,V,R1,X0,K_;var d0=E(()=>{_0();l_=require("@cosmjs/crypto"),u_=require("@cosmjs/proto-signing"),Tf=require("@scure/base"),V=require("@swapkit/helpers"),R1=require("@swapkit/helpers/api"),X0=require("ts-pattern");K_={[V.Chain.Cosmos]:1000,[V.Chain.Kujira]:1000,[V.Chain.Noble]:1000,[V.Chain.THORChain]:5000000,[V.Chain.Maya]:5000000,[V.Chain.Harbor]:5000000}});function FX({prefix:f,derivationPath:y}){return async function(T,_=0){let X=await import("@cosmjs/amino"),W=X.Secp256k1HdWallet??X.default?.Secp256k1HdWallet,Z=await import("@cosmjs/crypto"),J=Z.stringToPath??Z.default?.stringToPath;return W.fromMnemonic(T,{hdPaths:[J(`${y}/${_}`)],prefix:f})}}function kX(f){return ff.base64.encode(f)}function $X(f){return async function({wallet:G,tx:T}){let{msgs:_,accountNumber:X,sequence:W,chainId:Z,fee:J,memo:Q}=typeof T==="string"?JSON.parse(T):T,L=(await G.getAccounts())?.[0]?.address||"",O=await aT(f),U=await Uf(),M=await z1(G,{aminoTypes:O,registry:U}),N=[];for(let k of _){let R=await sT(k,f);N.push(R)}let{signatures:[z]}=await M.sign(L,N,J,Q,{accountNumber:X,chainId:Z,sequence:W});return{bodyBytes:await G0({chain:f,memo:Q,msgs:_.map(eT)}),signature:kX(z)}}}function IX({prefix:f,chain:y}){return async function(T,_,X,W,Z){let J=await s.getRPCUrl(y),{encodeSecp256k1Pubkey:Q,pubkeyToAddress:L}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:O}=(await import("@cosmjs/stargate")).default,{sequence:U,fee:M}=JSON.parse(T),N=await p_(X,W),z=_.map((R)=>[L(Q(ff.base64.decode(R.pubKey)),f),ff.base64.decode(R.signature)]),B=await hT(J),{transactionHash:k}=await B.broadcastTx(O(N,U,M,Z,new Map(z)));return k}}async function p_(f,y,G=!0){let{createMultisigThresholdPubkey:T,encodeSecp256k1Pubkey:_}=(await import("@cosmjs/amino")).default;return T(f.map((X)=>_(ff.base64.decode(X))),y,G)}function AX(f){return ff.base64.decode(f)}async function PX({privateKey:f,message:y}){let{Secp256k1:G}=(await import("@cosmjs/crypto")).default,T=await G.createSignature(ff.base64.decode(y),f);return ff.base64.encode(Buffer.concat([T.r(32),T.s(32)]))}function F1({chain:f,...y}){let{nodeUrl:G}=s.getChainConfig(f),{isStagenet:T}=s.SKConfig.get("envs"),_=f===s.Chain.THORChain,X=`${T?"s":""}${s.CosmosChainPrefixes[f]}`,W="index"in y?y.index||0:0,Z="derivationPath"in y&&y.derivationPath?y.derivationPath:s.updateDerivationPath(s.NetworkDerivationPath[f],{index:W}),J=W0({chain:f,...y}),Q=uT(f);async function L(){let U,M=`${G}/${_?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:N}}=await s.RequestClient.get(M);if(!N||Number.isNaN(N)||N<0)throw new s.SwapKitError("toolbox_cosmos_invalid_fee",{nativeFee:N.toString()});U=new s.SwapKitNumber(N)}catch{U=new s.SwapKitNumber({decimal:s.getChainConfig(f).baseDecimal,value:_?0.02:1})}return{[s.FeeOption.Average]:U,[s.FeeOption.Fast]:U,[s.FeeOption.Fastest]:U}}async function O({assetValue:U,memo:M="",recipient:N}){let z=await s.getRPCUrl(f),B=await Z0.match(y).with({phrase:Z0.P.string},({phrase:I})=>J.getSignerFromPhrase({derivationPath:Z,phrase:I})).with({signer:Z0.P.any},({signer:I})=>I).otherwise(()=>{return}),{TxRaw:k}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),R=(await B?.getAccounts())?.[0]?.address;if(!(R&&B))throw new s.SwapKitError("toolbox_cosmos_no_signer");let F="signAmino"in B,w=await Uf(),Y=await aT(f),q=await Nf(z,B,{aminoTypes:Y,registry:w}),D=i0({assetValue:U,memo:M,recipient:N,sender:R});if(F){let I=await sT(D,f),{signatures:P,authInfoBytes:n}=await q.sign(R,[I],Q,M),b=k.encode({authInfoBytes:n,bodyBytes:await G0({chain:f,memo:M,msgs:[D].map(eT)}),signatures:P}).finish();return(await q.broadcastTx(b)).transactionHash}let C=eT(D),$=await sT(C,f);return(await q.signAndBroadcast(R,[$],Q,M)).transactionHash}return{...J,broadcastMultisigTx:IX({chain:f,prefix:X}),buildAminoMsg:i0,buildEncodedTxBody:G0,convertToSignable:sT,createDefaultAminoTypes:()=>aT(f),createDefaultRegistry:Uf,createMultisig:p_,createTransaction:D1,deposit:O,getFees:L,importSignature:AX,parseAminoMessageForDirectSigning:eT,pubkeyToAddress:async(U)=>{let{pubkeyToAddress:M}=(await import("@cosmjs/amino")).default;return M(U,X)},secp256k1HdWalletFromMnemonic:FX({derivationPath:s.derivationPathToString(Z),prefix:X}),signMultisigTx:$X(f),signWithPrivateKey:PX,transfer:O}}var ff,s,Z0;var k1=E(()=>{O1();_0();d0();ff=require("@scure/base"),s=require("@swapkit/helpers"),Z0=require("ts-pattern")});var yf,xX=(f,y)=>{switch(f){case yf.Chain.Cosmos:case yf.Chain.Kujira:case yf.Chain.Noble:return W0({chain:f,...y});case yf.Chain.Maya:case yf.Chain.THORChain:return F1({chain:f,...y});default:throw new yf.SwapKitError("toolbox_cosmos_not_supported",{chain:f})}};var t_=E(()=>{d0();k1();yf=require("@swapkit/helpers");d0();k1()});var r0={};wT(r0,{verifySignature:()=>h_,transferMsgAmino:()=>B1,toBase64:()=>LX,parseAminoMessageForDirectSigning:()=>eT,getSignerFromPrivateKey:()=>wX,getSignerFromPhrase:()=>H1,getMsgSendDenom:()=>rT,getFeeRateFromSwapKit:()=>DX,getDenomWithChain:()=>y0,getDefaultChainFee:()=>uT,getCosmosToolbox:()=>xX,getCosmosAddressValidator:()=>m_,getAssetFromDenom:()=>U1,fromBase64:()=>zX,fetchFeeRateFromSwapKit:()=>C1,estimateTransactionFee:()=>OX,depositMsgAmino:()=>w1,createTransaction:()=>D1,createThorchainToolbox:()=>F1,createStargateClient:()=>hT,createSigningStargateClient:()=>Nf,createOfflineStargateClient:()=>z1,createDefaultRegistry:()=>Uf,createDefaultAminoTypes:()=>aT,createCosmosToolbox:()=>W0,cosmosCreateTransaction:()=>N1,convertToSignable:()=>sT,buildTransferTx:()=>E_,buildEncodedTxBody:()=>G0,buildDepositTx:()=>n_,buildAminoMsg:()=>i0,bech32ToBase64:()=>T0,base64ToBech32:()=>f0,YUM_KUJIRA_FACTORY_DENOM:()=>F_,USK_KUJIRA_FACTORY_DENOM:()=>L1,THORCHAIN_GAS_VALUE:()=>MX,MAYA_GAS_VALUE:()=>BX,DEFAULT_NOBLE_FEE_MAINNET:()=>I_,DEFAULT_KUJI_FEE_MAINNET:()=>$_,DEFAULT_COSMOS_FEE_MAINNET:()=>k_});module.exports=HT(r0);var a0=E(()=>{O1();t_();_0()});async function i_(f){let y=d.AssetValue.from({address:f,chain:d.Chain.Solana});if(y.symbol!=="UNKNOWN")return{decimals:y.decimal||0,id:f,logoURI:y.getIconUrl(),name:y.symbol,symbol:y.ticker};let G=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(f)}`;try{let T=await fetch(G);if(!T.ok)return null;let _=await T.json();if(!Array.isArray(_)||_.length===0)return null;return _.find((W)=>W.id===f)||null}catch{return null}}async function SX(f){let y=await mT(),{PublicKey:G}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:T}=await import("@solana/spl-token"),_=new G(f),{baseDecimal:X}=d.getChainConfig(d.Chain.Solana),W=await y.getBalance(_),Z=[d.AssetValue.from({chain:d.Chain.Solana,fromBaseDecimal:X,value:W||0})],J=await y.getParsedTokenAccountsByOwner(_,{programId:T});for(let{account:Q}of J.value){let L=Q.data.parsed.info,O=L.mint,U=L.tokenAmount.amount;if(Number(U)===0)continue;let M=await i_(O),N=M?.symbol||"UNKNOWN",z=M?.decimals||L.tokenAmount.decimals;Z.push(d.AssetValue.from({asset:`${d.Chain.Solana}.${N}-${O}`,fromBaseDecimal:z,value:U}))}return Z}function I1(f){try{let y=new pT.PublicKey(f);return pT.PublicKey.isOnCurve(y.toBytes())}catch{return!1}}function EX(f){let y=f&&"index"in f?f.index||0:0,G=d.derivationPathToString(f&&"derivationPath"in f&&f.derivationPath?f.derivationPath:d.updateDerivationPath(d.NetworkDerivationPath[d.Chain.Solana],{index:y})),T;async function _(){if(T)return T;return T=await J0.match(f).with({phrase:J0.P.string},({phrase:W})=>$1({derivationPath:G,phrase:W})).with({signer:J0.P.any},({signer:W})=>W).otherwise(()=>{return}),T}async function X(){let W=await _();return W?.publicKey?g_(W.publicKey):""}return{broadcastTransaction:s0(mT),createKeysForPath:$1,createTransaction:A1(mT),createTransactionFromInstructions:oX,estimateTransactionFee:nX(mT),getAddress:X,getAddressFromPubKey:g_,getBalance:ST(d.Chain.Solana),getBalanceFromRPC:SX,getConnection:mT,getPubkeyFromAddress:(W)=>new pT.PublicKey(W),signAndBroadcastTransaction:async(W)=>{let Z=await c_(mT,_)(W);return s0(mT)(Z)},signTransaction:c_(mT,_),transfer:KX(mT,_),validateAddress:I1}}function nX(f){return async({recipient:y,assetValue:G,memo:T,isProgramDerivedAddress:_,sender:X})=>{let W=await f(),J=(await A1(f)({assetValue:G,isProgramDerivedAddress:_,memo:T,recipient:y,sender:X})).compileMessage(),Q=await W.getFeeForMessage(J);if(Q.value===null)throw new d.SwapKitError("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:L}=d.getChainConfig(d.Chain.Solana);return d.AssetValue.from({chain:d.Chain.Solana,fromBaseDecimal:L,value:Q.value})}}async function mT(){let{Connection:f}=await import("@solana/web3.js"),y=await d.getRPCUrl(d.Chain.Solana);return new f(y,{commitment:"confirmed",fetchMiddleware:(G,T,_)=>{let X={};for(let[W,Z]of Object.entries(T?.headers??{})){let J=W.toLowerCase();if(J!=="pragma"&&J!=="solana-client")X[W]=Z}_(G,{...T,headers:X})}})}function VX(f){return async({assetValue:y,recipient:G,sender:T,isProgramDerivedAddress:_})=>{let X=await f(),W=new pT.PublicKey(T);if(y.isGasAsset){let{Transaction:Z,SystemProgram:J}=await import("@solana/web3.js");return new Z().add(J.transfer({fromPubkey:W,lamports:y.getBaseValue("number"),toPubkey:new pT.PublicKey(G)}))}if(y.address)return vX({amount:y.getBaseValue("number"),connection:X,decimals:y.decimal,from:W,isProgramDerivedAddress:_,recipient:G,tokenAddress:y.address});return}}async function vX({tokenAddress:f,recipient:y,from:G,connection:T,amount:_,decimals:X,isProgramDerivedAddress:W}){let{getAssociatedTokenAddress:Z,getAccount:J,createAssociatedTokenAccountInstruction:Q,createTransferCheckedInstruction:L}=await import("@solana/spl-token"),{Transaction:O}=await import("@solana/web3.js"),U=new O,M=new pT.PublicKey(f),N=await Z(M,G),z=new pT.PublicKey(y),B=await Z(M,z,W),k=!1;try{await J(T,B),k=!0}catch{}if(!k)U.add(Q(G,B,z,M));return U.add(L(N,M,B,G,_,X)),U}function A1(f){return async({recipient:y,assetValue:G,memo:T,isProgramDerivedAddress:_,sender:X})=>{let{createMemoInstruction:W}=await import("@solana/spl-memo"),Z=new pT.PublicKey(X);if(!(_||I1(y)))throw new d.SwapKitError("core_transaction_invalid_recipient_address");let J=await f(),Q=await VX(f)({assetValue:G,isProgramDerivedAddress:_,recipient:y,sender:X});if(!Q)throw new d.SwapKitError("core_transaction_invalid_sender_address");if(T)Q.add(W(T));let L=await J.getLatestBlockhash();return Q.recentBlockhash=L.blockhash,Q.feePayer=Z,Q}}async function oX({instructions:f}){let{Transaction:y}=await import("@solana/web3.js"),G=new y().add(...f);if(!G)throw new d.SwapKitError("core_transaction_invalid_sender_address");return G}function KX(f,y){return async({recipient:G,assetValue:T,memo:_,isProgramDerivedAddress:X})=>{let W=await y();if(!W)throw new d.SwapKitError("core_transaction_invalid_sender_address");let Z=W.publicKey?.toString()??(await W.connect()).publicKey.toString(),J=await A1(f)({assetValue:T,isProgramDerivedAddress:X,memo:_,recipient:G,sender:Z});if("signTransaction"in W){let Q=await W.signTransaction(J);return s0(f)(Q)}return J.sign(W),s0(f)(J)}}function s0(f){return async(y)=>{return(await f()).sendRawTransaction(y.serialize())}}function c_(f,y){return async(G)=>{let T=await y();if(!T)throw new d.SwapKitError("toolbox_solana_no_signer");let{VersionedTransaction:_}=await import("@solana/web3.js");if(!(G instanceof _)){let W=await(await f()).getLatestBlockhash();G.recentBlockhash=W.blockhash,G.feePayer=T.publicKey||void 0}if("connect"in T)return await T.signTransaction(G);return G.sign([T]),G}}async function $1({phrase:f,derivationPath:y=d.DerivationPath.SOL}){let{HDKey:G}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:T}=await import("@scure/bip39"),{Keypair:_}=await import("@solana/web3.js"),X=T(f),W=G.fromMasterSeed(X);return _.fromSeed(W.derive(y,!0).privateKey)}function g_(f){return f.toString()}var pT,d,J0;var d_=E(()=>{dT();pT=require("@solana/web3.js"),d=require("@swapkit/helpers"),J0=require("ts-pattern")});var P1={};wT(P1,{validateSolanaAddress:()=>I1,getSolanaToolbox:()=>EX,fetchTokenMetaData:()=>i_,createKeysForPath:()=>$1});module.exports=HT(P1);var x1=E(()=>{d_()});function e0(f){if(!f)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(f)}async function Ty({phrase:f,derivationPath:y=p.DerivationPath.STRK}){let{HDKey:G}=await import("@scure/bip32"),{mnemonicToSeedSync:T}=await import("@scure/bip39"),{ec:_,hash:X,encode:W,CallData:Z}=await import("starknet"),J=T(f),L=G.fromMasterSeed(J).derive(y);if(!L.privateKey)throw new p.SwapKitError("toolbox_starknet_no_signer");let O=W.addHexPrefix(Buffer.from(L.privateKey).toString("hex")),U=_.starkCurve.grindKey(O),M=W.addHexPrefix(U),N=_.starkCurve.getStarkKey(M),z=Z.compile([N,0]);return{address:X.calculateContractAddressFromHash(N,E1,z,0),privateKey:M,publicKey:N}}async function n1({phrase:f,derivationPath:y=p.DerivationPath.STRK}){let{Account:G,RpcProvider:T}=await import("starknet"),{privateKey:_,address:X}=await Ty({derivationPath:y,phrase:f}),W=await p.getRPCUrl(p.Chain.Starknet),Z=new T({nodeUrl:W});return new G({address:X,provider:Z,signer:_})}function a_(f){let y=p.Chain.Starknet,G=f&&"index"in f?f.index||0:0,T=p.derivationPathToString(f&&"derivationPath"in f&&f.derivationPath?f.derivationPath:p.updateDerivationPath(p.NetworkDerivationPath[y],{index:G})),_,X,W;async function Z(){if(X)return X;let{RpcProvider:Y}=await import("starknet"),q=await p.getRPCUrl(y);return X=new Y({nodeUrl:q}),X}async function J(Y){let q=await Z(),D=Y||await U();if(!D)return!1;try{return await q.getClassHashAt(D),!0}catch(C){if(C instanceof Error&&C.message.includes("Contract not found"))return!1;let $=C;if($?.code===20||$?.code===19)return!1;throw C}}async function Q(){let{CallData:Y,hash:q}=await import("starknet"),D=await Z(),C=await O();if(!C)throw new p.SwapKitError("toolbox_starknet_no_signer");if(!W)throw new p.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await J())return C.address;let H=Y.compile([W,0]);if(q.calculateContractAddressFromHash(W,E1,H,0).toLowerCase()!==C.address.toLowerCase())throw new p.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let P={addressSalt:W,classHash:E1,constructorCalldata:H},{transaction_hash:n}=await C.deployAccount(P);return await D.waitForTransaction(n),n}async function L(){if(!await J()){if(!W)throw new p.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 Q()}}async function O(){if(_)return _;return _=await VT.match(f).with({phrase:VT.P.string},async({phrase:Y})=>{let{Account:q,RpcProvider:D}=await import("starknet"),{privateKey:C,address:$,publicKey:H}=await Ty({derivationPath:T,phrase:Y});W=H;let I=await p.getRPCUrl(p.Chain.Starknet),P=new D({nodeUrl:I});return new q({address:$,provider:P,signer:C})}).with({address:VT.P.string,privateKey:VT.P.string},async({privateKey:Y,address:q})=>{let{Account:D}=await import("starknet"),C=await Z();return new D({address:q,provider:C,signer:Y})}).with({signer:VT.P.instanceOf(Object)},({signer:Y})=>Y).otherwise(()=>{return}),_}async function U(){return(await O())?.address??""}async function M(Y){let q=await Z(),{uint256:D,CallData:C}=await import("starknet"),$=[],H=[S1,r_];for(let I of H)try{let[P="0",n="0"]=await q.callContract({calldata:C.compile({account:Y}),contractAddress:I,entrypoint:"balanceOf"}),b=D.uint256ToBN({high:P,low:n});VT.match(I).with(S1,()=>{$.push(p.AssetValue.from({chain:y,value:b}))}).with(r_,()=>{if(b>0n)$.push(p.AssetValue.from({asset:`${y}.ETH-${I}`,value:b}))}).otherwise(()=>{})}catch{}return $}async function N({recipient:Y,assetValue:q}){let{CallData:D,uint256:C}=await import("starknet");if(!e0(Y))throw new p.SwapKitError("core_transaction_invalid_recipient_address",{address:Y});let $=q.isGasAsset?S1:q.address;if(!$)throw new p.SwapKitError("toolbox_starknet_invalid_address",{address:$,assetValue:q});let H=C.bnToUint256(q.getBaseValue("bigint"));return[{calldata:D.compile([Y,H]),contractAddress:$,entrypoint:"transfer"}]}async function z({recipient:Y,assetValue:q,sender:D}){let{baseDecimal:C}=p.getChainConfig(p.Chain.Starknet),$=await O(),H=await VT.match({sender:D,signer:$}).with({sender:VT.P.string},async({sender:I})=>{let{Account:P}=await import("starknet"),n=await Z();return new P({address:I,provider:n,signer:"0x0"})}).with({signer:VT.P.nonNullable},({signer:I})=>I).otherwise((I)=>{throw new p.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:I}})});try{let I=await N({assetValue:q,recipient:Y}),P=await H.estimateInvokeFee(I);if(P?.overall_fee)return p.AssetValue.from({chain:y,fromBaseDecimal:C,value:P.overall_fee})}catch(I){throw new p.SwapKitError("toolbox_starknet_fee_estimation_failed",I)}return p.AssetValue.from({chain:y,value:"0.00001"})}async function B({recipient:Y,assetValue:q,memo:D}){let C=await O();if(!C)throw new p.SwapKitError("toolbox_starknet_no_signer");await L();let $=await N({assetValue:q,memo:D,recipient:Y});return(await C.execute($)).transaction_hash}async function k(Y){let q=await O();if(!q)throw new p.SwapKitError("toolbox_starknet_no_signer");let D=await q.signMessage(Y);return Array.isArray(D)?D:[D.r.toString(),D.s.toString()]}async function R(Y){let q=await O();if(!q)throw new p.SwapKitError("toolbox_starknet_no_signer");return await L(),(await q.execute(Y)).transaction_hash}function F(Y){return R(Y)}function w(Y,q=!0){try{return ST(y)(Y,q)}catch{return M(Y)}}return{broadcastTransaction:R,createKeysForPath:n1,createTransaction:N,deployAccount:Q,estimateTransactionFee:z,getAddress:U,getBalance:w,getProvider:Z,isAccountDeployed:J,signAndBroadcastTransaction:F,signMessage:k,transfer:B,validateAddress:e0}}var p,VT,S1="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",r_="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",E1="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var s_=E(()=>{dT();p=require("@swapkit/helpers"),VT=require("ts-pattern")});var fy={};wT(fy,{validateStarknetAddress:()=>e0,starknetCreateKeysForPath:()=>n1,getStarknetToolbox:()=>a_,deriveStarknetKeys:()=>Ty});module.exports=HT(fy);var yy=E(()=>{s_()});async function f2(f,y,G,T=[],_){let X=await f.getCoins({coinType:G,cursor:_,owner:y}),W=[...T,...X.data];return X.hasNextPage?f2(f,y,G,W,X.nextCursor):W}function jX(f,y,G){let T=y.reduce((J,Q)=>J+BigInt(Q.balance),0n);if(T<G)throw new fT.SwapKitError("toolbox_sui_insufficient_balance",{available:T.toString(),required:G.toString()});let{ids:_}=y.reduce((J,Q)=>{if(J.total>=G)return J;return{ids:[...J.ids,Q.coinObjectId],total:J.total+BigInt(Q.balance)}},{ids:[],total:0n}),X=_[0],W=_.slice(1);if(W.length>0)f.mergeCoins(X,W);let[Z]=f.splitCoins(X,[G]);return Z}function y2(f){try{return T2.isValidSuiAddress(f)}catch{return!1}}function e_(f){return"signWithIntent"in f}function bX({provider:f,...y}={}){let G;async function T(){if(G)return G;return G=await Q0.match(y).with({phrase:Q0.P.string},async({phrase:N})=>{let{Ed25519Keypair:z}=await import("@mysten/sui/keypairs/ed25519");return z.deriveKeypair(N)}).with({signer:Q0.P.any},({signer:N})=>N).otherwise(()=>{return}),G}async function _(N=f){let{SuiClient:z,getFullnodeUrl:B}=await import("@mysten/sui/client");return new z({url:N||B("mainnet")})}async function X(){return(await T())?.toSuiAddress()||""}function W(N){try{let z=fT.AssetValue.from({address:N,chain:fT.Chain.Sui});return{asset:z.toString(),decimals:z.decimal}}catch{}return null}async function Z(N){let z=N||await X();if(!z)throw new fT.SwapKitError("toolbox_sui_address_required");let{baseDecimal:B,chain:k}=fT.getChainConfig(fT.Chain.Sui);try{let R=await _(),{totalBalance:F}=await R.getBalance({owner:z}),w=[fT.AssetValue.from({chain:k,fromBaseDecimal:B,value:F})],Y=await R.getAllBalances({owner:z});for(let{coinType:q,totalBalance:D}of Y){if(q==="0x2::sui::SUI"||Number(D)<=0)continue;let C=W(q);if(C)w.push(fT.AssetValue.from({asset:C.asset,fromBaseDecimal:C.decimals,value:D}))}return w}catch{return[fT.AssetValue.from({chain:k})]}}async function J(N){let z=fT.AssetValue.from({chain:fT.Chain.Sui,value:"0.01"});if(!N)return z;try{let B=await _(),{txBytes:k}=await Q(N),{effects:{status:R,gasUsed:F}}=await B.dryRunTransactionBlock({transactionBlock:k});if(R.status!=="success")return z;let w=Number(F.computationCost)+Number(F.storageCost)-Number(F.storageRebate);return fT.AssetValue.from({chain:fT.Chain.Sui,value:w.toString()})}catch{return z}}async function Q({recipient:N,assetValue:z,gasBudget:B,sender:k}){let{Transaction:R}=await import("@mysten/sui/transactions"),F=k||await X();if(!F)throw new fT.SwapKitError("toolbox_sui_no_sender");try{let w=new R;if(w.setSender(F),z.isGasAsset||z.symbol==="SUI"){let[D]=w.splitCoins(w.gas,[z.getBaseValue("string")]);w.transferObjects([D],N)}else{let D=z.address;if(!D)throw new fT.SwapKitError("toolbox_sui_missing_coin_type");let C=await _(),$=z.getBaseValue("bigint"),H=await f2(C,F,D);if(!H.length)throw new fT.SwapKitError("toolbox_sui_no_coins_found",{coinType:D});let I=jX(w,H,$);w.transferObjects([I],N)}if(B)w.setGasBudget(B);let Y=await _(),q=await w.build({client:Y});return{tx:w,txBytes:q}}catch(w){if(w instanceof fT.SwapKitError)throw w;throw new fT.SwapKitError("toolbox_sui_transaction_creation_error",{error:w})}}async function L(N){let z=await T();if(!z)throw new fT.SwapKitError("toolbox_sui_no_signer");if(N instanceof Uint8Array)return z.signTransaction(N);let{txBytes:B}="tx"in N?N:await Q(N);return z.signTransaction(B)}async function O({assetValue:N,gasBudget:z,recipient:B}){let k=await T();if(!k)throw new fT.SwapKitError("toolbox_sui_no_signer");let R=k.toSuiAddress()||await X();if(!R)throw new fT.SwapKitError("toolbox_sui_no_sender");let{txBytes:F}=await Q({assetValue:N,gasBudget:z,recipient:B,sender:R}),w=await _();if(!e_(k)){let q=await k.signTransaction(F),{digest:D}=await w.executeTransactionBlock({signature:q.signature,transactionBlock:q.bytes});return D}let{digest:Y}=await w.signAndExecuteTransaction({signer:k,transaction:F});return Y}async function U(N){let z=await _(),{digest:B}=await z.executeTransactionBlock({signature:N.signature,transactionBlock:N.bytes});return B}async function M(N){let z=await T();if(!z)throw new fT.SwapKitError("toolbox_sui_no_signer");let B=await _(),k;if(typeof N==="string")k=Uint8Array.from(Buffer.from(N,"base64"));else if(N instanceof Uint8Array)k=N;else k=await N.build({client:B});if(!e_(z)){let F=await z.signTransaction(k),{digest:w}=await B.executeTransactionBlock({signature:F.signature,transactionBlock:F.bytes});return w}let{digest:R}=await B.signAndExecuteTransaction({signer:z,transaction:k});return R}return{broadcastTransaction:U,createTransaction:Q,estimateTransactionFee:J,getAddress:X,getBalance:Z,signAndBroadcastTransaction:M,signTransaction:L,transfer:O,validateAddress:y2}}var T2,fT,Q0;var _2=E(()=>{T2=require("@mysten/sui/utils"),fT=require("@swapkit/helpers"),Q0=require("ts-pattern")});var _y={};wT(_y,{validateSuiAddress:()=>y2,getSuiToolbox:()=>bX});module.exports=HT(_y);var Gy=E(()=>{_2()});async function pX(){let f=Date.now();if(Xy&&f-X2<mX)return Xy;try{return Xy=await W2.getHttpEndpoint(),X2=f,Xy}catch{return qT.getRPCUrl(qT.Chain.Ton)}}function tX(f={}){let y,G,T;async function _(){if(!y){let w=f.provider??await pX();y=new c.TonClient({endpoint:w})}return y}async function X(){return(await Z()).address.toString()}async function W(){if(T)return T;return T=await Mf.match(f).with({phrase:Mf.P.string},async({phrase:w})=>Z2.mnemonicToWalletKey(w.split(" "))).with({signer:Mf.P.any},({signer:w})=>w).otherwise(()=>{return}),T}async function Z(w){if(!G||w){let Y=await W(),q=await _(),D=w||Y;if(!D)throw new qT.SwapKitError("core_wallet_connection_not_found");let C=c.WalletContractV4.create({publicKey:D.publicKey,workchain:0});G=q.open(C)}return G}let J=ST(qT.Chain.Ton);async function Q({assetValue:w,recipient:Y,memo:q,sender:D}){if(w.isGasAsset){let g=q?F(q).toBoc().toString("base64"):void 0;return[{address:Y,amount:w.getBaseValue("string"),payload:g}]}let C=w.address;if(!C)throw new qT.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:w.toString()}});let $=D??await X(),H=await k({jettonMasterAddress:C,ownerAddress:$}),I=c.Address.parse(Y),P=c.Address.parse($),n=w.getBaseValue("bigint"),b=q?F(q):void 0,h=R({destinationAddress:I,forwardPayload:b,jettonAmount:n,responseAddress:P});return[{address:H.toString(),amount:hX.toString(),payload:h.toBoc().toString("base64")}]}function L({sender:w,...Y}){return Q({...Y,sender:w})}function O(w){return w.map((Y)=>{let q=Y.payload?c.Cell.fromBase64(Y.payload):void 0,D=Y.stateInit?c.loadStateInit(c.Cell.fromBase64(Y.stateInit).asSlice()):void 0,C=c.Address.parse(Y.address),$=c.Address.isFriendly(Y.address)?c.Address.parseFriendly(Y.address).isBounceable:!0;return c.internal({body:q,bounce:$,init:D,to:C,value:BigInt(Y.amount)})})}async function U(w){let Y=await W(),q=await Z();if(!q||!Y)throw new qT.SwapKitError("core_wallet_connection_not_found");let D=await _(),{state:C}=await D.getContractState(q.address),$=C==="active",H=$?await q.getSeqno():0,I=q.createTransfer({messages:O(w),secretKey:Y.secretKey,sendMode:G2,seqno:H}),P=c.external({body:I,init:$?void 0:q.init,to:q.address});return c.beginCell().store(c.storeMessage(P)).endCell()}async function M(w){return await(await _()).sendFile(w.toBoc()),w.hash().toString("hex")}async function N(w){let Y=await U(w);return M(Y)}async function z({assetValue:w,recipient:Y,memo:q}){let D=await L({assetValue:w,memo:q,recipient:Y});return N(D)}async function B({sender:w,...Y}){let{baseDecimal:q}=qT.getChainConfig(qT.Chain.Ton),D=await Mf.match(w).with(Mf.P.string,(H)=>{return c.Address.parseFriendly(H).address}).otherwise(async()=>{return(await Z()).address});if(!D)throw new qT.SwapKitError("toolbox_fee_estimation_failed",{chain:qT.Chain.Ton});let C=qT.AssetValue.from({chain:qT.Chain.Ton,value:"0.01"}),$=await _();try{let H=await L({sender:w,...Y}),I=await W(),P=await Z();if(!P||!I)return C;let n=await P.getSeqno(),b=P.createTransfer({messages:O(H),secretKey:I.secretKey,sendMode:G2,seqno:n}),{source_fees:h}=await $.estimateExternalMessageFee(D,{body:b,ignoreSignature:!0,initCode:null,initData:null}),g=h.in_fwd_fee+h.storage_fee+h.gas_fee+h.fwd_fee;return C.set(qT.SwapKitNumber.fromBigInt(BigInt(g),q))}catch{return C}}async function k({jettonMasterAddress:w,ownerAddress:Y}){try{let q=await _(),D=c.Address.parse(w),C=c.Address.parse(Y);return await q.open(c.JettonMaster.create(D)).getWalletAddress(C)}catch{throw new qT.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:w,ownerAddress:Y}})}}function R({jettonAmount:w,destinationAddress:Y,responseAddress:q,forwardAmount:D=uX,forwardPayload:C}){let $=c.beginCell().storeUint(lX,32).storeUint(0,64).storeCoins(w).storeAddress(Y).storeAddress(q).storeBit(0).storeCoins(D);if(C)$.storeBit(1).storeRef(C);else $.storeBit(0);return $.endCell()}function F(w){return c.beginCell().storeUint(0,32).storeStringTail(w).endCell()}return{broadcastTransaction:M,createTransaction:L,estimateTransactionFee:B,getAddress:X,getBalance:J,getJettonWalletAddress:k,sign:U,signAndBroadcastTransaction:N,transfer:z,validateAddress:J2}}function J2(f){try{return c.Address.parse(f),!0}catch{return!1}}var W2,qT,Z2,c,Mf,lX=260734629,uX,hX,G2,mX=60000,Xy,X2=0;var Q2=E(()=>{dT();W2=require("@orbs-network/ton-access"),qT=require("@swapkit/helpers"),Z2=require("@ton/crypto"),c=require("@ton/ton"),Mf=require("ts-pattern"),uX=c.toNano("0.01"),hX=c.toNano("0.05"),G2=c.SendMode.PAY_GAS_SEPARATELY+c.SendMode.IGNORE_ERRORS});var Wy={};wT(Wy,{validateTonAddress:()=>J2,getTONToolbox:()=>tX});module.exports=HT(Wy);var Zy=E(()=>{Q2()});function Y2({deriveAddress:f,getBalance:y,getUtxos:G}){async function T(Z){let{count:J,startIndex:Q=0,change:L=!1}=Z,O=[];for(let U=0;U<J;U++){let M=await f({change:L,index:Q+U});if(M)O.push(M)}return O}async function _(Z){let{gapLimit:J=20,change:Q=!1}=Z??{},L=[],O=0,U=0;while(O<J){let M=await f({change:Q,index:U});if(!M)break;if((await y(M.address)).some((B)=>B.getValue("number")>0))L.push(M),O=0;else O++;U++}return L}async function X(Z=20){let[J,Q]=await Promise.all([_({change:!1,gapLimit:Z}),_({change:!0,gapLimit:Z})]),L=[...J,...Q],O=await Promise.all(L.map(async(M)=>{let z=(await y(M.address)).reduce((B,k)=>B+k.getValue("number"),0);return{...M,balance:z}})),U=O.reduce((M,N)=>M+N.balance,0);return{addresses:O,total:U}}async function W(Z=20){let[J,Q]=await Promise.all([_({change:!1,gapLimit:Z}),_({change:!0,gapLimit:Z})]),L=[...J,...Q];return(await Promise.all(L.map(async(U)=>{return(await G(U.address)).map((N)=>({...N,address:U.address,derivationIndex:U.index,isChange:U.change}))}))).flat()}return{deriveAddresses:T,getAggregatedBalance:X,getAggregatedUtxos:W,scanForAddresses:_}}async function cX({chain:f,txHash:y}){let G=`${Y0(f)}/push/transaction`,T=JSON.stringify({data:y});try{let _=await m.RequestClient.post(G,{body:T,headers:{"Content-Type":"application/json"}});if(_.context.code!==200)throw new m.SwapKitError("toolbox_utxo_broadcast_failed",{error:_.context.error||"Transaction broadcast failed"});return _.data?.transaction_hash||y}catch(_){let X=await m.getRPCUrl(f);if(X){let W=JSON.stringify({id:l5(),jsonrpc:"2.0",method:"sendrawtransaction",params:[y]}),Z=await m.RequestClient.post(X,{body:W,headers:{"Content-Type":"application/json"}});if(Z.error)throw new m.SwapKitError("toolbox_utxo_broadcast_failed",{error:Z.error?.message});if(Z.result.includes('"code":-26'))throw new m.SwapKitError("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return Z.result}throw _}}function Y0(f){return`https://api.blockchair.com/${gX(f)}`}function q2(f){switch(f){case m.Chain.Bitcoin:return 5;case m.Chain.Dogecoin:return 1e4;case m.Chain.Litecoin:return 1;case m.Chain.Zcash:return 1;default:return 2}}function gX(f){switch(f){case m.Chain.BitcoinCash:return"bitcoin-cash";case m.Chain.Litecoin:return"litecoin";case m.Chain.Dash:return"dash";case m.Chain.Dogecoin:return"dogecoin";case m.Chain.Zcash:return"zcash";case m.Chain.Polkadot:return"polkadot";default:return"bitcoin"}}async function iX(f){try{let{feePerKb:y}=await m.RequestClient.get(`https://app.bitgo.com/api/v2/${f.toLowerCase()}/tx/fee`),G=y/1000;return Math.max(G,q2(f))}catch{return q2(f)}}async function Jy(f,y){let G=await m.RequestClient.get(`${f}${y?`${f.includes("?")?"&":"?"}key=${y}`:""}`);if(!G||G.context.code!==200)throw new m.SwapKitError("toolbox_utxo_api_error",{error:`Failed to query ${f}`});return G.data}async function z2({address:f,chain:y,apiKey:G}){if(!f)throw new m.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Jy(`${Y0(y)}/dashboards/address/${f}?transaction_details=true`,G))[f]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function dX({address:f,chain:y,apiKey:G}){return(await z2({address:f,apiKey:G,chain:y}))?.address.balance||0}async function N2({chain:f,apiKey:y,txHash:G}){if(!G)throw new m.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Jy(`${Y0(f)}/raw/transaction/${G}`,y))?.[G]?.raw_transaction||""}catch(T){let _=T instanceof Error?T.message:String(T);return console.error(`Failed to fetch raw transaction: ${_}`),""}}async function aX({chain:f,apiKey:y,txHash:G}){if(!G)throw new m.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});let _=(await Jy(`${Y0(f)}/dashboards/transaction/${G}`,y))?.[G];if(!_)throw new m.SwapKitError("toolbox_utxo_tx_not_found",{txHash:G});let{transaction:X,inputs:W,outputs:Z}=_,J=W.map((L)=>L.spending_sequence),Q=X.is_rbf===!0||J.some((L)=>L<rX);return{blockId:X.block_id,confirmed:X.block_id!==-1,fee:X.fee,inputs:W,isRBF:Q,outputs:Z,sequences:J,size:X.size,txid:X.hash,weight:X.weight}}async function sX({chain:f,address:y,apiKey:G,offset:T=0,limit:_=30}){return(await Jy(`${Y0(f)}/outputs?q=recipient(${y}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${_}&offset=${T}`,G)).map(({is_spent:J,script_hex:Q,block_id:L,transaction_hash:O,index:U,value:M,spending_signature_hex:N})=>({hash:O,index:U,is_confirmed:L!==-1,is_spent:J,script_hex:Q,txHex:N,value:M}))}function eX(f){return f.reduce((y,G)=>y+G.value,0)}function L2(f,y){let G=[...f].sort((T,_)=>_.value-T.value);if(y){let T=[],_=0;for(let X of G)if(T.push(X),_+=X.value,_>=y)break;return T}return G}async function U2({chain:f,address:y,apiKey:G,targetValue:T,accumulativeValue:_=0,offset:X=0,limit:W=30}){if(!y)throw new m.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{let Z=await sX({address:y,apiKey:G,chain:f,limit:W,offset:X,targetValue:T}),Q=Z.length<W,L=Z.filter(({is_spent:B})=>!B),O=eX(L),U=_+O,M=T&&U>=T;if(Q||M)return L2(L,T);let N=await U2({accumulativeValue:U,address:y,apiKey:G,chain:f,limit:W,offset:X+W,targetValue:T}),z=[...L,...N];return L2(z,T)}catch(Z){let J=Z instanceof Error?Z.message:String(Z);return console.error(`Failed to fetch unspent UTXOs: ${J}`),[]}}async function T6({address:f,chain:y,apiKey:G,fetchTxHex:T=!0,targetValue:_}){let X=await U2({address:f,apiKey:G,chain:y,targetValue:_}),W=[];for(let{hash:Z,index:J,script_hex:Q,value:L}of X){let O;if(T)O=await N2({apiKey:G,chain:y,txHash:Z});W.push({address:f,hash:Z,index:J,txHex:O,value:L,witnessUtxo:{script:Buffer.from(Q,"hex"),value:L}})}return W}function BT(f){let y=m.SKConfig.get("apiKeys").blockchair||"";return m.warnOnce({condition:!y,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(G)=>cX({chain:f,txHash:G}),getAddressData:(G)=>z2({address:G,apiKey:y,chain:f}),getBalance:(G)=>dX({address:G,apiKey:y,chain:f}),getRawTx:(G)=>N2({apiKey:y,chain:f,txHash:G}),getSuggestedTxFee:()=>iX(f),getTransactionDetails:(G)=>aX({apiKey:y,chain:f,txHash:G}),getUtxos:(G)=>T6({...G,apiKey:y,chain:f})}}function f6(f){return f}function y6(){return function(y){switch(y){case m.Chain.Bitcoin:return Bf.NETWORKS.bitcoin;case m.Chain.BitcoinCash:return Bf.NETWORKS.bitcoinCash;case m.Chain.Dash:return Bf.NETWORKS.dash;case m.Chain.Litecoin:return Bf.NETWORKS.litecoin;case m.Chain.Dogecoin:return Bf.NETWORKS.dogecoin;case m.Chain.Zcash:return Bf.NETWORKS.zcash;default:throw new m.SwapKitError("toolbox_utxo_not_supported",{chain:y})}}}var m,Bf,rX=4294967294;var M2=E(()=>{dT();m=require("@swapkit/helpers"),Bf=require("@swapkit/utxo-signer")});function X6(f,y,G){return tT.encodeCashAddr({hash:G,prefix:f,type:_6[y]})}function W6(f){let y=tT.decodeCashAddr(f),G=G6[y.type];if(!G)throw Error(`Unknown CashAddr type: ${y.type}`);return{hash:y.hash,prefix:y.prefix,type:G}}var tT,_6,G6,V1;var B2=E(()=>{tT=require("@swapkit/utxo-signer"),_6={P2PKH:tT.CashAddrType.P2PKH,P2SH:tT.CashAddrType.P2SH},G6={[tT.CashAddrType.P2PKH]:"P2PKH",[tT.CashAddrType.P2SH]:"P2SH"};V1={decode:W6,encode:X6}});function K1(f){try{return Qy(f),!0}catch{return!1}}function j1(f){return Qy(f)?.network}function cT(f){let y=Qy(f);if(y?.format==="legacy")return f;return Q6(y)}function q0(f){let y=Qy(f);return Y6(y)}function Qy(f){try{let y=Z6(f);if(y)return y}catch{}try{let y=J6(f);if(y)return y}catch{}throw new v1.SwapKitError("toolbox_utxo_invalid_address",{address:f})}function Z6(f){try{let y=H2.decode(f);if(y.length!==21)throw new v1.SwapKitError("toolbox_utxo_invalid_address",{address:f});let G=y[0],T=Array.prototype.slice.call(y,1);switch(G){case wf.legacy.mainnet.p2pkh:return{format:"legacy",hash:T,network:"mainnet",type:"p2pkh"};case wf.legacy.mainnet.p2sh:return{format:"legacy",hash:T,network:"mainnet",type:"p2sh"};case wf.legacy.testnet.p2pkh:return{format:"legacy",hash:T,network:"testnet",type:"p2pkh"};case wf.legacy.testnet.p2sh:return{format:"legacy",hash:T,network:"testnet",type:"p2sh"};case wf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:T,network:"mainnet",type:"p2pkh"};case wf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:T,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function J6(f){if(f.indexOf(":")!==-1)try{return w2(f)}catch{}else{let y=["bitcoincash","bchtest","bchreg"];for(let G of y)try{return w2(`${G}:${f}`)}catch{}}return}function w2(f){try{let{hash:y,prefix:G,type:T}=V1.decode(f);return{format:"cashaddr",hash:Array.prototype.slice.call(y,0),network:G==="bitcoincash"?"mainnet":"testnet",type:T==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function Q6(f){let y=wf.legacy[f.network][f.type],G=Buffer.alloc(1+f.hash.length);return G[0]=y,G.set(f.hash,1),H2.encode(G)}function Y6(f){let y=f.network==="mainnet"?"bitcoincash":"bchtest",G=f.type==="p2pkh"?"P2PKH":"P2SH",T=new Uint8Array(f.hash);return V1.encode(y,G,T)}var D2,O2,v1,H2,o1,wf;var R2=E(()=>{B2();D2=require("@noble/hashes/sha2.js"),O2=require("@scure/base"),v1=require("@swapkit/helpers"),H2=O2.createBase58check(D2.sha256);((G)=>{G.Mainnet="mainnet";G.Testnet="testnet"})(o1||={});wf={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});function PT(f){let y=new Uint8Array(Buffer.from(f,"utf8"));return F2.Script.encode(["RETURN",y])}var C2,F2,q6=1000,qy=10,Ly=2,k2=10,L6=41,z6=107,zy,Yy,L0,Pf=(f)=>{if(f.startsWith("bc1")||f.startsWith("tb1")||f.startsWith("ltc1")||f.startsWith("tltc1"))return"P2WPKH";if(f.startsWith("1")||f.startsWith("m")||f.startsWith("n")||f.startsWith("bitcoincash:q")||f.startsWith("bitcoincash:p")||f.startsWith("q")||f.startsWith("p")||f.startsWith("L")||f.startsWith("M")||f.startsWith("3")||f.startsWith("D")||f.startsWith("A")||f.startsWith("9")||f.startsWith("X")||f.startsWith("7")||f.startsWith("y")||f.startsWith("t1")||f.startsWith("t3")||f.startsWith("tm"))return"P2PKH";throw new C2.SwapKitError("toolbox_utxo_invalid_address",{address:f})},Df=({inputs:f,outputs:y,feeRate:G})=>{let T=f[0]&&"address"in f[0]&&f[0].address?Pf(f[0].address):"P2PKH",X=(G?f.filter((Q)=>Q.value>=Yy["type"in Q&&Q.type?Q.type:"P2PKH"]*Math.ceil(G)):f).reduce((Q,L)=>Q+_f(L),0),W=y?.reduce((Q,L)=>Q+z0(L),0)||L0[T],Z=qy+X+W;return T==="P2WPKH"?Math.ceil(Z+Ly/4):Z},_f=(f)=>{if("type"in f&&f.type)return Yy[f.type];if("address"in f&&f.address)return Yy[Pf(f.address)];return L6+z6},z0=(f,y)=>{if(f?.script)return k2+f.script.length+(f.script.length>=74?2:1);if(y)return L0[y];if("address"in f&&f.address)return L0[Pf(f.address)];return L0.P2PKH};var b1=E(()=>{C2=require("@swapkit/helpers"),F2=require("@swapkit/utxo-signer");((G)=>{G.P2PKH="P2PKH";G.P2WPKH="P2WPKH"})(zy||={});Yy={["P2PKH"]:148,["P2WPKH"]:68},L0={["P2PKH"]:34,["P2WPKH"]:31}});function N0(f){switch(f){case bT.Chain.Bitcoin:case bT.Chain.BitcoinCash:return 550;case bT.Chain.Dash:case bT.Chain.Litecoin:return 5500;case bT.Chain.Dogecoin:return 1e5;case bT.Chain.Zcash:return 546;default:throw new bT.SwapKitError("toolbox_utxo_not_supported",{chain:f})}}function vT({inputs:f,outputs:y,feeRate:G=1,chain:T=bT.Chain.Bitcoin,changeAddress:_=""}){let X=f[0]&&"address"in f[0]&&f[0].address?Pf(f[0].address):"P2PKH",W=f.filter((N)=>_f(N)*G<=N.value),J=X==="P2WPKH"?Math.ceil(Ly/4):0,Q=qy+J+y.reduce((N,z)=>N+z0(z),0),L=y.reduce((N,z)=>N+z.value,0),O=Q*G,U=0,M=[];for(let N of W){let z=_f(N),B=G*z;O+=B,U+=N.value,M.push(N);let k=O+L;if(U<k)continue;let R=U-k,F=G*z0({address:_,value:0});if(R>F){let w=F+O,Y=U-(L+Math.ceil(w));if(Y>Math.max(_f({value:0})*G,N0(T)))return{fee:Math.ceil(w),inputs:M,outputs:y.concat({address:_,value:Y})}}return{fee:Math.ceil(O),inputs:M,outputs:y}}return{fee:Math.ceil(G*Df({inputs:f,outputs:y}))}}var bT;var $2=E(()=>{b1();bT=require("@swapkit/helpers")});var xf=E(()=>{M2();R2();$2();b1()});function Of(f){return f.replace(/(bchtest:|bitcoincash:)/,"")}function Gf(f){let y=Of(f);return K1(y)&&j1(y)==="mainnet"}function Sf(f){try{if(f.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let G=Ny.Address(Ny.ZCASH_NETWORK).decode(f);return G.type==="pkh"||G.type==="sh"}catch{return!1}}var Ny;var U0=E(()=>{xf();Ny=require("@swapkit/utxo-signer")});function h1({address:f,chain:y}){return u1.match(y).with(x.Chain.BitcoinCash,()=>Gf(f)).with(x.Chain.Zcash,()=>Sf(f)).otherwise(()=>{try{return i.Address(xT(y)).decode(f),!0}catch{return!1}})}function xT(f){return u1.match(f).with(x.Chain.Bitcoin,()=>i.NETWORKS.bitcoin).with(x.Chain.BitcoinCash,()=>i.NETWORKS.bitcoinCash).with(x.Chain.Dash,()=>i.NETWORKS.dash).with(x.Chain.Dogecoin,()=>i.NETWORKS.dogecoin).with(x.Chain.Litecoin,()=>i.NETWORKS.litecoin).with(x.Chain.Zcash,()=>i.NETWORKS.zcash).exhaustive()}function N6({phrase:f,derivationPath:y,network:G,seed:T}){let _=T??My.mnemonicToSeedSync(f),W=l1.HDKey.fromMasterSeed(_,G.bip32).derive(y);if(!W.privateKey)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return W.privateKey}function I2(f){return A2.secp256k1.getPublicKey(f,!0)}function m1({publicKey:f,chain:y,network:G}){if(y===x.Chain.BitcoinCash){let X=i.p2pkh(f,G);if(!X.hash)throw new x.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return i.encodeCashAddr({hash:X.hash,prefix:i.CashAddrPrefix.MAINNET,type:i.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}let _=!M0.includes(y)?i.p2wpkh(f,G):i.p2pkh(f,G);if(!_.address)throw new x.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive address"});return _.address}function Ef({phrase:f,derivationPath:y,chain:G,wif:T,seed:_}){let X=xT(G);if(T){let Q=i.WIF(X).decode(T),L=I2(Q);return{privateKey:Q,publicKey:L}}if(!f)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let W=y||x.derivationPathToString(x.NetworkDerivationPath[G]),Z=N6({derivationPath:W,network:X,phrase:f,seed:_}),J=I2(Z);return{privateKey:Z,publicKey:J}}function U6(f,y){return i.WIF(xT(y)).encode(f)}function M6({phrase:f,derivationPath:y,chain:G,seed:T}){let _=y.split("/");if(_.length<4)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${_.length}): ${y}`});let X=xT(G),W=T??My.mnemonicToSeedSync(f),Z=l1.HDKey.fromMasterSeed(W,X.bip32),J=_.slice(0,4).join("/");return Z.derive(J)}function Wf({inputs:f,outputs:y,chain:G,tx:T,sender:_,compiledMemo:X,enableRBF:W=!1}){let Z=xT(G),J=!M0.includes(G),Q=W?i.RBF_SEQUENCE:void 0,L=new Set;for(let O of f){let U=`${O.hash}:${O.index}`;if(L.has(U))throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});L.add(U);let M=typeof O.hash==="string"?Xf.hex.decode(O.hash):O.hash;if(J&&O.witnessUtxo)T.addInput({index:O.index,sequence:Q,txid:M,witnessUtxo:{amount:BigInt(O.witnessUtxo.value),script:O.witnessUtxo.script}});else if(O.txHex)T.addInput({index:O.index,nonWitnessUtxo:Xf.hex.decode(O.txHex),sequence:Q,txid:M,...G===x.Chain.BitcoinCash?{sighashType:i.BCHSigHash.ALL}:{}});else throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let O of y){let U="address"in O&&O.address?O.address:_;if(G===x.Chain.BitcoinCash)U=cT(U);if(O.script){if(X)T.addOutput({amount:0n,script:X})}else T.addOutputAddress(U,BigInt(O.value),Z)}return{inputs:f,tx:T}}async function nf(f){let y=await BT(f).getSuggestedTxFee();return{[x.FeeOption.Average]:y,[x.FeeOption.Fast]:x.applyFeeMultiplier(y,x.FeeOption.Fast),[x.FeeOption.Fastest]:x.applyFeeMultiplier(y,x.FeeOption.Fastest)}}async function P2({assetValue:f,recipient:y,memo:G,sender:T,fetchTxHex:_=!1}){let X=f.chain,W=(await nf(X))[x.FeeOption.Fastest],Z=_||M0.includes(X),J=f.getBaseValue("number"),Q=Math.ceil(J+W*5000);return{inputs:await BT(X).getUtxos({address:T,fetchTxHex:Z,targetValue:Q}),outputs:[{address:y,value:J},...G?[{address:"",script:PT(G),value:0}]:[]]}}async function x2({assetValue:f,recipient:y,memo:G,feeRate:T,sender:_,fetchTxHex:X=!1,enableRBF:W=!1}){let Z=f.chain,J=G?PT(G):null,Q=await P2({assetValue:f,fetchTxHex:X,memo:G,recipient:y,sender:_}),{inputs:L,outputs:O}=vT({...Q,chain:Z,feeRate:T});if(!(L&&O))throw new x.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:f,sender:_});let U=new i.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!J,version:1}),{inputs:M,tx:N}=Wf({chain:Z,compiledMemo:J,enableRBF:W,inputs:L,outputs:O,sender:_,tx:U});return{inputs:M,tx:N,utxos:Q.inputs}}async function S2({assetValue:f,feeOptionKey:y=x.FeeOption.Fast,feeRate:G,memo:T,sender:_,recipient:X}){let W=f.chain,Z=await P2({assetValue:f,memo:T,recipient:X,sender:_}),J=G?Math.floor(G):(await nf(W))[y];return vT({...Z,chain:W,feeRate:J})}function B6(f){return async function({from:G,memo:T,feeRate:_,feeOptionKey:X=x.FeeOption.Fast,recipients:W=1}){let Z=await BT(f).getAddressData(G),J=_?Math.ceil(_):(await nf(f))[X],Q=Z?.utxo.map((z)=>({...z,hash:"",type:"P2PKH"})).filter((z)=>z.value>Math.max(N0(f),_f(z)*J));if(!Q?.length)return x.AssetValue.from({chain:f});let L=BigInt(Q.reduce((z,B)=>z+B.value,0)),O=x.AssetValue.from({chain:f,value:L}),U=typeof W==="number"?Array.from({length:W},()=>({address:G,value:0})):W;if(T)U.push({address:G,script:PT(T),value:0});let M=Df({inputs:Q,outputs:U}),N=x.AssetValue.from({chain:f,value:BigInt(M*J)});return O.sub(N)}}function w6(f){return async function(G){let{fee:T}=await S2(G);return x.AssetValue.from({chain:f,value:x.SwapKitNumber.fromBigInt(BigInt(T),8).getValue("string")})}}function D6({chain:f,phrase:y,derivationPath:G,seed:T}){let _=xT(f),{privateKey:X,publicKey:W}=Ef({chain:f,derivationPath:G,phrase:y,seed:T}),Z=f===x.Chain.BitcoinCash?[i.BCHSigHash.ALL]:[i.SigHash.ALL];return{getAddress:()=>m1({chain:f,network:_,publicKey:W}),privateKey:X,publicKey:W,signTransaction:(J)=>{return J.sign(X,Z),J}}}function O6(f,y){return async function({memo:T,recipient:_,feeOptionKey:X,feeRate:W,assetValue:Z,enableRBF:J=!1}){let Q=y?.getAddress();if(!(y&&Q))throw new x.SwapKitError("toolbox_utxo_no_signer");if(!_)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});x.warnOnce({condition:J&&!Uy.includes(f),id:`rbf_not_supported_${f}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${f}. Transaction will be created without RBF signaling.`});let L=J&&Uy.includes(f),O=W||(await nf(f))[X||x.FeeOption.Fast],{tx:U}=await x2({assetValue:Z,enableRBF:L,feeRate:O,memo:T,recipient:_,sender:Q});return y.signTransaction(U),U.finalize(),BT(f).broadcastTx(Xf.hex.encode(U.extract()))}}function p1(f){return(y)=>h1({address:y,chain:f})}function t1(f){let y=xT(f);return function(T){if(!T)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return m1({chain:f,network:y,publicKey:T.publicKey})}}function Zf({chain:f,...y}){let G="phrase"in y?y.phrase:void 0,T="index"in y?y.index||0:0,_=G?My.mnemonicToSeedSync(G):void 0,X=x.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:x.updateDerivationPath(x.NetworkDerivationPath[f],{index:T})),W=G?D6({chain:f,derivationPath:X,phrase:G,seed:_}):void 0,Z="signer"in y?y.signer:void 0,J=G?Ef({chain:f,derivationPath:X,phrase:G,seed:_}):void 0;function Q(){if(W)return Promise.resolve(W.getAddress());if(Z)return Z.getAddress();return Promise.resolve(void 0)}let L=G?M6({chain:f,derivationPath:X,phrase:G,seed:_}):void 0;function O(){if(!L)return;return L.publicExtendedKey}function U({index:w,change:Y=!1}){if(!L)return;if(!Number.isInteger(w)||w<0)throw RangeError(`index must be a non-negative integer, got: ${w}`);let q=xT(f),D=L.deriveChild(Number(Y)).deriveChild(w);if(!D.publicKey)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let C=m1({chain:f,network:q,publicKey:D.publicKey}),$=Xf.hex.encode(D.publicKey);return{address:C,change:Y,index:w,pubkey:$}}async function M(w){if(!Uy.includes(f))return{reason:`RBF is not supported on ${f}`,supported:!1};let Y=await BT(f).getTransactionDetails(w);return{canReplace:Y.isRBF&&!Y.confirmed,confirmed:Y.confirmed,enabled:Y.isRBF,fee:Y.fee,sequences:Y.sequences,supported:!0}}async function N({txid:w,newFeeRate:Y,recipient:q,memo:D}){if(!Uy.includes(f))throw new x.SwapKitError("toolbox_utxo_rbf_not_supported",{chain:f});let C=await BT(f).getTransactionDetails(w);if(!C.isRBF)throw new x.SwapKitError("toolbox_utxo_tx_not_replaceable",{txid:w});if(C.confirmed)throw new x.SwapKitError("toolbox_utxo_tx_already_confirmed",{blockId:C.blockId,txid:w});let $=C.inputs.reduce((JT,$T)=>JT+$T.value,0),I=C.outputs.find((JT)=>JT.recipient===q)?.value||0;if(I===0)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let P=await Promise.all(C.inputs.map(async(JT)=>{let $T=await BT(f).getRawTx(JT.transaction_hash);return{hash:JT.transaction_hash,index:JT.index,txHex:$T,value:JT.value,witnessUtxo:void 0}})),n=D?PT(D):null,b=Df({feeRate:Y,inputs:P.map((JT)=>({...JT,type:"P2WPKH"})),outputs:[{address:q,value:I}]}),h=Math.ceil(b*Y);if(h<=C.fee)throw new x.SwapKitError("toolbox_utxo_rbf_fee_too_low",{newFee:h,originalFee:C.fee});let g=h-C.fee,TT=I-g;if(TT<=0)throw new x.SwapKitError("toolbox_utxo_rbf_insufficient_change");let UT=new i.Transaction({allowLegacyWitnessUtxo:!0,version:1}),FT=[{address:q,value:TT},...D?[{address:"",script:PT(D),value:0}]:[]],DT=$-TT-h,kT=await Q();if(DT>N0(f)&&kT)FT.push({address:kT,value:DT});return Wf({chain:f,compiledMemo:n,inputs:P,outputs:FT,sender:kT||q,tx:UT}),{feeDelta:g,newFee:h,originalFee:C.fee,tx:UT}}async function z({txid:w,newFeeRate:Y,recipient:q,memo:D}){if(!W)throw new x.SwapKitError("toolbox_utxo_no_signer");let{tx:C,originalFee:$,newFee:H}=await N({memo:D,newFeeRate:Y,recipient:q,txid:w});W.signTransaction(C),C.finalize();let I=await BT(f).broadcastTx(Xf.hex.encode(C.extract()));return{newFee:H,originalFee:$,txid:I}}function B({index:w,change:Y=!1}){if(!L)return;return L.deriveChild(Number(Y)).deriveChild(w).privateKey||void 0}function k({tx:w,inputDerivations:Y}){if(!L)throw new x.SwapKitError("toolbox_utxo_no_signer");let q=f===x.Chain.BitcoinCash?[i.BCHSigHash.ALL]:[i.SigHash.ALL];for(let D=0;D<Y.length;D++){let C=Y[D];if(!C)continue;let{derivationIndex:$,isChange:H}=C,I=B({change:H,index:$});if(!I)throw new x.SwapKitError("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${D} at index ${$}`});w.signIdx(I,D,q)}return w}async function R({utxos:w,recipient:Y,assetValue:q,memo:D,feeRate:C,feeOptionKey:$,changeAddress:H}){if(!L)throw new x.SwapKitError("toolbox_utxo_no_signer");let I=C||(await nf(f))[$||x.FeeOption.Fast],P=D?PT(D):null,n=[{address:Y,value:q.getBaseValue("number")}];if(P)n.push({address:"",script:P,value:0});let b=w.map(({hash:kT,index:JT,value:$T,txHex:Jf,witnessUtxo:Rf})=>({hash:kT,index:JT,txHex:Jf,value:$T,witnessUtxo:Rf?{script:Rf.script,value:Rf.value}:void 0})),{inputs:h,outputs:g}=vT({chain:f,feeRate:I,inputs:b,outputs:n});if(!(h&&g))throw new x.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:q,sender:"multiple addresses"});let TT=new i.Transaction({allowLegacyWitnessUtxo:!0,version:1}),UT=w[0]?.address,FT=H||await Q()||UT||Y;Wf({chain:f,compiledMemo:P,inputs:h,outputs:g,sender:FT,tx:TT});let DT=h.map((kT)=>{let JT=w.find(($T)=>$T.hash===kT.hash&&$T.index===kT.index);return JT?{derivationIndex:JT.derivationIndex,isChange:JT.isChange}:{derivationIndex:0,isChange:!1}});return k({inputDerivations:DT,tx:TT}),TT.finalize(),BT(f).broadcastTx(Xf.hex.encode(TT.extract()))}function F({address:w,gapLimit:Y=20}){if(!L)return;for(let q=0;q<Y;q++){let D=U({change:!1,index:q}),C=U({change:!0,index:q}),$=D?.address===w?!1:C?.address===w;if(D?.address===w||C?.address===w)return{change:$,index:q}}return}return{accumulative:vT,broadcastTx:(w)=>BT(f).broadcastTx(w),bumpFee:z,calculateTxSize:Df,createKeysForPath:(w)=>Ef({...w,chain:f}),createReplacementTransaction:N,createTransaction:x2,deriveAddressAtIndex:U,derivePrivateKeyAtIndex:B,estimateMaxSendableAmount:B6(f),estimateTransactionFee:w6(f),getAddress:Q,getAddressFromKeys:t1(f),getBalance:ST(f),getExtendedPublicKey:O,getFeeRates:()=>nf(f),getInputsOutputsFee:S2,getNetworkForChain:()=>xT(f),getPrivateKeyFromMnemonic:(w)=>U6(Ef({...w,chain:f}).privateKey,f),isRBFEnabled:M,keys:J,resolveDerivationIndex:F,signAndBroadcastTransaction:async(w)=>{if(!W)throw new x.SwapKitError("toolbox_utxo_no_signer");return W.signTransaction(w),w.finalize(),await BT(f).broadcastTx(Xf.hex.encode(w.extract()))},signTransactionWithMultipleKeys:k,transfer:O6(f,W),transferFromMultipleAddresses:R,validateAddress:p1(f)}}var A2,Xf,l1,My,x,i,u1,M0,Uy;var B0=E(()=>{dT();xf();U0();A2=require("@noble/curves/secp256k1.js"),Xf=require("@scure/base"),l1=require("@scure/bip32"),My=require("@scure/bip39"),x=require("@swapkit/helpers"),i=require("@swapkit/utxo-signer"),u1=require("ts-pattern"),M0=[x.Chain.Dash,x.Chain.Dogecoin,x.Chain.Zcash,x.Chain.BitcoinCash],Uy=[x.Chain.Bitcoin]});function w0(f){return Of(q0(f))}function H6(f){let y=xT(lT);function G(_){return _.sign(f.privateKey,[NT.BCHSigHash.ALL]),_}function T(){let _=NT.p2pkh(f.publicKey,y);if(!_.hash)throw new zT.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let X=NT.encodeCashAddr({hash:_.hash,prefix:NT.CashAddrPrefix.MAINNET,type:NT.CashAddrType.P2PKH});return Promise.resolve(X.replace(/^bitcoincash:/,""))}return{getAddress:T,signTransaction:G}}function c1(f){let y="phrase"in f?f.phrase:void 0,G="index"in f?f.index||0:0,T=zT.derivationPathToString("derivationPath"in f&&f.derivationPath?f.derivationPath:zT.updateDerivationPath(zT.NetworkDerivationPath[lT],{index:G})),_=y?Ef({chain:lT,derivationPath:T,phrase:y}):void 0,X=_?H6(_):("signer"in f)?f.signer:void 0;function W(){return Promise.resolve(X?.getAddress())}let{getBalance:Z,getFeeRates:J,broadcastTx:Q,...L}=Zf({chain:lT});function O(U,M=!0){return Z(Of(q0(U)))}return{...L,broadcastTx:Q,buildTx:C6,createTransaction:n2,getAddress:W,getAddressFromKeys:F6,getBalance:O,getFeeRates:J,stripPrefix:Of,stripToCashAddress:w0,transfer:R6({broadcastTx:Q,getFeeRates:J,signer:X}),validateAddress:Gf}}async function n2({assetValue:f,recipient:y,memo:G,feeRate:T,sender:_}){if(!Gf(y))throw new zT.SwapKitError("toolbox_utxo_invalid_address",{address:y});let X=Math.ceil(f.getBaseValue("number")+T*7500),W=await BT(lT).getUtxos({address:w0(_),fetchTxHex:!0,targetValue:X}),Z=G?PT(G):null,J=[],Q=cT(y);if(J.push({address:Q,value:f.getBaseValue("number")}),Z)J.push({script:Z,value:0});let{inputs:L,outputs:O}=vT({chain:lT,feeRate:T,inputs:W,outputs:J});if(!(L&&O))throw new zT.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:f,sender:_});let U=new NT.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Z,version:1}),M=cT(_),{inputs:N,tx:z}=Wf({chain:lT,compiledMemo:Z,inputs:L,outputs:O.map((B)=>("address"in B)&&B.address?{...B,address:cT(B.address)}:B),sender:M,tx:U});return{inputs:N,tx:z,utxos:L}}function R6({broadcastTx:f,getFeeRates:y,signer:G}){return async function({recipient:_,assetValue:X,feeOptionKey:W=zT.FeeOption.Fast,...Z}){let J=await G?.getAddress();if(!(G&&J))throw new zT.SwapKitError("toolbox_utxo_no_signer");if(!_)throw new zT.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Q=Z.feeRate||(await y())[W],{tx:L}=await n2({...Z,assetValue:X,feeRate:Q,recipient:_,sender:J}),O=await G.signTransaction(L);return O.finalize(),f(E2.hex.encode(O.extract()))}}async function C6({assetValue:f,recipient:y,memo:G,feeRate:T,sender:_}){let X=q0(y);if(!Gf(X))throw new zT.SwapKitError("toolbox_utxo_invalid_address",{address:X});let W=Math.ceil(f.getBaseValue("number")+T*7500),Z=await BT(lT).getUtxos({address:w0(_),fetchTxHex:!0,targetValue:W}),J=Number(T.toFixed(0)),Q=G?PT(G):null,L=[];if(L.push({address:cT(y),value:f.getBaseValue("number")}),Q)L.push({script:Q,value:0});let{inputs:O,outputs:U}=vT({chain:lT,feeRate:J,inputs:Z,outputs:L});if(!(O&&U))throw new zT.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:f,sender:_});let M=new NT.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Q,version:1}),{inputs:N,tx:z}=Wf({chain:lT,compiledMemo:Q,inputs:O,outputs:U,sender:cT(_),tx:M});return{inputs:N,tx:z,utxos:Z}}function F6(f){let y=NT.NETWORKS.bitcoinCash,G=NT.p2pkh(f.publicKey,y);if(!G.hash)throw new zT.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return NT.encodeCashAddr({hash:G.hash,prefix:NT.CashAddrPrefix.MAINNET,type:NT.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}var E2,zT,NT,lT;var By=E(()=>{xf();B0();U0();E2=require("@scure/base"),zT=require("@swapkit/helpers"),NT=require("@swapkit/utxo-signer"),lT=zT.Chain.BitcoinCash});function v2(){let{isStagenet:f}=ZT.SKConfig.get("envs");return f?yT.ZCASH_TEST_NETWORK:yT.ZCASH_NETWORK}function $6(f){return k6.encode(f)}function I6({phrase:f,derivationPath:y}){let G=i1.mnemonicToSeedSync(f),_=g1.HDKey.fromMasterSeed(G).derive(y);if(!_.privateKey||!_.publicKey)throw new ZT.SwapKitError("toolbox_utxo_invalid_params");let{privateKey:X,publicKey:W}=_,Z=yT.utils.hash160(W),{isStagenet:J}=ZT.SKConfig.get("envs"),Q=J?new Uint8Array([29,37]):new Uint8Array([28,184]),L=new Uint8Array(Q.length+Z.length);L.set(Q,0),L.set(Z,Q.length);let O=$6(L);return{getAddress:()=>Promise.resolve(O),signTransaction:(U)=>{if(U instanceof yT.PCZT)return U.signAllInputs(X,W,yT.ZcashSigHash.ALL),U.finalizeAllInputs(),Promise.resolve(U.extract());return U.signAllInputs(X,W,yT.ZcashSigHash.ALL),Promise.resolve(U)}}}function A6({inputs:f,outputs:y,tx:G,sender:T,compiledMemo:_}){let X=v2();for(let W of f){let Z=yT.Address(X).decode(T),J=yT.OutScript.encode(Z);G.addInput({index:W.index,script:J,sequence:4294967295,txid:wy.hex.decode(W.hash),value:BigInt(W.value)})}for(let W of y){let Z="address"in W&&W.address?W.address:T,J=W.script;if(J&&!_)continue;if(J&&_)G.addOutput({amount:0n,script:_});else G.addOutputAddress(Z,BigInt(W.value),X)}return{inputs:f,tx:G}}async function V2(f){let{assetValue:y,recipient:G,memo:T,feeRate:_,sender:X,fetchTxHex:W}=f,Z=T?PT(T):null,J=await BT(ZT.Chain.Zcash).getUtxos({address:X,fetchTxHex:W!==!1}),Q=[{address:G,value:Number(y.getBaseValue("string"))},...Z?[{script:Z,value:0}]:[]],{inputs:L,outputs:O}=vT({chain:ZT.Chain.Zcash,changeAddress:X,feeRate:_,inputs:J,outputs:Q});if(!(L&&O))throw new ZT.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let U=yT.createZcashTransaction({consensusBranchId:yT.ZcashConsensusBranchId.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:yT.ZcashVersionGroupId.SAPLING}),{tx:M,inputs:N}=A6({compiledMemo:Z,inputs:L,outputs:O,sender:X,tx:U});return{inputs:N,outputs:O,tx:M}}function d1(f){let y=Vf.match(f).with({signer:Vf.P.not(Vf.P.nullish)},({signer:J})=>J).with({phrase:Vf.P.string},({phrase:J,derivationPath:Q,index:L=0})=>{let O=Q||ZT.NetworkDerivationPath[ZT.Chain.Zcash]||[44,133,0,0,0],U=ZT.updateDerivationPath(O,{index:L}),M=ZT.derivationPathToString(U);return I6({derivationPath:M,phrase:J})}).otherwise(()=>{return}),G=Zf({chain:ZT.Chain.Zcash,signer:y});async function T({recipient:J,assetValue:Q,feeOptionKey:L=ZT.FeeOption.Fast,...O}){let U=await y?.getAddress();if(!(y&&U))throw new ZT.SwapKitError("toolbox_utxo_no_signer");let M=O.feeRate||(await G.getFeeRates())[L],{tx:N}=await V2({...O,assetValue:Q,feeRate:M,recipient:J,sender:U}),B=(await y.signTransaction(N)).toHex();return G.broadcastTx(B)}function _({phrase:J,derivationPath:Q="m/44'/133'/0'/0/0"}){let L=i1.mnemonicToSeedSync(J),U=g1.HDKey.fromMasterSeed(L).derive(Q);if(!U.privateKey||!U.publicKey)throw new ZT.SwapKitError("toolbox_utxo_invalid_params");return{privateKey:U.privateKey,publicKey:U.publicKey}}function X({phrase:J,derivationPath:Q="m/44'/133'/0'/0/0"}){let L=_({derivationPath:Q,phrase:J}),O=v2();return yT.WIF(O).encode(L.privateKey)}function W(J){return async function(L){if(!J)throw new ZT.SwapKitError("toolbox_utxo_no_signer");return await J.signTransaction(L)}}function Z(J){return async function(L){if(!J)throw new ZT.SwapKitError("toolbox_utxo_no_signer");let O=await J.signTransaction(L);return G.broadcastTx(O.toHex())}}return{...G,createKeysForPath:_,createTransaction:V2,getPrivateKeyFromMnemonic:X,signAndBroadcastTransaction:Z(y),signTransaction:W(y),transfer:T,validateAddress:Sf}}var wy,g1,i1,ZT,yT,Vf,k6;var r1=E(()=>{xf();B0();U0();wy=require("@scure/base"),g1=require("@scure/bip32"),i1=require("@scure/bip39"),ZT=require("@swapkit/helpers"),yT=require("@swapkit/utxo-signer"),Vf=require("ts-pattern");k6=wy.createBase58check(yT.utils.sha256)});function P6(f,y){switch(f){case gT.Chain.BitcoinCash:return c1(y||{});case gT.Chain.Zcash:return d1(y);case gT.Chain.Bitcoin:case gT.Chain.Dogecoin:case gT.Chain.Litecoin:case gT.Chain.Dash:return Zf({chain:f,...y});default:throw new gT.SwapKitError("toolbox_utxo_not_supported",{chain:f})}}var gT;var o2=E(()=>{By();B0();r1();By();U0();gT=require("@swapkit/helpers")});var a1={};wT(a1,{validateZcashAddress:()=>Sf,validateUtxoAddress:()=>h1,validateBchAddress:()=>Gf,toLegacyAddress:()=>cT,toCashAddress:()=>q0,stripToCashAddress:()=>w0,stripPrefix:()=>Of,nonSegwitChains:()=>M0,isValidAddress:()=>K1,getUtxoToolbox:()=>P6,getUtxoNetwork:()=>y6,getUtxoApi:()=>BT,getUTXOAddressValidator:()=>p1,getScriptTypeForAddress:()=>Pf,getOutputSize:()=>z0,getNetworkForChain:()=>xT,getInputSize:()=>_f,getDustThreshold:()=>N0,detectAddressNetwork:()=>j1,createZcashToolbox:()=>d1,createUTXOToolbox:()=>Zf,createHDWalletHelpers:()=>Y2,createCustomUtxoApi:()=>f6,createBCHToolbox:()=>c1,compileMemo:()=>PT,calculateTxSize:()=>Df,addressFromKeysGetter:()=>t1,addInputsAndOutputs:()=>Wf,accumulative:()=>vT,UtxoNetwork:()=>o1,UTXOScriptType:()=>zy,TX_OVERHEAD:()=>qy,SEGWIT_MARKER_FLAG_WEIGHT:()=>Ly,OutputSizes:()=>L0,OP_RETURN_OVERHEAD:()=>k2,MIN_TX_FEE:()=>q6,InputSizes:()=>Yy});module.exports=HT(a1);var s1=E(()=>{B0();xf();o2();By();r1()});function D0(f){return f.length>=2&&f.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(f)}async function Oy(f){let{parseSeedPhrase:y}=await import("near-seed-phrase"),{KeyPair:G}=await import("@near-js/crypto"),T=f.index||0,_=f.derivationPath?Dy.derivationPathToString(f.derivationPath.slice(0,3)):`m/44'/397'/${T}'`,{secretKey:X}=y(f.phrase,_),W=G.fromString(X);return b2(W)}async function e1(f){let{KeyPair:y}=await import("@near-js/crypto"),G=y.fromString(f);return b2(G)}function b2(f){return new j2(f)}async function Hy(f,y){let T=(await f.query({account_id:y,finality:"final",request_type:"view_access_key_list"})).keys.find((Z)=>Z.access_key.permission==="FullAccess");if(!T)throw new Dy.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:_}=await import("@near-js/crypto"),X=_.fromString(T.public_key);return{nonce:T.access_key.nonce||0,publicKey:X}}var K2,Dy,j2;var T5=E(()=>{K2=require("@near-js/signers"),Dy=require("@swapkit/helpers");j2=class j2 extends K2.KeyPairSigner{#T;constructor(f){super(f);this.#T=f}getAddress(){let f=this.#T.getPublicKey(),y=Buffer.from(f.data).toString("hex");return Promise.resolve(y)}}});function f5(f){return"recipient"in f&&"amount"in f&&!("contractId"in f)}function y5(f){return"contractId"in f&&"methodName"in f}function _5(f){return"actions"in f}function G5(f){return"newAccountId"in f}function X5(f){return"contractCode"in f}function W5(f){return"customEstimator"in f}function Z5(f){let y=0;for(let G of f)switch(G.enum){case"transfer":y+=Number(OT.SIMPLE_TRANSFER);break;case"functionCall":y+=Number(OT.CONTRACT_CALL);break;case"createAccount":y+=Number(OT.ACCOUNT_CREATION);break;case"deployContract":y+=Number(OT.CONTRACT_DEPLOYMENT);break;case"addKey":y+=Number(OT.ACCESS_KEY_ADDITION);break;case"deleteKey":y+=Number(OT.ACCESS_KEY_DELETION);break;case"stake":y+=Number(OT.STAKE);break;default:y+=Number(OT.CONTRACT_CALL)}return y.toString()}function J5(f){if(f==="ft_transfer"||f==="ft_transfer_call")return OT.TOKEN_TRANSFER;if(f==="storage_deposit")return OT.STORAGE_DEPOSIT;return OT.CONTRACT_CALL}function x6(f){return(BigInt(f)*BigInt(1000000000000)).toString()}function S6(f){return(BigInt(f)/BigInt(1000000000000)).toString()}var OT;var Q5=E(()=>{OT={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 Y5({account:f,contractId:y,viewMethods:G,changeMethods:T}){let{Contract:_}=await import("@near-js/accounts");return new _(f,y,{changeMethods:T,useLocalViewExecution:!0,viewMethods:G})}function E6(f){let y;async function G(){if(y)return y;return y=await vf.match(f).with({phrase:vf.P.string},async(H)=>{return await Oy(H)}).with({signer:vf.P.any},({signer:H})=>H).otherwise(()=>{return}),y}async function T(){let H=await e.getRPCUrl(e.Chain.Near);return new l2.JsonRpcProvider({url:H})}async function _(H){let{Account:I}=await import("@near-js/accounts"),P=await T(),n=await G(),b=H||await X();return new I(b,P,n)}async function X(){let H=await G();if(!H)throw new e.SwapKitError("toolbox_near_no_signer");return await H.getAddress()}async function W(H){return(await w({changeMethods:[],contractId:H.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:H.accountId})}async function Z(H){let P=[await U({args:{account_id:H.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await U({args:{amount:H.assetValue.getBaseValue("string"),memo:H.memo||null,receiver_id:H.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return Y({actions:P,receiverId:H.contractId})}async function J(H){if(!await G())throw new e.SwapKitError("toolbox_near_no_signer");let{assetValue:P,recipient:n,memo:b}=H,h=await X();if(!P.isGasAsset&&P.address){if(!await W({accountId:n,contractId:P.address}))return Z({assetValue:P,contractId:P.address,memo:b,recipient:n})}let g=await Q({...H,sender:h});return z(g)}async function Q({recipient:H,assetValue:I,memo:P,attachedDeposit:n,sender:b,functionCall:h}){let g=await T();if(!D0(H))throw new e.SwapKitError("toolbox_near_invalid_address",{recipient:H});if(!D0(b))throw new e.SwapKitError("toolbox_near_invalid_address",{sender:b});if(h)return O({...h,sender:b});if(!I.isGasAsset){let x5=I.address;if(!x5)throw new e.SwapKitError("toolbox_near_missing_contract_address");return O({args:{amount:I.getBaseValue("string"),memo:P||null,receiver_id:H},attachedDeposit:n||"1",contractId:x5,gas:"250000000000000",methodName:"ft_transfer",sender:b})}let{publicKey:TT,nonce:UT}=await Hy(g,b),FT=I.getBaseValue("bigint"),{actionCreators:DT,createTransaction:kT}=await import("@near-js/transactions"),{baseDecode:JT}=await import("@near-js/utils"),$T=[DT.transfer(FT)];if(P&&n)$T.push(DT.functionCall("memo",{memo:P},BigInt("250000000000000"),BigInt(n)));let Jf=await g.block({finality:"final"}),Rf=JT(Jf.header.hash);return kT(b,TT,H,UT+1,$T,Rf)}function L(H){let I=H.encode();return Buffer.from(I).toString("base64")}async function O({args:H,attachedDeposit:I,contractId:P,gas:n,methodName:b,sender:h}){let g=await T(),{publicKey:TT,nonce:UT}=await Hy(g,h),{createTransaction:FT,actionCreators:DT}=await import("@near-js/transactions"),{baseDecode:kT}=await import("@near-js/utils"),JT=await g.block({finality:"final"}),$T=kT(JT.header.hash),Jf=[DT.functionCall(b,Buffer.from(JSON.stringify(H)),BigInt(n),BigInt(I))];return FT(h,TT,P,UT+1,Jf,$T)}async function U(H){let{actionCreators:I}=await import("@near-js/transactions");return I.functionCall(H.methodName,Buffer.from(JSON.stringify(H.args)),BigInt(H.gas),BigInt(H.attachedDeposit))}async function M(H){let I=await G();if(!I)throw new e.SwapKitError("toolbox_near_no_signer");let[P,n]=await I.signTransaction(H);return n}async function N(H){return(await(await T()).sendTransaction(H)).transaction.hash}async function z(H){let I=await G();if(!I)throw new e.SwapKitError("toolbox_near_no_signer");try{let P=await M(H);return await N(P)}catch{return I.signAndSendTransactions?.({transactions:[H]})}}async function B(H){let I=await G();if("assetValue"in H){let n=await k();try{let b=await e.getRPCUrl(e.Chain.Near),h=await fetch(b,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:g}}=await h.json(),{execution:TT,send_sir:UT}=g.transaction_costs.action_receipt_creation_config,{execution:FT,send_sir:DT}=g.transaction_costs.action_creation_config.transfer_cost,kT=BigInt(DT)+BigInt(FT),JT=BigInt(UT)+BigInt(TT),Jf=(kT+JT)*BigInt(n.toString());return e.AssetValue.from({chain:e.Chain.Near,value:Jf})}catch(b){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",b);let h=BigInt("115123062500"),g=BigInt("108059500000"),UT=(h+g)*BigInt(n.toString());return e.AssetValue.from({chain:e.Chain.Near,value:UT})}}let P=I?await _():void 0;return q(H,P)}async function k(){let H=await T();try{return await H.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function R(H,I,P){if(!await G())throw new e.SwapKitError("toolbox_near_no_signer");let b=await _(),{formatNearAmount:h}=await import("@near-js/utils"),{PublicKey:g}=await import("@near-js/crypto"),TT=h(P)||"0";return(await b.createAccount(H,g.fromString(I),BigInt(TT))).transaction.hash}async function F(H){let I=await G();try{if(!I)throw new e.SwapKitError("toolbox_near_no_signer");let{actionCreators:P}=await import("@near-js/transactions"),{contractId:n,methodName:b,args:h,deposit:g}=H,TT=await _(),UT=await q({args:h||{},contractId:n,methodName:b}),FT=P.functionCall(b,h||{},UT.getBaseValue("bigint"),BigInt(g||"1"));return(await TT.signAndSendTransaction({actions:[FT],receiverId:n})).transaction_outcome.id}catch(P){throw new e.SwapKitError("toolbox_near_transfer_failed",{error:P})}}async function w(H){let I=await _();return Y5({account:I,changeMethods:H.changeMethods,contractId:H.contractId,viewMethods:H.viewMethods})}async function Y(H){if(!await G())throw new e.SwapKitError("toolbox_near_no_signer");if(H.actions.length===0)throw new e.SwapKitError("toolbox_near_empty_batch");return(await(await _()).signAndSendTransaction({actions:H.actions,receiverId:H.receiverId})).transaction.hash}async function q(H,I){let P=await vf.match(H).when(f5,()=>OT.SIMPLE_TRANSFER).when(y5,(b)=>J5(b.methodName)).when(_5,(b)=>Z5(b.actions)).when(G5,()=>OT.ACCOUNT_CREATION).when(X5,()=>OT.CONTRACT_DEPLOYMENT).when(W5,(b)=>{if(!I)throw new e.SwapKitError("toolbox_near_no_account");return b.customEstimator(I)}).otherwise(()=>{throw new e.SwapKitError("toolbox_near_invalid_gas_params")}),n=BigInt(P)*BigInt(1000000000000);return e.AssetValue.from({chain:e.Chain.Near,value:n})}function D(H,I){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),q(H,I)}async function C(){let H=await T();try{return(await H.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function $(){let H=await G();return H?(await H.getPublicKey()).toString():""}return{broadcastTransaction:N,callFunction:F,createAction:U,createContract:w,createContractFunctionCall:O,createSubAccount:R,createTransaction:Q,estimateGas:D,estimateGasLimit:q,estimateTransactionFee:B,executeBatchTransaction:Y,getAddress:X,getBalance:ST(e.Chain.Near),getGasPrice:C,getNearProvider:T,getPublicKey:$,getSignerFromPhrase:Oy,getSignerFromPrivateKey:e1,serializeTransaction:L,signAndBroadcastTransaction:z,signTransaction:M,transfer:J,validateAddress:D0}}var l2,e,vf;var q5=E(()=>{dT();T5();Q5();l2=require("@near-js/providers"),e=require("@swapkit/helpers"),vf=require("ts-pattern")});var u2=E(()=>{q5()});var L5={};wT(L5,{validateNearAddress:()=>D0,tgasToGas:()=>x6,isSimpleTransfer:()=>f5,isCustomEstimator:()=>W5,isContractDeployment:()=>X5,isContractCall:()=>y5,isBatchTransaction:()=>_5,isAccountCreation:()=>G5,getNearToolbox:()=>E6,getNearSignerFromPrivateKey:()=>e1,getNearSignerFromPhrase:()=>Oy,getFullAccessPublicKey:()=>Hy,getContractMethodGas:()=>J5,gasToTGas:()=>S6,estimateBatchGas:()=>Z5,createNearContract:()=>Y5,GAS_COSTS:()=>OT});module.exports=HT(L5);var z5=E(()=>{T5();Q5();q5();u2()});var N5={};wT(N5,{validateRadixAddress:()=>p2,getRadixToolbox:()=>K6});module.exports=HT(N5);function p2(f){return f.startsWith("account_rdx1")&&f.length===66}function n6({networkApi:f}){return async function(G){let T=await V6({address:G,networkApi:f}),_=await v6({networkApi:f,resources:T});if(!_.some((W)=>W.isGasAsset))return[oT.AssetValue.from({chain:oT.Chain.Radix}),..._];return _}}async function V6({address:f,networkApi:y}){let G=!0,T,_=[],X=await o6(y);while(G){let W={address:f,at_ledger_state:{state_version:X},cursor:T,limit_per_page:100},Z=await y.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:W});if(_=_.concat(Z.items),Z.next_cursor)T=Z.next_cursor;else G=!1}return _}async function v6({resources:f,networkApi:y}){let G=[],T=50,_=[];for(let X=0;X<f.length;X+=50)_.push(f.slice(X,X+50));for(let X of _){let W=X.map((Q)=>Q.resource_address),Z=await y.state.getEntityDetailsVaultAggregated(W),J=new Map;for(let Q of Z)if(Q.details!==void 0){let L=Q.metadata?.items.find((U)=>U.key==="symbol"),O=L?.value.typed.type==="String"?L.value.typed.value:"?";if(Q.details.type==="FungibleResource")J.set(Q.address,{decimals:Q.details.divisibility,symbol:O})}for(let Q of X)if(Q.aggregation_level==="Global"){let L=J.get(Q.resource_address)||{decimals:0,symbol:"?"},O=oT.AssetValue.from({asset:L.symbol!==oT.Chain.Radix?`${oT.Chain.Radix}.${L.symbol}-${Q.resource_address}`:"XRD.XRD",value:Q.amount});G.push(O)}}return G}async function o6(f){return(await f.status.getCurrent()).ledger_state.state_version}function K6({dappConfig:f}={}){let y=f||oT.SKConfig.get("integrations").radix,G=m2.RadixDappToolkit({...y,networkId:y.network?.networkId||1}),T=h2.GatewayApiClient.initialize(G.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:n6({networkApi:T}),networkApi:T,signAndBroadcast:()=>{throw new oT.SwapKitError("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:p2}}var h2,m2,oT;var U5=E(()=>{h2=require("@radixdlt/babylon-gateway-api-sdk"),m2=require("@radixdlt/radix-dapp-toolkit"),oT=require("@swapkit/helpers")});function Ry(f){return/^[0-9A-Fa-f]{40}$/.test(f)}function O0(f){if(Ry(f))return f.toUpperCase();if(f.length<=3){let G=Buffer.from(f.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${G}${"0".repeat(10)}`.toUpperCase()}let y=Buffer.from(f).toString("hex").toUpperCase();if(y.length>40)throw new t2.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:f,reason:"Currency exceeds maximum length (20 bytes)"}});return y.padEnd(40,"0")}function j6(f){if(!Ry(f))return f;if(f.toUpperCase().startsWith("00")){let y=f.slice(24,30);try{let G=Buffer.from(y,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(G)&&G.length>0)return G}catch{}return f.toUpperCase()}try{let y=f.replace(/0+$/,""),G=y.length%2===0?y:`${y}0`,T=Buffer.from(G,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(T))return T}catch{}return f.toUpperCase()}function of(f){if(Ry(f))return f.toUpperCase();if(f.length<=3)return f;return O0(f)}var t2;var Cy=E(()=>{t2=require("@swapkit/helpers")});async function b6(f,y){let G=of(f),T=ky.find((_)=>of(_.currency)===G&&_.issuer===y);if(T)return T;try{let _=await Fy.RequestClient.get(`https://api.xrplmeta.org/token/${f}:${y}`);if(_)return{currency:f,decimals:15,description:_.desc,domain:_.domain,icon:_.icon,issuer:y,name:_.name,verified:_.self_assessment?.is_regulated||_.self_assessment?.is_licensed}}catch(_){Fy.warnOnce({condition:!0,id:`xrpl_token_lookup_${f}_${y}`,warning:`Failed to fetch XRPL token info for ${f}:${y}: ${_}`})}return{currency:f,decimals:15,issuer:y,verified:!1}}function l6(f){return ky.filter((y)=>y.issuer===f)}function u6(f,y){let G=of(f);return ky.some((T)=>of(T.currency)===G&&T.issuer===y)}var Fy,ky;var c2=E(()=>{Cy();Fy=require("@swapkit/helpers"),ky=[{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 M5={};wT(M5,{validateRippleAddress:()=>Iy,parseXrplTokenIdentifier:()=>d2,normalizeCurrency:()=>of,isKnownToken:()=>u6,isHexCurrency:()=>Ry,hexToCurrency:()=>j6,hashes:()=>a2.hashes,getXrplTokenInfo:()=>b6,getRippleToolbox:()=>m6,getKnownTokensByIssuer:()=>l6,formatXrplTokenIdentifier:()=>r2,currencyToHex:()=>O0,XRPL_TOKEN_ERROR_CODES:()=>$y,XRPL_KNOWN_TOKENS:()=>ky});module.exports=HT(M5);function d2(f){let y=f.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!y?.[1]||!y?.[2])return null;if(!iT.isValidAddress(y[2]))return null;return{currency:y[1],issuer:y[2]}}function r2(f,y){return`${t.Chain.Ripple}.${f}-${y}`}function h6(f){if(f.isGasAsset)return iT.xrpToDrops(f.getValue("string"));let y=d2(f.toString());if(!y)throw new t.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:f.toString()}});return{currency:y.currency,issuer:y.issuer,value:f.getValue("string")}}function i2(f){let y=iT.Wallet.fromMnemonic(f);return{getAddress:()=>Promise.resolve(y.address),signTransaction:(G)=>Promise.resolve(y.sign(G))}}function Iy(f){return iT.isValidAddress(f)}function m6(f={}){let y=Kf.match(f).with({phrase:Kf.P.string},({phrase:R})=>i2(R)).with({signer:Kf.P.any},({signer:R})=>R).otherwise(()=>{return}),G;async function T(){let R=await t.getRPCUrl(t.Chain.Ripple);if(!R)throw new t.SwapKitError({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:t.Chain.Ripple}});let F=new iT.Client(R);return await F.connect(),F}async function _(){if(G){let R=await G.catch(()=>null);if(R?.isConnected())return R}return G=T(),G}let X=()=>{if(!y)throw new t.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return y.getAddress()},W=async(R)=>{let F=R||await X(),{baseDecimal:w}=t.getChainConfig(t.Chain.Ripple),Y=await _();try{let[q,D]=await Promise.all([Y.request({account:F,command:"account_info"}),Y.request({account:F,command:"account_lines"})]),C=q.result.account_data.Balance,$=[t.AssetValue.from({chain:t.Chain.Ripple,fromBaseDecimal:w,value:C})];for(let H of D.result.lines){let I=r2(H.currency,H.account);if(Number.parseFloat(H.balance)!==0)$.push(t.AssetValue.from({asset:I,asyncTokenLookup:!1,value:H.balance}))}return $}catch(q){if(q.data?.error_code===g2.ACCOUNT_NOT_FOUND)return[t.AssetValue.from({chain:t.Chain.Ripple,value:0})];throw new t.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{address:F,error:q}})}},Z=async()=>{let{baseDecimal:R}=t.getChainConfig(t.Chain.Ripple),Y=(await(await _()).request({command:"fee"})).result.drops.open_ledger_fee;return t.AssetValue.from({chain:t.Chain.Ripple,fromBaseDecimal:R,value:Y})};async function J(R){let F=R||await X(),w=await _();try{return(await w.request({account:F,command:"account_lines"})).result.lines.map((q)=>({account:q.account,authorized:q.authorized??!1,balance:q.balance,currency:q.currency,freeze:q.freeze??!1,freezePeer:q.freeze_peer??!1,limit:q.limit,limitPeer:q.limit_peer,noRipple:q.no_ripple??!1,noRipplePeer:q.no_ripple_peer??!1,peerAuthorized:q.peer_authorized??!1,qualityIn:q.quality_in??0,qualityOut:q.quality_out??0}))}catch(Y){if(Y.data?.error_code===g2.ACCOUNT_NOT_FOUND)return[];throw new t.SwapKitError({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:F,error:Y}})}}async function Q({address:R,currency:F,issuer:w}){let Y=await J(R),q=O0(F);return Y.some((D)=>{return O0(D.currency)===q&&D.account===w})}async function L({currency:R,issuer:F,limit:w,sender:Y}){let q=Y||await X();if(!Iy(F))throw new t.SwapKitError({errorKey:"core_transaction_invalid_recipient_address",info:{address:F}});let D=Number.parseFloat(w);if(Number.isNaN(D)||D<0)throw new t.SwapKitError({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:w}});let C=await _(),$={Account:q,LimitAmount:{currency:R,issuer:F,value:w},TransactionType:"TrustSet"};return C.autofill($)}async function O({assetValue:R,recipient:F,memo:w,sender:Y,destinationTag:q,extendBySeconds:D=150}){if(!Iy(F))throw new t.SwapKitError({errorKey:"core_transaction_invalid_recipient_address"});let C=Y||await X();if(R.chain!==t.Chain.Ripple)throw new t.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:R.toString()}});let $=h6(R),H={Account:C,Amount:$,Destination:F,TransactionType:"Payment",...q!==void 0&&{DestinationTag:q}};if(w)H.Memos=[{Memo:{MemoData:Buffer.from(w).toString("hex")}}];let P=await(await _()).autofill(H);if(P.LastLedgerSequence&&D>0)P.LastLedgerSequence+=Math.ceil(D/4);return P}function U(R){if(!y)throw new t.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return y.signTransaction(R)}async function M(R){let w=await(await _()).submitAndWait(R),{result:Y}=w;if(Y.validated)return Y.hash;let q=Y.meta?.TransactionResult,D=Kf.match(q).with($y.tecNO_LINE,()=>"No trust line exists for this token").with($y.tecPATH_DRY,()=>"Payment path could not deliver funds").with($y.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new t.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:t.Chain.Ripple,...D?{reason:D}:{txResult:q}}})}let N=async(R)=>{try{let F=await U(R);return M(F.tx_blob)}catch(F){if(F instanceof t.SwapKitError)throw F;throw new t.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:t.Chain.Ripple,error:F}})}};async function z(R){if(!y)throw new t.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let F=await y.getAddress(),w=await O({...R,sender:F}),Y=await U(w);return M(Y.tx_blob)}async function B(R){if(!y)throw new t.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let F=await y.getAddress(),w=await L({...R,sender:F}),Y=await U(w);return M(Y.tx_blob)}function k(){let R=G;if(G=null,R)R.then((F)=>{if(F?.isConnected())return F.disconnect();return}).catch((F)=>{console.warn("XRPL Cleanup failed silently:",F)})}return{broadcastTransaction:M,createSigner:i2,createTransaction:O,disconnect:k,estimateTransactionFee:Z,getAddress:X,getBalance:W,getTrustLines:J,hasTrustLine:Q,setTrustLine:L,setTrustLineAndBroadcast:B,signAndBroadcastTransaction:N,signTransaction:U,transfer:z,validateAddress:Iy}}var t,Kf,iT,a2,g2,$y;var B5=E(()=>{Cy();t=require("@swapkit/helpers"),Kf=require("ts-pattern"),iT=require("xrpl");Cy();c2();a2=require("xrpl"),g2={ACCOUNT_NOT_FOUND:19},$y={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});function w5(f,y){let G=0n,T=0n,_=y;while(_<f.length&&_-y<10){let X=f[_++];if(X===void 0)break;if(G|=BigInt(X&127)<<T,T+=7n,(X&128)===0)return[G,_]}throw new Hf.SwapKitError("toolbox_tron_transaction_creation_failed")}function H0(f){let y=[],G=f<0n?f+2n**64n:f;while(G>=128n)y.push(Number(G&0x7fn)|128),G>>=7n;return y.push(Number(G)),y}function Ay(f,y,G){let T=f.get(y);if(T)T.push(G);else f.set(y,[G])}function g6(f){let y=new Map,G=0;while(G<f.length){let[T,_]=w5(f,G);G=_;let X=Number(T>>3n),W=Number(T&7n);if(W===Py){let[Z,J]=w5(f,G);G=J,Ay(y,X,{data:new Uint8Array(H0(Z)),wireType:Py})}else if(W===xy){let[Z,J]=w5(f,G);G=J;let Q=Number(Z);if(Q<0||G+Q>f.length)throw new Hf.SwapKitError("toolbox_tron_transaction_creation_failed");let L=f.slice(G,G+Q);G+=Q,Ay(y,X,{data:L,wireType:xy})}else if(W===s2){if(G+8>f.length)throw new Hf.SwapKitError("toolbox_tron_transaction_creation_failed");let Z=f.slice(G,G+8);G+=8,Ay(y,X,{data:Z,wireType:s2})}else if(W===e2){if(G+4>f.length)throw new Hf.SwapKitError("toolbox_tron_transaction_creation_failed");let Z=f.slice(G,G+4);G+=4,Ay(y,X,{data:Z,wireType:e2})}else throw new Hf.SwapKitError("toolbox_tron_transaction_creation_failed")}return y}function i6(f){let y=[];for(let[X,W]of[...f.entries()].sort(([Z],[J])=>Z-J))for(let{wireType:Z,data:J}of W){let Q=BigInt(X<<3|Z);if(y.push(new Uint8Array(H0(Q))),Z===xy)y.push(new Uint8Array(H0(BigInt(J.length))));y.push(J)}let G=y.reduce((X,W)=>X+W.length,0),T=new Uint8Array(G),_=0;for(let X of y)T.set(X,_),_+=X.length;return T}function fG(f,y){if(!f||f.length%2!==0)throw new Hf.SwapKitError("toolbox_tron_transaction_creation_failed");let G=jf.hexToBytes(f),T=g6(G);if(y.expiration!==void 0)T.set(p6,[{data:new Uint8Array(H0(BigInt(y.expiration))),wireType:Py}]);if(y.data!==void 0)T.set(t6,[{data:jf.hexToBytes(y.data),wireType:xy}]);if(y.fee_limit!==void 0)T.set(c6,[{data:new Uint8Array(H0(BigInt(y.fee_limit))),wireType:Py}]);let _=i6(T),X=jf.bytesToHex(_),W=jf.bytesToHex(TG.sha256(_));return{raw_data_hex:X,txID:W}}var TG,jf,Hf,Py=0,s2=1,xy=2,e2=5,p6=8,t6=10,c6=18;var yG=E(()=>{TG=require("@noble/hashes/sha2.js"),jf=require("@noble/hashes/utils.js"),Hf=require("@swapkit/helpers")});function KT(f){if(typeof f!=="string")return!1;try{let y=Sy.decode(f);return y.length===21&&y[0]===XG}catch{return!1}}function WG(f){return nT.bytesToHex(Sy.decode(f))}function r6(f){return Sy.decode(f).slice(1)}function ZG(f){let y=D5.secp256k1.getPublicKey(nT.hexToBytes(f),!1),G=_G.keccak_256(y.slice(1)).slice(-20),T=new Uint8Array(21);return T[0]=XG,T.set(G,1),Sy.encode(T)}function JG({txID:f,privateKey:y}){let G=D5.secp256k1.sign(nT.hexToBytes(f),nT.hexToBytes(y),{format:"recovered",prehash:!1}),T=G[0]??0,_=nT.bytesToHex(G.slice(1,33)),X=nT.bytesToHex(G.slice(33,65)),W=(T+27).toString(16).padStart(2,"0");return _+X+W}function bf({txID:f,raw_data_hex:y}){let G=nT.bytesToHex(O5.sha256(nT.hexToBytes(y)));if(f!==G)throw new H5.SwapKitError("toolbox_tron_invalid_transaction_integrity",{expected:G,txID:f})}function a6(f){return`000000000000000000000000${nT.bytesToHex(r6(f))}`}function s6(f){let y=typeof f==="bigint"?f:BigInt(f);if(y<0n||y>=d6)throw new H5.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:y.toString()});return y.toString(16).padStart(64,"0")}function lf(f){return f.map(({type:y,value:G})=>y==="address"?a6(G):s6(BigInt(G))).join("")}function QG(f){return nT.bytesToHex(new TextEncoder().encode(f))}var D5,O5,_G,nT,GG,H5,Sy,XG=65,d6;var R5=E(()=>{D5=require("@noble/curves/secp256k1.js"),O5=require("@noble/hashes/sha2.js"),_G=require("@noble/hashes/sha3.js"),nT=require("@noble/hashes/utils.js"),GG=require("@scure/base"),H5=require("@swapkit/helpers"),Sy=GG.createBase58check(O5.sha256),d6=2n**256n});function qG(){try{return LT.getRPCUrlSync(LT.Chain.Tron)}catch{return YG}}function LG(){let f=new AbortController,y=setTimeout(()=>f.abort(),y8);return{cleanup:()=>clearTimeout(y),signal:f.signal}}async function uf(f,y){let{signal:G,cleanup:T}=LG();try{let _=await fetch(`${qG()}${f}`,{body:JSON.stringify(y),headers:{"Content-Type":"application/json"},method:"POST",signal:G});if(!_.ok)throw new LT.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${_.status} ${_.statusText} on ${f}`});return await _.json()}finally{T()}}async function zG(f,y){let{signal:G,cleanup:T}=LG();try{let _=await fetch(`${y??qG()}${f}`,{headers:{"Content-Type":"application/json"},signal:G});if(!_.ok)throw new LT.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${_.status} ${_.statusText} on ${f}`});return await _.json()}finally{T()}}async function NG(f){if(!KT(f))throw new LT.SwapKitError("toolbox_tron_trongrid_api_error",{address:f,message:"Invalid address"});try{let y=await zG(`/v1/accounts/${f}`,YG);if(!(y.success&&y.data)||y.data.length===0)return;let G;try{G=WG(f).toLowerCase()}catch{G=f.toLowerCase()}let T=y.data.find((_)=>_.address.toLowerCase()===G);if(!T)return;return{balance:T.balance,trc20:T.trc20||[]}}catch(y){if(y instanceof LT.SwapKitError)throw y;throw new LT.SwapKitError("toolbox_tron_trongrid_api_error",{address:f,message:y instanceof Error?y.message:"Unknown error"})}}async function UG({from:f,to:y,amount:G}){let _=await uf("/wallet/createtransaction",{amount:G,owner_address:f,to_address:y,visible:!0});if(!_.txID||!_.raw_data_hex||!_.raw_data)throw new LT.SwapKitError("toolbox_tron_transaction_creation_failed");let W=_.raw_data?.contract?.[0]?.parameter?.value;if(W?.to_address!==y||W?.owner_address!==f||W?.amount!==G)throw new LT.SwapKitError("toolbox_tron_transaction_creation_failed");return bf(_),_}async function MG({ownerAddress:f,contractAddress:y,functionSelector:G,parameter:T,feeLimit:_,callValue:X=0}){let W=await uf("/wallet/triggersmartcontract",{call_value:X,contract_address:y,fee_limit:_,function_selector:G,owner_address:f,parameter:T,visible:!0});if(!W.result.result||!W.transaction?.txID||!W.transaction?.raw_data_hex)throw new LT.SwapKitError("toolbox_tron_transaction_creation_failed");let J=W.transaction.raw_data?.contract?.[0]?.parameter?.value;if(J?.contract_address!==y||J?.owner_address!==f)throw new LT.SwapKitError("toolbox_tron_transaction_creation_failed");return bf(W.transaction),W.transaction}function BG({ownerAddress:f,contractAddress:y,functionSelector:G,parameter:T}){return uf("/wallet/triggerconstantcontract",{contract_address:y,function_selector:G,owner_address:f,parameter:T,visible:!0})}async function R0(f){try{let{result:y,txid:G}=await uf("/wallet/broadcasttransaction",{raw_data:f.raw_data,raw_data_hex:f.raw_data_hex,signature:f.signature,txID:f.txID,visible:f.visible});if(!y||!G)throw new LT.SwapKitError("toolbox_tron_token_transfer_failed");return G}catch(y){throw new LT.SwapKitError("toolbox_tron_broadcast_failed",{error:y})}}async function Ey(){let f={};try{let{chainParameter:y}=await zG("/wallet/getchainparameters");for(let G of y)f[G.key]=G.value}catch(y){LT.warnOnce({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${y instanceof Error?y.message:y}`})}return{bandwidthFee:f.getTransactionFee??e6,createAccountFee:f.getCreateAccountFee??T8,energyFee:f.getEnergyFee??f8}}async function C5(f){try{let y=await uf("/wallet/getaccountresource",{address:f,visible:!0});return{bandwidth:{free:(y.freeNetLimit??600)-(y.freeNetUsed??0),total:y.NetLimit??0,used:y.NetUsed??0},energy:{total:y.EnergyLimit??0,used:y.EnergyUsed??0}}}catch(y){return LT.warnOnce({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${y instanceof Error?y.message:y}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function F5(f){try{let y=await uf("/wallet/getaccount",{address:f,visible:!0});return y&&Object.keys(y).length>0}catch{return!1}}async function k5(f){try{let{energy_used:y}=await BG({...f,ownerAddress:f.sender});return y}catch(y){return LT.warnOnce({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy, using default: ${y instanceof Error?y.message:y}`}),65000}}async function wG({assetAddress:f,owner:y,spender:G}){let T=lf([{type:"address",value:y},{type:"address",value:G}]),X=(await BG({contractAddress:f,functionSelector:"allowance(address,address)",ownerAddress:G,parameter:T})).constant_result?.[0];if(!X)return 0n;try{return BigInt(`0x${X}`)}catch{return 0n}}var LT,YG="https://api.trongrid.io",e6=1000,T8=1e5,f8=420,y8=30000;var DG=E(()=>{R5();LT=require("@swapkit/helpers")});function kG({phrase:f,derivationPath:y}){let G=RG.HDKey.fromMasterSeed(CG.mnemonicToSeedSync(f)).derive(y);if(!G.privateKey)throw new o.SwapKitError("toolbox_tron_no_signer");return HG.bytesToHex(G.privateKey)}function $G({phrase:f,derivationPath:y,index:G}){let T=y||o.derivationPathToString(o.updateDerivationPath(o.NetworkDerivationPath[o.Chain.Tron],{index:G||0}));return kG({derivationPath:T,phrase:f})}function Z8({phrase:f,derivationPath:y}){let G=kG({derivationPath:y,phrase:f}),T=ZG(G);return{getAddress:()=>Promise.resolve(T),signTransaction:(_)=>{bf(_);let X=JG({privateKey:G,txID:_.txID});return Promise.resolve({..._,signature:[X]})}}}function OG({transaction:f,memo:y,expiration:G,feeLimit:T}){let _={},X={};if(T!==void 0&&f.raw_data)_.fee_limit=T,X.fee_limit=T;if(y){let J=QG(y);_.data=J,X.data=J}if(G){let J=f.raw_data.expiration+G*1000;_.expiration=J,X.expiration=J}if(Object.keys(_).length===0)return f;let{raw_data_hex:W,txID:Z}=fG(f.raw_data_hex,_);return{...f,raw_data:{...f.raw_data,...X},raw_data_hex:W,txID:Z}}function IG(f={}){let y="index"in f?f.index||0:0,G=o.derivationPathToString("derivationPath"in f&&f.derivationPath?f.derivationPath:o.updateDerivationPath(o.NetworkDerivationPath[o.Chain.Tron],{index:y})),T,_=!1;function X(){if(_)return Promise.resolve(T);return T=hf.match(f).with({phrase:hf.P.string},({phrase:Y})=>Z8({derivationPath:G,phrase:Y})).with({signer:hf.P.not(hf.P.nullish)},({signer:Y})=>Y).otherwise(()=>{return}),_=!0,Promise.resolve(T)}async function W(){let Y=await X();if(!Y)throw new o.SwapKitError("toolbox_tron_no_signer");return Y.getAddress()}async function Z(Y){let q=Y||G8,D=await Ey(),C=q*D.energyFee,$=Math.ceil(C*1.5);return Math.min(Math.max($,1e7),150000000)}async function J({contractAddress:Y,functionSelector:q,parameter:D,sender:C,memo:$,expiration:H}){let I=await k5({contractAddress:Y,functionSelector:q,parameter:D,sender:C}),P=await Z(I),n=await MG({contractAddress:Y,feeLimit:P,functionSelector:q,ownerAddress:C,parameter:D});return OG({expiration:H,feeLimit:P,memo:$,transaction:n})}async function Q(Y){if(!KT(Y))return[o.AssetValue.from({chain:o.Chain.Tron})];try{let q=await NG(Y);if(!q)return[o.AssetValue.from({chain:o.Chain.Tron})];let D=[o.AssetValue.from({chain:o.Chain.Tron,fromBaseDecimal:6,value:String(q.balance)})],C=q.trc20?.find(($)=>($5 in $));if(C){let $=C[$5];D.push(o.AssetValue.from({asset:`TRON.USDT-${$5}`,fromBaseDecimal:6,value:$}))}return D}catch(q){return o.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${q instanceof Error?q.message:q}`}),[o.AssetValue.from({chain:o.Chain.Tron})]}}async function L({recipient:Y,assetValue:q,memo:D,expiration:C}){if(!KT(Y))throw new o.SwapKitError("toolbox_tron_token_transfer_failed",{message:"invalid address"});let $=await X();if(!$)throw new o.SwapKitError("toolbox_tron_no_signer");try{let H=await W(),I=await z({assetValue:q,expiration:C,memo:D,recipient:Y,sender:H}),P=await $.signTransaction(I),n=await R0(P);if(!n)throw new o.SwapKitError("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return n}catch(H){throw new o.SwapKitError("toolbox_tron_token_transfer_failed",{message:H instanceof Error?H.message:String(H)})}}function O({requiredBandwidth:Y,resources:q,feePerUnit:D}){let C=Math.max(0,q.free+q.total-q.used);return Y>C?(Y-C)*D:0}async function U({recipient:Y,senderAddress:q}){let[D,C,$]=await Promise.all([Ey(),F5(Y),C5(q)]),H=C?0:D.createAccountFee,I=O({feePerUnit:D.bandwidthFee,requiredBandwidth:_8,resources:$.bandwidth});return o.AssetValue.from({chain:o.Chain.Tron,fromBaseDecimal:o.BaseDecimal.TRON,value:H+I})}async function M({assetValue:Y,recipient:q,senderAddress:D}){let C=Y.address;if(!C)throw new o.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let[$,H,I,P]=await Promise.all([Ey(),F5(q),C5(D),k5({contractAddress:C,functionSelector:"transfer(address,uint256)",parameter:lf([{type:"address",value:q},{type:"uint256",value:Y.getBaseValue("string")}]),sender:D})]),n=H?0:$.createAccountFee,b=O({feePerUnit:$.bandwidthFee,requiredBandwidth:X8,resources:I.bandwidth}),h=Math.max(0,I.energy.total-I.energy.used),g=P>h?(P-h)*$.energyFee:0;return o.AssetValue.from({chain:o.Chain.Tron,fromBaseDecimal:o.BaseDecimal.TRON,value:n+b+g})}async function N({assetValue:Y,recipient:q,sender:D}){let C=await X();try{let $=D?D:C?await W():void 0;if(!$)return Y.isGasAsset?o.AssetValue.from({chain:o.Chain.Tron,value:0.1}):o.AssetValue.from({chain:o.Chain.Tron,value:15});return Y.isGasAsset?U({recipient:q,senderAddress:$}):M({assetValue:Y,recipient:q,senderAddress:$})}catch($){throw o.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${$ instanceof Error?$.message:$}`}),new o.SwapKitError("toolbox_fee_estimation_failed",{chain:o.Chain.Tron,error:$})}}async function z({recipient:Y,assetValue:q,memo:D,sender:C,expiration:$}){if(!KT(Y)||!KT(C))throw new o.SwapKitError("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(q.isGasAsset){let I=await UG({amount:q.getBaseValue("number"),from:C,to:Y});return OG({expiration:$,memo:D,transaction:I})}let H=q.address;if(!H)throw new o.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:q.toString()});return J({contractAddress:H,expiration:$,functionSelector:"transfer(address,uint256)",memo:D,parameter:lf([{type:"address",value:Y},{type:"uint256",value:q.getBaseValue("string")}]),sender:C})}async function B(Y){bf(Y);let q=await X();if(!q)throw new o.SwapKitError("toolbox_tron_no_signer");return q.signTransaction(Y)}async function k(Y){let q=await B(Y);return R0(q)}function R({assetAddress:Y,spenderAddress:q,from:D}){return wG({assetAddress:Y,owner:D,spender:q})}async function F({assetAddress:Y,spenderAddress:q,from:D,amount:C}){let $=await R({assetAddress:Y,from:D,spenderAddress:q});if(!C)return $>0n;return $>=BigInt(C)}async function w({assetAddress:Y,spenderAddress:q,amount:D,from:C}){if(!KT(Y)||!KT(q))throw new o.SwapKitError("toolbox_tron_approve_failed");let $=await X();if(!$)throw new o.SwapKitError("toolbox_tron_no_signer");let H=C||await W(),I=D!==void 0?BigInt(D).toString():W8;try{let P=await J({contractAddress:Y,functionSelector:"approve(address,uint256)",parameter:lf([{type:"address",value:q},{type:"uint256",value:I}]),sender:H}),n=await $.signTransaction(P),b=await R0(n);if(!b)throw new o.SwapKitError("toolbox_tron_approve_failed");return b}catch(P){if(P instanceof o.SwapKitError)throw P;throw new o.SwapKitError("toolbox_tron_approve_failed",{error:P})}}return{approve:w,broadcastTransaction:R0,createTransaction:z,estimateTransactionFee:N,getAddress:W,getApprovedAmount:R,getBalance:Q,getRpcUrl:()=>o.getRPCUrl(o.Chain.Tron),isApproved:F,signAndBroadcastTransaction:k,signTransaction:B,transfer:L,validateAddress:KT}}var HG,RG,CG,o,hf,FG,_8=268,G8=65000,X8=345,$5="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",W8="115792089237316195423570985008687907853269984665640564039457584007913129639935";var AG=E(()=>{yG();DG();R5();HG=require("@noble/hashes/utils.js"),RG=require("@scure/bip32"),CG=require("@scure/bip39"),o=require("@swapkit/helpers"),hf=require("ts-pattern"),FG=KT});var I5={};wT(I5,{validateTronAddress:()=>FG,getTronToolbox:()=>IG,getTronPrivateKeyFromMnemonic:()=>$G});module.exports=HT(I5);var A5=E(()=>{AG()});function Vy(f){if(!f||typeof f!=="string"||!f.startsWith("G")||f.length!==56)return!1;return J8.test(f)}async function Q8(f){if(!Vy(f))return!1;try{let{StrKey:y}=await import("@stellar/stellar-sdk");return y.isValidEd25519PublicKey(f)}catch{return!1}}function PG(f={}){let y,G=f.derivationPath||a.NetworkDerivationPath[a.Chain.Stellar],T=a.derivationPathToString(G.slice(0,3));async function _({phrase:z,path:B}){let{HDKey:k}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:R}=await import("@scure/bip39"),{Keypair:F}=await import("@stellar/stellar-sdk"),w=R(z),q=k.fromMasterSeed(w).derive(B,!0);return F.fromRawEd25519Seed(Buffer.from(q.privateKey))}async function X(){if(y)return y;let z=ny.match(f).with({phrase:ny.P.string},({phrase:B})=>B).otherwise(()=>{return});if(!z)throw new a.SwapKitError("toolbox_stellar_no_signer");return y=await _({path:T,phrase:z}),y}async function W(){let{Horizon:z}=await import("@stellar/stellar-sdk"),B=await a.getRPCUrl(a.Chain.Stellar);return new z.Server(B)}async function Z(){try{return(await X()).publicKey()}catch{return""}}async function J(z){let B=z||await Z();if(!B)throw new a.SwapKitError("toolbox_stellar_account_not_found");try{return(await(await W()).loadAccount(B)).balances.map((F)=>{if(F.asset_type==="native")return a.AssetValue.from({chain:a.Chain.Stellar,value:F.balance});let w="asset_code"in F?F.asset_code:"",Y="asset_issuer"in F?F.asset_issuer:"";return a.AssetValue.from({asset:`${a.Chain.Stellar}.${w}-${Y}`,asyncTokenLookup:!1,value:F.balance})})}catch{return[a.AssetValue.from({chain:a.Chain.Stellar,value:0})]}}async function Q({recipient:z,assetValue:B,memo:k,sender:R}){if(k){if(new TextEncoder().encode(k).length>28)throw new a.SwapKitError("helpers_invalid_memo_type")}if(!await Q8(z))throw new a.SwapKitError("core_transaction_invalid_recipient_address");let w=R||await Z();if(!w)throw new a.SwapKitError("toolbox_stellar_no_signer");let{Asset:Y,Memo:q,Networks:D,Operation:C,TransactionBuilder:$}=await import("@stellar/stellar-sdk"),H=await W(),I=await H.fetchBaseFee(),P=await H.loadAccount(w),n=new $(P,{fee:String(I),networkPassphrase:D.PUBLIC});if(B.isGasAsset)try{await H.loadAccount(z),n.addOperation(C.payment({amount:B.getValue("string"),asset:Y.native(),destination:z}))}catch{n.addOperation(C.createAccount({destination:z,startingBalance:B.getValue("string")}))}else n.addOperation(C.payment({amount:B.getValue("string"),asset:new Y(B.symbol,B.address),destination:z}));if(k)n.addMemo(q.text(k));return n.setTimeout(30).build()}async function L(z){let{TransactionBuilder:B,Networks:k}=await import("@stellar/stellar-sdk"),R=await X(),F=B.fromXDR(z.toXDR(),k.PUBLIC);return F.sign(R),F}async function O(z){try{let B=await W(),{hash:k}=await B.submitTransaction(z);return k}catch(B){throw new a.SwapKitError("toolbox_stellar_broadcast_error",B)}}async function U({recipient:z,assetValue:B,memo:k}){let R=await X(),F=R.publicKey(),w=await Q({assetValue:B,memo:k,recipient:z,sender:F});w.sign(R);try{return(await(await W()).submitTransaction(w)).hash}catch(Y){if(Y instanceof a.SwapKitError)throw Y;throw new a.SwapKitError("toolbox_stellar_transaction_failed",Y)}}async function M(z){let B=await L(z);return O(B)}async function N(){let{baseDecimal:z}=a.getChainConfig(a.Chain.Stellar);try{let R=(await(await W()).feeStats()).fee_charged.p50;return a.AssetValue.from({chain:a.Chain.Stellar,fromBaseDecimal:z,value:R})}catch{return a.AssetValue.from({chain:a.Chain.Stellar,fromBaseDecimal:z,value:"100"})}}return{broadcastTransaction:O,createTransaction:Q,estimateTransactionFee:N,getAddress:Z,getBalance:J,signAndBroadcastTransaction:M,signTransaction:L,transfer:U,validateAddress:Vy}}var a,ny,J8;var xG=E(()=>{a=require("@swapkit/helpers"),ny=require("ts-pattern"),J8=/^G[A-Z2-7]{55}$/});var vy={};wT(vy,{validateStellarAddress:()=>Vy,getStellarToolbox:()=>PG});module.exports=HT(vy);var oy=E(()=>{xG()});var L8={};wT(L8,{getToolbox:()=>P5,getFeeEstimator:()=>q8,getAddressValidator:()=>Y8});module.exports=HT(L8);var j=require("@swapkit/helpers");async function Y8(){let{match:f}=await import("ts-pattern"),{validateAptosAddress:y}=await Promise.resolve().then(() => (F0(),C0)),{validateEVMAddress:G}=await Promise.resolve().then(() => (L_(),q_)),{validateCardanoAddress:T}=await Promise.resolve().then(() => (Y1(),Q1)),{getCosmosAddressValidator:_}=await Promise.resolve().then(() => (a0(),r0)),{validateSolanaAddress:X}=await Promise.resolve().then(() => (x1(),P1)),{validateStarknetAddress:W}=await Promise.resolve().then(() => (yy(),fy)),{validateSuiAddress:Z}=await Promise.resolve().then(() => (Gy(),_y)),{validateTonAddress:J}=await Promise.resolve().then(() => (Zy(),Wy)),{getUTXOAddressValidator:Q}=await Promise.resolve().then(() => (s1(),a1)),{validateNearAddress:L}=await Promise.resolve().then(() => (z5(),L5)),{validateRadixAddress:O}=await Promise.resolve().then(() => (U5(),N5)),{validateRippleAddress:U}=await Promise.resolve().then(() => (B5(),M5)),{validateTronAddress:M}=await Promise.resolve().then(() => (A5(),I5)),{validateStellarAddress:N}=await Promise.resolve().then(() => (oy(),vy));return function({address:B,chain:k}){return f(k).with(...j.EVMChains,()=>G(B)).with(...j.UTXOChains,(F)=>{return Q(F)(B)}).with(...j.CosmosChains,(F)=>{return _(F)(B)}).with(j.Chain.Aptos,()=>y(B)).with(j.Chain.Radix,()=>O(B)).with(j.Chain.Near,()=>L(B)).with(j.Chain.Ripple,()=>U(B)).with(j.Chain.Solana,()=>X(B)).with(j.Chain.Stellar,()=>N(B)).with(j.Chain.Starknet,()=>W(B)).with(j.Chain.Sui,()=>Z(B)).with(j.Chain.Ton,()=>J(B)).with(j.Chain.Tron,()=>M(B)).with(j.Chain.Cardano,()=>T(B)).otherwise(()=>!1)}}function q8(f){return async function(G){let{match:T}=await import("ts-pattern");return T(f).returnType().with(...j.EVMChains,async(_)=>{let X=await P5(_),W=await X.createTransaction(G),Z="feeOptionKey"in G?G.feeOptionKey:j.FeeOption.Fast;return X.estimateTransactionFee({...W,feeOption:Z})}).with(j.Chain.Bitcoin,j.Chain.BitcoinCash,j.Chain.Dogecoin,j.Chain.Dash,j.Chain.Litecoin,j.Chain.Solana,j.Chain.Ripple,j.Chain.Tron,j.Chain.Near,j.Chain.Cardano,async(_)=>{return(await P5(_)).estimateTransactionFee(G)}).with(j.Chain.Aptos,async()=>{let{getAptosToolbox:_}=await Promise.resolve().then(() => (F0(),C0));return _().estimateTransactionFee(G)}).with(j.Chain.Starknet,async()=>{let{getStarknetToolbox:_}=await Promise.resolve().then(() => (yy(),fy));return(await _()).estimateTransactionFee(G)}).with(j.Chain.Stellar,async()=>{let{getStellarToolbox:_}=await Promise.resolve().then(() => (oy(),vy));return _().estimateTransactionFee()}).with(j.Chain.Sui,async()=>{let{getSuiToolbox:_}=await Promise.resolve().then(() => (Gy(),_y));return _().estimateTransactionFee(G)}).with(j.Chain.Ton,async()=>{let{getTONToolbox:_}=await Promise.resolve().then(() => (Zy(),Wy));return _().estimateTransactionFee(G)}).with(...j.CosmosChains,async()=>{let{estimateTransactionFee:_}=await Promise.resolve().then(() => (a0(),r0));return _(G)}).otherwise(async()=>j.AssetValue.from({chain:f}))}}async function P5(f,y){let{match:G}=await import("ts-pattern");return G(f).returnType().with(...j.EVMChains,async()=>{let{getEvmToolboxAsync:T}=await Promise.resolve().then(() => (W1(),J_));return await T(f,y)}).with(...j.UTXOChains,async()=>{let{getUtxoToolbox:T}=await Promise.resolve().then(() => (s1(),a1));return T(f,y)}).with(...j.CosmosChains,async()=>{let{getCosmosToolbox:T}=await Promise.resolve().then(() => (a0(),r0));return T(f,y)}).with(j.Chain.Aptos,async()=>{let{getAptosToolbox:T}=await Promise.resolve().then(() => (F0(),C0));return T(y)}).with(j.Chain.Radix,async()=>{let{getRadixToolbox:T}=await Promise.resolve().then(() => (U5(),N5));return T(y)}).with(j.Chain.Ripple,async()=>{let{getRippleToolbox:T}=await Promise.resolve().then(() => (B5(),M5));return T(y)}).with(j.Chain.Solana,async()=>{let{getSolanaToolbox:T}=await Promise.resolve().then(() => (x1(),P1));return T(y)}).with(j.Chain.Stellar,async()=>{let{getStellarToolbox:T}=await Promise.resolve().then(() => (oy(),vy));return T(y)}).with(j.Chain.Starknet,async()=>{let{getStarknetToolbox:T}=await Promise.resolve().then(() => (yy(),fy));return T(y)}).with(j.Chain.Sui,async()=>{let{getSuiToolbox:T}=await Promise.resolve().then(() => (Gy(),_y));return T(y)}).with(j.Chain.Tron,async()=>{let{getTronToolbox:T}=await Promise.resolve().then(() => (A5(),I5));return T(y)}).with(j.Chain.Near,async()=>{let{getNearToolbox:T}=await Promise.resolve().then(() => (z5(),L5));return T(y)}).with(j.Chain.Cardano,async()=>{let{getCardanoToolbox:T}=await Promise.resolve().then(() => (Y1(),Q1));return T(y)}).with(j.Chain.Ton,async()=>{let{getTONToolbox:T}=await Promise.resolve().then(() => (Zy(),Wy));return T(y)}).otherwise(()=>{throw new j.SwapKitError("toolbox_not_supported",{chain:f})})}
|