@swapkit/toolboxes 4.3.9 → 4.3.10

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.js CHANGED
@@ -1,5 +1,5 @@
1
- var q2=Object.create;var{getPrototypeOf:Q2,defineProperty:mf,getOwnPropertyNames:B2}=Object;var Y2=Object.prototype.hasOwnProperty;var H=(T,x,N)=>{N=T!=null?q2(Q2(T)):{};let y=x||!T||!T.__esModule?mf(N,"default",{value:T,enumerable:!0}):N;for(let f of B2(T))if(!Y2.call(y,f))mf(y,f,{get:()=>T[f],enumerable:!0});return y};var yy=(T,x)=>{for(var N in x)mf(T,N,{get:x[N],enumerable:!0,configurable:!0,set:(y)=>x[N]=()=>y})};var k=(T,x)=>()=>(T&&(x=T(T=0)),x);var U=((T)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(T,{get:(x,N)=>(typeof require<"u"?require:x)[N]}):T)(function(T){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+T+'" is not supported')});import{AssetValue as $1,getChainConfig as z2}from"@swapkit/helpers";import{SwapKitApi as W2}from"@swapkit/helpers/api";function K1(){function T(){let x=Date.now(),N=cf||x;return cf=N,x>cf?x:N+1}return H2+T().toString(36)}function ry(T){return async function(N,y=!0){let f=await W2.getChainBalance({address:N,chain:T,scamFilter:y}),{baseDecimal:G}=z2(T),L=f.map(({identifier:_,value:Z,decimal:q})=>{return new $1({decimal:q||G,identifier:_,value:Z})});if(!L.some((_)=>_.isGasAsset))return[$1.from({chain:T}),...L];return L}}var H2,cf=0;var WT=k(()=>{H2=typeof process<"u"&&process.pid?process.pid.toString(36):""});function HT(T){return{getBalance:ry(T)}}function U2(T){return T}var gT=k(()=>{WT()});import{Chain as p,getChainConfig as n1,getRPCUrl as M2}from"@swapkit/helpers";import{match as I2}from"ts-pattern";async function ny(T,x){let{JsonRpcProvider:N}=await import("ethers");return new N(x||await M2(T))}function UT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function tf(T){let{explorerUrl:x,chainIdHex:N,rpcUrls:y}=n1(T);return function(){return T!==p.Ethereum?{...R2({chain:T}),blockExplorerUrls:[x],chainId:N,rpcUrls:y}:void 0}}function gf(T){return![p.Arbitrum,p.BinanceSmartChain].includes(T)}function R2({chain:T}){let{name:x,nativeCurrency:N,baseDecimal:y}=n1(T);return I2(T).with(p.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:y,name:"Avalanche",symbol:T}})).with(p.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:y,name:"Berachain",symbol:"BERA"}})).with(p.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:y,name:"OKB",symbol:"OKB"}})).with(p.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:y,name:"Binance Coin",symbol:"BNB"}})).with(p.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:y,name:"xDAI",symbol:"XDAI"}})).with(p.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:y,name:"Polygon",symbol:p.Polygon}})).otherwise(()=>({chainName:x,nativeCurrency:{decimals:y,name:N,symbol:N}}))}var ay=()=>{};var u1;var b1=k(()=>{u1=[{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"}]});import{AssetValue as w2,applyFeeMultiplierToBigInt as _y,Chain as qy,EVMChains as C2,FeeOption as b,isGasAsset as O2,SwapKitError as o,SwapKitNumber as dT}from"@swapkit/helpers";import{erc20ABI as MT}from"@swapkit/helpers/contracts";import{BrowserProvider as E2,Contract as j1,getAddress as iT,Interface as h1}from"ethers";import{match as k2}from"ts-pattern";function sy({chain:T=qy.Ethereum,provider:x,signer:N,isEIP1559Compatible:y=!0}){return{approve:l2({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),approvedAmount:m1({chain:T,provider:x}),broadcastTransaction:x.broadcastTransaction,call:y0({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),createApprovalTx:$2({chain:T,provider:x,signer:N}),createContract:af({chain:T,provider:x}),createContractTxObject:uy({chain:T,provider:x}),createTransaction:df({chain:T,provider:x,signer:N}),createTransferTx:df({chain:T,provider:x,signer:N}),EIP1193SendTransaction:yT(x),estimateCall:c1({provider:x,signer:N}),estimateGasLimit:F2({chain:T,provider:x,signer:N}),estimateGasPrices:by({chain:T,isEIP1559Compatible:y,provider:x}),estimateTransactionFee:K2({chain:T,isEIP1559Compatible:y,provider:x}),getAddress:()=>{return N?N.getAddress():void 0},getBalance:HT(T).getBalance,getNetworkParams:tf(T),isApproved:v2({chain:T,provider:x}),sendTransaction:t1({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),signMessage:N?(f)=>N.signMessage(f):void 0,transfer:A2({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),validateAddress:(f)=>rf({address:f})}}function rf({address:T}){try{return iT(T),!0}catch{return!1}}function ey(T){return T instanceof E2}function RT(T,x,N){return new j1(T,h1.from(x),N)}function af({provider:T}){return function(N,y){return new j1(N,h1.from(y),T)}}function sf({abi:T,funcName:x}){let N=T.find((y)=>y.name===x);if(!N)throw new o("toolbox_evm_no_abi_fragment",{funcName:x});return N.stateMutability&&D2.includes(N.stateMutability)}function o1(T){return iT(T)}function yT(T){return function({value:N,...y}){if(!ey(T))throw new o("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:f,gasPrice:G,maxFeePerGas:L,maxPriorityFeePerGas:X,..._}=y;return T.send("eth_sendTransaction",[{..._,value:UT(BigInt(N||0))}])}}function p1(T,x){let N=TT(T,x);if(N)return iT(N.toLowerCase());throw new o("toolbox_evm_invalid_gas_asset_address")}function TT({chain:T,symbol:x,ticker:N},y){try{let f=T===qy.BinanceSmartChain&&x==="BNB"&&N==="BNB",G=T===y&&x===y&&N===y,L=S2.includes(T)&&x==="ETH"&&N==="ETH";if(G||f||L)return ef[y];return iT(x.slice(N.length+1).replace(/^0X/,""))}catch{return null}}function uy({provider:T}){return async({contractAddress:x,abi:N,funcName:y,funcParams:f=[],txOverrides:G})=>RT(x,N,T).getFunction(y).populateTransaction(...f.concat(G).filter((L)=>typeof L<"u"))}function by({chain:T,provider:x,isEIP1559Compatible:N=!0}){return k2(T).with(qy.Gnosis,()=>{return async function(){try{let{gasPrice:f,maxPriorityFeePerGas:G}=await x.getFeeData();if(!f||G===null)throw new o("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:_y(f,b.Average),maxPriorityFeePerGas:_y(G,b.Average)},[b.Fast]:{maxFeePerGas:_y(f,b.Fast),maxPriorityFeePerGas:_y(G,b.Fast)},[b.Fastest]:{maxFeePerGas:_y(f,b.Fastest),maxPriorityFeePerGas:_y(G,b.Fastest)}}}catch(f){throw new o("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).with(qy.Arbitrum,()=>{return async function(){try{let{gasPrice:f}=await x.getFeeData();if(!f)throw new o("toolbox_evm_no_fee_data");return{[b.Average]:{gasPrice:f},[b.Fast]:{gasPrice:f},[b.Fastest]:{gasPrice:f}}}catch(f){throw new o("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:f,maxPriorityFeePerGas:G,gasPrice:L}=await x.getFeeData();if(N){if(f===null||G===null)throw new o("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:f,maxPriorityFeePerGas:G},[b.Fast]:{maxFeePerGas:_y(f,b.Fast),maxPriorityFeePerGas:_y(G,b.Fast)},[b.Fastest]:{maxFeePerGas:_y(f,b.Fastest),maxPriorityFeePerGas:_y(G,b.Fastest)}}}if(!L)throw new o("toolbox_evm_no_gas_price");return{[b.Average]:{gasPrice:L},[b.Fast]:{gasPrice:_y(L,b.Fast)},[b.Fastest]:{gasPrice:_y(L,b.Fastest)}}}catch(f){throw new o("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}})}function y0({provider:T,isEIP1559Compatible:x,signer:N,chain:y}){return async function({callProvider:G,contractAddress:L,abi:X,funcName:_,funcParams:Z=[],txOverrides:q={},feeOption:Q=b.Fast}){let J=G||T;if(!L)throw new o("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let B=sf({abi:X,funcName:_});if(B&&ey(J)&&N){let M=uy({chain:y,provider:J}),I=q?.from||await N?.getAddress(),O=await M({abi:X,contractAddress:L,funcName:_,funcParams:Z,txOverrides:{...q,from:I}});return yT(J)(O)}let Y=RT(L,X,J);if(B){if(!N)throw new o("toolbox_evm_no_signer");let M=q?.from||await N.getAddress();if(!M)throw new o("toolbox_evm_no_signer_address");let I=Y.connect(N),O=by({chain:y,isEIP1559Compatible:x,provider:T}),{maxFeePerGas:l,maxPriorityFeePerGas:S,gasPrice:F}=(await O())[Q],j=await Y.getFunction(_).estimateGas(...Z,q),d=await I[_](...Z,{...q,gasLimit:j,gasPrice:F,maxFeePerGas:l,maxPriorityFeePerGas:S,nonce:q?.nonce||await J.getTransactionCount(M)});return typeof d?.hash==="string"?d?.hash:d}let W=await Y[_]?.(...Z);return typeof W?.hash==="string"?W?.hash:W}}function m1({provider:T,chain:x}){return function({assetAddress:y,spenderAddress:f,from:G}){return y0({chain:x,isEIP1559Compatible:!0,provider:T})({abi:MT,contractAddress:y,funcName:"allowance",funcParams:[G,f]})}}function v2({provider:T,chain:x}){return async function({assetAddress:y,spenderAddress:f,from:G,amount:L=IT}){let X=await m1({chain:x,provider:T})({assetAddress:y,from:G,spenderAddress:f});return dT.fromBigInt(X).gte(dT.fromBigInt(BigInt(L)))}}function l2({signer:T,isEIP1559Compatible:x=!0,provider:N,chain:y}){return async function({assetAddress:G,spenderAddress:L,feeOptionKey:X=b.Fast,amount:_,gasLimitFallback:Z,from:q,nonce:Q}){let J=[L,BigInt(_||IT)],B=await T?.getAddress()||q,Y={abi:MT,contractAddress:G,funcName:"approve",funcParams:J,signer:T,txOverrides:{from:B}};if(ey(N)){let M=uy({chain:y,provider:N}),I=yT(N),O=await M(Y);return I(O)}return y0({chain:y,isEIP1559Compatible:x,provider:N,signer:T})({...Y,feeOption:X,funcParams:J,txOverrides:{from:B,gasLimit:Z?BigInt(Z.toString()):void 0,nonce:Q}})}}function A2({signer:T,isEIP1559Compatible:x=!0,provider:N}){return async function({assetValue:f,memo:G,recipient:L,feeOptionKey:X=b.Fast,sender:_,...Z}){let{hexlify:q,toUtf8Bytes:Q}=await import("ethers"),J=f.getBaseValue("bigint"),B=f.chain,Y=_||await T?.getAddress(),W=t1({chain:B,isEIP1559Compatible:x,provider:N,signer:T});if(!Y)throw new o("toolbox_evm_no_from_address");if(f.isGasAsset){let F={...Z,data:q(Q(G||"")),feeOptionKey:X,from:Y,to:L,value:J};return W(F)}if(!TT(f,B))throw new o("toolbox_evm_no_contract_address");let{maxFeePerGas:I,maxPriorityFeePerGas:O,gasPrice:l}=(await by({chain:B,isEIP1559Compatible:x,provider:N})())[X],S=await df({chain:B,provider:N,signer:T})({assetValue:f,data:q(Q(G||"")),gasPrice:l,maxFeePerGas:I,maxPriorityFeePerGas:O,memo:G,recipient:L,sender:Y});return W(S)}}function c1({provider:T,signer:x}){return function({contractAddress:y,abi:f,funcName:G,funcParams:L=[],txOverrides:X}){if(!y)throw new o("toolbox_evm_no_contract_address");let _=RT(y,f,T);return x?_.connect(x).getFunction(G).estimateGas(...L,X):_.getFunction(G).estimateGas(...L,X)}}function F2({provider:T,signer:x}){return async function({assetValue:y,recipient:f,memo:G,data:L,sender:X,funcName:_,funcParams:Z,txOverrides:q}){let Q=y.bigIntValue,J=y.isGasAsset?null:TT(y,y.chain);if(J&&_)return c1({provider:T,signer:x})({abi:MT,contractAddress:J,funcName:_,funcParams:Z,txOverrides:q});let{hexlify:B,toUtf8Bytes:Y}=await import("ethers");return T.estimateGas({data:L?L:G?B(Y(G)):void 0,from:X,to:f,value:Q})}}function t1({provider:T,signer:x,isEIP1559Compatible:N=!0,chain:y}){return async function({feeOptionKey:G=b.Fast,...L}){let{from:X,to:_,data:Z,value:q,...Q}=L;if(!x)throw new o("toolbox_evm_no_signer");if(!_)throw new o("toolbox_evm_no_to_address");let J={...Q,data:Z||"0x",from:X,to:_,value:BigInt(q||0)};if(ey(T))return yT(T)(J);let B=X||await x.getAddress(),Y=L.nonce||await T.getTransactionCount(B),W=(await T.getNetwork()).chainId,M=V2(J)||N,I=by({chain:y,isEIP1559Compatible:N,provider:T}),O=M&&!(J.maxFeePerGas&&J.maxPriorityFeePerGas)||!J.gasPrice?Object.entries((await I())[G]).reduce((S,[F,j])=>({...S,[F]:UT(BigInt(j))}),{}):{},l;try{l=UT(J.gasLimit||await T.estimateGas(J)*11n/10n)}catch(S){throw new o("toolbox_evm_error_estimating_gas_limit",{error:S})}try{let S={...J,chainId:W,gasLimit:l,nonce:Y,type:M?2:0,...O};try{return(await x.sendTransaction(S)).hash}catch{let F=await x.signTransaction({...S,from:B});return(await T.broadcastTransaction(F)).hash}}catch(S){throw new o("toolbox_evm_error_sending_transaction",{error:S})}}}function df({provider:T,signer:x}){return async function({assetValue:y,memo:f,recipient:G,data:L,sender:X,maxFeePerGas:_,maxPriorityFeePerGas:Z,gasPrice:q,...Q}){let J=y.getBaseValue("bigint"),B=y.chain,Y=X||await x?.getAddress();if(!Y)throw new o("toolbox_evm_no_from_address");if(O2(y)){let{hexlify:I,toUtf8Bytes:O}=await import("ethers");return{...Q,data:L||I(O(f||"")),from:Y,to:G,value:J}}let W=TT(y,B);if(!W)throw new o("toolbox_evm_no_contract_address");return uy({chain:y.chain,provider:T})({abi:MT,contractAddress:W,funcName:"transfer",funcParams:[G,J],txOverrides:{from:Y,gasPrice:q,maxFeePerGas:_,maxPriorityFeePerGas:Z}})}}function $2({provider:T,signer:x,chain:N}){return async function({assetAddress:f,spenderAddress:G,amount:L,from:X}){let _=await x?.getAddress()||X,Z=uy({chain:N,provider:T}),q=["bigint","number"].includes(typeof L)?L:L||IT;return await Z({abi:MT,contractAddress:f,funcName:"approve",funcParams:[G,BigInt(q)],txOverrides:{from:_}})}}function K2({provider:T,isEIP1559Compatible:x=!0}){return async function({feeOption:y=b.Fast,chain:f,...G}){let X=await by({chain:f,isEIP1559Compatible:x,provider:T})(),_=await T.estimateGas(G),Z=w2.from({chain:f}),{gasPrice:q,maxFeePerGas:Q,maxPriorityFeePerGas:J}=X[y];if(!x&&q)return Z.set(dT.fromBigInt(q*_,Z.decimal));if(Q&&J){let B=(Q+J)*_;return Z.set(dT.fromBigInt(B,Z.decimal))}throw new o("toolbox_evm_no_gas_price")}}var IT,D2,P2,ef,S2,V2=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var rT=k(()=>{gT();ay();IT=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");D2=["payable","nonpayable"];P2=C2.reduce((T,x)=>{return T[x]="0x0000000000000000000000000000000000000000",T},{}),ef={...P2,[qy.Optimism]:"0x4200000000000000000000000000000000000042",[qy.Polygon]:"0x0000000000000000000000000000000000001010"},S2=[qy.Arbitrum,qy.Aurora,qy.Base,qy.Optimism]});import{Chain as c,FeeOption as n2,getRPCUrl as u2}from"@swapkit/helpers";import{match as b2,P as g1}from"ts-pattern";async function aT({provider:T,...x}){let N=await t(c.Ethereum)({provider:T,...x});async function y(f,G="0x5ba1e12693dc8f9c48aad8770482f4739beed696",L="aggregate",X=n2.Fast){let _=await N.createContractTxObject({abi:u1,contractAddress:G,funcName:L,funcParams:[f]});return N.sendTransaction({..._,feeOptionKey:X})}return{...N,multicall:y}}function t(T){return async function({provider:N,...y}){let{HDNodeWallet:f}=await import("ethers"),G=await u2(T),L=N||await ny(T,G),X=gf(T),_=b2(y).with({phrase:g1.string},({phrase:q})=>f.fromPhrase(q).connect(L)).with({signer:g1.any},({signer:q})=>q).otherwise(()=>{return});return sy({chain:T,isEIP1559Compatible:X,provider:L,signer:_})}}var sT,eT,yf,Tf,ff,xf,d1,Gf,Nf,Lf,Xf,_f,Zf,wT,Jf,qf,Qf,Bf;var T0=k(()=>{b1();ay();rT();sT=t(c.Arbitrum),eT=t(c.Aurora),yf=t(c.Avalanche),Tf=t(c.Base),ff=t(c.Berachain),xf=t(c.BinanceSmartChain),d1=t(c.Botanix),Gf=t(c.Core),Nf=t(c.Corn),Lf=t(c.Cronos),Xf=t(c.Gnosis),_f=t(c.Hyperevm),Zf=t(c.Polygon),wT=t(c.Sonic),Jf=t(c.Unichain),qf=t(c.XLayer),Qf=t(c.Monad),Bf=t(c.MegaETH)});var i1;var r1=k(()=>{i1=[{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"}]});import{applyFeeMultiplierToBigInt as fT,Chain as a1,FeeOption as Uy,getRPCUrl as h2,SwapKitError as f0}from"@swapkit/helpers";import{Contract as o2,HDNodeWallet as p2}from"ethers";import{match as m2,P as s1}from"ts-pattern";function x0(T){return new o2(c2,i1,T)}function e1(T){return async function(){let N=x0(T);if(N&&"l1BaseFee"in N)return await N?.l1BaseFee();return}}function y5(T){return async function({from:N,to:y,nonce:f,...G}){let{Transaction:L}=await import("ethers");if(!y)throw new f0("toolbox_evm_invalid_transaction",{error:"Missing to address"});return L.from({...G,authorizationList:G.authorizationList,nonce:f?f:N?await T.getTransactionCount(N):0,to:y}).serialized}}function T5(T){return async function(N){let y=x0(T),f=await y5(T)(N);if(y&&"getL1Fee"in y)return y.getL1Fee(f)}}function f5(T){return async function(N){let y=await T.send("eth_gasPrice",[]),f=await T.estimateGas(N);return y.mul(f)}}function t2(T){return async function(N){let y=await T5(T)(N),f=await f5(T)(N);return y.add(f)}}function g2(T){return async function(N){let y=x0(T),f=await y5(T)(N);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(f)}}async function d2(T){try{let{maxFeePerGas:x,maxPriorityFeePerGas:N,gasPrice:y}=await T.getFeeData(),f=await e1(T)(),G=y;if(!(x&&N))throw new f0("toolbox_evm_no_fee_data");return{[Uy.Average]:{gasPrice:G,l1GasPrice:f,maxFeePerGas:x,maxPriorityFeePerGas:N},[Uy.Fast]:{gasPrice:fT(G,Uy.Fast),l1GasPrice:fT(f||0n,Uy.Fast),maxFeePerGas:x,maxPriorityFeePerGas:fT(N,Uy.Fast)},[Uy.Fastest]:{gasPrice:fT(G,Uy.Fastest),l1GasPrice:fT(f||0n,Uy.Fastest),maxFeePerGas:x,maxPriorityFeePerGas:fT(N,Uy.Fastest)}}}catch(x){throw new f0("toolbox_evm_gas_estimation_error",{error:x.msg??x.toString()})}}async function Yf({provider:T,...x}){let N=a1.Optimism,y=await h2(N),f=T||await ny(N,y),G=m2(x).with({phrase:s1.string},({phrase:_})=>p2.fromPhrase(_).connect(f)).with({signer:s1.any},({signer:_})=>_).otherwise(()=>{return}),L=sy({provider:f,signer:G}),X=e1(f);return{...L,estimateGasPrices:d2(f),estimateL1Gas:g2(f),estimateL1GasCost:T5(f),estimateL2GasCost:f5(f),estimateTotalGasCost:t2(f),getBalance:HT(a1.Optimism).getBalance,getL1GasPrice:X}}var c2="0x420000000000000000000000000000000000000f";var G0=k(()=>{gT();r1();ay();rT()});var G5={};yy(G5,{toChecksumAddress:()=>o1,isStateChangingCall:()=>sf,isBrowserProvider:()=>ey,getTokenAddress:()=>TT,getEvmToolbox:()=>x5,getEstimateGasPrices:()=>by,getEIP1193SendTransaction:()=>yT,getCreateContractTxObject:()=>uy,getCreateContract:()=>af,getChecksumAddressFromAsset:()=>p1,evmValidateAddress:()=>rf,createContract:()=>RT,XLayerToolbox:()=>qf,UNIToolbox:()=>Jf,SONICToolbox:()=>wT,OPToolbox:()=>Yf,MONADToolbox:()=>Qf,MEGAETHToolbox:()=>Bf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>Zf,HYPEREVMToolbox:()=>_f,GNOToolbox:()=>Xf,ETHToolbox:()=>aT,ContractAddress:()=>ef,CROToolbox:()=>Lf,CORNToolbox:()=>Nf,COREToolbox:()=>Gf,BotanixToolbox:()=>d1,BaseEVMToolbox:()=>sy,BSCToolbox:()=>xf,BERAToolbox:()=>ff,BASEToolbox:()=>Tf,AVAXToolbox:()=>yf,AURORAToolbox:()=>eT,ARBToolbox:()=>sT});import{Chain as m}from"@swapkit/helpers";import{match as i2}from"ts-pattern";async function x5(T,x){let N={...x,provider:x?.provider||await ny(T)};return i2(T).returnType().with(m.Arbitrum,()=>sT(N)).with(m.Aurora,()=>eT(N)).with(m.Avalanche,()=>yf(N)).with(m.Base,()=>Tf(N)).with(m.Berachain,()=>ff(N)).with(m.BinanceSmartChain,()=>xf(N)).with(m.Botanix,()=>wT(N)).with(m.Core,()=>Gf(N)).with(m.Corn,()=>Nf(N)).with(m.Cronos,()=>Lf(N)).with(m.Ethereum,()=>aT(N)).with(m.Gnosis,()=>Xf(N)).with(m.Hyperevm,()=>_f(N)).with(m.Optimism,()=>Yf(N)).with(m.Polygon,()=>Zf(N)).with(m.Sonic,()=>wT(N)).with(m.Unichain,()=>Jf(N)).with(m.XLayer,()=>qf(N)).with(m.Monad,()=>Qf(N)).with(m.MegaETH,()=>Bf(N)).exhaustive()}var N0=k(()=>{ay();T0();G0();rT();T0();G0()});var N5;var L5=k(()=>{((N)=>{N.Test="goerli";N.Main="homestead"})(N5||={})});var X5={};yy(X5,{toHexString:()=>UT,toChecksumAddress:()=>o1,isStateChangingCall:()=>sf,isBrowserProvider:()=>ey,getTokenAddress:()=>TT,getProvider:()=>ny,getNetworkParams:()=>tf,getIsEIP1559Compatible:()=>gf,getEvmToolbox:()=>x5,getEvmApi:()=>HT,getEstimateGasPrices:()=>by,getEIP1193SendTransaction:()=>yT,getCreateContractTxObject:()=>uy,getCreateContract:()=>af,getChecksumAddressFromAsset:()=>p1,evmValidateAddress:()=>rf,createCustomEvmApi:()=>U2,createContract:()=>RT,XLayerToolbox:()=>qf,UNIToolbox:()=>Jf,SONICToolbox:()=>wT,OPToolbox:()=>Yf,MONADToolbox:()=>Qf,MEGAETHToolbox:()=>Bf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>Zf,HYPEREVMToolbox:()=>_f,GNOToolbox:()=>Xf,EthNetwork:()=>N5,ETHToolbox:()=>aT,ContractAddress:()=>ef,CROToolbox:()=>Lf,CORNToolbox:()=>Nf,COREToolbox:()=>Gf,BotanixToolbox:()=>d1,BaseEVMToolbox:()=>sy,BSCToolbox:()=>xf,BERAToolbox:()=>ff,BASEToolbox:()=>Tf,AVAXToolbox:()=>yf,AURORAToolbox:()=>eT,ARBToolbox:()=>sT});var _5=k(()=>{gT();ay();N0();L5()});import{AssetValue as OT,Chain as xT,getChainConfig as r2,SwapKitError as CT}from"@swapkit/helpers";import{match as a2,P as Z5}from"ts-pattern";async function L0(){let{BlockfrostProvider:T}=await import("@meshsdk/core"),x="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS";return new T("mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS")}async function e2(T){try{let{MeshWallet:x}=await import("@meshsdk/core"),N=await L0(),y=new x({fetcher:N,key:{address:T,type:"address"},networkId:1});await y.init();let f=await y.getBalance(),G=[];for(let L of f)if(L.unit===s2){let{baseDecimal:X}=r2(xT.Cardano);G.push(OT.from({chain:xT.Cardano,fromBaseDecimal:X,value:L.quantity}))}else G.push(OT.from({asset:`${xT.Cardano}.${L.unit}`,value:L.quantity}));if(G.length===0)return[OT.from({chain:xT.Cardano})];return G}catch(x){let N=x instanceof Error?x.message:String(x);return console.error(`Cardano balance fetch error: ${N}`),[OT.from({chain:xT.Cardano})]}}async function J5(){let{deserializeAddress:T}=await import("@meshsdk/core");return(x)=>{try{return T(x),!0}catch{return!1}}}async function yG(T){let x=await J5(),N=await a2(T).with({phrase:Z5.string},async({phrase:q})=>{let{MeshWallet:Q}=await import("@meshsdk/core"),J=await L0(),B=new Q({fetcher:J,key:{type:"mnemonic",words:q.split(" ")},networkId:1,submitter:J});return await B.init(),B}).with({signer:Z5.any},({signer:q})=>q).otherwise(()=>{return}),y=N&&"getChangeAddress"in N?await N.getChangeAddress():"";function f(){return y||""}function G(q){let Q=q||f();if(!Q)throw new CT("core_wallet_connection_not_found");return e2(Q)}function L(){return Promise.resolve(OT.from({chain:xT.Cardano,value:"0.01"}))}async function X({recipient:q,assetValue:Q,memo:J}){if(!N||!("getChangeAddress"in N))throw new CT("core_wallet_connection_not_found");let{Transaction:B}=await import("@meshsdk/core"),[,Y]=Q.symbol.split("-");if(!Q.isGasAsset&&!Y)throw new CT("core_wallet_connection_not_found");let W=new B({initiator:N});if(W.sendAssets({address:q},[{quantity:Q.getBaseValue("string"),unit:Q.isGasAsset?"lovelace":Q.symbol}]),J)W.setMetadata(0,J);let M=await W.build();return{tx:W,unsignedTx:M}}function _(q){if(!N||!("getChangeAddress"in N))throw new CT("core_wallet_connection_not_found");return N.signTx(q)}async function Z({recipient:q,assetValue:Q,memo:J}){if(!N||!("getChangeAddress"in N))throw new CT("core_wallet_connection_not_found");let{unsignedTx:B}=await X({assetValue:Q,memo:J,recipient:q}),Y=await _(B);return await(await L0()).submitTx(Y)}return{createTransaction:X,estimateTransactionFee:L,getAddress:f,getBalance:G,signTransaction:_,transfer:Z,validateAddress:x}}var s2="lovelace";var q5=()=>{};var X0={};yy(X0,{getCardanoToolbox:()=>yG,getCardanoAddressValidator:()=>J5});var _0=k(()=>{q5()});import{base64 as Q5,bech32 as zf}from"@scure/base";import{SwapKitError as TG}from"@swapkit/helpers";import{fromByteArray as fG,toByteArray as xG}from"base64-js";function ET(T){return Q5.encode(Uint8Array.from(zf.fromWords(zf.decode(T).words)))}function kT(T,x="thor"){return zf.encode(x,zf.toWords(Q5.decode(T)))}function GG(T){return fG(T)}function NG(T){if(!T.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new TG("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return xG(T)}var Z0=()=>{};import{AssetValue as J0,Chain as K,getChainConfig as Qy,getRPCUrl as LG,SwapKitError as B5}from"@swapkit/helpers";function Iy(T){switch(T){case K.Maya:return{amount:[],gas:"10000000000"};case K.THORChain:return{amount:[],gas:"500000000"};case K.Kujira:return W5;case K.Noble:return H5;default:return z5}}async function Ry(T){let x=await import("@cosmjs/stargate"),N=x.StargateClient??x.default?.StargateClient,y=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return N.connect({headers:y,url:T})}async function NT(T,x,N={}){let y=await import("@cosmjs/stargate"),f=y.SigningStargateClient??y.default?.SigningStargateClient,G=y.GasPrice??y.default?.GasPrice,L=typeof N==="string"?N:"0.0003uatom",X=typeof N==="string"?{}:N;return f.connectWithSigner(T,x,{gasPrice:G.fromString(L),...X})}async function Q0(T,x){let N=await import("@cosmjs/stargate");return(N.SigningStargateClient??N.default?.SigningStargateClient).offline(T,x)}async function B0({sender:T,recipient:x,assetValue:N,memo:y="",feeRate:f,sequence:G,accountNumber:L}){let{chain:X,chainId:_}=N,Z=await LG(X),Q=await(await Ry(Z)).getAccount(T);if(!Q)throw new B5("toolbox_cosmos_account_not_found",{sender:T});let J=J0.from({chain:X}),B=My(J.symbol),Y=Iy(X),W=B&&f?{amount:[{amount:f.toString(),denom:B}],gas:Y.gas}:Y,M={amount:[{amount:N.getBaseValue("string"),denom:My(N.symbol)}],fromAddress:T,toAddress:x};return{accountNumber:L??Q.accountNumber,chainId:_,fee:W,memo:y,msgs:[{typeUrl:XG(X),value:M}],sequence:G??Q.sequence}}var q0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",Y5="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",z5,W5,H5,My=(T,x=!1)=>{if(x)return T.toLowerCase();switch(T){case"uUSK":case"USK":return q0;case"uYUM":case"YUM":return Y5;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return T}},GT=({symbol:T,chain:x})=>{if(x===K.Maya)return(T.toUpperCase()!=="CACAO"?T:`${K.Maya}.${T}`).toUpperCase();if(x===K.THORChain)return(["RUNE","TCY","RUJI"].includes(T.toUpperCase())?`${K.THORChain}.${T}`:T).toUpperCase();return My(T,!1)},XG=(T)=>{switch(T){case K.Maya:case K.THORChain:return"/types.MsgSend";case K.Cosmos:case K.Kujira:case K.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new B5("toolbox_cosmos_not_supported",{chain:T})}},_G,Y0=(T,x)=>{let N=_G[T.toLowerCase()];if(!N)return J0.from({asset:T,fromBaseDecimal:8,value:x});let{chain:y,asset:f,decimals:G}=N,L=y?{chain:y}:{asset:f};return J0.from({...L,fromBaseDecimal:G,value:x})};var DT=k(()=>{z5={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},W5={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},H5={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};_G={atom:{chain:K.Cosmos,decimals:Qy(K.Cosmos).baseDecimal},cacao:{chain:K.Maya,decimals:10},kuji:{chain:K.Kujira,decimals:Qy(K.Kujira).baseDecimal},maya:{asset:`${K.Maya}.${K.Maya}`,decimals:4},rune:{chain:K.THORChain,decimals:Qy(K.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Qy(K.THORChain).baseDecimal},uatom:{chain:K.Cosmos,decimals:Qy(K.Cosmos).baseDecimal},ukuji:{chain:K.Kujira,decimals:Qy(K.Kujira).baseDecimal},usdc:{chain:K.Noble,decimals:Qy(K.Noble).baseDecimal},uusdc:{chain:K.Noble,decimals:Qy(K.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Qy(K.THORChain).baseDecimal},[q0.toLowerCase()]:{asset:`${K.Kujira}.USK`,decimals:Qy(K.Kujira).baseDecimal}}});var U5={};yy(U5,{$root:()=>w});import r from"protobufjs/minimal.js";var P,Zy,E,w;var M5=k(()=>{P=r.Reader,Zy=r.Writer,E=r.util,w=r.roots.default||(r.roots.default={});w.common=(()=>{let T={};return T.Asset=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.chain="",x.prototype.symbol="",x.prototype.ticker="",x.prototype.synth=!1,x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))f.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))f.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))f.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))f.uint32(32).bool(y.synth);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Asset;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.chain=y.string();break;case 2:L.symbol=y.string();break;case 3:L.ticker=y.string();break;case 4:L.synth=y.bool();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.chain!=null&&y.hasOwnProperty("chain")){if(!E.isString(y.chain))return"chain: string expected"}if(y.symbol!=null&&y.hasOwnProperty("symbol")){if(!E.isString(y.symbol))return"symbol: string expected"}if(y.ticker!=null&&y.hasOwnProperty("ticker")){if(!E.isString(y.ticker))return"ticker: string expected"}if(y.synth!=null&&y.hasOwnProperty("synth")){if(typeof y.synth!=="boolean")return"synth: boolean expected"}return null},x.fromObject=function(y){if(y instanceof w.common.Asset)return y;let f=new w.common.Asset;if(y.chain!=null)f.chain=String(y.chain);if(y.symbol!=null)f.symbol=String(y.symbol);if(y.ticker!=null)f.ticker=String(y.ticker);if(y.synth!=null)f.synth=Boolean(y.synth);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.defaults)G.chain="",G.symbol="",G.ticker="",G.synth=!1;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.symbol!=null&&y.hasOwnProperty("symbol"))G.symbol=y.symbol;if(y.ticker!=null&&y.hasOwnProperty("ticker"))G.ticker=y.ticker;if(y.synth!=null&&y.hasOwnProperty("synth"))G.synth=y.synth;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.Coin=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.asset=null,x.prototype.amount="",x.prototype.decimals=E.Long?E.Long.fromBits(0,0,!1):0,x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))w.common.Asset.encode(y.asset,f.uint32(10).fork()).ldelim();if(y.amount!=null&&Object.hasOwnProperty.call(y,"amount"))f.uint32(18).string(y.amount);if(y.decimals!=null&&Object.hasOwnProperty.call(y,"decimals"))f.uint32(24).int64(y.decimals);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Coin;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.asset=w.common.Asset.decode(y,y.uint32());break;case 2:L.amount=y.string();break;case 3:L.decimals=y.int64();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.asset!=null&&y.hasOwnProperty("asset")){let f=w.common.Asset.verify(y.asset);if(f)return"asset."+f}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!E.isString(y.amount))return"amount: string expected"}if(y.decimals!=null&&y.hasOwnProperty("decimals")){if(!E.isInteger(y.decimals)&&!(y.decimals&&E.isInteger(y.decimals.low)&&E.isInteger(y.decimals.high)))return"decimals: integer|Long expected"}return null},x.fromObject=function(y){if(y instanceof w.common.Coin)return y;let f=new w.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");f.asset=w.common.Asset.fromObject(y.asset)}if(y.amount!=null)f.amount=String(y.amount);if(y.decimals!=null){if(E.Long)(f.decimals=E.Long.fromValue(y.decimals)).unsigned=!1;else if(typeof y.decimals==="string")f.decimals=Number.parseInt(y.decimals,10);else if(typeof y.decimals==="number")f.decimals=y.decimals;else if(typeof y.decimals==="object")f.decimals=new E.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber()}return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.defaults)if(G.asset=null,G.amount="",E.Long){let L=new E.Long(0,0,!1);G.decimals=f.longs===String?L.toString():f.longs===Number?L.toNumber():L}else G.decimals=f.longs===String?"0":0;if(y.asset!=null&&y.hasOwnProperty("asset"))G.asset=w.common.Asset.toObject(y.asset,f);if(y.amount!=null&&y.hasOwnProperty("amount"))G.amount=y.amount;if(y.decimals!=null&&y.hasOwnProperty("decimals"))if(typeof y.decimals==="number")G.decimals=f.longs===String?String(y.decimals):y.decimals;else G.decimals=f.longs===String?E.Long.prototype.toString.call(y.decimals):f.longs===Number?new E.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber():y.decimals;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.PubKeySet=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.secp256k1="",x.prototype.ed25519="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))f.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))f.uint32(18).string(y.ed25519);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.PubKeySet;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.secp256k1=y.string();break;case 2:L.ed25519=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1")){if(!E.isString(y.secp256k1))return"secp256k1: string expected"}if(y.ed25519!=null&&y.hasOwnProperty("ed25519")){if(!E.isString(y.ed25519))return"ed25519: string expected"}return null},x.fromObject=function(y){if(y instanceof w.common.PubKeySet)return y;let f=new w.common.PubKeySet;if(y.secp256k1!=null)f.secp256k1=String(y.secp256k1);if(y.ed25519!=null)f.ed25519=String(y.ed25519);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.defaults)G.secp256k1="",G.ed25519="";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1"))G.secp256k1=y.secp256k1;if(y.ed25519!=null&&y.hasOwnProperty("ed25519"))G.ed25519=y.ed25519;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.Tx=(()=>{function x(N){if(this.coins=[],this.gas=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.id="",x.prototype.chain="",x.prototype.fromAddress="",x.prototype.toAddress="",x.prototype.coins=E.emptyArray,x.prototype.gas=E.emptyArray,x.prototype.memo="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))f.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))f.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))f.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))f.uint32(34).string(y.toAddress);if(y.coins?.length)for(let G=0;G<y.coins.length;++G)w.common.Coin.encode(y.coins[G],f.uint32(42).fork()).ldelim();if(y.gas?.length)for(let G=0;G<y.gas.length;++G)w.common.Coin.encode(y.gas[G],f.uint32(50).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))f.uint32(58).string(y.memo);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Tx;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.id=y.string();break;case 2:L.chain=y.string();break;case 3:L.fromAddress=y.string();break;case 4:L.toAddress=y.string();break;case 5:if(!L.coins?.length)L.coins=[];L.coins.push(w.common.Coin.decode(y,y.uint32()));break;case 6:if(!L.gas?.length)L.gas=[];L.gas.push(w.common.Coin.decode(y,y.uint32()));break;case 7:L.memo=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.id!=null&&y.hasOwnProperty("id")){if(!E.isString(y.id))return"id: string expected"}if(y.chain!=null&&y.hasOwnProperty("chain")){if(!E.isString(y.chain))return"chain: string expected"}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!E.isString(y.fromAddress))return"fromAddress: string expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!E.isString(y.toAddress))return"toAddress: string expected"}if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let f=0;f<y.coins.length;++f){let G=w.common.Coin.verify(y.coins[f]);if(G)return"coins."+G}}if(y.gas!=null&&y.hasOwnProperty("gas")){if(!Array.isArray(y.gas))return"gas: array expected";for(let f=0;f<y.gas.length;++f){let G=w.common.Coin.verify(y.gas[f]);if(G)return"gas."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!E.isString(y.memo))return"memo: string expected"}return null},x.fromObject=function(y){if(y instanceof w.common.Tx)return y;let f=new w.common.Tx;if(y.id!=null)f.id=String(y.id);if(y.chain!=null)f.chain=String(y.chain);if(y.fromAddress!=null)f.fromAddress=String(y.fromAddress);if(y.toAddress!=null)f.toAddress=String(y.toAddress);if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Tx.coins: array expected");f.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Tx.coins: object expected");f.coins[G]=w.common.Coin.fromObject(y.coins[G])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");f.gas=[];for(let G=0;G<y.gas.length;++G){if(typeof y.gas[G]!=="object")throw TypeError(".common.Tx.gas: object expected");f.gas[G]=w.common.Coin.fromObject(y.gas[G])}}if(y.memo!=null)f.memo=String(y.memo);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.arrays||f.defaults)G.coins=[],G.gas=[];if(f.defaults)G.id="",G.chain="",G.fromAddress="",G.toAddress="",G.memo="";if(y.id!=null&&y.hasOwnProperty("id"))G.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=y.toAddress;if(y.coins?.length){G.coins=[];for(let L=0;L<y.coins.length;++L)G.coins[L]=w.common.Coin.toObject(y.coins[L],f)}if(y.gas?.length){G.gas=[];for(let L=0;L<y.gas.length;++L)G.gas[L]=w.common.Coin.toObject(y.gas[L],f)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.Fee=(()=>{function x(N){if(this.coins=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.coins=E.emptyArray,x.prototype.poolDeduct="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)w.common.Coin.encode(y.coins[G],f.uint32(10).fork()).ldelim();if(y.poolDeduct!=null&&Object.hasOwnProperty.call(y,"poolDeduct"))f.uint32(18).string(y.poolDeduct);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Fee;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:if(!L.coins?.length)L.coins=[];L.coins.push(w.common.Coin.decode(y,y.uint32()));break;case 2:L.poolDeduct=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let f=0;f<y.coins.length;++f){let G=w.common.Coin.verify(y.coins[f]);if(G)return"coins."+G}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!E.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},x.fromObject=function(y){if(y instanceof w.common.Fee)return y;let f=new w.common.Fee;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Fee.coins: array expected");f.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Fee.coins: object expected");f.coins[G]=w.common.Coin.fromObject(y.coins[G])}}if(y.poolDeduct!=null)f.poolDeduct=String(y.poolDeduct);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.arrays||f.defaults)G.coins=[];if(f.defaults)G.poolDeduct="";if(y.coins?.length){G.coins=[];for(let L=0;L<y.coins.length;++L)G.coins[L]=w.common.Coin.toObject(y.coins[L],f)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))G.poolDeduct=y.poolDeduct;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.ProtoUint=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.value="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))f.uint32(10).string(y.value);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.ProtoUint;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.value=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.value!=null&&y.hasOwnProperty("value")){if(!E.isString(y.value))return"value: string expected"}return null},x.fromObject=function(y){if(y instanceof w.common.ProtoUint)return y;let f=new w.common.ProtoUint;if(y.value!=null)f.value=String(y.value);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.defaults)G.value="";if(y.value!=null&&y.hasOwnProperty("value"))G.value=y.value;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T})();w.types=(()=>{let T={};return T.MsgDeposit=(()=>{function x(N){if(this.coins=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.coins=E.emptyArray,x.prototype.memo="",x.prototype.signer=E.newBuffer([]),x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)w.common.Coin.encode(y.coins[G],f.uint32(10).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))f.uint32(18).string(y.memo);if(y.signer!=null&&Object.hasOwnProperty.call(y,"signer"))f.uint32(26).bytes(y.signer);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.types.MsgDeposit;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:if(!L.coins?.length)L.coins=[];L.coins.push(w.common.Coin.decode(y,y.uint32()));break;case 2:L.memo=y.string();break;case 3:L.signer=y.bytes();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let f=0;f<y.coins.length;++f){let G=w.common.Coin.verify(y.coins[f]);if(G)return"coins."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!E.isString(y.memo))return"memo: string expected"}if(y.signer!=null&&y.hasOwnProperty("signer")){if(!(y.signer&&typeof y.signer.length==="number"||E.isString(y.signer)))return"signer: buffer expected"}return null},x.fromObject=function(y){if(y instanceof w.types.MsgDeposit)return y;let f=new w.types.MsgDeposit;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".types.MsgDeposit.coins: array expected");f.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");f.coins[G]=w.common.Coin.fromObject(y.coins[G])}}if(y.memo!=null)f.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")E.base64.decode(y.signer,f.signer=E.newBuffer(E.base64.length(y.signer)),0);else if(y.signer.length)f.signer=y.signer}return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.arrays||f.defaults)G.coins=[];if(f.defaults){if(G.memo="",f.bytes===String)G.signer="";else if(G.signer=[],f.bytes!==Array)G.signer=E.newBuffer(G.signer)}if(y.coins?.length){G.coins=[];for(let L=0;L<y.coins.length;++L)G.coins[L]=w.common.Coin.toObject(y.coins[L],f)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))G.signer=f.bytes===String?E.base64.encode(y.signer,0,y.signer.length):f.bytes===Array?Array.prototype.slice.call(y.signer):y.signer;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.MsgSend=(()=>{function x(N){if(this.amount=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.fromAddress=E.newBuffer([]),x.prototype.toAddress=E.newBuffer([]),x.prototype.amount=E.emptyArray,x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))f.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))f.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let G=0;G<y.amount.length;++G)w.cosmos.base.v1beta1.Coin.encode(y.amount[G],f.uint32(26).fork()).ldelim();return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.types.MsgSend;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.fromAddress=y.bytes();break;case 2:L.toAddress=y.bytes();break;case 3:if(!L.amount?.length)L.amount=[];L.amount.push(w.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!(y.fromAddress&&typeof y.fromAddress.length==="number"||E.isString(y.fromAddress)))return"fromAddress: buffer expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!(y.toAddress&&typeof y.toAddress.length==="number"||E.isString(y.toAddress)))return"toAddress: buffer expected"}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!Array.isArray(y.amount))return"amount: array expected";for(let f=0;f<y.amount.length;++f){let G=w.cosmos.base.v1beta1.Coin.verify(y.amount[f]);if(G)return"amount."+G}}return null},x.fromObject=function(y){if(y instanceof w.types.MsgSend)return y;let f=new w.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")E.base64.decode(y.fromAddress,f.fromAddress=E.newBuffer(E.base64.length(y.fromAddress)),0);else if(y.fromAddress.length)f.fromAddress=y.fromAddress}if(y.toAddress!=null){if(typeof y.toAddress==="string")E.base64.decode(y.toAddress,f.toAddress=E.newBuffer(E.base64.length(y.toAddress)),0);else if(y.toAddress.length)f.toAddress=y.toAddress}if(y.amount){if(!Array.isArray(y.amount))throw TypeError(".types.MsgSend.amount: array expected");f.amount=[];for(let G=0;G<y.amount.length;++G){if(typeof y.amount[G]!=="object")throw TypeError(".types.MsgSend.amount: object expected");f.amount[G]=w.cosmos.base.v1beta1.Coin.fromObject(y.amount[G])}}return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.arrays||f.defaults)G.amount=[];if(f.defaults){if(f.bytes===String)G.fromAddress="";else if(G.fromAddress=[],f.bytes!==Array)G.fromAddress=E.newBuffer(G.fromAddress);if(f.bytes===String)G.toAddress="";else if(G.toAddress=[],f.bytes!==Array)G.toAddress=E.newBuffer(G.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=f.bytes===String?E.base64.encode(y.fromAddress,0,y.fromAddress.length):f.bytes===Array?Array.prototype.slice.call(y.fromAddress):y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=f.bytes===String?E.base64.encode(y.toAddress,0,y.toAddress.length):f.bytes===Array?Array.prototype.slice.call(y.toAddress):y.toAddress;if(y.amount?.length){G.amount=[];for(let L=0;L<y.amount.length;++L)G.amount[L]=w.cosmos.base.v1beta1.Coin.toObject(y.amount[L],f)}return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T})();w.cosmos=(()=>{let T={};return T.base=(()=>{let x={};return x.v1beta1=(()=>{let N={};return N.Coin=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))L.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))L.uint32(18).string(G.amount);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.Coin;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.denom=G.string();break;case 2:_.amount=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!E.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!E.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof w.cosmos.base.v1beta1.Coin)return G;let L=new w.cosmos.base.v1beta1.Coin;if(G.denom!=null)L.denom=String(G.denom);if(G.amount!=null)L.amount=String(G.amount);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.denom="",X.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))X.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))X.amount=G.amount;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N.DecCoin=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))L.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))L.uint32(18).string(G.amount);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.DecCoin;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.denom=G.string();break;case 2:_.amount=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!E.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!E.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof w.cosmos.base.v1beta1.DecCoin)return G;let L=new w.cosmos.base.v1beta1.DecCoin;if(G.denom!=null)L.denom=String(G.denom);if(G.amount!=null)L.amount=String(G.amount);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.denom="",X.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))X.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))X.amount=G.amount;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N.IntProto=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.int="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.int!=null&&Object.hasOwnProperty.call(G,"int"))L.uint32(10).string(G.int);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.IntProto;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.int=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.int!=null&&G.hasOwnProperty("int")){if(!E.isString(G.int))return"int: string expected"}return null},y.fromObject=function(G){if(G instanceof w.cosmos.base.v1beta1.IntProto)return G;let L=new w.cosmos.base.v1beta1.IntProto;if(G.int!=null)L.int=String(G.int);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.int="";if(G.int!=null&&G.hasOwnProperty("int"))X.int=G.int;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N.DecProto=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.dec="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.dec!=null&&Object.hasOwnProperty.call(G,"dec"))L.uint32(10).string(G.dec);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.DecProto;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.dec=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.dec!=null&&G.hasOwnProperty("dec")){if(!E.isString(G.dec))return"dec: string expected"}return null},y.fromObject=function(G){if(G instanceof w.cosmos.base.v1beta1.DecProto)return G;let L=new w.cosmos.base.v1beta1.DecProto;if(G.dec!=null)L.dec=String(G.dec);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.dec="";if(G.dec!=null&&G.hasOwnProperty("dec"))X.dec=G.dec;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N})(),x})(),T})()});import{Chain as ZG}from"@swapkit/helpers";async function jy(){let{$root:T}=await Promise.resolve().then(() => (M5(),U5)),x=await import("@cosmjs/proto-signing"),N=x.Registry??x.default?.Registry,y=await import("@cosmjs/stargate"),f=y.defaultRegistryTypes??y.default?.defaultRegistryTypes;return new N([...f,["/types.MsgSend",T.types.MsgSend],["/types.MsgDeposit",T.types.MsgDeposit]])}async function ky(T){let x=await import("@cosmjs/stargate"),N=x.AminoTypes??x.default?.AminoTypes,y=T===ZG.THORChain?"thorchain":"mayachain";return new N({"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,fromAmino:({signer:f,...G})=>({...G,signer:ET(f)}),toAmino:({signer:f,...G})=>({...G,signer:kT(f)})},"/types.MsgSend":{aminoType:`${y}/MsgSend`,fromAmino:({from_address:f,to_address:G,...L})=>({...L,fromAddress:ET(f),toAddress:ET(G)}),toAmino:({fromAddress:f,toAddress:G,...L})=>({...L,from_address:kT(f),to_address:kT(G)})}})}var z0=k(()=>{Z0()});import{AssetValue as JG,Chain as Wf,getChainConfig as I5,SwapKitError as qG}from"@swapkit/helpers";function U0(T){return function(N){let{assetValue:y,recipient:f,memo:G,sender:L,asSignable:X,asAminoMessage:_}=N;if(f)return w5(T)({asAminoMessage:_,asSignable:X,assetValue:y,memo:G,recipient:f,sender:L});return C5(T)({asAminoMessage:_,asSignable:X,assetValue:y,memo:G,sender:L})}}function Py(T){if(T.type==="thorchain/MsgSend"||T.type==="mayachain/MsgSend")return T;return{...T,value:{...T.value,coins:T.value.coins.map((x)=>{let N=JG.from({asset:x.asset}),y=(N.isSynthetic?N.symbol.split("/")?.[1]:N.symbol)?.toUpperCase(),f=(N.isSynthetic?N.symbol.split("/")?.[0]:N.chain)?.toUpperCase();return{...x,asset:{chain:f,symbol:y,synth:N.isSynthetic,ticker:N.ticker}}})}}}async function PT({chain:T,memo:x,msgs:N}){let y=await jy(),f=await ky(T),G={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:x,messages:N.map((L)=>f.fromAmino(L))}};return y.encode(G)}var QG,BG,W0=({sender:T,recipient:x,assetValue:N})=>{return{type:`${N.chain===Wf.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:N.getBaseValue("string"),denom:My(N.symbol,!0)}],from_address:T,to_address:x}}},H0=({sender:T,assetValue:x,memo:N=""})=>{return{type:`${x.chain===Wf.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:x.getBaseValue("string"),asset:GT(x)}],memo:N,signer:T}}},Hf=({sender:T,recipient:x,assetValue:N,memo:y})=>{return!x?H0({assetValue:N,memo:y,sender:T}):W0({assetValue:N,recipient:x,sender:T})},Dy=async(T,x)=>{return(await ky(x)).fromAmino(T)},R5=async({rpcUrl:T,sender:x})=>{let y=await(await Ry(T)).getAccount(x);if(!y)throw new qG("toolbox_cosmos_account_not_found",{sender:x});return y},w5=(T)=>async({sender:x,recipient:N,assetValue:y,memo:f="",asSignable:G=!0,asAminoMessage:L=!1,sequence:X,accountNumber:_})=>{let Z=await R5({rpcUrl:T,sender:x}),q=y.chain,{chainId:Q}=I5(q),J=W0({assetValue:y,recipient:N,sender:x}),B=G?await Dy(L?J:Py(J),q):J;return{accountNumber:_||Z.accountNumber,chainId:Q,fee:Iy(q),memo:f,msgs:[B],sequence:X||Z.sequence}},C5=(T)=>async({sender:x,assetValue:N,memo:y="",asSignable:f=!0,asAminoMessage:G=!1,sequence:L,accountNumber:X})=>{let _=await R5({rpcUrl:T,sender:x}),Z=N.chain,{chainId:q}=I5(Z),Q=H0({assetValue:N,memo:y,sender:x}),J=f?await Dy(G?Q:Py(Q),Z):Q;return{accountNumber:X||_.accountNumber,chainId:q,fee:Iy(Z),memo:y,msgs:[J],sequence:L||_.sequence}};var O5=k(()=>{DT();z0();QG=Iy(Wf.THORChain).gas,BG=Iy(Wf.Maya).gas});var E5=()=>{};var k5=k(()=>{E5()});var M0=k(()=>{Z0();O5();z0();k5()});import{base64 as O0,bech32 as I0}from"@scure/base";import{AssetValue as Uf,applyFeeMultiplier as D5,Chain as Ty,CosmosChainPrefixes as A5,DerivationPath as YG,derivationPathToString as P5,FeeOption as If,getChainConfig as zG,getRPCUrl as WG,NetworkDerivationPath as HG,SwapKitError as Mf,SwapKitNumber as R0,updateDerivationPath as UG}from"@swapkit/helpers";import{SwapKitApi as F5}from"@swapkit/helpers/api";import{match as MG,P as S5}from"ts-pattern";async function k0(T,x){try{let y=(await F5.getGasRate()).find((f)=>f.chainId===T)?.value;return y?Number.parseFloat(y):x}catch{return x}}async function E0({phrase:T,prefix:x,...N}){let y=await import("@cosmjs/proto-signing"),f=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,G=await import("@cosmjs/crypto"),L=G.stringToPath??G.default?.stringToPath,X="derivationPath"in N?N.derivationPath:`${YG[N.chain]}/${N.index}`;return f.fromMnemonic(T,{hdPaths:[L(X)],prefix:x})}async function IG({privateKey:T,prefix:x}){let N=await import("@cosmjs/proto-signing");return(N.DirectSecp256k1Wallet??N.default?.DirectSecp256k1Wallet).fromKey(T,x)}function V5(T){return async function({signature:N,message:y,address:f}){let G=await T(f);if(!G?.pubkey)throw new Mf("toolbox_cosmos_verify_signature_no_pubkey");let L=await import("@cosmjs/crypto"),X=L.Secp256k1Signature??L.default?.Secp256k1Signature,_=L.Secp256k1??L.default?.Secp256k1,Z=X.fromFixedLength(O0.decode(N));return _.verifySignature(Z,O0.decode(y),G.pubkey.value)}}async function ST({chain:T,...x}){let N=await WG(T),y=A5[T],f="index"in x?x.index||0:0,G=P5("derivationPath"in x&&x.derivationPath?x.derivationPath:UG(HG[T],{index:f})),L=await MG(x).with({phrase:S5.string},({phrase:J})=>E0({derivationPath:G,phrase:J,prefix:y})).with({signer:S5.any},({signer:J})=>J).otherwise(()=>{return});async function X(J){return(await Ry(N)).getAccount(J)}async function _(){let[J]=await L?.getAccounts()||[];return J?.address}async function Z(){let[J]=await L?.getAccounts()||[];if(!J?.pubkey)throw new Mf("toolbox_cosmos_signer_not_defined");return O0.encode(J?.pubkey)}async function q({recipient:J,assetValue:B,memo:Y="",feeRate:W,feeOptionKey:M=If.Fast}){let I=await _();if(!(L&&I))throw new Mf("toolbox_cosmos_signer_not_defined");let O=Uf.from({chain:T}),l=GT(O),S=W||v5((await C0(T,w0[T]))[M],l),F=await NT(N,L),j=My(B.symbol),d=B.getBaseValue("string"),{TxRaw:Gy}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),D={amount:[{amount:d,denom:j}],fromAddress:I,toAddress:J},v=await F.sign(I,[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:D}],S,Y),z=Gy.encode(v).finish();return Buffer.from(z).toString("hex")}async function Q({recipient:J,assetValue:B,memo:Y="",feeRate:W,feeOptionKey:M=If.Fast,dryRun:I=!1}){if(I)return q({assetValue:B,feeOptionKey:M,feeRate:W,memo:Y,recipient:J});let O=await _();if(!(L&&O))throw new Mf("toolbox_cosmos_signer_not_defined");let l=Uf.from({chain:T}),S=GT(l),F=W||v5((await C0(T,w0[T]))[M],S),j=await NT(N,L),d=My(B.symbol),Gy=[{amount:B.getBaseValue("string"),denom:d}],{transactionHash:D}=await j.sendTokens(O,J,Gy,F,Y);return D}return{createPrivateKeyFromPhrase:OG(G),createTransaction:B0,fetchFeeRateFromSwapKit:k0,getAccount:X,getAddress:_,getBalance:async(J,B)=>{let Y=await l5(N)(J),W=await Promise.all(Y.filter(({denom:M})=>M&&!M.includes("IBC/")).map(({denom:M,amount:I})=>{let O=[Ty.THORChain,Ty.Maya].includes(T)&&(M.includes("/")||M.includes("˜"))?`${T}.${M}`:M;return Y0(O,I)}));if(W.length===0)return[Uf.from({chain:T})];return W},getBalanceAsDenoms:l5(N),getFees:()=>C0(T,w0[T]),getPubKey:Z,getSignerFromPhrase:async({phrase:J,derivationPath:B})=>E0({derivationPath:P5(B),index:f,phrase:J,prefix:y}),getSignerFromPrivateKey:async(J)=>{let B=await import("@cosmjs/proto-signing");return(B.DirectSecp256k1Wallet??B.default?.DirectSecp256k1Wallet).fromKey(J,y)},signTransaction:q,transfer:Q,validateAddress:$5(T),verifySignature:V5(X)}}async function RG(T,x){try{let y=(await F5.getGasRate()).find((f)=>f.chainId===T)?.value;return y?Number.parseFloat(y):x}catch{return x}}function wG({assetValue:{chain:T}}){return Uf.from({chain:T,value:CG(T)})}async function C0(T,x){let{chainId:N,baseDecimal:y}=zG(T),f=await k0(N,x);return{average:R0.fromBigInt(BigInt(f),y),fast:R0.fromBigInt(BigInt(D5(f,If.Fast,!0)),y),fastest:R0.fromBigInt(BigInt(D5(f,If.Fastest,!0)),y)}}function v5(T,x){return{amount:[{amount:T.getBaseValue("string"),denom:x}],gas:"200000"}}function CG(T){return{[Ty.Cosmos]:0.007,[Ty.Kujira]:0.02,[Ty.Noble]:0.01,[Ty.THORChain]:0.02,[Ty.Maya]:0.02,[Ty.Harbor]:0.02}[T]||0}function $5(T){let x=A5[T];return function(y){if(!y.startsWith(x))return!1;try{let{prefix:f,words:G}=I0.decode(y);return I0.encode(f,G)===y.toLocaleLowerCase()}catch{return!1}}}function l5(T){return async function(N){return(await(await Ry(T)).getAllBalances(N)).map((L)=>({...L,denom:L.denom.includes("/")?L.denom.toUpperCase():L.denom}))}}function OG(T){return async function(N){let y=await import("@cosmjs/crypto"),f=y.stringToPath??y.default?.stringToPath,G=y.Slip10Curve??y.default?.Slip10Curve,L=y.Slip10??y.default?.Slip10,X=y.EnglishMnemonic??y.default?.EnglishMnemonic,_=y.Bip39??y.default?.Bip39,Z=new X(N),q=await _.mnemonicToSeed(Z),{privkey:Q}=L.derivePath(G.Secp256k1,q,f(T));return Q}}var w0;var Rf=k(()=>{DT();w0={[Ty.Cosmos]:1000,[Ty.Kujira]:1000,[Ty.Noble]:1000,[Ty.THORChain]:5000000,[Ty.Maya]:5000000,[Ty.Harbor]:5000000}});import{base64 as hy}from"@scure/base";import{Chain as EG,CosmosChainPrefixes as kG,derivationPathToString as DG,FeeOption as D0,getChainConfig as K5,getRPCUrl as PG,NetworkDerivationPath as SG,RequestClient as vG,SKConfig as lG,SwapKitError as n5,SwapKitNumber as u5,updateDerivationPath as AG}from"@swapkit/helpers";import{match as FG,P as b5}from"ts-pattern";function VG({prefix:T,derivationPath:x}){return async function(y,f=0){let G=await import("@cosmjs/amino"),L=G.Secp256k1HdWallet??G.default?.Secp256k1HdWallet,X=await import("@cosmjs/crypto"),_=X.stringToPath??X.default?.stringToPath;return L.fromMnemonic(y,{hdPaths:[_(`${x}/${f}`)],prefix:T})}}function $G(T){return hy.encode(T)}function KG(T){return async function({wallet:N,tx:y}){let{msgs:f,accountNumber:G,sequence:L,chainId:X,fee:_,memo:Z}=typeof y==="string"?JSON.parse(y):y,q=(await N.getAccounts())?.[0]?.address||"",Q=await ky(T),J=await jy(),B=await Q0(N,{aminoTypes:Q,registry:J}),Y=[];for(let I of f){let O=await Dy(I,T);Y.push(O)}let{signatures:[W]}=await B.sign(q,Y,_,Z,{accountNumber:G,chainId:X,sequence:L});return{bodyBytes:await PT({chain:T,memo:Z,msgs:f.map(Py)}),signature:$G(W)}}}function nG({prefix:T,rpcUrl:x}){return async function(y,f,G,L,X){let{encodeSecp256k1Pubkey:_,pubkeyToAddress:Z}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:q}=(await import("@cosmjs/stargate")).default,{sequence:Q,fee:J}=JSON.parse(y),B=await j5(G,L),Y=f.map((I)=>[Z(_(hy.decode(I.pubKey)),T),hy.decode(I.signature)]),W=await Ry(x),{transactionHash:M}=await W.broadcastTx(q(B,Q,J,X,new Map(Y)));return M}}async function j5(T,x,N=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:f}=(await import("@cosmjs/amino")).default;return y(T.map((G)=>f(hy.decode(G))),x,N)}function uG(T){return hy.decode(T)}async function bG({privateKey:T,message:x}){let{Secp256k1:N}=(await import("@cosmjs/crypto")).default,y=await N.createSignature(hy.decode(x),T);return hy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function P0({chain:T,...x}){let N=await PG(T),{nodeUrl:y}=K5(T),{isStagenet:f}=lG.get("envs"),G=T===EG.THORChain,L=`${f?"s":""}${kG[T]}`,X="index"in x?x.index||0:0,_="derivationPath"in x&&x.derivationPath?x.derivationPath:AG(SG[T],{index:X}),Z=await ST({chain:T,...x}),q=await FG(x).with({phrase:b5.string},({phrase:Y})=>Z.getSignerFromPhrase({derivationPath:_,phrase:Y})).with({signer:b5.any},({signer:Y})=>Y).otherwise(()=>{return}),Q=Iy(T);async function J(){let Y,W=`${y}/${G?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:M}}=await vG.get(W);if(!M||Number.isNaN(M)||M<0)throw new n5("toolbox_cosmos_invalid_fee",{nativeFee:M.toString()});Y=new u5(M)}catch{Y=new u5({decimal:K5(T).baseDecimal,value:G?0.02:1})}return{[D0.Average]:Y,[D0.Fast]:Y,[D0.Fastest]:Y}}async function B({assetValue:Y,memo:W="",recipient:M}){let{TxRaw:I}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),O=(await q?.getAccounts())?.[0]?.address;if(!(O&&q))throw new n5("toolbox_cosmos_no_signer");let l="signAmino"in q,S=await jy(),F=await ky(T),j=await NT(N,q,{aminoTypes:F,registry:S}),d=Hf({assetValue:Y,memo:W,recipient:M,sender:O});if(l){let z=await Dy(d,T),{signatures:R,authInfoBytes:C}=await j.sign(O,[z],Q,W),A=I.encode({authInfoBytes:C,bodyBytes:await PT({chain:T,memo:W,msgs:[d].map(Py)}),signatures:R}).finish();return(await j.broadcastTx(A)).transactionHash}let Gy=Py(d),D=await Dy(Gy,T);return(await j.signAndBroadcast(O,[D],Q,W)).transactionHash}return{...Z,broadcastMultisigTx:nG({prefix:L,rpcUrl:N}),buildAminoMsg:Hf,buildEncodedTxBody:PT,convertToSignable:Dy,createDefaultAminoTypes:()=>ky(T),createDefaultRegistry:jy,createMultisig:j5,createTransaction:U0(N),deposit:B,getFees:J,importSignature:uG,parseAminoMessageForDirectSigning:Py,pubkeyToAddress:async(Y)=>{let{pubkeyToAddress:W}=(await import("@cosmjs/amino")).default;return W(Y,L)},secp256k1HdWalletFromMnemonic:VG({derivationPath:DG(_),prefix:L}),signMultisigTx:KG(T),signWithPrivateKey:bG,transfer:B}}var S0=k(()=>{M0();DT();Rf()});import{Chain as vT,SwapKitError as jG}from"@swapkit/helpers";var hG=(T,x)=>{switch(T){case vT.Cosmos:case vT.Kujira:case vT.Noble:return ST({chain:T,...x});case vT.Maya:case vT.THORChain:return P0({chain:T,...x});default:throw new jG("toolbox_cosmos_not_supported",{chain:T})}};var h5=k(()=>{Rf();S0();Rf();S0()});var wf={};yy(wf,{verifySignature:()=>V5,transferMsgAmino:()=>W0,toBase64:()=>GG,parseAminoMessageForDirectSigning:()=>Py,getSignerFromPrivateKey:()=>IG,getSignerFromPhrase:()=>E0,getMsgSendDenom:()=>My,getFeeRateFromSwapKit:()=>RG,getDenomWithChain:()=>GT,getDefaultChainFee:()=>Iy,getCreateTransaction:()=>U0,getCosmosValidateAddress:()=>$5,getCosmosToolbox:()=>hG,getAssetFromDenom:()=>Y0,fromBase64:()=>NG,fetchFeeRateFromSwapKit:()=>k0,estimateTransactionFee:()=>wG,depositMsgAmino:()=>H0,createThorchainToolbox:()=>P0,createStargateClient:()=>Ry,createSigningStargateClient:()=>NT,createOfflineStargateClient:()=>Q0,createDefaultRegistry:()=>jy,createDefaultAminoTypes:()=>ky,createCosmosToolbox:()=>ST,cosmosCreateTransaction:()=>B0,convertToSignable:()=>Dy,buildTransferTx:()=>w5,buildEncodedTxBody:()=>PT,buildDepositTx:()=>C5,buildAminoMsg:()=>Hf,bech32ToBase64:()=>ET,base64ToBech32:()=>kT,YUM_KUJIRA_FACTORY_DENOM:()=>Y5,USK_KUJIRA_FACTORY_DENOM:()=>q0,THORCHAIN_GAS_VALUE:()=>QG,MAYA_GAS_VALUE:()=>BG,DEFAULT_NOBLE_FEE_MAINNET:()=>H5,DEFAULT_KUJI_FEE_MAINNET:()=>W5,DEFAULT_COSMOS_FEE_MAINNET:()=>z5});var Cf=k(()=>{M0();h5();DT()});import{AssetValue as Of,Chain as Sy,DerivationPath as oG,derivationPathToString as pG,getChainConfig as m5,getRPCUrl as mG,NetworkDerivationPath as cG,SwapKitError as py,updateDerivationPath as tG}from"@swapkit/helpers";import{match as gG,P as o5}from"ts-pattern";async function c5(T){let x=Of.from({address:T,chain:Sy.Solana});if(x.symbol!=="UNKNOWN")return{decimals:x.decimal||0,id:T,logoURI:x.getIconUrl(),name:x.symbol,symbol:x.ticker};let N=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(T)}`;try{let y=await fetch(N);if(!y.ok)return null;let f=await y.json();if(!Array.isArray(f)||f.length===0)return null;return f.find((L)=>L.id===T)||null}catch{return null}}async function dG(T){let x=await oy(),{PublicKey:N}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),f=new N(T),{baseDecimal:G}=m5(Sy.Solana),L=await x.getBalance(f),X=[Of.from({chain:Sy.Solana,fromBaseDecimal:G,value:L||0})],_=await x.getParsedTokenAccountsByOwner(f,{programId:y});for(let{account:Z}of _.value){let q=Z.data.parsed.info,Q=q.mint,J=q.tokenAmount.amount;if(Number(J)===0)continue;let B=await c5(Q),Y=B?.symbol||"UNKNOWN",W=B?.decimals||q.tokenAmount.decimals;X.push(Of.from({asset:`${Sy.Solana}.${Y}-${Q}`,fromBaseDecimal:W,value:J}))}return X}async function A0(){let{PublicKey:T}=await import("@solana/web3.js");return(x)=>{try{let N=new T(x);return T.isOnCurve(N.toBytes())}catch{return!1}}}async function iG(T){let x=T&&"index"in T?T.index||0:0,N=pG(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:tG(cG[Sy.Solana],{index:x})),y=await gG(T).with({phrase:o5.string},({phrase:L})=>l0({derivationPath:N,phrase:L})).with({signer:o5.any},({signer:L})=>L).otherwise(()=>{return});function f(){return y?.publicKey?p5(y.publicKey):""}function G(L){let X=L||f();if(!X)throw new py("core_wallet_connection_not_found");return dG(X)}return{broadcastTransaction:v0(oy),createKeysForPath:l0,createTransaction:F0(oy),createTransactionFromInstructions:eG,estimateTransactionFee:rG(oy),getAddress:f,getAddressFromPubKey:p5,getAddressValidator:A0,getBalance:G,getConnection:oy,getPubkeyFromAddress:V0,signTransaction:TN(oy,y),transfer:yN(oy,y)}}function rG(T){return async({recipient:x,assetValue:N,memo:y,isProgramDerivedAddress:f,sender:G})=>{let L=await T(),_=(await F0(T)({assetValue:N,isProgramDerivedAddress:f,memo:y,recipient:x,sender:G})).compileMessage(),Z=await L.getFeeForMessage(_);if(Z.value===null)throw new py("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:q}=m5(Sy.Solana);return Of.from({chain:Sy.Solana,fromBaseDecimal:q,value:Z.value})}}async function oy(){let{Connection:T}=await import("@solana/web3.js"),x=await mG(Sy.Solana);return new T(x,"confirmed")}function aG(T){return async({assetValue:x,recipient:N,sender:y,isProgramDerivedAddress:f})=>{let G=await T(),L=await V0(y);if(x.isGasAsset){let{Transaction:X,SystemProgram:_,PublicKey:Z}=await import("@solana/web3.js");return new X().add(_.transfer({fromPubkey:L,lamports:x.getBaseValue("number"),toPubkey:new Z(N)}))}if(x.address)return sG({amount:x.getBaseValue("number"),connection:G,decimals:x.decimal,from:L,isProgramDerivedAddress:f,recipient:N,tokenAddress:x.address});return}}async function sG({tokenAddress:T,recipient:x,from:N,connection:y,amount:f,decimals:G,isProgramDerivedAddress:L}){let{getAssociatedTokenAddress:X,getAccount:_,createAssociatedTokenAccountInstruction:Z,createTransferCheckedInstruction:q}=await import("@solana/spl-token"),{Transaction:Q,PublicKey:J}=await import("@solana/web3.js"),B=new Q,Y=new J(T),W=await X(Y,N),M=new J(x),I=await X(Y,M,L),O=!1;try{await _(y,I),O=!0}catch{}if(!O)B.add(Z(N,I,M,Y));return B.add(q(W,Y,I,N,f,G)),B}function F0(T){return async({recipient:x,assetValue:N,memo:y,isProgramDerivedAddress:f,sender:G})=>{let{createMemoInstruction:L}=await import("@solana/spl-memo"),X=await V0(G),_=await A0();if(!(f||_(x)))throw new py("core_transaction_invalid_recipient_address");let Z=await T(),q=await aG(T)({assetValue:N,isProgramDerivedAddress:f,recipient:x,sender:G});if(!q)throw new py("core_transaction_invalid_sender_address");if(y)q.add(L(y));let Q=await Z.getLatestBlockhash();return q.recentBlockhash=Q.blockhash,q.feePayer=X,q}}async function eG({instructions:T}){let{Transaction:x}=await import("@solana/web3.js"),N=new x().add(...T);if(!N)throw new py("core_transaction_invalid_sender_address");return N}function yN(T,x){return async({recipient:N,assetValue:y,memo:f,isProgramDerivedAddress:G})=>{if(!x)throw new py("core_transaction_invalid_sender_address");let L=x.publicKey?.toString()??(await x.connect()).publicKey.toString(),X=await F0(T)({assetValue:y,isProgramDerivedAddress:G,memo:f,recipient:N,sender:L});if("signTransaction"in x){let _=await x.signTransaction(X);return v0(T)(_)}return X.sign(x),v0(T)(X)}}function v0(T){return async(x)=>{return(await T()).sendRawTransaction(x.serialize())}}function TN(T,x){return async(N)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!x)throw new py("toolbox_solana_no_signer");if(!(N instanceof y)){let G=await(await T()).getLatestBlockhash();N.recentBlockhash=G.blockhash,N.feePayer=x.publicKey||void 0}if("connect"in x)return await x.signTransaction(N);return await N.sign([x]),N}}async function l0({phrase:T,derivationPath:x=oG.SOL}){let{HDKey:N}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:y}=await import("@scure/bip39"),{Keypair:f}=await import("@solana/web3.js"),G=y(T),L=N.fromMasterSeed(G);return f.fromSeed(L.derive(x,!0).privateKey)}function p5(T){return T.toString()}async function V0(T){let{PublicKey:x}=await import("@solana/web3.js");return new x(T)}var t5=()=>{};var $0={};yy($0,{getSolanaToolbox:()=>iG,getSolanaAddressValidator:()=>A0,fetchTokenMetaData:()=>c5,createKeysForPath:()=>l0});var K0=k(()=>{t5()});import{AssetValue as lT,Chain as n0,getChainConfig as fN,SwapKitError as my}from"@swapkit/helpers";import{match as xN,P as g5}from"ts-pattern";async function d5(){let{isValidSuiAddress:T}=await import("@mysten/sui/utils");return function(N){try{return T(N)}catch{return!1}}}async function GN({provider:T,...x}={}){let N=await d5(),y=await xN(x).with({phrase:g5.string},async({phrase:Q})=>{let{Ed25519Keypair:J}=await import("@mysten/sui/keypairs/ed25519");return J.deriveKeypair(Q)}).with({signer:g5.any},({signer:Q})=>Q).otherwise(()=>{return});async function f(Q=T){let{SuiClient:J,getFullnodeUrl:B}=await import("@mysten/sui/client");return new J({url:Q||B("mainnet")})}function G(){return y?.toSuiAddress()||""}async function L(Q){let J=Q||G();if(!J)throw new my("toolbox_sui_address_required");let{baseDecimal:B,chain:Y}=fN(n0.Sui);try{let W=await f(),{totalBalance:M}=await W.getBalance({owner:J}),I=[lT.from({chain:Y,fromBaseDecimal:B,value:M})],O=await W.getAllBalances({owner:J});for(let{coinType:l,totalBalance:S}of O){if(l==="0x2::sui::SUI")continue;if(Number(S)>0){let F=l.split("::").pop()?.toUpperCase()||"UNKNOWN",j=`${Y}.${F}-${l}`;I.push(lT.from({asset:j,fromBaseDecimal:B,value:S}))}}return I}catch{return[lT.from({chain:Y})]}}async function X(Q){let J=lT.from({chain:n0.Sui,value:"0.01"});if(!Q)return J;try{let B=await f(),{txBytes:Y}=await _(Q),{effects:{status:W,gasUsed:M}}=await B.dryRunTransactionBlock({transactionBlock:Y});if(W.status!=="success")return J;let I=Number(M.computationCost)+Number(M.storageCost)-Number(M.storageRebate);return lT.from({chain:n0.Sui,value:I.toString()})}catch{return J}}async function _({recipient:Q,assetValue:J,gasBudget:B,sender:Y}){let{Transaction:W}=await import("@mysten/sui/transactions"),M=Y||G();if(!M)throw new my("toolbox_sui_no_sender");try{let I=new W;if(I.setSender(M),J.isGasAsset||J.symbol==="SUI"){let[S]=I.splitCoins(I.gas,[J.getBaseValue("string")]);I.transferObjects([S],Q)}else throw new my("toolbox_sui_custom_token_transfer_not_implemented");if(B)I.setGasBudget(B);let O=await f(),l=await I.build({client:O});return{tx:I,txBytes:l}}catch(I){throw new my("toolbox_sui_transaction_creation_error",{error:I})}}async function Z(Q){if(!y)throw new my("toolbox_sui_no_signer");if(Q instanceof Uint8Array)return y.signTransaction(Q);let{txBytes:J}="tx"in Q?Q:await _(Q);return y.signTransaction(J)}async function q({assetValue:Q,gasBudget:J,recipient:B}){if(!y)throw new my("toolbox_sui_no_signer");let Y=y.toSuiAddress()||G();if(!Y)throw new my("toolbox_sui_no_sender");let{txBytes:W}=await _({assetValue:Q,gasBudget:J,recipient:B,sender:Y}),M=await f(),{digest:I}=await M.signAndExecuteTransaction({signer:y,transaction:W});return I}return{createTransaction:_,estimateTransactionFee:X,getAddress:G,getBalance:L,signTransaction:Z,transfer:q,validateAddress:N}}var i5=()=>{};var Ef={};yy(Ef,{getSuiToolbox:()=>GN,getSuiAddressValidator:()=>d5});var kf=k(()=>{i5()});import{AssetValue as u0,Chain as AT,getChainConfig as r5,SwapKitError as FT,SwapKitNumber as NN}from"@swapkit/helpers";import{match as LN,P as a5}from"ts-pattern";async function XN(T={}){let{mnemonicToWalletKey:x}=await import("@ton/crypto"),{Address:N,TonClient:y,WalletContractV4:f}=await import("@ton/ton"),G=await s5(),L,X,_=await LN(T).with({phrase:a5.string},async({phrase:I})=>x(I.split(" "))).with({signer:a5.any},({signer:I})=>I).otherwise(()=>{return});function Z(){let{rpcUrls:I}=r5(AT.Ton),[O]=I;if(!L||L.parameters.endpoint!==O)L=new y({endpoint:O});return L}function q(I){if(!X||I){let O=Z(),l=I||_;if(!l)throw new FT("core_wallet_connection_not_found");let S=f.create({publicKey:l.publicKey,workchain:0});X=O.open(S)}return X}async function Q(I){let O=Z(),{baseDecimal:l}=r5(AT.Ton);try{let S=await O.getBalance(N.parse(I));return[u0.from({chain:AT.Ton,value:NN.fromBigInt(S,l)})]}catch{return[u0.from({chain:AT.Ton})]}}async function J({assetValue:I,recipient:O,memo:l}){let S=q();if(!S||!_)throw new FT("core_wallet_connection_not_found");let{toNano:F,comment:j,internal:d}=await import("@ton/ton"),Gy=await S.getSeqno(),D=F(I.getValue("string")),v=l?j(l):void 0;return S.createTransfer({messages:[d({body:v,to:O,value:D})],secretKey:_.secretKey,seqno:Gy})}async function B({assetValue:I,recipient:O,memo:l}){let S=q();if(!S||!_)throw new FT("core_wallet_connection_not_found");let F=await J({assetValue:I,memo:l,recipient:O});return await S.send(F),F.hash().toString()}async function Y(I){let O=q();if(!O)throw new FT("core_wallet_connection_not_found");try{return await O.send(I),I.hash().toString("hex")}catch(l){throw new FT("core_wallet_connection_not_found",{error:l})}}function W(){return q().address.toString()}function M(){return Promise.resolve(u0.from({chain:AT.Ton,value:"0.0001"}))}return{createTransaction:J,estimateTransactionFee:M,getAddress:W,getBalance:Q,sendTransaction:Y,transfer:B,validateAddress:G}}async function s5(){let{Address:T}=await import("@ton/ton");return function(N){try{return T.parse(N),!0}catch{return!1}}}var e5=()=>{};var Df={};yy(Df,{getTONToolbox:()=>XN,getTONAddressValidator:()=>s5});var Pf=k(()=>{e5()});var LT;var b0=k(()=>{LT=[{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}]});import{SwapKitError as _N}from"@swapkit/helpers";async function yx(T){let x=await import("tronweb"),N=x.TronWeb??x.default?.TronWeb;try{let y=await fetch(`${ZN}/v1/accounts/${T}`);if(!y.ok)throw Error(`TronGrid API error: ${y.status} ${y.statusText}`);let f=await y.json();if(!(f.success&&f.data)||f.data.length===0)throw Error("Invalid response from TronGrid API");let G;try{G=N.address.toHex(T).toLowerCase()}catch{G=T.toLowerCase()}let L=f.data.find((X)=>{return X.address.toLowerCase()===G});if(!L)return;return{balance:L.balance,trc20:L.trc20||[]}}catch(y){throw new _N("toolbox_tron_trongrid_api_error",{address:T,message:y instanceof Error?y.message:"Unknown error"})}}var ZN="https://api.trongrid.io";var Tx=()=>{};import{AssetValue as wy,BaseDecimal as fx,Chain as By,derivationPathToString as Nx,getRPCUrl as JN,NetworkDerivationPath as Lx,SwapKitError as fy,updateDerivationPath as Xx,warnOnce as j0}from"@swapkit/helpers";import{match as qN,P as xx}from"ts-pattern";async function h0(){let T=await import("tronweb"),x=T.TronWeb??T.default?.TronWeb;return(N)=>{return x.isAddress(N)}}async function _x({phrase:T,derivationPath:x,index:N}){let y=x||Nx(Xx(Lx[By.Tron],{index:N||0})),{HDKey:f}=await import("@scure/bip32"),{mnemonicToSeedSync:G}=await import("@scure/bip39"),L=G(T),_=f.fromMasterSeed(L).derive(y);if(!_.privateKey)throw new fy("toolbox_tron_no_signer");return Buffer.from(_.privateKey).toString("hex")}async function WN({phrase:T,derivationPath:x,tronWeb:N}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),G=f(T),X=y.fromMasterSeed(G).derive(x);if(!X.privateKey)throw new fy("toolbox_tron_no_signer");let _=Buffer.from(X.privateKey).toString("hex");N.setPrivateKey(_);let Z=N?.address.fromPrivateKey(_);return{getAddress:()=>Promise.resolve(typeof Z==="string"?Z:""),signTransaction:async(q)=>{return await N.trx.sign(q,_)}}}var QN=268,BN=13000,YN=345,Gx="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",zN="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",Zx=async(T={})=>{let x=await import("tronweb"),N=x.TronWeb??x.default?.TronWeb,y=await JN(By.Tron),f=void 0,G=new N({fullHost:y,headers:void 0}),L="index"in T?T.index||0:0,X=Nx("derivationPath"in T&&T.derivationPath?T.derivationPath:Xx(Lx[By.Tron],{index:L})),_=await qN(T).with({phrase:xx.string},async({phrase:D})=>WN({derivationPath:X,phrase:D,tronWeb:G})).with({signer:xx.any},({signer:D})=>Promise.resolve(D)).otherwise(()=>Promise.resolve(void 0)),Z=async()=>{if(!_)throw new fy("toolbox_tron_no_signer");return await _.getAddress()},q=()=>{return 1e8},Q=async()=>{try{let D=await G.trx.getChainParameters(),v={};for(let z of D)v[z.key]=z.value;return{bandwidthFee:v.getTransactionFee||1000,createAccountFee:v.getCreateAccountFee||1e5,energyFee:v.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},J=async(D)=>{try{let v=await G.trx.getAccount(D);return v&&Object.keys(v).length>0}catch{return!1}},B=async(D)=>{try{let v=await G.trx.getAccountResources(D);return{bandwidth:{free:v.freeNetLimit-v.freeNetUsed,total:v.NetLimit||0,used:v.NetUsed||0},energy:{total:v.EnergyLimit||0,used:v.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},Y=async(D,v)=>{try{let z=G.contract(LT,v);if(!z.methods?.balanceOf)return 0n;let[R]=await z.methods.balanceOf(D).call();return R?typeof R==="bigint"?R:BigInt(R):0n}catch(z){let R=z instanceof Error?z.message:String(z);return console.warn(`balanceOf() failed for ${v}: ${R}`),0n}},W=async(D,v)=>{try{G.setAddress(v);let z=G.contract(LT,D),[R,C]=await Promise.all([z.symbol().call().catch(()=>"UNKNOWN"),z.decimals().call().catch(()=>"18")]);return{decimals:Number(C??18),symbol:R??"UNKNOWN"}}catch(z){return j0({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${D}: ${z instanceof Error?z.message:z}`}),null}},M=async(D,v=!0)=>{let z=[wy.from({chain:By.Tron})];try{let R=await yx(D);if(R){let C=[];C.push(wy.from({chain:By.Tron,fromBaseDecimal:6,value:R.balance}));for(let A of R.trc20){let[u,n]=Object.entries(A)[0]||[];if(!(u&&n))continue;let $=await W(u,D);if(!$)continue;C.push(wy.from({asset:`TRON.${$.symbol}-${u}`,fromBaseDecimal:$.decimals,value:BigInt(n||0)}))}return C}return z}catch(R){j0({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${R instanceof Error?R.message:R}`});try{let C=[],A=await G.trx.getBalance(D);if(A&&Number(A)>0)C.push(wy.from({chain:By.Tron,fromBaseDecimal:6,value:A}));let u=await Y(D,Gx);if(u)C.push(wy.from({asset:`TRON.USDT-${Gx}`,fromBaseDecimal:6,value:u}));if(C.length===0)return z;return C}catch(C){let A=C instanceof Error?C.message:String(C);return console.error(`Tron balance fetch failed: ${A}`),z}}},I=async({recipient:D,assetValue:v,memo:z,expiration:R})=>{if(!_)throw new fy("toolbox_tron_no_signer");let C=await Z();G.setAddress(C);let A=await l({assetValue:v,expiration:R,memo:z,recipient:D,sender:C}),u=await _.signTransaction(A),{txid:n}=await G.trx.sendRawTransaction(u);if(!n)throw new fy("toolbox_tron_token_transfer_failed");return n},O=async({assetValue:D,recipient:v,sender:z})=>{let R=D.isGasAsset;try{let C=z?z:_?await Z():void 0;if(!C)return R?wy.from({chain:By.Tron,fromBaseDecimal:0,value:0.1}):wy.from({chain:By.Tron,fromBaseDecimal:0,value:15});let A=await Q(),n=await J(v)?0:A.createAccountFee,$=await B(C);if(R){let Ky=QN,mT=$.bandwidth.free+($.bandwidth.total-$.bandwidth.used),cT=0;if(Ky>mT)cT=(Ky-mT)*A.bandwidthFee;let tT=n+cT;return wy.from({chain:By.Tron,fromBaseDecimal:fx.TRON,value:tT})}let h=YN,i=BN,e=$.bandwidth.free+($.bandwidth.total-$.bandwidth.used),Ny=$.energy.total-$.energy.used,$y=0;if(h>e)$y=(h-e)*A.bandwidthFee;let pT=0;if(i>Ny)pT=(i-Ny)*A.energyFee;let pf=n+$y+pT;return wy.from({chain:By.Tron,fromBaseDecimal:fx.TRON,value:pf})}catch(C){throw j0({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${C instanceof Error?C.message:C}`}),new fy("toolbox_tron_fee_estimation_failed",{error:C})}},l=async(D)=>{let{recipient:v,assetValue:z,memo:R,sender:C,expiration:A}=D,u=z.isGasAsset,n=async({transaction:h,memo:i,expiration:e})=>{let Ny=i?await G.transactionBuilder.addUpdateData(h,i,"utf8"):h;return e?await G.transactionBuilder.extendExpiration(Ny,e):Ny};if(u){let h=await G.transactionBuilder.sendTrx(v,z.getBaseValue("number"),C);return n({expiration:A,memo:R,transaction:h})}G.setAddress(C);let $=z.address;if(!$)throw new fy("toolbox_tron_invalid_token_identifier",{identifier:z.toString()});try{let i=[{type:"address",value:v},{type:"uint256",value:z.getBaseValue("string")}],e={callValue:0,feeLimit:q()},{transaction:Ny}=await G.transactionBuilder.triggerSmartContract($,"transfer(address,uint256)",e,i,C);return n({expiration:A,memo:R,transaction:Ny})}catch(h){throw new fy("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction.",originalError:h instanceof Error?h.message:String(h)})}},S=async(D)=>{if(!_)throw new fy("toolbox_tron_no_signer");return await _.signTransaction(D)},F=async(D)=>{let{txid:v}=await G.trx.sendRawTransaction(D);return v},j=async({assetAddress:D,spenderAddress:v,from:z})=>{try{let R=G.contract(LT,D);if(!R.methods?.allowance)throw new fy("toolbox_tron_invalid_token_contract");let[C]=await R.methods.allowance(z,v).call();return C?typeof C==="bigint"?C:BigInt(C):0n}catch(R){throw new fy("toolbox_tron_allowance_check_failed",{error:R})}};return{approve:async({assetAddress:D,spenderAddress:v,amount:z,from:R})=>{if(!_)throw new fy("toolbox_tron_no_signer");let C=R||await Z(),A=z!==void 0?BigInt(z).toString():zN,u="approve(address,uint256)",n=[{type:"address",value:v},{type:"uint256",value:A}],h={callValue:0,feeLimit:q()};try{let{transaction:i}=await G.transactionBuilder.triggerSmartContract(D,u,h,n,C),e=await _.signTransaction(i),{txid:Ny}=await G.trx.sendRawTransaction(e);if(!Ny)throw new fy("toolbox_tron_approve_failed");return Ny}catch(i){throw new fy("toolbox_tron_approve_failed",{error:i})}},broadcastTransaction:F,createTransaction:l,estimateTransactionFee:O,getAddress:Z,getApprovedAmount:j,getBalance:M,isApproved:async({assetAddress:D,spenderAddress:v,from:z,amount:R})=>{let C=await j({assetAddress:D,from:z,spenderAddress:v});if(!R)return C>0n;let A=BigInt(R);return C>=A},signTransaction:S,transfer:I,tronWeb:G,validateAddress:await h0()}};var Jx=k(()=>{b0();Tx()});var o0={};yy(o0,{trc20ABI:()=>LT,getTronPrivateKeyFromMnemonic:()=>_x,getTronAddressValidator:()=>h0,createTronToolbox:()=>Zx});var p0=k(()=>{b0();Jx()});import{networks as HN}from"@bitgo/utxo-lib";import{Chain as a,getRPCUrl as UN,RequestClient as Sf,SKConfig as MN,SwapKitError as vy,warnOnce as IN}from"@swapkit/helpers";import{networks as RN}from"bitcoinjs-lib";import VT from"coininfo";async function wN({chain:T,txHash:x}){let N=`${vf(T)}/push/transaction`,y=JSON.stringify({data:x});try{let f=await Sf.post(N,{body:y,headers:{"Content-Type":"application/json"}});if(f.context.code!==200)throw new vy("toolbox_utxo_broadcast_failed",{error:f.context.error||"Transaction broadcast failed"});return f.data?.transaction_hash||x}catch(f){let G=await UN(T);if(G){let L=JSON.stringify({id:K1(),jsonrpc:"2.0",method:"sendrawtransaction",params:[x]}),X=await Sf.post(G,{body:L,headers:{"Content-Type":"application/json"}});if(X.error)throw new vy("toolbox_utxo_broadcast_failed",{error:X.error?.message});if(X.result.includes('"code":-26'))throw new vy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return X.result}throw f}}function vf(T){return`https://api.blockchair.com/${CN(T)}`}function qx(T){switch(T){case a.Bitcoin:return 5;case a.Dogecoin:return 1e4;case a.Litecoin:return 1;case a.Zcash:return 1;default:return 2}}function CN(T){switch(T){case a.BitcoinCash:return"bitcoin-cash";case a.Litecoin:return"litecoin";case a.Dash:return"dash";case a.Dogecoin:return"dogecoin";case a.Zcash:return"zcash";case a.Polkadot:return"polkadot";default:return"bitcoin"}}async function ON(T){try{let{feePerKb:x}=await Sf.get(`https://app.bitgo.com/api/v2/${T.toLowerCase()}/tx/fee`),N=x/1000;return Math.max(N,qx(T))}catch{return qx(T)}}async function m0(T,x){let N=await Sf.get(`${T}${x?`${T.includes("?")?"&":"?"}key=${x}`:""}`);if(!N||N.context.code!==200)throw new vy("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return N.data}async function Bx({address:T,chain:x,apiKey:N}){if(!T)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await m0(`${vf(x)}/dashboards/address/${T}?transaction_details=true`,N))[T]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function EN({address:T,chain:x,apiKey:N}){return(await Bx({address:T,apiKey:N,chain:x}))?.address.balance||0}async function Yx({chain:T,apiKey:x,txHash:N}){if(!N)throw new vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await m0(`${vf(T)}/raw/transaction/${N}`,x))?.[N]?.raw_transaction||""}catch(y){let f=y instanceof Error?y.message:String(y);return console.error(`Failed to fetch raw transaction: ${f}`),""}}async function kN({chain:T,address:x,apiKey:N,offset:y=0,limit:f=30}){return(await m0(`${vf(T)}/outputs?q=recipient(${x}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${f}&offset=${y}`,N)).map(({is_spent:_,script_hex:Z,block_id:q,transaction_hash:Q,index:J,value:B,spending_signature_hex:Y})=>({hash:Q,index:J,is_confirmed:q!==-1,is_spent:_,script_hex:Z,txHex:Y,value:B}))}function DN(T){return T.reduce((x,N)=>x+N.value,0)}function Qx(T,x){let N=[...T].sort((y,f)=>f.value-y.value);if(x){let y=[],f=0;for(let G of N)if(y.push(G),f+=G.value,f>=x)break;return y}return N}async function zx({chain:T,address:x,apiKey:N,targetValue:y,accumulativeValue:f=0,offset:G=0,limit:L=30}){if(!x)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let X=await kN({address:x,apiKey:N,chain:T,limit:L,offset:G,targetValue:y}),Z=X.length<L,q=X.filter(({is_spent:M})=>!M),Q=DN(q),J=f+Q,B=y&&J>=y;if(Z||B)return Qx(q,y);let Y=await zx({accumulativeValue:J,address:x,apiKey:N,chain:T,limit:L,offset:G+L,targetValue:y}),W=[...q,...Y];return Qx(W,y)}catch(X){let _=X instanceof Error?X.message:String(X);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function PN({address:T,chain:x,apiKey:N,fetchTxHex:y=!0,targetValue:f}){let G=await zx({address:T,apiKey:N,chain:x,targetValue:f}),L=[];for(let{hash:X,index:_,script_hex:Z,value:q}of G){let Q;if(y)Q=await Yx({apiKey:N,chain:x,txHash:X});L.push({address:T,hash:X,index:_,txHex:Q,value:q,witnessUtxo:{script:Buffer.from(Z,"hex"),value:q}})}return L}function Ly(T){let x=MN.get("apiKeys").blockchair||"";return IN({condition:!x,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(N)=>wN({chain:T,txHash:N}),getAddressData:(N)=>Bx({address:N,apiKey:x,chain:T}),getBalance:(N)=>EN({address:N,apiKey:x,chain:T}),getRawTx:(N)=>Yx({apiKey:x,chain:T,txHash:N}),getSuggestedTxFee:()=>ON(T),getUtxos:(N)=>PN({...N,apiKey:x,chain:T})}}function SN(T){return T}function Yy(){return function(x){switch(x){case a.Bitcoin:return RN.bitcoin;case a.BitcoinCash:return VT.bitcoincash.main.toBitcoinJS();case a.Dash:return VT.dash.main.toBitcoinJS();case a.Litecoin:return VT.litecoin.main.toBitcoinJS();case a.Dogecoin:{let N={private:70615956,public:70617039},y=VT.dogecoin.test;return y.versions.bip32=N,VT.dogecoin.main.toBitcoinJS()}case a.Zcash:return HN.zcash;default:throw new vy("toolbox_utxo_not_supported",{chain:x})}}}var Wx=k(()=>{WT()});import{SwapKitError as Ux}from"@swapkit/helpers";import Mx from"bs58check";import Ix from"cashaddrjs";function t0(T){try{return lf(T),!0}catch{return!1}}function g0(T){return lf(T)?.network}function XT(T){let x=lf(T);if(x?.format==="legacy")return T;return AN(x)}function $T(T){let x=lf(T);return FN(x)}function lf(T){try{let x=vN(T);if(x)return x}catch{}try{let x=lN(T);if(x)return x}catch{}throw new Ux("toolbox_utxo_invalid_address",{address:T})}function vN(T){try{let x=Mx.decode(T);if(x.length!==21)throw new Ux("toolbox_utxo_invalid_address",{address:T});let N=x[0],y=Array.prototype.slice.call(x,1);switch(N){case cy.legacy.mainnet.p2pkh:return{format:"legacy",hash:y,network:"mainnet",type:"p2pkh"};case cy.legacy.mainnet.p2sh:return{format:"legacy",hash:y,network:"mainnet",type:"p2sh"};case cy.legacy.testnet.p2pkh:return{format:"legacy",hash:y,network:"testnet",type:"p2pkh"};case cy.legacy.testnet.p2sh:return{format:"legacy",hash:y,network:"testnet",type:"p2sh"};case cy.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2pkh"};case cy.bitpay.mainnet.p2sh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function lN(T){if(T.indexOf(":")!==-1)try{return Hx(T)}catch{}else{let x=["bitcoincash","bchtest","bchreg"];for(let N of x)try{return Hx(`${N}:${T}`)}catch{}}return}function Hx(T){try{let{hash:x,prefix:N,type:y}=Ix.decode(T);return{format:"cashaddr",hash:Array.prototype.slice.call(x,0),network:N==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function AN(T){let x=cy.legacy[T.network][T.type],N=Buffer.alloc(1+T.hash.length);return N[0]=x,N.set(T.hash,1),Mx.encode(N)}function FN(T){let x=T.network==="mainnet"?"bitcoincash":"bchtest",N=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return Ix.encode(x,N,y)}var c0,cy;var Rx=k(()=>{((N)=>{N.Mainnet="mainnet";N.Testnet="testnet"})(c0||={});cy={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as VN}from"@swapkit/helpers";import{opcodes as $N,script as KN}from"bitcoinjs-lib";function zy(T){let x=Buffer.from(T,"utf8");return KN.compile([$N.OP_RETURN,x])}var nN=1000,Vf=10,wx=10,uN=41,bN=107,$f,Af,Ff,KT=(T)=>{if(T.startsWith("bc1")||T.startsWith("tb1")||T.startsWith("ltc1")||T.startsWith("tltc1"))return"P2WPKH";if(T.startsWith("1")||T.startsWith("m")||T.startsWith("n")||T.startsWith("bitcoincash:q")||T.startsWith("bitcoincash:p")||T.startsWith("q")||T.startsWith("p")||T.startsWith("L")||T.startsWith("M")||T.startsWith("3")||T.startsWith("D")||T.startsWith("A")||T.startsWith("9")||T.startsWith("X")||T.startsWith("7")||T.startsWith("y")||T.startsWith("t1")||T.startsWith("t3")||T.startsWith("tm"))return"P2PKH";throw new VN("toolbox_utxo_invalid_address",{address:T})},_T=({inputs:T,outputs:x,feeRate:N})=>{let y=T[0]&&"address"in T[0]&&T[0].address?KT(T[0].address):"P2PKH",f=T.filter((L)=>L.value>=Af["type"in L?L.type:"P2PKH"]*Math.ceil(N)).reduce((L,X)=>L+ly(X),0),G=x?.reduce((L,X)=>L+nT(X),0)||Ff[y];return Vf+f+G},ly=(T)=>{if("type"in T)return Af[T.type];if("address"in T&&T.address)return Af[KT(T.address)];return uN+bN},nT=(T,x)=>{if(T?.script)return wx+T.script.length+(T.script.length>=74?2:1);if(x)return Ff[x];return Ff.P2PKH};var d0=k(()=>{((N)=>{N.P2PKH="P2PKH";N.P2WPKH="P2WPKH"})($f||={});Af={["P2PKH"]:148,["P2WPKH"]:68},Ff={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as ty,SwapKitError as jN}from"@swapkit/helpers";function Kf(T){switch(T){case ty.Bitcoin:case ty.BitcoinCash:return 550;case ty.Dash:case ty.Litecoin:return 5500;case ty.Dogecoin:return 1e5;case ty.Zcash:return 546;default:throw new jN("toolbox_utxo_not_supported",{chain:T})}}function Wy({inputs:T,outputs:x,feeRate:N=1,chain:y=ty.Bitcoin,changeAddress:f=""}){let G=Math.ceil(N),L=T[0]&&"address"in T[0]&&T[0].address?KT(T[0].address):"P2PKH",X=T.filter((B)=>ly(B)*G<=B.value),_=Vf+x.reduce((B,Y)=>B+nT(Y,L),0),Z=x.reduce((B,Y)=>B+Y.value,0),q=_*G,Q=0,J=[];for(let B of X){let Y=ly(B),W=G*Y;q+=W,Q+=B.value,J.push(B);let M=q+Z;if(Q<M)continue;let I=Q-M,O=G*nT({address:"",value:0},L);if(I>O){let l=O+q,S=Q-(Z+l);if(S>Math.max(ly({})*G,Kf(y)))return{fee:l,inputs:J,outputs:x.concat({address:f,value:S})}}return{fee:q,inputs:J,outputs:x}}return{fee:G*_T({feeRate:G,inputs:T,outputs:x})}}var Cx=k(()=>{d0()});var ZT=k(()=>{Wx();Rx();Cx();d0()});import{networks as hN,address as oN}from"@bitgo/utxo-lib";import pN from"bs58check";function gy(T){return T.replace(/(bchtest:|bitcoincash:)/,"")}function Ay(T){let x=gy(T);return t0(x)&&g0(x)==="mainnet"}function JT(T){try{if(T.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let x=hN.zcash;try{return oN.toOutputScript(T,x),!0}catch{let N=pN.decode(T);if(N.length<21)return!1;let y=N[0];return y===x.pubKeyHash||y===x.scriptHash}}catch{return!1}}var uT=k(()=>{ZT()});import r0 from"@bitcoinerlab/secp256k1";import{ECPair as mN,HDNode as cN}from"@psf/bitcoincashjs-lib";import{HDKey as tN}from"@scure/bip32";import{mnemonicToSeedSync as Ox}from"@scure/bip39";import{AssetValue as i0,applyFeeMultiplier as Ex,Chain as Xy,DerivationPath as gN,derivationPathToString as dN,FeeOption as Cy,NetworkDerivationPath as iN,SwapKitError as Oy,SwapKitNumber as rN,updateDerivationPath as aN}from"@swapkit/helpers";import{address as sN,initEccLib as Dx,Psbt as eN,payments as kx}from"bitcoinjs-lib";import{ECPairFactory as yL}from"ecpair";function Px({inputs:T,outputs:x,chain:N,psbt:y,sender:f,compiledMemo:G}){for(let L of T){let X=!!L.witnessUtxo&&!bT.includes(N)&&{witnessUtxo:L.witnessUtxo},_=bT.includes(N)&&{nonWitnessUtxo:L.txHex?Buffer.from(L.txHex,"hex"):void 0};y.addInput({hash:L.hash,index:L.index,...X,..._})}for(let L of x){let X="address"in L&&L.address?L.address:f,_=L.script;if(_&&!G)continue;let Z=_?{script:G,value:0}:{address:X,value:L.value};Dx(r0),y.addOutput(Z)}return{inputs:T,psbt:y}}async function Sx({assetValue:T,recipient:x,memo:N,feeRate:y,sender:f,fetchTxHex:G=!1}){let L=T.chain,X=N?await zy(N):null,_=await Ax({assetValue:T,fetchTxHex:G,memo:N,recipient:x,sender:f}),{inputs:Z,outputs:q}=Wy({..._,chain:L,feeRate:y});if(!(Z&&q))throw new Oy("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let Q=await Yy(),J=new eN({network:Q(L)});if(L===Xy.Dogecoin)J.setMaximumFeeRate(650000000);let{psbt:B,inputs:Y}=await Px({chain:L,compiledMemo:X,inputs:Z,outputs:q,psbt:J,sender:f});return{inputs:Y,psbt:B,utxos:_.inputs}}async function vx(){let T=await Yy();return function({address:N,chain:y}){if(y===Xy.BitcoinCash)return Ay(N);if(y===Xy.Zcash)return JT(N);try{return Dx(r0),sN.toOutputScript(N,T(y)),!0}catch{return!1}}}async function TL({chain:T,phrase:x,derivationPath:N}){let y=(await jT(T))({derivationPath:N,phrase:x});async function f(L){return await L.signAllInputs(y),L}function G(){return a0(T)(y)}return{getAddress:G,signTransaction:f}}async function dy({chain:T,...x}){let N="phrase"in x?x.phrase:void 0,y="index"in x?x.index||0:0,f=dN("derivationPath"in x&&x.derivationPath?x.derivationPath:aN(iN[T],{index:y})),G=N?await TL({chain:T,derivationPath:f,phrase:N}):("signer"in x)?x.signer:void 0;function L(){return Promise.resolve(G?.getAddress())}let X=await vx(),_=await jT(T);return{accumulative:Wy,broadcastTx:(Z)=>Ly(T).broadcastTx(Z),calculateTxSize:_T,createKeysForPath:_,createTransaction:Sx,estimateMaxSendableAmount:fL(T),estimateTransactionFee:xL(T),getAddress:L,getAddressFromKeys:a0(T),getBalance:ry(T),getFeeRates:()=>hT(T),getInputsOutputsFee:lx,getPrivateKeyFromMnemonic:(Z)=>{return _(Z).toWIF()},transfer:GL(G),validateAddress:(Z)=>X({address:Z,chain:T})}}async function lx({assetValue:T,feeOptionKey:x=Cy.Fast,feeRate:N,memo:y,sender:f,recipient:G}){let L=T.chain,X=await Ax({assetValue:T,memo:y,recipient:G,sender:f}),_=N?Math.floor(N):(await hT(L))[x];return Wy({...X,chain:L,feeRate:_})}function fL(T){return async function({from:N,memo:y,feeRate:f,feeOptionKey:G=Cy.Fast,recipients:L=1}){let X=await Ly(T).getAddressData(N),_=f?Math.ceil(f):(await hT(T))[G],Z=X?.utxo.map((Y)=>({...Y,hash:"",type:"P2PKH"})).filter((Y)=>Y.value>Math.max(Kf(T),ly(Y)*_));if(!Z?.length)return i0.from({chain:T});let q=i0.from({chain:T,value:Z.reduce((Y,W)=>Y+W.value,0)}),Q=typeof L==="number"?Array.from({length:L},()=>({address:N,value:0})):L;if(y){let Y=await zy(y);Q.push({address:N,script:Y,value:0})}let B=_T({feeRate:_,inputs:Z,outputs:Q})*_;return q.sub(B)}}function xL(T){return async(x)=>{let N=await lx(x);return i0.from({chain:T,value:rN.fromBigInt(BigInt(N.fee),8).getValue("string")})}}async function jT(T){let x=await Yy();switch(T){case Xy.BitcoinCash:return function({phrase:y,derivationPath:f=`${gN.BCH}/0`,wif:G}){let L=x(T);if(G)return mN.fromWIF(G,L);if(!y)throw new Oy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return cN.fromSeedBuffer(Buffer.from(Ox(y)),L).derivePath(f).keyPair};case Xy.Bitcoin:case Xy.Dogecoin:case Xy.Litecoin:case Xy.Zcash:case Xy.Dash:return function({phrase:y,wif:f,derivationPath:G}){if(!(f||y))throw new Oy("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let L=yL(r0),X=x(T);if(f)return L.fromWIF(f,X);let _=Ox(y),Z=tN.fromMasterSeed(_,X).derive(G);if(!Z.privateKey)throw new Oy("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return L.fromPrivateKey(Buffer.from(Z.privateKey),{network:X})};default:throw new Oy("toolbox_utxo_not_supported",{chain:T})}}function a0(T){let x=Yy();return function(y){if(!y)throw new Oy("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let f=bT.includes(T)?kx.p2pkh:kx.p2wpkh,{address:G}=f({network:x(T),pubkey:y.publicKey});if(!G)throw new Oy("toolbox_utxo_invalid_address",{error:"Address not defined"});return G}}function GL(T){return async function({memo:N,recipient:y,feeOptionKey:f,feeRate:G,assetValue:L}){let X=await T?.getAddress(),_=L.chain;if(!(T&&X))throw new Oy("toolbox_utxo_no_signer");if(!y)throw new Oy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Z=G||(await hT(_))[f||Cy.Fast],{psbt:q}=await Sx({assetValue:L,feeRate:Z,memo:N,recipient:y,sender:X}),Q=await T.signTransaction(q);return Q.finalizeAllInputs(),Ly(_).broadcastTx(Q.extractTransaction().toHex())}}async function hT(T){let x=await Ly(T).getSuggestedTxFee();return{[Cy.Average]:x,[Cy.Fast]:Ex(x,Cy.Fast),[Cy.Fastest]:Ex(x,Cy.Fastest)}}async function Ax({assetValue:T,recipient:x,memo:N,sender:y,fetchTxHex:f=!1}){let G=T.chain,L=(await hT(G))[Cy.Fastest],X=f||bT.includes(G),_=T.getBaseValue("number"),Z=Math.ceil(_+L*5000);return{inputs:await Ly(G).getUtxos({address:y,fetchTxHex:X,targetValue:Z}),outputs:[{address:x,value:_},...N?[{address:"",script:await zy(N),value:0}]:[]]}}var bT;var oT=k(()=>{WT();ZT();uT();bT=[Xy.Dash,Xy.Dogecoin,Xy.Zcash,Xy.BitcoinCash]});import{address as NL,Transaction as LL,TransactionBuilder as XL}from"@psf/bitcoincashjs-lib";import{Chain as _L,derivationPathToString as ZL,FeeOption as JL,NetworkDerivationPath as qL,SwapKitError as qT,updateDerivationPath as QL}from"@swapkit/helpers";import{Psbt as BL}from"bitcoinjs-lib";function iy(T){return gy($T(T))}function YL(T){function x({builder:y,utxos:f}){return f.forEach((G,L)=>{y.sign(L,T,void 0,65,G.witnessUtxo?.value)}),y.build()}return{getAddress:()=>{let y=T.getAddress(0);return Promise.resolve(iy(y))},signTransaction:x}}async function s0(T){let x="phrase"in T?T.phrase:void 0,N="index"in T?T.index||0:0,y=ZL("derivationPath"in T&&T.derivationPath?T.derivationPath:QL(qL[Jy],{index:N})),f=x?(await jT(Jy))({derivationPath:y,phrase:x}):void 0,G=f?YL(f):("signer"in T)?T.signer:void 0;function L(){return Promise.resolve(G?.getAddress())}let{getBalance:X,getFeeRates:_,broadcastTx:Z,...q}=await dy({chain:Jy});function Q(J,B=!0){return X(gy($T(J)))}return{...q,broadcastTx:Z,buildTx:WL,createTransaction:Fx,getAddress:L,getAddressFromKeys:HL,getBalance:Q,getFeeRates:_,stripPrefix:gy,stripToCashAddress:iy,transfer:zL({broadcastTx:Z,getFeeRates:_,signer:G}),validateAddress:Ay}}async function Fx({assetValue:T,recipient:x,memo:N,feeRate:y,sender:f}){if(!Ay(x))throw new qT("toolbox_utxo_invalid_address",{address:x});let G=Math.ceil(T.getBaseValue("number")+y*7500),L=await Ly(Jy).getUtxos({address:iy(f),fetchTxHex:!0,targetValue:G}),X=N?await zy(N):null,_=[];_.push({address:x,value:T.getBaseValue("number")});let{inputs:Z,outputs:q}=Wy({chain:Jy,feeRate:y,inputs:L,outputs:_});if(!(Z&&q))throw new qT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let Q=await Yy(),J=new XL(Q(Jy));await Promise.all(Z.map(async(B)=>{let Y=await Ly(Jy).getRawTx(B.hash);J.addInput(LL.fromBuffer(Buffer.from(Y,"hex")),B.index)}));for(let B of q){let Y="address"in B&&B.address?B.address:XT(f),W=await Yy(),M=NL.toOutputScript(XT(Y),W(Jy));J.addOutput(M,B.value)}if(X)J.addOutput(X,0);return{builder:J,utxos:Z}}function zL({broadcastTx:T,getFeeRates:x,signer:N}){return async function({recipient:f,assetValue:G,feeOptionKey:L=JL.Fast,...X}){let _=await N?.getAddress();if(!(N&&_))throw new qT("toolbox_utxo_no_signer");if(!f)throw new qT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Z=X.feeRate||(await x())[L],{builder:q,utxos:Q}=await Fx({...X,assetValue:G,feeRate:Z,recipient:f,sender:_}),B=(await N.signTransaction({builder:q,utxos:Q})).toHex();return T(B)}}async function WL({assetValue:T,recipient:x,memo:N,feeRate:y,sender:f,setSigHashType:G}){let L=$T(x);if(!Ay(L))throw new qT("toolbox_utxo_invalid_address",{address:L});let X=Math.ceil(T.getBaseValue("number")+y*7500),_=await Ly(Jy).getUtxos({address:iy(f),fetchTxHex:!1,targetValue:X}),Z=Number(y.toFixed(0)),q=N?await zy(N):null,Q=[];if(Q.push({address:XT(x),value:T.getBaseValue("number")}),q)Q.push({script:q,value:0});let{inputs:J,outputs:B}=Wy({chain:Jy,feeRate:Z,inputs:_,outputs:Q});if(!(J&&B))throw new qT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let Y=await Yy(),W=new BL({network:Y(Jy)});for(let{hash:M,index:I,witnessUtxo:O}of J)W.addInput({hash:M,index:I,sighashType:G?65:void 0,witnessUtxo:O});for(let M of B){let I="address"in M&&M.address?M.address:XT(f),O=M.script?q?{script:q,value:0}:void 0:{address:I,value:M.value};if(O)W.addOutput(O)}return{inputs:J,psbt:W,utxos:_}}function HL(T){let x=T.getAddress(0);return iy(x)}var Jy;var nf=k(()=>{ZT();oT();uT();Jy=_L.BitcoinCash});import{bitgo as UL,crypto as ML,ECPair as $x,networks as IL,address as RL}from"@bitgo/utxo-lib";import{HDKey as Kx}from"@scure/bip32";import{mnemonicToSeedSync as nx}from"@scure/bip39";import{Chain as uf,derivationPathToString as wL,FeeOption as CL,NetworkDerivationPath as OL,SKConfig as EL,SwapKitError as bf,updateDerivationPath as kL}from"@swapkit/helpers";import DL from"bs58check";import{match as PL,P as e0}from"ts-pattern";function ux(){return IL.zcash}function bx(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
- `,pubKeyHash:28,scriptHash:28,wif:128}}function SL({phrase:T,derivationPath:x}){let N=nx(T),f=Kx.fromMasterSeed(N).derive(x);if(!f.privateKey)throw new bf("toolbox_utxo_invalid_params");let G=bx(),L=$x.fromPrivateKey(Buffer.from(f.privateKey),{network:G}),X=ML.hash160(L.publicKey),{isStagenet:_}=EL.get("envs"),Z=_?Buffer.from([29,37]):Buffer.from([28,184]),q=Buffer.concat([Z,X]),Q=DL.encode(q);return{getAddress:()=>Promise.resolve(Q),signTransaction:(J)=>{let B=J.signAllInputs(L);return Promise.resolve(B)}}}function vL({inputs:T,outputs:x,psbt:N,sender:y,compiledMemo:f}){for(let G of T){let L=!!G.witnessUtxo&&{witnessUtxo:{...G.witnessUtxo,value:BigInt(G.value)}},X=!G.witnessUtxo&&{nonWitnessUtxo:G.txHex?Buffer.from(G.txHex,"hex"):void 0};N.addInput({hash:G.hash,index:G.index,...L,...X})}for(let G of x){let L="address"in G&&G.address?G.address:y,X=G.script;if(X&&!f)continue;let _=X?{script:f,value:0n}:{script:RL.toOutputScript(L,ux()),value:BigInt(G.value)};N.addOutput(_)}return{inputs:T,psbt:N}}async function Vx(T){let{assetValue:x,recipient:N,memo:y,feeRate:f,sender:G,fetchTxHex:L}=T,X=y?zy(y):null,_=await Ly(uf.Zcash).getUtxos({address:G,fetchTxHex:L!==!1}),Z=[{address:N,value:Number(x.getBaseValue("string"))},...X?[{script:X,value:0}]:[]],{inputs:q,outputs:Q}=Wy({chain:uf.Zcash,changeAddress:G,feeRate:f,inputs:_,outputs:Z});if(!(q&&Q))throw new bf("toolbox_utxo_insufficient_balance",{assetValue:x,sender:G});let J=UL.createPsbtForNetwork({network:ux()},{version:455}),B=1307332080,Y=Buffer.concat([Buffer.of(252),Buffer.of(5),Buffer.from("BITGO"),Buffer.of(0)]),W=Buffer.allocUnsafe(4);W.writeUInt32LE(B>>>0,0),J.addUnknownKeyValToGlobal({key:Y,value:W});let{psbt:M,inputs:I}=await vL({compiledMemo:X,inputs:q,outputs:Q,psbt:J,sender:G});return{inputs:I,outputs:Q,psbt:M}}async function y1(T){let x=await PL(T).with({signer:e0.not(e0.nullish)},({signer:L})=>Promise.resolve(L)).with({phrase:e0.string},({phrase:L,derivationPath:X,index:_=0})=>{let Z=X||OL[uf.Zcash]||[44,133,0,0,0],q=kL(Z,{index:_}),Q=wL(q);return SL({derivationPath:Q,phrase:L})}).otherwise(()=>Promise.resolve(void 0)),N=await dy({chain:uf.Zcash,signer:x});async function y({recipient:L,assetValue:X,feeOptionKey:_=CL.Fast,...Z}){let q=await x?.getAddress();if(!(x&&q))throw new bf("toolbox_utxo_no_signer");let Q=Z.feeRate||(await N.getFeeRates())[_],{psbt:J}=await Vx({...Z,assetValue:X,feeRate:Q,recipient:L,sender:q}),B=await x.signTransaction(J);return B.finalizeAllInputs(),N.broadcastTx(B.extractTransaction().toHex())}function f({phrase:L,derivationPath:X="m/44'/133'/0'/0/0"}){let _=nx(L),q=Kx.fromMasterSeed(_).derive(X);if(!q.privateKey)throw new bf("toolbox_utxo_invalid_params");let Q=bx();return $x.fromPrivateKey(Buffer.from(q.privateKey),{network:Q})}function G({phrase:L,derivationPath:X="m/44'/133'/0'/0/0"}){return f({derivationPath:X,phrase:L}).toWIF()}return{...N,createKeysForPath:f,createTransaction:Vx,getPrivateKeyFromMnemonic:G,transfer:y,validateAddress:JT}}var T1=k(()=>{ZT();oT();uT()});import{Chain as QT,SwapKitError as lL}from"@swapkit/helpers";async function AL(T,x){switch(T){case QT.BitcoinCash:return await s0(x||{});case QT.Zcash:return await y1(x);case QT.Bitcoin:case QT.Dogecoin:case QT.Litecoin:case QT.Dash:return await dy({chain:T,...x});default:throw new lL("toolbox_utxo_not_supported",{chain:T})}}var jx=k(()=>{nf();oT();T1();nf();uT()});var f1={};yy(f1,{validateZcashAddress:()=>JT,toLegacyAddress:()=>XT,toCashAddress:()=>$T,stripToCashAddress:()=>iy,stripPrefix:()=>gy,nonSegwitChains:()=>bT,isValidAddress:()=>t0,getUtxoToolbox:()=>AL,getUtxoNetwork:()=>Yy,getUtxoApi:()=>Ly,getUTXOAddressValidator:()=>vx,getScriptTypeForAddress:()=>KT,getOutputSize:()=>nT,getInputSize:()=>ly,getDustThreshold:()=>Kf,getCreateKeysForPath:()=>jT,detectAddressNetwork:()=>g0,createZcashToolbox:()=>y1,createUTXOToolbox:()=>dy,createCustomUtxoApi:()=>SN,createBCHToolbox:()=>s0,compileMemo:()=>zy,calculateTxSize:()=>_T,bchValidateAddress:()=>Ay,addressFromKeysGetter:()=>a0,addInputsAndOutputs:()=>Px,accumulative:()=>Wy,UtxoNetwork:()=>c0,UTXOScriptType:()=>$f,TX_OVERHEAD:()=>Vf,OutputSizes:()=>Ff,OP_RETURN_OVERHEAD:()=>wx,MIN_TX_FEE:()=>nN,InputSizes:()=>Af});var x1=k(()=>{ZT();jx();nf();oT();T1()});import{KeyPairSigner as FL}from"@near-js/signers";import{derivationPathToString as VL,SwapKitError as $L}from"@swapkit/helpers";async function jf(){let{validateAccountId:T}=await import("near-sdk-js");return(x)=>{try{return T(x)}catch{let N=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return x.length>=2&&x.length<=64&&N.test(x)}}}async function hf(T){let{parseSeedPhrase:x}=await import("near-seed-phrase"),{KeyPair:N}=await import("@near-js/crypto"),y=T.index||0,f=T.derivationPath?VL(T.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:G}=x(T.phrase,f),L=N.fromString(G);return ox(L)}async function G1(T){let{KeyPair:x}=await import("@near-js/crypto"),N=x.fromString(T);return ox(N)}function ox(T){return new hx(T)}async function of(T,x){let y=(await T.query({account_id:x,finality:"final",request_type:"view_access_key_list"})).keys.find((X)=>X.access_key.permission==="FullAccess");if(!y)throw new $L("toolbox_near_no_public_key_found");let{PublicKey:f}=await import("@near-js/crypto"),G=f.fromString(y.public_key);return{nonce:y.access_key.nonce||0,publicKey:G}}var hx;var N1=k(()=>{hx=class hx extends FL{#y;constructor(T){super(T);this.#y=T}getAddress(){let T=this.#y.getPublicKey(),x=Buffer.from(T.data).toString("hex");return Promise.resolve(x)}}});function L1(T){return"recipient"in T&&"amount"in T&&!("contractId"in T)}function X1(T){return"contractId"in T&&"methodName"in T}function _1(T){return"actions"in T}function Z1(T){return"newAccountId"in T}function J1(T){return"contractCode"in T}function q1(T){return"customEstimator"in T}function Q1(T){let x=0;for(let N of T)switch(N.enum){case"transfer":x+=Number(s.SIMPLE_TRANSFER);break;case"functionCall":x+=Number(s.CONTRACT_CALL);break;case"createAccount":x+=Number(s.ACCOUNT_CREATION);break;case"deployContract":x+=Number(s.CONTRACT_DEPLOYMENT);break;case"addKey":x+=Number(s.ACCESS_KEY_ADDITION);break;case"deleteKey":x+=Number(s.ACCESS_KEY_DELETION);break;case"stake":x+=Number(s.STAKE);break;default:x+=Number(s.CONTRACT_CALL)}return x.toString()}function B1(T){if(T==="ft_transfer"||T==="ft_transfer_call")return s.TOKEN_TRANSFER;if(T==="storage_deposit")return s.STORAGE_DEPOSIT;return s.CONTRACT_CALL}function KL(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function nL(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var s;var Y1=k(()=>{s={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 z1({account:T,contractId:x,viewMethods:N,changeMethods:y}){let{Contract:f}=await import("@near-js/accounts");return new f(T,x,{changeMethods:y,useLocalViewExecution:!0,viewMethods:N})}import{AssetValue as px,Chain as BT,getChainConfig as mx,getRPCUrl as uL,SwapKitError as xy}from"@swapkit/helpers";async function bL(T){let{P:x,match:N}=await import("ts-pattern"),{JsonRpcProvider:y}=await import("@near-js/providers"),f=await N(T).with({phrase:x.string},async(z)=>{return await hf(z)}).with({signer:x.any},({signer:z})=>z).otherwise(()=>{return}),G=await uL(BT.Near),L=new y({url:G});async function X(z){let{Account:R}=await import("@near-js/accounts"),C=z||await _();return new R(C,L,f)}async function _(){if(!f)throw new xy("toolbox_near_no_signer");return await f.getAddress()}async function Z(z){return(await d({changeMethods:[],contractId:z.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:z.accountId})}async function q(z){let C=[await W({args:{account_id:z.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await W({args:{amount:z.assetValue.getBaseValue("string"),memo:z.memo||null,receiver_id:z.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return Gy({actions:C,receiverId:z.contractId})}async function Q(z){if(!f)throw new xy("toolbox_near_no_signer");let{assetValue:R,recipient:C,memo:A}=z,u=await _();if(!R.isGasAsset&&R.address){if(!await Z({accountId:C,contractId:R.address}))return q({assetValue:R,contractId:R.address,memo:A,recipient:C})}let n=await J({...z,sender:u});return O(n)}async function J(z){let{recipient:R,assetValue:C,memo:A,attachedDeposit:u,sender:n,functionCall:$}=z,h=await jf();if(!h(R))throw new xy("toolbox_near_invalid_address",{recipient:R});if(!h(n))throw new xy("toolbox_near_invalid_address",{signerId:n});if($)return Y({...$,sender:n});if(!C.isGasAsset){let tT=C.address;if(!tT)throw new xy("toolbox_near_missing_contract_address");return Y({args:{amount:C.getBaseValue("string"),memo:A||null,receiver_id:R},attachedDeposit:u||"1",contractId:tT,gas:"250000000000000",methodName:"ft_transfer",sender:n})}let{publicKey:i,nonce:e}=await of(L,n),Ny=C.getBaseValue("bigint"),{actionCreators:$y,createTransaction:pT}=await import("@near-js/transactions"),{baseDecode:pf}=await import("@near-js/utils"),Ky=[$y.transfer(Ny)];if(A&&u)Ky.push($y.functionCall("memo",{memo:A},BigInt("250000000000000"),BigInt(u)));let mT=await L.block({finality:"final"}),cT=pf(mT.header.hash);return pT(n,i,R,e+1,Ky,cT)}function B(z){let R=z.encode();return Buffer.from(R).toString("base64")}async function Y(z){let{sender:R}=z,{publicKey:C,nonce:A}=await of(L,R),{createTransaction:u,actionCreators:n}=await import("@near-js/transactions"),{baseDecode:$}=await import("@near-js/utils"),h=await L.block({finality:"final"}),i=$(h.header.hash),e=[n.functionCall(z.methodName,Buffer.from(JSON.stringify(z.args)),BigInt(z.gas),BigInt(z.attachedDeposit))];return u(R,C,z.contractId,A+1,e,i)}async function W(z){let{actionCreators:R}=await import("@near-js/transactions");return R.functionCall(z.methodName,Buffer.from(JSON.stringify(z.args)),BigInt(z.gas),BigInt(z.attachedDeposit))}async function M(z){if(!f)throw new xy("toolbox_near_no_signer");let[R,C]=await f.signTransaction(z);return C}async function I(z){return(await L.sendTransaction(z)).transaction.hash}async function O(z){if(!f)throw new xy("toolbox_near_no_signer");try{let R=await M(z);return await I(R)}catch{return f.signAndSendTransactions?.({transactions:[z]})}}async function l(z){if("assetValue"in z){let u=BigInt("115123062500")+BigInt("108059500000"),n=await S(),$=u*BigInt(n.toString()),{baseDecimal:h}=mx(BT.Near);return px.from({chain:BT.Near,fromBaseDecimal:h,value:$.toString()})}let R=f?await X():void 0;return D(z,R)}async function S(){try{return await L.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function F(z,R,C){if(!f)throw new xy("toolbox_near_no_signer");let A=await X(),{formatNearAmount:u}=await import("@near-js/utils"),{PublicKey:n}=await import("@near-js/crypto"),$=u(C)||"0";return(await A.createAccount(z,n.fromString(R),BigInt($))).transaction.hash}async function j(z){try{if(!f)throw new xy("toolbox_near_no_signer");let{actionCreators:R}=await import("@near-js/transactions"),{contractId:C,methodName:A,args:u,deposit:n}=z,$=await X(),h=await D({args:u||{},contractId:C,methodName:A}),i=R.functionCall(A,u||{},h.getBaseValue("bigint"),BigInt(n||"1"));return(await $.signAndSendTransaction({actions:[i],receiverId:C})).transaction_outcome.id}catch(R){throw new xy("toolbox_near_transfer_failed",{error:R})}}async function d(z){let R=await X();return z1({account:R,changeMethods:z.changeMethods,contractId:z.contractId,viewMethods:z.viewMethods})}async function Gy(z){if(!f)throw new xy("toolbox_near_no_signer");if(z.actions.length===0)throw new xy("toolbox_near_empty_batch");return(await(await X()).signAndSendTransaction({actions:z.actions,receiverId:z.receiverId})).transaction.hash}async function D(z,R){let{baseDecimal:C}=mx(BT.Near),A=await N(z).when(L1,()=>s.SIMPLE_TRANSFER).when(X1,($)=>B1($.methodName)).when(_1,($)=>Q1($.actions)).when(Z1,()=>s.ACCOUNT_CREATION).when(J1,()=>s.CONTRACT_DEPLOYMENT).when(q1,($)=>{if(!R)throw new xy("toolbox_near_no_account");return $.customEstimator(R)}).otherwise(()=>{throw new xy("toolbox_near_invalid_gas_params")}),n=BigInt(A)*BigInt(1000000000000);return px.from({chain:BT.Near,fromBaseDecimal:C,value:n})}async function v(){try{return(await L.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:I,callFunction:j,createAction:W,createContract:d,createContractFunctionCall:Y,createSubAccount:F,createTransaction:J,estimateGas:D,estimateTransactionFee:l,executeBatchTransaction:Gy,getAddress:_,getBalance:ry(BT.Near),getGasPrice:v,getPublicKey:async()=>f?(await f.getPublicKey()).toString():"",getSignerFromPhrase:(z)=>hf(z),getSignerFromPrivateKey:G1,provider:L,serializeTransaction:B,signAndSendTransaction:O,signTransaction:M,transfer:Q,validateAddress:await jf()}}var W1=k(()=>{WT();N1();Y1()});var cx=k(()=>{W1()});var H1={};yy(H1,{tgasToGas:()=>KL,isSimpleTransfer:()=>L1,isCustomEstimator:()=>q1,isContractDeployment:()=>J1,isContractCall:()=>X1,isBatchTransaction:()=>_1,isAccountCreation:()=>Z1,getValidateNearAddress:()=>jf,getNearToolbox:()=>bL,getNearSignerFromPrivateKey:()=>G1,getNearSignerFromPhrase:()=>hf,getFullAccessPublicKey:()=>of,getContractMethodGas:()=>B1,gasToTGas:()=>nL,estimateBatchGas:()=>Q1,createNearContract:()=>z1,GAS_COSTS:()=>s});var U1=k(()=>{N1();Y1();W1();cx()});var I1={};yy(I1,{radixValidateAddress:()=>gx,RadixToolbox:()=>tL});import{AssetValue as tx,Chain as M1,SKConfig as jL,SwapKitError as hL}from"@swapkit/helpers";function gx(T){return T.startsWith("account_rdx1")&&T.length===66}function oL({networkApi:T}){return async function(N){let y=await pL({address:N,networkApi:T}),f=await mL({networkApi:T,resources:y});if(!f.some((L)=>L.isGasAsset))return[tx.from({chain:M1.Radix}),...f];return f}}async function pL({address:T,networkApi:x}){let N=!0,y,f=[],G=await cL(x);while(N){let L={address:T,at_ledger_state:{state_version:G},cursor:y,limit_per_page:100},X=await x.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:L});if(f=f.concat(X.items),X.next_cursor)y=X.next_cursor;else N=!1}return f}async function mL({resources:T,networkApi:x}){let N=[],y=50,f=[];for(let G=0;G<T.length;G+=50)f.push(T.slice(G,G+50));for(let G of f){let L=G.map((Z)=>Z.resource_address),X=await x.state.getEntityDetailsVaultAggregated(L),_=new Map;for(let Z of X)if(Z.details!==void 0){let q=Z.metadata?.items.find((J)=>J.key==="symbol"),Q=q?.value.typed.type==="String"?q.value.typed.value:"?";if(Z.details.type==="FungibleResource")_.set(Z.address,{decimals:Z.details.divisibility,symbol:Q})}for(let Z of G)if(Z.aggregation_level==="Global"){let q=_.get(Z.resource_address)||{decimals:0,symbol:"?"},Q=tx.from({asset:q.symbol!==M1.Radix?`${M1.Radix}.${q.symbol}-${Z.resource_address}`:"XRD.XRD",value:Z.amount});N.push(Q)}}return N}function cL(T){return T.status.getCurrent().then((x)=>x.ledger_state.state_version)}var tL=async({dappConfig:T}={})=>{let{RadixDappToolkit:x}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:N}=await import("@radixdlt/babylon-gateway-api-sdk"),y=T||jL.get("integrations").radix,f=x({...y,networkId:y.network?.networkId||1}),G=N.initialize(f.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:oL({networkApi:G}),networkApi:G,signAndBroadcast:()=>{throw new hL("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:gx}};var R1=()=>{};var O1={};yy(O1,{rippleValidateAddress:()=>C1,hashes:()=>TX,getRippleToolbox:()=>yX});import{AssetValue as w1,Chain as Ey,getChainConfig as dx,getRPCUrl as gL,SwapKitError as Fy,SwapKitNumber as dL}from"@swapkit/helpers";import{Client as iL,isValidAddress as rL,Wallet as aL,xrpToDrops as sL}from"xrpl";import{hashes as TX}from"xrpl";function ix(T){let x=aL.fromMnemonic(T);return{getAddress:()=>Promise.resolve(x.address),signTransaction:(N)=>Promise.resolve(x.sign(N))}}function C1(T){return rL(T)}var eL,yX=async(T={})=>{let x="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?ix(T.phrase):void 0,N=await gL(Ey.Ripple);if(!N)throw new Fy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:Ey.Ripple}});let y=new iL(N);await y.connect();let f=()=>{if(!x)throw new Fy({errorKey:"toolbox_ripple_signer_not_found"});return x.getAddress()},G=async(J)=>{let B=J||await f(),{baseDecimal:Y}=dx(Ey.Ripple);try{let M=(await y.request({account:B,command:"account_info"})).result.account_data.Balance;return[w1.from({chain:Ey.Ripple,fromBaseDecimal:Y,value:M})]}catch(W){if(W.data.error_code===eL.ACCOUNT_NOT_FOUND)return[w1.from({chain:Ey.Ripple,value:0})];throw new Fy("toolbox_ripple_get_balance_error",{info:{address:B,error:W}})}},L=async()=>{let B=(await y.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:Y}=dx(Ey.Ripple);return w1.from({chain:Ey.Ripple,fromBaseDecimal:Y,value:dL.fromBigInt(BigInt(B),Y)})},X=async({assetValue:J,recipient:B,memo:Y,sender:W})=>{if(!C1(B))throw new Fy({errorKey:"core_transaction_invalid_recipient_address"});let M=W||await f();if(!J.isGasAsset||J.chain!==Ey.Ripple)throw new Fy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:J.toString()}});let I={Account:M,Amount:sL(J.getValue("string")),Destination:B,TransactionType:"Payment"};if(Y)I.Memos=[{Memo:{MemoData:Buffer.from(Y).toString("hex")}}];return await y.autofill(I)},_=(J)=>{if(!x)throw new Fy({errorKey:"toolbox_ripple_signer_not_found"});return x.signTransaction(J)},Z=async(J)=>{let Y=(await y.submitAndWait(J)).result;if(Y.validated)return Y.hash;throw new Fy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Ey.Ripple}})};return{broadcastTransaction:Z,createSigner:ix,createTransaction:X,disconnect:()=>y.disconnect(),estimateTransactionFee:L,getAddress:f,getBalance:G,signer:x,signTransaction:_,transfer:async(J)=>{if(!x)throw new Fy({errorKey:"toolbox_ripple_signer_not_found"});let B=await x.getAddress(),Y=await X({...J,sender:B}),W=await _(Y);return Z(W.tx_blob)},validateAddress:C1}};var E1=k(()=>{eL={ACCOUNT_NOT_FOUND:19}});import{AssetValue as fX,Chain as xX,SwapKitNumber as rx}from"@swapkit/helpers";async function GX(T,x,N){try{let y=await T.query.system?.account?.(N);if(!y)return[x.set(0)];let{data:{free:f}}=y,G=rx.fromBigInt(BigInt(f.toString()),x.decimal).getValue("string");return[x.set(G)]}catch(y){let f=y instanceof Error?y.message:String(y);return console.error(`Error fetching substrate balance: ${f}`),[x.set(0)]}}async function NX(T,x,N){try{let y=await T.query.flip?.account?.(N);if(!y)return[x.set(0)];let f=y.balance||y.data?.balance;if(!f||f.isEmpty)return[x.set(0)];let G=rx.fromBigInt(BigInt(f.toString()),x.decimal).getValue("string");return[x.set(G)]}catch(y){let f=y instanceof Error?y.message:String(y);return console.error(`Error fetching chainflip balance: ${f}`),[x.set(0)]}}function ax(T,x){return function(y){let f=fX.from({chain:T});switch(T){case xX.Chainflip:return NX(x,f,y);default:return GX(x,f,y)}}}var sx=()=>{};var LX,XX,_X,Vy;var k1=k(()=>{LX={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},XX={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},_X={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},Vy={DOT:LX,FLIP:XX,GENERIC:_X}});import{hexToU8a as ZX,isHex as JX,u8aToHex as qX}from"@polkadot/util";import{decodeAddress as y2,encodeAddress as T2}from"@polkadot/util-crypto";import{AssetValue as QX,Chain as zT,getRPCUrl as BX,SwapKitError as Hy,SwapKitNumber as YX}from"@swapkit/helpers";import{match as zX,P as ex}from"ts-pattern";function WX(T,x){switch(T){case zT.Chainflip:return x2(x);case zT.Polkadot:return f2(x);default:throw new Hy("toolbox_substrate_not_supported",{chain:T})}}function YT(T){return"address"in T}async function P1(T,x){let{Keyring:N}=await import("@polkadot/api"),{cryptoWaitReady:y}=await import("@polkadot/util-crypto");return await y(),new N({ss58Format:x,type:"sr25519"}).addFromUri(T)}function CX(T,x){let N=y2(T);return T2(N,x)}function G2(T,x){return JX(T)?ZX(T):y2(T,void 0,x)}function N2(T,x="ss58",N){if(x==="hex")return qX(T);return T2(T,N)}async function l1({generic:T,chain:x,...N}){let{ApiPromise:y,WsProvider:f}=await import("@polkadot/api"),G=await BX(x),L=new f(G),X=await y.create({noInitWarn:!0,provider:L}),_=QX.from({chain:x}),Z=T?Vy.GENERIC:Vy[x],q=await zX(N).with({phrase:ex.string},({phrase:Q})=>P1(Q,Vy[x].prefix)).with({signer:ex.any},({signer:Q})=>Q).otherwise(()=>{return});return L2({api:X,chain:x,gasAsset:_,network:Z,signer:q})}var f2=({generic:T=!1,...x}={})=>{return l1({chain:zT.Polkadot,generic:T,...x})},x2=async({generic:T=!1,...x}={})=>{return{...await l1({chain:zT.Chainflip,generic:T,...x})}},S1=(T,x)=>T.rpc.system.accountNextIndex(x),D1=(T,x)=>{try{let N=G2(T,x);return N2(N,"ss58",x),!0}catch{return!1}},v1=(T,{recipient:x,assetValue:N})=>T.tx.balances?.transferAllowDeath?.(x,N.getBaseValue("number")),HX=async(T,x,{recipient:N,assetValue:y,sender:f})=>{let G=v1(T,{assetValue:y,recipient:N});if(!G)throw new Hy("toolbox_substrate_transfer_error");let L=YT(x),X=L?x.address:f;if(!X)throw new Hy("core_transaction_invalid_sender_address");let _=await S1(T,X);return(await G.signAndSend(L?x:X,{nonce:_,signer:L?void 0:x})).toString()},UX=async(T,x,N,{recipient:y,assetValue:f,sender:G})=>{let L=v1(T,{assetValue:f,recipient:y}),X=YT(x)?x.address:G;if(!X)return;let _=await L?.paymentInfo(X,{nonce:await S1(T,X)})||{partialFee:0};return N.set(YX.fromBigInt(BigInt(_.partialFee.toString()),N.decimal).getValue("string"))},MX=async(T,x)=>{if(x)return T.send(x);return(await T.send()).toString()},IX=async(T,x)=>{return await x.signAsync(T)},RX=(T,x,N)=>{if(N)return x.signAndSend(T,N);return x.signAndSend(T).toString()},wX=async({signer:T,address:x,tx:N,callback:y,api:f})=>{let G=await S1(f,x);if(y)N.signAndSend(x,{nonce:G,signer:T},y);return N.signAndSend(x,{nonce:G,signer:T}).toString()},L2=({api:T,network:x,gasAsset:N,signer:y,chain:f})=>({api:T,broadcast:MX,convertAddress:CX,createKeyring:(G)=>P1(G,x.prefix),createTransaction:(G)=>v1(T,G),decodeAddress:G2,encodeAddress:N2,estimateTransactionFee:(G)=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");return UX(T,y,N,G)},gasAsset:N,getAddress:(G)=>{let L=G||y;if(!L)throw new Hy("core_wallet_not_keypair_wallet");return YT(L)?L.address:void 0},getBalance:ax(f||zT.Polkadot,T),network:x,sign:(G)=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");if(YT(y))return IX(y,G);throw new Hy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:G,callback:L,address:X})=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");if(YT(y))return RX(y,G,L);if(X)return wX({address:X,api:T,callback:L,signer:y,tx:G});throw new Hy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(G)=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");return HX(T,y,G)},validateAddress:(G)=>D1(G,x.prefix)}),OX=({address:T,chain:x})=>{let{prefix:N}=x===zT.Polkadot?Vy.DOT:Vy.FLIP;return D1(T,N)||D1(T,Vy.GENERIC.prefix)};var X2=k(()=>{sx();k1()});var A1={};yy(A1,{substrateValidateAddress:()=>OX,isKeyringPair:()=>YT,getSubstrateToolbox:()=>WX,createSubstrateToolbox:()=>l1,createKeyring:()=>P1,SubstrateNetwork:()=>Vy,PolkadotToolbox:()=>f2,ChainflipToolbox:()=>x2,BaseSubstrateToolbox:()=>L2});var F1=k(()=>{X2();k1()});import{AssetValue as EX,Chain as V,CosmosChains as Z2,EVMChains as V1,FeeOption as kX,SubstrateChains as DX,SwapKitError as PX,UTXOChains as J2}from"@swapkit/helpers";async function V4(){let{match:T}=await import("ts-pattern"),{evmValidateAddress:x}=await Promise.resolve().then(() => (_5(),X5)),{getCardanoAddressValidator:N}=await Promise.resolve().then(() => (_0(),X0)),{getCosmosValidateAddress:y}=await Promise.resolve().then(() => (Cf(),wf)),{getSolanaAddressValidator:f}=await Promise.resolve().then(() => (K0(),$0)),{getSuiAddressValidator:G}=await Promise.resolve().then(() => (kf(),Ef)),{getTONAddressValidator:L}=await Promise.resolve().then(() => (Pf(),Df)),{getTronAddressValidator:X}=await Promise.resolve().then(() => (p0(),o0)),{getUTXOAddressValidator:_}=await Promise.resolve().then(() => (x1(),f1)),{getValidateNearAddress:Z}=await Promise.resolve().then(() => (U1(),H1)),{radixValidateAddress:q}=await Promise.resolve().then(() => (R1(),I1)),{rippleValidateAddress:Q}=await Promise.resolve().then(() => (E1(),O1)),{substrateValidateAddress:J}=await Promise.resolve().then(() => (F1(),A1)),B=await N(),Y=await Z(),W=await f(),M=await G(),I=await L(),O=await X(),l=await _();return function({address:F,chain:j}){return T(j).with(...V1,()=>x({address:F})).with(...J2,()=>l({address:F,chain:j})).with(V.Cosmos,V.Kujira,V.Noble,V.Maya,V.THORChain,(Gy)=>{return y(Gy)(F)}).with(V.Chainflip,V.Polkadot,()=>J({address:F,chain:j})).with(V.Radix,()=>q(F)).with(V.Near,()=>Y(F)).with(V.Ripple,()=>Q(F)).with(V.Solana,()=>W(F)).with(V.Sui,()=>M(F)).with(V.Ton,()=>I(F)).with(V.Tron,()=>O(F)).with(V.Cardano,()=>B(F)).otherwise(()=>!1)}}function $4(T){return async function(N){let{match:y}=await import("ts-pattern");return y(T).returnType().with(...V1,async(f)=>{let G=await _2(f),L=await G.createTransaction(N);return G.estimateTransactionFee({...L,chain:f,feeOption:N.feeOptionKey||kX.Fast})}).with(V.Bitcoin,V.BitcoinCash,V.Dogecoin,V.Dash,V.Litecoin,V.Polkadot,V.Solana,V.Ripple,V.Tron,V.Near,V.Cardano,async(f)=>{return(await _2(f)).estimateTransactionFee(N)}).with(V.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (kf(),Ef));return(await f()).estimateTransactionFee(N)}).with(V.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (Pf(),Df));return(await f()).estimateTransactionFee()}).with(...Z2,async()=>{let{estimateTransactionFee:f}=await Promise.resolve().then(() => (Cf(),wf));return f(N)}).otherwise(async()=>EX.from({chain:T}))}}async function _2(T,x){let{match:N}=await import("ts-pattern");return N(T).returnType().with(...V1,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (N0(),G5));return await y(T,x)}).with(...J2,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (x1(),f1));return await y(T,x)}).with(...Z2,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (Cf(),wf));return await y(T,x)}).with(...DX,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (F1(),A1));return await y(T,x)}).with(V.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (R1(),I1));return await y(x)}).with(V.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (E1(),O1));return await y(x)}).with(V.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (K0(),$0));return await y(x)}).with(V.Sui,async()=>{let{getSuiToolbox:y}=await Promise.resolve().then(() => (kf(),Ef));return await y(x)}).with(V.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (p0(),o0));return await y(x)}).with(V.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (U1(),H1));return await y(x)}).with(V.Cardano,async()=>{let{getCardanoToolbox:y}=await Promise.resolve().then(() => (_0(),X0));return await y(x)}).with(V.Ton,async()=>{let{getTONToolbox:y}=await Promise.resolve().then(() => (Pf(),Df));return await y(x)}).otherwise(()=>{throw new PX("toolbox_not_supported",{chain:T})})}export{_2 as getToolbox,$4 as getFeeEstimator,V4 as getAddressValidator};
1
+ var Q2=Object.create;var{getPrototypeOf:B2,defineProperty:mf,getOwnPropertyNames:Y2}=Object;var z2=Object.prototype.hasOwnProperty;var H=(T,x,N)=>{N=T!=null?Q2(B2(T)):{};let y=x||!T||!T.__esModule?mf(N,"default",{value:T,enumerable:!0}):N;for(let f of Y2(T))if(!z2.call(y,f))mf(y,f,{get:()=>T[f],enumerable:!0});return y};var Ty=(T,x)=>{for(var N in x)mf(T,N,{get:x[N],enumerable:!0,configurable:!0,set:(y)=>x[N]=()=>y})};var k=(T,x)=>()=>(T&&(x=T(T=0)),x);var U=((T)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(T,{get:(x,N)=>(typeof require<"u"?require:x)[N]}):T)(function(T){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+T+'" is not supported')});import{AssetValue as K1,getChainConfig as W2}from"@swapkit/helpers";import{SwapKitApi as H2}from"@swapkit/helpers/api";function n1(){function T(){let x=Date.now(),N=cf||x;return cf=N,x>cf?x:N+1}return U2+T().toString(36)}function ry(T){return async function(N,y=!0){let f=await H2.getChainBalance({address:N,chain:T,scamFilter:y}),{baseDecimal:G}=W2(T),L=f.map(({identifier:_,value:Z,decimal:q})=>{return new K1({decimal:q||G,identifier:_,value:Z})});if(!L.some((_)=>_.isGasAsset))return[K1.from({chain:T}),...L];return L}}var U2,cf=0;var WT=k(()=>{U2=typeof process<"u"&&process.pid?process.pid.toString(36):""});function HT(T){return{getBalance:ry(T)}}function M2(T){return T}var gT=k(()=>{WT()});import{Chain as p,getChainConfig as u1,getRPCUrl as I2}from"@swapkit/helpers";import{match as R2}from"ts-pattern";async function ny(T,x){let{JsonRpcProvider:N}=await import("ethers");return new N(x||await I2(T))}function UT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function tf(T){let{explorerUrl:x,chainIdHex:N,rpcUrls:y}=u1(T);return function(){return T!==p.Ethereum?{...w2({chain:T}),blockExplorerUrls:[x],chainId:N,rpcUrls:y}:void 0}}function gf(T){return![p.Arbitrum,p.BinanceSmartChain].includes(T)}function w2({chain:T}){let{name:x,nativeCurrency:N,baseDecimal:y}=u1(T);return R2(T).with(p.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:y,name:"Avalanche",symbol:T}})).with(p.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:y,name:"Berachain",symbol:"BERA"}})).with(p.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:y,name:"OKB",symbol:"OKB"}})).with(p.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:y,name:"Binance Coin",symbol:"BNB"}})).with(p.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:y,name:"xDAI",symbol:"XDAI"}})).with(p.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:y,name:"Polygon",symbol:p.Polygon}})).otherwise(()=>({chainName:x,nativeCurrency:{decimals:y,name:N,symbol:N}}))}var ay=()=>{};var b1;var j1=k(()=>{b1=[{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"}]});import{AssetValue as C2,applyFeeMultiplierToBigInt as _y,Chain as qy,EVMChains as O2,FeeOption as b,isGasAsset as E2,SwapKitError as o,SwapKitNumber as dT}from"@swapkit/helpers";import{erc20ABI as MT}from"@swapkit/helpers/contracts";import{BrowserProvider as k2,Contract as h1,getAddress as iT,Interface as o1}from"ethers";import{match as D2}from"ts-pattern";function sy({chain:T=qy.Ethereum,provider:x,signer:N,isEIP1559Compatible:y=!0}){return{approve:A2({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),approvedAmount:c1({chain:T,provider:x}),broadcastTransaction:x.broadcastTransaction,call:y0({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),createApprovalTx:K2({chain:T,provider:x,signer:N}),createContract:af({chain:T,provider:x}),createContractTxObject:uy({chain:T,provider:x}),createTransaction:df({chain:T,provider:x,signer:N}),createTransferTx:df({chain:T,provider:x,signer:N}),EIP1193SendTransaction:yT(x),estimateCall:t1({provider:x,signer:N}),estimateGasLimit:V2({chain:T,provider:x,signer:N}),estimateGasPrices:by({chain:T,isEIP1559Compatible:y,provider:x}),estimateTransactionFee:n2({chain:T,isEIP1559Compatible:y,provider:x}),getAddress:()=>{return N?N.getAddress():void 0},getBalance:HT(T).getBalance,getNetworkParams:tf(T),isApproved:l2({chain:T,provider:x}),sendTransaction:g1({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),signMessage:N?(f)=>N.signMessage(f):void 0,transfer:F2({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),validateAddress:(f)=>rf({address:f})}}function rf({address:T}){try{return iT(T),!0}catch{return!1}}function ey(T){return T instanceof k2}function RT(T,x,N){return new h1(T,o1.from(x),N)}function af({provider:T}){return function(N,y){return new h1(N,o1.from(y),T)}}function sf({abi:T,funcName:x}){let N=T.find((y)=>y.name===x);if(!N)throw new o("toolbox_evm_no_abi_fragment",{funcName:x});return N.stateMutability&&P2.includes(N.stateMutability)}function p1(T){return iT(T)}function yT(T){return function({value:N,...y}){if(!ey(T))throw new o("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:f,gasPrice:G,maxFeePerGas:L,maxPriorityFeePerGas:X,..._}=y;return T.send("eth_sendTransaction",[{..._,value:UT(BigInt(N||0))}])}}function m1(T,x){let N=TT(T,x);if(N)return iT(N.toLowerCase());throw new o("toolbox_evm_invalid_gas_asset_address")}function TT({chain:T,symbol:x,ticker:N},y){try{let f=T===qy.BinanceSmartChain&&x==="BNB"&&N==="BNB",G=T===y&&x===y&&N===y,L=v2.includes(T)&&x==="ETH"&&N==="ETH";if(G||f||L)return ef[y];return iT(x.slice(N.length+1).replace(/^0X/,""))}catch{return null}}function uy({provider:T}){return async({contractAddress:x,abi:N,funcName:y,funcParams:f=[],txOverrides:G})=>RT(x,N,T).getFunction(y).populateTransaction(...f.concat(G).filter((L)=>typeof L<"u"))}function by({chain:T,provider:x,isEIP1559Compatible:N=!0}){return D2(T).with(qy.Gnosis,()=>{return async function(){try{let{gasPrice:f,maxPriorityFeePerGas:G}=await x.getFeeData();if(!f||G===null)throw new o("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:_y(f,b.Average),maxPriorityFeePerGas:_y(G,b.Average)},[b.Fast]:{maxFeePerGas:_y(f,b.Fast),maxPriorityFeePerGas:_y(G,b.Fast)},[b.Fastest]:{maxFeePerGas:_y(f,b.Fastest),maxPriorityFeePerGas:_y(G,b.Fastest)}}}catch(f){throw new o("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).with(qy.Arbitrum,()=>{return async function(){try{let{gasPrice:f}=await x.getFeeData();if(!f)throw new o("toolbox_evm_no_fee_data");return{[b.Average]:{gasPrice:f},[b.Fast]:{gasPrice:f},[b.Fastest]:{gasPrice:f}}}catch(f){throw new o("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:f,maxPriorityFeePerGas:G,gasPrice:L}=await x.getFeeData();if(N){if(f===null||G===null)throw new o("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:f,maxPriorityFeePerGas:G},[b.Fast]:{maxFeePerGas:_y(f,b.Fast),maxPriorityFeePerGas:_y(G,b.Fast)},[b.Fastest]:{maxFeePerGas:_y(f,b.Fastest),maxPriorityFeePerGas:_y(G,b.Fastest)}}}if(!L)throw new o("toolbox_evm_no_gas_price");return{[b.Average]:{gasPrice:L},[b.Fast]:{gasPrice:_y(L,b.Fast)},[b.Fastest]:{gasPrice:_y(L,b.Fastest)}}}catch(f){throw new o("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}})}function y0({provider:T,isEIP1559Compatible:x,signer:N,chain:y}){return async function({callProvider:G,contractAddress:L,abi:X,funcName:_,funcParams:Z=[],txOverrides:q={},feeOption:Q=b.Fast}){let J=G||T;if(!L)throw new o("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let B=sf({abi:X,funcName:_});if(B&&ey(J)&&N){let M=uy({chain:y,provider:J}),I=q?.from||await N?.getAddress(),O=await M({abi:X,contractAddress:L,funcName:_,funcParams:Z,txOverrides:{...q,from:I}});return yT(J)(O)}let Y=RT(L,X,J);if(B){if(!N)throw new o("toolbox_evm_no_signer");let M=q?.from||await N.getAddress();if(!M)throw new o("toolbox_evm_no_signer_address");let I=Y.connect(N),O=by({chain:y,isEIP1559Compatible:x,provider:T}),{maxFeePerGas:l,maxPriorityFeePerGas:S,gasPrice:F}=(await O())[Q],j=await Y.getFunction(_).estimateGas(...Z,q),d=await I[_](...Z,{...q,gasLimit:j,gasPrice:F,maxFeePerGas:l,maxPriorityFeePerGas:S,nonce:q?.nonce||await J.getTransactionCount(M)});return typeof d?.hash==="string"?d?.hash:d}let W=await Y[_]?.(...Z);return typeof W?.hash==="string"?W?.hash:W}}function c1({provider:T,chain:x}){return function({assetAddress:y,spenderAddress:f,from:G}){return y0({chain:x,isEIP1559Compatible:!0,provider:T})({abi:MT,contractAddress:y,funcName:"allowance",funcParams:[G,f]})}}function l2({provider:T,chain:x}){return async function({assetAddress:y,spenderAddress:f,from:G,amount:L=IT}){let X=await c1({chain:x,provider:T})({assetAddress:y,from:G,spenderAddress:f});return dT.fromBigInt(X).gte(dT.fromBigInt(BigInt(L)))}}function A2({signer:T,isEIP1559Compatible:x=!0,provider:N,chain:y}){return async function({assetAddress:G,spenderAddress:L,feeOptionKey:X=b.Fast,amount:_,gasLimitFallback:Z,from:q,nonce:Q}){let J=[L,BigInt(_||IT)],B=await T?.getAddress()||q,Y={abi:MT,contractAddress:G,funcName:"approve",funcParams:J,signer:T,txOverrides:{from:B}};if(ey(N)){let M=uy({chain:y,provider:N}),I=yT(N),O=await M(Y);return I(O)}return y0({chain:y,isEIP1559Compatible:x,provider:N,signer:T})({...Y,feeOption:X,funcParams:J,txOverrides:{from:B,gasLimit:Z?BigInt(Z.toString()):void 0,nonce:Q}})}}function F2({signer:T,isEIP1559Compatible:x=!0,provider:N}){return async function({assetValue:f,memo:G,recipient:L,feeOptionKey:X=b.Fast,sender:_,...Z}){let{hexlify:q,toUtf8Bytes:Q}=await import("ethers"),J=f.getBaseValue("bigint"),B=f.chain,Y=_||await T?.getAddress(),W=g1({chain:B,isEIP1559Compatible:x,provider:N,signer:T});if(!Y)throw new o("toolbox_evm_no_from_address");if(f.isGasAsset){let F={...Z,data:q(Q(G||"")),feeOptionKey:X,from:Y,to:L,value:J};return W(F)}if(!TT(f,B))throw new o("toolbox_evm_no_contract_address");let{maxFeePerGas:I,maxPriorityFeePerGas:O,gasPrice:l}=(await by({chain:B,isEIP1559Compatible:x,provider:N})())[X],S=await df({chain:B,provider:N,signer:T})({assetValue:f,data:q(Q(G||"")),gasPrice:l,maxFeePerGas:I,maxPriorityFeePerGas:O,memo:G,recipient:L,sender:Y});return W(S)}}function t1({provider:T,signer:x}){return function({contractAddress:y,abi:f,funcName:G,funcParams:L=[],txOverrides:X}){if(!y)throw new o("toolbox_evm_no_contract_address");let _=RT(y,f,T);return x?_.connect(x).getFunction(G).estimateGas(...L,X):_.getFunction(G).estimateGas(...L,X)}}function V2({provider:T,signer:x}){return async function({assetValue:y,recipient:f,memo:G,data:L,sender:X,funcName:_,funcParams:Z,txOverrides:q}){let Q=y.bigIntValue,J=y.isGasAsset?null:TT(y,y.chain);if(J&&_)return t1({provider:T,signer:x})({abi:MT,contractAddress:J,funcName:_,funcParams:Z,txOverrides:q});let{hexlify:B,toUtf8Bytes:Y}=await import("ethers");return T.estimateGas({data:L?L:G?B(Y(G)):void 0,from:X,to:f,value:Q})}}function g1({provider:T,signer:x,isEIP1559Compatible:N=!0,chain:y}){return async function({feeOptionKey:G=b.Fast,...L}){let{from:X,to:_,data:Z,value:q,...Q}=L;if(!x)throw new o("toolbox_evm_no_signer");if(!_)throw new o("toolbox_evm_no_to_address");let J={...Q,data:Z||"0x",from:X,to:_,value:BigInt(q||0)};if(ey(T))return yT(T)(J);let B=X||await x.getAddress(),Y=L.nonce||await T.getTransactionCount(B),W=(await T.getNetwork()).chainId,M=$2(J)||N,I=by({chain:y,isEIP1559Compatible:N,provider:T}),O=M&&!(J.maxFeePerGas&&J.maxPriorityFeePerGas)||!J.gasPrice?Object.entries((await I())[G]).reduce((S,[F,j])=>({...S,[F]:UT(BigInt(j))}),{}):{},l;try{l=UT(J.gasLimit||await T.estimateGas(J)*11n/10n)}catch(S){throw new o("toolbox_evm_error_estimating_gas_limit",{error:S})}try{let S={...J,chainId:W,gasLimit:l,nonce:Y,type:M?2:0,...O};try{return(await x.sendTransaction(S)).hash}catch{let F=await x.signTransaction({...S,from:B});return(await T.broadcastTransaction(F)).hash}}catch(S){throw new o("toolbox_evm_error_sending_transaction",{error:S})}}}function df({provider:T,signer:x}){return async function({assetValue:y,memo:f,recipient:G,data:L,sender:X,maxFeePerGas:_,maxPriorityFeePerGas:Z,gasPrice:q,...Q}){let J=y.getBaseValue("bigint"),B=y.chain,Y=X||await x?.getAddress();if(!Y)throw new o("toolbox_evm_no_from_address");if(E2(y)){let{hexlify:I,toUtf8Bytes:O}=await import("ethers");return{...Q,data:L||I(O(f||"")),from:Y,to:G,value:J}}let W=TT(y,B);if(!W)throw new o("toolbox_evm_no_contract_address");return uy({chain:y.chain,provider:T})({abi:MT,contractAddress:W,funcName:"transfer",funcParams:[G,J],txOverrides:{from:Y,gasPrice:q,maxFeePerGas:_,maxPriorityFeePerGas:Z}})}}function K2({provider:T,signer:x,chain:N}){return async function({assetAddress:f,spenderAddress:G,amount:L,from:X}){let _=await x?.getAddress()||X,Z=uy({chain:N,provider:T}),q=["bigint","number"].includes(typeof L)?L:L||IT;return await Z({abi:MT,contractAddress:f,funcName:"approve",funcParams:[G,BigInt(q)],txOverrides:{from:_}})}}function n2({provider:T,isEIP1559Compatible:x=!0}){return async function({feeOption:y=b.Fast,chain:f,...G}){let X=await by({chain:f,isEIP1559Compatible:x,provider:T})(),_=await T.estimateGas(G),Z=C2.from({chain:f}),{gasPrice:q,maxFeePerGas:Q,maxPriorityFeePerGas:J}=X[y];if(!x&&q)return Z.set(dT.fromBigInt(q*_,Z.decimal));if(Q&&J){let B=(Q+J)*_;return Z.set(dT.fromBigInt(B,Z.decimal))}throw new o("toolbox_evm_no_gas_price")}}var IT,P2,S2,ef,v2,$2=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var rT=k(()=>{gT();ay();IT=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");P2=["payable","nonpayable"];S2=O2.reduce((T,x)=>{return T[x]="0x0000000000000000000000000000000000000000",T},{}),ef={...S2,[qy.Optimism]:"0x4200000000000000000000000000000000000042",[qy.Polygon]:"0x0000000000000000000000000000000000001010"},v2=[qy.Arbitrum,qy.Aurora,qy.Base,qy.Optimism]});import{Chain as c,FeeOption as u2,getRPCUrl as b2}from"@swapkit/helpers";import{match as j2,P as d1}from"ts-pattern";async function aT({provider:T,...x}){let N=await t(c.Ethereum)({provider:T,...x});async function y(f,G="0x5ba1e12693dc8f9c48aad8770482f4739beed696",L="aggregate",X=u2.Fast){let _=await N.createContractTxObject({abi:b1,contractAddress:G,funcName:L,funcParams:[f]});return N.sendTransaction({..._,feeOptionKey:X})}return{...N,multicall:y}}function t(T){return async function({provider:N,...y}){let{HDNodeWallet:f}=await import("ethers"),G=await b2(T),L=N||await ny(T,G),X=gf(T),_=j2(y).with({phrase:d1.string},({phrase:q})=>f.fromPhrase(q).connect(L)).with({signer:d1.any},({signer:q})=>q).otherwise(()=>{return});return sy({chain:T,isEIP1559Compatible:X,provider:L,signer:_})}}var sT,eT,yf,Tf,ff,xf,i1,Gf,Nf,Lf,Xf,_f,Zf,wT,Jf,qf,Qf,Bf;var T0=k(()=>{j1();ay();rT();sT=t(c.Arbitrum),eT=t(c.Aurora),yf=t(c.Avalanche),Tf=t(c.Base),ff=t(c.Berachain),xf=t(c.BinanceSmartChain),i1=t(c.Botanix),Gf=t(c.Core),Nf=t(c.Corn),Lf=t(c.Cronos),Xf=t(c.Gnosis),_f=t(c.Hyperevm),Zf=t(c.Polygon),wT=t(c.Sonic),Jf=t(c.Unichain),qf=t(c.XLayer),Qf=t(c.Monad),Bf=t(c.MegaETH)});var r1;var a1=k(()=>{r1=[{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"}]});import{applyFeeMultiplierToBigInt as fT,Chain as s1,FeeOption as Uy,getRPCUrl as o2,SwapKitError as f0}from"@swapkit/helpers";import{Contract as p2,HDNodeWallet as m2}from"ethers";import{match as c2,P as e1}from"ts-pattern";function x0(T){return new p2(t2,r1,T)}function y5(T){return async function(){let N=x0(T);if(N&&"l1BaseFee"in N)return await N?.l1BaseFee();return}}function T5(T){return async function({from:N,to:y,nonce:f,...G}){let{Transaction:L}=await import("ethers");if(!y)throw new f0("toolbox_evm_invalid_transaction",{error:"Missing to address"});return L.from({...G,authorizationList:G.authorizationList,nonce:f?f:N?await T.getTransactionCount(N):0,to:y}).serialized}}function f5(T){return async function(N){let y=x0(T),f=await T5(T)(N);if(y&&"getL1Fee"in y)return y.getL1Fee(f)}}function x5(T){return async function(N){let y=await T.send("eth_gasPrice",[]),f=await T.estimateGas(N);return y.mul(f)}}function g2(T){return async function(N){let y=await f5(T)(N),f=await x5(T)(N);return y.add(f)}}function d2(T){return async function(N){let y=x0(T),f=await T5(T)(N);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(f)}}async function i2(T){try{let{maxFeePerGas:x,maxPriorityFeePerGas:N,gasPrice:y}=await T.getFeeData(),f=await y5(T)(),G=y;if(!(x&&N))throw new f0("toolbox_evm_no_fee_data");return{[Uy.Average]:{gasPrice:G,l1GasPrice:f,maxFeePerGas:x,maxPriorityFeePerGas:N},[Uy.Fast]:{gasPrice:fT(G,Uy.Fast),l1GasPrice:fT(f||0n,Uy.Fast),maxFeePerGas:x,maxPriorityFeePerGas:fT(N,Uy.Fast)},[Uy.Fastest]:{gasPrice:fT(G,Uy.Fastest),l1GasPrice:fT(f||0n,Uy.Fastest),maxFeePerGas:x,maxPriorityFeePerGas:fT(N,Uy.Fastest)}}}catch(x){throw new f0("toolbox_evm_gas_estimation_error",{error:x.msg??x.toString()})}}async function Yf({provider:T,...x}){let N=s1.Optimism,y=await o2(N),f=T||await ny(N,y),G=c2(x).with({phrase:e1.string},({phrase:_})=>m2.fromPhrase(_).connect(f)).with({signer:e1.any},({signer:_})=>_).otherwise(()=>{return}),L=sy({provider:f,signer:G}),X=y5(f);return{...L,estimateGasPrices:i2(f),estimateL1Gas:d2(f),estimateL1GasCost:f5(f),estimateL2GasCost:x5(f),estimateTotalGasCost:g2(f),getBalance:HT(s1.Optimism).getBalance,getL1GasPrice:X}}var t2="0x420000000000000000000000000000000000000f";var G0=k(()=>{gT();a1();ay();rT()});var N5={};Ty(N5,{toChecksumAddress:()=>p1,isStateChangingCall:()=>sf,isBrowserProvider:()=>ey,getTokenAddress:()=>TT,getEvmToolbox:()=>G5,getEstimateGasPrices:()=>by,getEIP1193SendTransaction:()=>yT,getCreateContractTxObject:()=>uy,getCreateContract:()=>af,getChecksumAddressFromAsset:()=>m1,evmValidateAddress:()=>rf,createContract:()=>RT,XLayerToolbox:()=>qf,UNIToolbox:()=>Jf,SONICToolbox:()=>wT,OPToolbox:()=>Yf,MONADToolbox:()=>Qf,MEGAETHToolbox:()=>Bf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>Zf,HYPEREVMToolbox:()=>_f,GNOToolbox:()=>Xf,ETHToolbox:()=>aT,ContractAddress:()=>ef,CROToolbox:()=>Lf,CORNToolbox:()=>Nf,COREToolbox:()=>Gf,BotanixToolbox:()=>i1,BaseEVMToolbox:()=>sy,BSCToolbox:()=>xf,BERAToolbox:()=>ff,BASEToolbox:()=>Tf,AVAXToolbox:()=>yf,AURORAToolbox:()=>eT,ARBToolbox:()=>sT});import{Chain as m}from"@swapkit/helpers";import{match as r2}from"ts-pattern";async function G5(T,x){let N={...x,provider:x?.provider||await ny(T)};return r2(T).returnType().with(m.Arbitrum,()=>sT(N)).with(m.Aurora,()=>eT(N)).with(m.Avalanche,()=>yf(N)).with(m.Base,()=>Tf(N)).with(m.Berachain,()=>ff(N)).with(m.BinanceSmartChain,()=>xf(N)).with(m.Botanix,()=>wT(N)).with(m.Core,()=>Gf(N)).with(m.Corn,()=>Nf(N)).with(m.Cronos,()=>Lf(N)).with(m.Ethereum,()=>aT(N)).with(m.Gnosis,()=>Xf(N)).with(m.Hyperevm,()=>_f(N)).with(m.Optimism,()=>Yf(N)).with(m.Polygon,()=>Zf(N)).with(m.Sonic,()=>wT(N)).with(m.Unichain,()=>Jf(N)).with(m.XLayer,()=>qf(N)).with(m.Monad,()=>Qf(N)).with(m.MegaETH,()=>Bf(N)).exhaustive()}var N0=k(()=>{ay();T0();G0();rT();T0();G0()});var L5;var X5=k(()=>{((N)=>{N.Test="goerli";N.Main="homestead"})(L5||={})});var _5={};Ty(_5,{toHexString:()=>UT,toChecksumAddress:()=>p1,isStateChangingCall:()=>sf,isBrowserProvider:()=>ey,getTokenAddress:()=>TT,getProvider:()=>ny,getNetworkParams:()=>tf,getIsEIP1559Compatible:()=>gf,getEvmToolbox:()=>G5,getEvmApi:()=>HT,getEstimateGasPrices:()=>by,getEIP1193SendTransaction:()=>yT,getCreateContractTxObject:()=>uy,getCreateContract:()=>af,getChecksumAddressFromAsset:()=>m1,evmValidateAddress:()=>rf,createCustomEvmApi:()=>M2,createContract:()=>RT,XLayerToolbox:()=>qf,UNIToolbox:()=>Jf,SONICToolbox:()=>wT,OPToolbox:()=>Yf,MONADToolbox:()=>Qf,MEGAETHToolbox:()=>Bf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>Zf,HYPEREVMToolbox:()=>_f,GNOToolbox:()=>Xf,EthNetwork:()=>L5,ETHToolbox:()=>aT,ContractAddress:()=>ef,CROToolbox:()=>Lf,CORNToolbox:()=>Nf,COREToolbox:()=>Gf,BotanixToolbox:()=>i1,BaseEVMToolbox:()=>sy,BSCToolbox:()=>xf,BERAToolbox:()=>ff,BASEToolbox:()=>Tf,AVAXToolbox:()=>yf,AURORAToolbox:()=>eT,ARBToolbox:()=>sT});var Z5=k(()=>{gT();ay();N0();X5()});import{AssetValue as OT,Chain as xT,getChainConfig as a2,SwapKitError as CT}from"@swapkit/helpers";import{match as s2,P as J5}from"ts-pattern";async function L0(){let{BlockfrostProvider:T}=await import("@meshsdk/core"),x="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS";return new T("mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS")}async function yG(T){try{let{MeshWallet:x}=await import("@meshsdk/core"),N=await L0(),y=new x({fetcher:N,key:{address:T,type:"address"},networkId:1});await y.init();let f=await y.getBalance(),G=[];for(let L of f)if(L.unit===e2){let{baseDecimal:X}=a2(xT.Cardano);G.push(OT.from({chain:xT.Cardano,fromBaseDecimal:X,value:L.quantity}))}else G.push(OT.from({asset:`${xT.Cardano}.${L.unit}`,value:L.quantity}));if(G.length===0)return[OT.from({chain:xT.Cardano})];return G}catch(x){let N=x instanceof Error?x.message:String(x);return console.error(`Cardano balance fetch error: ${N}`),[OT.from({chain:xT.Cardano})]}}async function q5(){let{deserializeAddress:T}=await import("@meshsdk/core");return(x)=>{try{return T(x),!0}catch{return!1}}}async function TG(T){let x=await q5(),N=await s2(T).with({phrase:J5.string},async({phrase:q})=>{let{MeshWallet:Q}=await import("@meshsdk/core"),J=await L0(),B=new Q({fetcher:J,key:{type:"mnemonic",words:q.split(" ")},networkId:1,submitter:J});return await B.init(),B}).with({signer:J5.any},({signer:q})=>q).otherwise(()=>{return}),y=N&&"getChangeAddress"in N?await N.getChangeAddress():"";function f(){return y||""}function G(q){let Q=q||f();if(!Q)throw new CT("core_wallet_connection_not_found");return yG(Q)}function L(){return Promise.resolve(OT.from({chain:xT.Cardano,value:"0.01"}))}async function X({recipient:q,assetValue:Q,memo:J}){if(!N||!("getChangeAddress"in N))throw new CT("core_wallet_connection_not_found");let{Transaction:B}=await import("@meshsdk/core"),[,Y]=Q.symbol.split("-");if(!Q.isGasAsset&&!Y)throw new CT("core_wallet_connection_not_found");let W=new B({initiator:N});if(W.sendAssets({address:q},[{quantity:Q.getBaseValue("string"),unit:Q.isGasAsset?"lovelace":Q.symbol}]),J)W.setMetadata(0,J);let M=await W.build();return{tx:W,unsignedTx:M}}function _(q){if(!N||!("getChangeAddress"in N))throw new CT("core_wallet_connection_not_found");return N.signTx(q)}async function Z({recipient:q,assetValue:Q,memo:J}){if(!N||!("getChangeAddress"in N))throw new CT("core_wallet_connection_not_found");let{unsignedTx:B}=await X({assetValue:Q,memo:J,recipient:q}),Y=await _(B);return await(await L0()).submitTx(Y)}return{createTransaction:X,estimateTransactionFee:L,getAddress:f,getBalance:G,signTransaction:_,transfer:Z,validateAddress:x}}var e2="lovelace";var Q5=()=>{};var X0={};Ty(X0,{getCardanoToolbox:()=>TG,getCardanoAddressValidator:()=>q5});var _0=k(()=>{Q5()});import{base64 as B5,bech32 as zf}from"@scure/base";import{SwapKitError as fG}from"@swapkit/helpers";import{fromByteArray as xG,toByteArray as GG}from"base64-js";function ET(T){return B5.encode(Uint8Array.from(zf.fromWords(zf.decode(T).words)))}function kT(T,x="thor"){return zf.encode(x,zf.toWords(B5.decode(T)))}function NG(T){return xG(T)}function LG(T){if(!T.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new fG("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return GG(T)}var Z0=()=>{};import{AssetValue as J0,Chain as K,getChainConfig as Qy,getRPCUrl as XG,SwapKitError as Y5}from"@swapkit/helpers";function Iy(T){switch(T){case K.Maya:return{amount:[],gas:"10000000000"};case K.THORChain:return{amount:[],gas:"500000000"};case K.Kujira:return H5;case K.Noble:return U5;default:return W5}}async function Ry(T){let x=await import("@cosmjs/stargate"),N=x.StargateClient??x.default?.StargateClient,y=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return N.connect({headers:y,url:T})}async function NT(T,x,N={}){let y=await import("@cosmjs/stargate"),f=y.SigningStargateClient??y.default?.SigningStargateClient,G=y.GasPrice??y.default?.GasPrice,L=typeof N==="string"?N:"0.0003uatom",X=typeof N==="string"?{}:N;return f.connectWithSigner(T,x,{gasPrice:G.fromString(L),...X})}async function Q0(T,x){let N=await import("@cosmjs/stargate");return(N.SigningStargateClient??N.default?.SigningStargateClient).offline(T,x)}async function B0({sender:T,recipient:x,assetValue:N,memo:y="",feeRate:f,sequence:G,accountNumber:L}){let{chain:X,chainId:_}=N,Z=await XG(X),Q=await(await Ry(Z)).getAccount(T);if(!Q)throw new Y5("toolbox_cosmos_account_not_found",{sender:T});let J=J0.from({chain:X}),B=My(J.symbol),Y=Iy(X),W=B&&f?{amount:[{amount:f.toString(),denom:B}],gas:Y.gas}:Y,M={amount:[{amount:N.getBaseValue("string"),denom:My(N.symbol)}],fromAddress:T,toAddress:x};return{accountNumber:L??Q.accountNumber,chainId:_,fee:W,memo:y,msgs:[{typeUrl:_G(X),value:M}],sequence:G??Q.sequence}}var q0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",z5="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",W5,H5,U5,My=(T,x=!1)=>{if(x)return T.toLowerCase();switch(T){case"uUSK":case"USK":return q0;case"uYUM":case"YUM":return z5;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return T}},GT=({symbol:T,chain:x})=>{if(x===K.Maya)return(T.toUpperCase()!=="CACAO"?T:`${K.Maya}.${T}`).toUpperCase();if(x===K.THORChain)return(["RUNE","TCY","RUJI"].includes(T.toUpperCase())?`${K.THORChain}.${T}`:T).toUpperCase();return My(T,!1)},_G=(T)=>{switch(T){case K.Maya:case K.THORChain:return"/types.MsgSend";case K.Cosmos:case K.Kujira:case K.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new Y5("toolbox_cosmos_not_supported",{chain:T})}},ZG,Y0=(T,x)=>{let N=ZG[T.toLowerCase()];if(!N)return J0.from({asset:T,fromBaseDecimal:8,value:x});let{chain:y,asset:f,decimals:G}=N,L=y?{chain:y}:{asset:f};return J0.from({...L,fromBaseDecimal:G,value:x})};var DT=k(()=>{W5={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},H5={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},U5={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};ZG={atom:{chain:K.Cosmos,decimals:Qy(K.Cosmos).baseDecimal},cacao:{chain:K.Maya,decimals:10},kuji:{chain:K.Kujira,decimals:Qy(K.Kujira).baseDecimal},maya:{asset:`${K.Maya}.${K.Maya}`,decimals:4},rune:{chain:K.THORChain,decimals:Qy(K.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Qy(K.THORChain).baseDecimal},uatom:{chain:K.Cosmos,decimals:Qy(K.Cosmos).baseDecimal},ukuji:{chain:K.Kujira,decimals:Qy(K.Kujira).baseDecimal},usdc:{chain:K.Noble,decimals:Qy(K.Noble).baseDecimal},uusdc:{chain:K.Noble,decimals:Qy(K.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Qy(K.THORChain).baseDecimal},[q0.toLowerCase()]:{asset:`${K.Kujira}.USK`,decimals:Qy(K.Kujira).baseDecimal}}});var M5={};Ty(M5,{$root:()=>w});import r from"protobufjs/minimal.js";var P,Zy,E,w;var I5=k(()=>{P=r.Reader,Zy=r.Writer,E=r.util,w=r.roots.default||(r.roots.default={});w.common=(()=>{let T={};return T.Asset=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.chain="",x.prototype.symbol="",x.prototype.ticker="",x.prototype.synth=!1,x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))f.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))f.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))f.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))f.uint32(32).bool(y.synth);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Asset;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.chain=y.string();break;case 2:L.symbol=y.string();break;case 3:L.ticker=y.string();break;case 4:L.synth=y.bool();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.chain!=null&&y.hasOwnProperty("chain")){if(!E.isString(y.chain))return"chain: string expected"}if(y.symbol!=null&&y.hasOwnProperty("symbol")){if(!E.isString(y.symbol))return"symbol: string expected"}if(y.ticker!=null&&y.hasOwnProperty("ticker")){if(!E.isString(y.ticker))return"ticker: string expected"}if(y.synth!=null&&y.hasOwnProperty("synth")){if(typeof y.synth!=="boolean")return"synth: boolean expected"}return null},x.fromObject=function(y){if(y instanceof w.common.Asset)return y;let f=new w.common.Asset;if(y.chain!=null)f.chain=String(y.chain);if(y.symbol!=null)f.symbol=String(y.symbol);if(y.ticker!=null)f.ticker=String(y.ticker);if(y.synth!=null)f.synth=Boolean(y.synth);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.defaults)G.chain="",G.symbol="",G.ticker="",G.synth=!1;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.symbol!=null&&y.hasOwnProperty("symbol"))G.symbol=y.symbol;if(y.ticker!=null&&y.hasOwnProperty("ticker"))G.ticker=y.ticker;if(y.synth!=null&&y.hasOwnProperty("synth"))G.synth=y.synth;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.Coin=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.asset=null,x.prototype.amount="",x.prototype.decimals=E.Long?E.Long.fromBits(0,0,!1):0,x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))w.common.Asset.encode(y.asset,f.uint32(10).fork()).ldelim();if(y.amount!=null&&Object.hasOwnProperty.call(y,"amount"))f.uint32(18).string(y.amount);if(y.decimals!=null&&Object.hasOwnProperty.call(y,"decimals"))f.uint32(24).int64(y.decimals);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Coin;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.asset=w.common.Asset.decode(y,y.uint32());break;case 2:L.amount=y.string();break;case 3:L.decimals=y.int64();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.asset!=null&&y.hasOwnProperty("asset")){let f=w.common.Asset.verify(y.asset);if(f)return"asset."+f}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!E.isString(y.amount))return"amount: string expected"}if(y.decimals!=null&&y.hasOwnProperty("decimals")){if(!E.isInteger(y.decimals)&&!(y.decimals&&E.isInteger(y.decimals.low)&&E.isInteger(y.decimals.high)))return"decimals: integer|Long expected"}return null},x.fromObject=function(y){if(y instanceof w.common.Coin)return y;let f=new w.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");f.asset=w.common.Asset.fromObject(y.asset)}if(y.amount!=null)f.amount=String(y.amount);if(y.decimals!=null){if(E.Long)(f.decimals=E.Long.fromValue(y.decimals)).unsigned=!1;else if(typeof y.decimals==="string")f.decimals=Number.parseInt(y.decimals,10);else if(typeof y.decimals==="number")f.decimals=y.decimals;else if(typeof y.decimals==="object")f.decimals=new E.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber()}return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.defaults)if(G.asset=null,G.amount="",E.Long){let L=new E.Long(0,0,!1);G.decimals=f.longs===String?L.toString():f.longs===Number?L.toNumber():L}else G.decimals=f.longs===String?"0":0;if(y.asset!=null&&y.hasOwnProperty("asset"))G.asset=w.common.Asset.toObject(y.asset,f);if(y.amount!=null&&y.hasOwnProperty("amount"))G.amount=y.amount;if(y.decimals!=null&&y.hasOwnProperty("decimals"))if(typeof y.decimals==="number")G.decimals=f.longs===String?String(y.decimals):y.decimals;else G.decimals=f.longs===String?E.Long.prototype.toString.call(y.decimals):f.longs===Number?new E.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber():y.decimals;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.PubKeySet=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.secp256k1="",x.prototype.ed25519="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))f.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))f.uint32(18).string(y.ed25519);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.PubKeySet;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.secp256k1=y.string();break;case 2:L.ed25519=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1")){if(!E.isString(y.secp256k1))return"secp256k1: string expected"}if(y.ed25519!=null&&y.hasOwnProperty("ed25519")){if(!E.isString(y.ed25519))return"ed25519: string expected"}return null},x.fromObject=function(y){if(y instanceof w.common.PubKeySet)return y;let f=new w.common.PubKeySet;if(y.secp256k1!=null)f.secp256k1=String(y.secp256k1);if(y.ed25519!=null)f.ed25519=String(y.ed25519);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.defaults)G.secp256k1="",G.ed25519="";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1"))G.secp256k1=y.secp256k1;if(y.ed25519!=null&&y.hasOwnProperty("ed25519"))G.ed25519=y.ed25519;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.Tx=(()=>{function x(N){if(this.coins=[],this.gas=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.id="",x.prototype.chain="",x.prototype.fromAddress="",x.prototype.toAddress="",x.prototype.coins=E.emptyArray,x.prototype.gas=E.emptyArray,x.prototype.memo="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))f.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))f.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))f.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))f.uint32(34).string(y.toAddress);if(y.coins?.length)for(let G=0;G<y.coins.length;++G)w.common.Coin.encode(y.coins[G],f.uint32(42).fork()).ldelim();if(y.gas?.length)for(let G=0;G<y.gas.length;++G)w.common.Coin.encode(y.gas[G],f.uint32(50).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))f.uint32(58).string(y.memo);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Tx;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.id=y.string();break;case 2:L.chain=y.string();break;case 3:L.fromAddress=y.string();break;case 4:L.toAddress=y.string();break;case 5:if(!L.coins?.length)L.coins=[];L.coins.push(w.common.Coin.decode(y,y.uint32()));break;case 6:if(!L.gas?.length)L.gas=[];L.gas.push(w.common.Coin.decode(y,y.uint32()));break;case 7:L.memo=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.id!=null&&y.hasOwnProperty("id")){if(!E.isString(y.id))return"id: string expected"}if(y.chain!=null&&y.hasOwnProperty("chain")){if(!E.isString(y.chain))return"chain: string expected"}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!E.isString(y.fromAddress))return"fromAddress: string expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!E.isString(y.toAddress))return"toAddress: string expected"}if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let f=0;f<y.coins.length;++f){let G=w.common.Coin.verify(y.coins[f]);if(G)return"coins."+G}}if(y.gas!=null&&y.hasOwnProperty("gas")){if(!Array.isArray(y.gas))return"gas: array expected";for(let f=0;f<y.gas.length;++f){let G=w.common.Coin.verify(y.gas[f]);if(G)return"gas."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!E.isString(y.memo))return"memo: string expected"}return null},x.fromObject=function(y){if(y instanceof w.common.Tx)return y;let f=new w.common.Tx;if(y.id!=null)f.id=String(y.id);if(y.chain!=null)f.chain=String(y.chain);if(y.fromAddress!=null)f.fromAddress=String(y.fromAddress);if(y.toAddress!=null)f.toAddress=String(y.toAddress);if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Tx.coins: array expected");f.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Tx.coins: object expected");f.coins[G]=w.common.Coin.fromObject(y.coins[G])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");f.gas=[];for(let G=0;G<y.gas.length;++G){if(typeof y.gas[G]!=="object")throw TypeError(".common.Tx.gas: object expected");f.gas[G]=w.common.Coin.fromObject(y.gas[G])}}if(y.memo!=null)f.memo=String(y.memo);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.arrays||f.defaults)G.coins=[],G.gas=[];if(f.defaults)G.id="",G.chain="",G.fromAddress="",G.toAddress="",G.memo="";if(y.id!=null&&y.hasOwnProperty("id"))G.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=y.toAddress;if(y.coins?.length){G.coins=[];for(let L=0;L<y.coins.length;++L)G.coins[L]=w.common.Coin.toObject(y.coins[L],f)}if(y.gas?.length){G.gas=[];for(let L=0;L<y.gas.length;++L)G.gas[L]=w.common.Coin.toObject(y.gas[L],f)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.Fee=(()=>{function x(N){if(this.coins=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.coins=E.emptyArray,x.prototype.poolDeduct="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)w.common.Coin.encode(y.coins[G],f.uint32(10).fork()).ldelim();if(y.poolDeduct!=null&&Object.hasOwnProperty.call(y,"poolDeduct"))f.uint32(18).string(y.poolDeduct);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Fee;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:if(!L.coins?.length)L.coins=[];L.coins.push(w.common.Coin.decode(y,y.uint32()));break;case 2:L.poolDeduct=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let f=0;f<y.coins.length;++f){let G=w.common.Coin.verify(y.coins[f]);if(G)return"coins."+G}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!E.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},x.fromObject=function(y){if(y instanceof w.common.Fee)return y;let f=new w.common.Fee;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Fee.coins: array expected");f.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Fee.coins: object expected");f.coins[G]=w.common.Coin.fromObject(y.coins[G])}}if(y.poolDeduct!=null)f.poolDeduct=String(y.poolDeduct);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.arrays||f.defaults)G.coins=[];if(f.defaults)G.poolDeduct="";if(y.coins?.length){G.coins=[];for(let L=0;L<y.coins.length;++L)G.coins[L]=w.common.Coin.toObject(y.coins[L],f)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))G.poolDeduct=y.poolDeduct;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.ProtoUint=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.value="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))f.uint32(10).string(y.value);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.ProtoUint;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.value=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.value!=null&&y.hasOwnProperty("value")){if(!E.isString(y.value))return"value: string expected"}return null},x.fromObject=function(y){if(y instanceof w.common.ProtoUint)return y;let f=new w.common.ProtoUint;if(y.value!=null)f.value=String(y.value);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.defaults)G.value="";if(y.value!=null&&y.hasOwnProperty("value"))G.value=y.value;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T})();w.types=(()=>{let T={};return T.MsgDeposit=(()=>{function x(N){if(this.coins=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.coins=E.emptyArray,x.prototype.memo="",x.prototype.signer=E.newBuffer([]),x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)w.common.Coin.encode(y.coins[G],f.uint32(10).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))f.uint32(18).string(y.memo);if(y.signer!=null&&Object.hasOwnProperty.call(y,"signer"))f.uint32(26).bytes(y.signer);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.types.MsgDeposit;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:if(!L.coins?.length)L.coins=[];L.coins.push(w.common.Coin.decode(y,y.uint32()));break;case 2:L.memo=y.string();break;case 3:L.signer=y.bytes();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let f=0;f<y.coins.length;++f){let G=w.common.Coin.verify(y.coins[f]);if(G)return"coins."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!E.isString(y.memo))return"memo: string expected"}if(y.signer!=null&&y.hasOwnProperty("signer")){if(!(y.signer&&typeof y.signer.length==="number"||E.isString(y.signer)))return"signer: buffer expected"}return null},x.fromObject=function(y){if(y instanceof w.types.MsgDeposit)return y;let f=new w.types.MsgDeposit;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".types.MsgDeposit.coins: array expected");f.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");f.coins[G]=w.common.Coin.fromObject(y.coins[G])}}if(y.memo!=null)f.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")E.base64.decode(y.signer,f.signer=E.newBuffer(E.base64.length(y.signer)),0);else if(y.signer.length)f.signer=y.signer}return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.arrays||f.defaults)G.coins=[];if(f.defaults){if(G.memo="",f.bytes===String)G.signer="";else if(G.signer=[],f.bytes!==Array)G.signer=E.newBuffer(G.signer)}if(y.coins?.length){G.coins=[];for(let L=0;L<y.coins.length;++L)G.coins[L]=w.common.Coin.toObject(y.coins[L],f)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))G.signer=f.bytes===String?E.base64.encode(y.signer,0,y.signer.length):f.bytes===Array?Array.prototype.slice.call(y.signer):y.signer;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.MsgSend=(()=>{function x(N){if(this.amount=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.fromAddress=E.newBuffer([]),x.prototype.toAddress=E.newBuffer([]),x.prototype.amount=E.emptyArray,x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))f.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))f.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let G=0;G<y.amount.length;++G)w.cosmos.base.v1beta1.Coin.encode(y.amount[G],f.uint32(26).fork()).ldelim();return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.types.MsgSend;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.fromAddress=y.bytes();break;case 2:L.toAddress=y.bytes();break;case 3:if(!L.amount?.length)L.amount=[];L.amount.push(w.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!(y.fromAddress&&typeof y.fromAddress.length==="number"||E.isString(y.fromAddress)))return"fromAddress: buffer expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!(y.toAddress&&typeof y.toAddress.length==="number"||E.isString(y.toAddress)))return"toAddress: buffer expected"}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!Array.isArray(y.amount))return"amount: array expected";for(let f=0;f<y.amount.length;++f){let G=w.cosmos.base.v1beta1.Coin.verify(y.amount[f]);if(G)return"amount."+G}}return null},x.fromObject=function(y){if(y instanceof w.types.MsgSend)return y;let f=new w.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")E.base64.decode(y.fromAddress,f.fromAddress=E.newBuffer(E.base64.length(y.fromAddress)),0);else if(y.fromAddress.length)f.fromAddress=y.fromAddress}if(y.toAddress!=null){if(typeof y.toAddress==="string")E.base64.decode(y.toAddress,f.toAddress=E.newBuffer(E.base64.length(y.toAddress)),0);else if(y.toAddress.length)f.toAddress=y.toAddress}if(y.amount){if(!Array.isArray(y.amount))throw TypeError(".types.MsgSend.amount: array expected");f.amount=[];for(let G=0;G<y.amount.length;++G){if(typeof y.amount[G]!=="object")throw TypeError(".types.MsgSend.amount: object expected");f.amount[G]=w.cosmos.base.v1beta1.Coin.fromObject(y.amount[G])}}return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.arrays||f.defaults)G.amount=[];if(f.defaults){if(f.bytes===String)G.fromAddress="";else if(G.fromAddress=[],f.bytes!==Array)G.fromAddress=E.newBuffer(G.fromAddress);if(f.bytes===String)G.toAddress="";else if(G.toAddress=[],f.bytes!==Array)G.toAddress=E.newBuffer(G.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=f.bytes===String?E.base64.encode(y.fromAddress,0,y.fromAddress.length):f.bytes===Array?Array.prototype.slice.call(y.fromAddress):y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=f.bytes===String?E.base64.encode(y.toAddress,0,y.toAddress.length):f.bytes===Array?Array.prototype.slice.call(y.toAddress):y.toAddress;if(y.amount?.length){G.amount=[];for(let L=0;L<y.amount.length;++L)G.amount[L]=w.cosmos.base.v1beta1.Coin.toObject(y.amount[L],f)}return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T})();w.cosmos=(()=>{let T={};return T.base=(()=>{let x={};return x.v1beta1=(()=>{let N={};return N.Coin=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))L.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))L.uint32(18).string(G.amount);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.Coin;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.denom=G.string();break;case 2:_.amount=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!E.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!E.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof w.cosmos.base.v1beta1.Coin)return G;let L=new w.cosmos.base.v1beta1.Coin;if(G.denom!=null)L.denom=String(G.denom);if(G.amount!=null)L.amount=String(G.amount);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.denom="",X.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))X.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))X.amount=G.amount;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N.DecCoin=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))L.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))L.uint32(18).string(G.amount);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.DecCoin;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.denom=G.string();break;case 2:_.amount=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!E.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!E.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof w.cosmos.base.v1beta1.DecCoin)return G;let L=new w.cosmos.base.v1beta1.DecCoin;if(G.denom!=null)L.denom=String(G.denom);if(G.amount!=null)L.amount=String(G.amount);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.denom="",X.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))X.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))X.amount=G.amount;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N.IntProto=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.int="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.int!=null&&Object.hasOwnProperty.call(G,"int"))L.uint32(10).string(G.int);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.IntProto;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.int=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.int!=null&&G.hasOwnProperty("int")){if(!E.isString(G.int))return"int: string expected"}return null},y.fromObject=function(G){if(G instanceof w.cosmos.base.v1beta1.IntProto)return G;let L=new w.cosmos.base.v1beta1.IntProto;if(G.int!=null)L.int=String(G.int);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.int="";if(G.int!=null&&G.hasOwnProperty("int"))X.int=G.int;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N.DecProto=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.dec="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.dec!=null&&Object.hasOwnProperty.call(G,"dec"))L.uint32(10).string(G.dec);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.DecProto;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.dec=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.dec!=null&&G.hasOwnProperty("dec")){if(!E.isString(G.dec))return"dec: string expected"}return null},y.fromObject=function(G){if(G instanceof w.cosmos.base.v1beta1.DecProto)return G;let L=new w.cosmos.base.v1beta1.DecProto;if(G.dec!=null)L.dec=String(G.dec);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.dec="";if(G.dec!=null&&G.hasOwnProperty("dec"))X.dec=G.dec;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N})(),x})(),T})()});import{Chain as JG}from"@swapkit/helpers";async function jy(){let{$root:T}=await Promise.resolve().then(() => (I5(),M5)),x=await import("@cosmjs/proto-signing"),N=x.Registry??x.default?.Registry,y=await import("@cosmjs/stargate"),f=y.defaultRegistryTypes??y.default?.defaultRegistryTypes;return new N([...f,["/types.MsgSend",T.types.MsgSend],["/types.MsgDeposit",T.types.MsgDeposit]])}async function ky(T){let x=await import("@cosmjs/stargate"),N=x.AminoTypes??x.default?.AminoTypes,y=T===JG.THORChain?"thorchain":"mayachain";return new N({"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,fromAmino:({signer:f,...G})=>({...G,signer:ET(f)}),toAmino:({signer:f,...G})=>({...G,signer:kT(f)})},"/types.MsgSend":{aminoType:`${y}/MsgSend`,fromAmino:({from_address:f,to_address:G,...L})=>({...L,fromAddress:ET(f),toAddress:ET(G)}),toAmino:({fromAddress:f,toAddress:G,...L})=>({...L,from_address:kT(f),to_address:kT(G)})}})}var z0=k(()=>{Z0()});import{AssetValue as qG,Chain as Wf,getChainConfig as R5,SwapKitError as QG}from"@swapkit/helpers";function U0(T){return function(N){let{assetValue:y,recipient:f,memo:G,sender:L,asSignable:X,asAminoMessage:_}=N;if(f)return C5(T)({asAminoMessage:_,asSignable:X,assetValue:y,memo:G,recipient:f,sender:L});return O5(T)({asAminoMessage:_,asSignable:X,assetValue:y,memo:G,sender:L})}}function Py(T){if(T.type==="thorchain/MsgSend"||T.type==="mayachain/MsgSend")return T;return{...T,value:{...T.value,coins:T.value.coins.map((x)=>{let N=qG.from({asset:x.asset}),y=(N.isSynthetic?N.symbol.split("/")?.[1]:N.symbol)?.toUpperCase(),f=(N.isSynthetic?N.symbol.split("/")?.[0]:N.chain)?.toUpperCase();return{...x,asset:{chain:f,symbol:y,synth:N.isSynthetic,ticker:N.ticker}}})}}}async function PT({chain:T,memo:x,msgs:N}){let y=await jy(),f=await ky(T),G={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:x,messages:N.map((L)=>f.fromAmino(L))}};return y.encode(G)}var BG,YG,W0=({sender:T,recipient:x,assetValue:N})=>{return{type:`${N.chain===Wf.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:N.getBaseValue("string"),denom:My(N.symbol,!0)}],from_address:T,to_address:x}}},H0=({sender:T,assetValue:x,memo:N=""})=>{return{type:`${x.chain===Wf.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:x.getBaseValue("string"),asset:GT(x)}],memo:N,signer:T}}},Hf=({sender:T,recipient:x,assetValue:N,memo:y})=>{return!x?H0({assetValue:N,memo:y,sender:T}):W0({assetValue:N,recipient:x,sender:T})},Dy=async(T,x)=>{return(await ky(x)).fromAmino(T)},w5=async({rpcUrl:T,sender:x})=>{let y=await(await Ry(T)).getAccount(x);if(!y)throw new QG("toolbox_cosmos_account_not_found",{sender:x});return y},C5=(T)=>async({sender:x,recipient:N,assetValue:y,memo:f="",asSignable:G=!0,asAminoMessage:L=!1,sequence:X,accountNumber:_})=>{let Z=await w5({rpcUrl:T,sender:x}),q=y.chain,{chainId:Q}=R5(q),J=W0({assetValue:y,recipient:N,sender:x}),B=G?await Dy(L?J:Py(J),q):J;return{accountNumber:_||Z.accountNumber,chainId:Q,fee:Iy(q),memo:f,msgs:[B],sequence:X||Z.sequence}},O5=(T)=>async({sender:x,assetValue:N,memo:y="",asSignable:f=!0,asAminoMessage:G=!1,sequence:L,accountNumber:X})=>{let _=await w5({rpcUrl:T,sender:x}),Z=N.chain,{chainId:q}=R5(Z),Q=H0({assetValue:N,memo:y,sender:x}),J=f?await Dy(G?Q:Py(Q),Z):Q;return{accountNumber:X||_.accountNumber,chainId:q,fee:Iy(Z),memo:y,msgs:[J],sequence:L||_.sequence}};var E5=k(()=>{DT();z0();BG=Iy(Wf.THORChain).gas,YG=Iy(Wf.Maya).gas});var k5=()=>{};var D5=k(()=>{k5()});var M0=k(()=>{Z0();E5();z0();D5()});import{base64 as O0,bech32 as I0}from"@scure/base";import{AssetValue as Uf,applyFeeMultiplier as P5,Chain as a,CosmosChainPrefixes as F5,DerivationPath as zG,derivationPathToString as S5,FeeOption as If,getChainConfig as WG,getRPCUrl as HG,NetworkDerivationPath as UG,SwapKitError as Mf,SwapKitNumber as R0,updateDerivationPath as MG}from"@swapkit/helpers";import{SwapKitApi as V5}from"@swapkit/helpers/api";import{match as IG,P as v5}from"ts-pattern";async function k0(T,x){try{let y=(await V5.getGasRate()).find((f)=>f.chainId===T)?.value;return y?Number.parseFloat(y):x}catch{return x}}async function E0({phrase:T,prefix:x,...N}){let y=await import("@cosmjs/proto-signing"),f=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,G=await import("@cosmjs/crypto"),L=G.stringToPath??G.default?.stringToPath,X="derivationPath"in N?N.derivationPath:`${zG[N.chain]}/${N.index}`;return f.fromMnemonic(T,{hdPaths:[L(X)],prefix:x})}async function RG({privateKey:T,prefix:x}){let N=await import("@cosmjs/proto-signing");return(N.DirectSecp256k1Wallet??N.default?.DirectSecp256k1Wallet).fromKey(T,x)}function $5(T){return async function({signature:N,message:y,address:f}){let G=await T(f);if(!G?.pubkey)throw new Mf("toolbox_cosmos_verify_signature_no_pubkey");let L=await import("@cosmjs/crypto"),X=L.Secp256k1Signature??L.default?.Secp256k1Signature,_=L.Secp256k1??L.default?.Secp256k1,Z=X.fromFixedLength(O0.decode(N));return _.verifySignature(Z,O0.decode(y),G.pubkey.value)}}async function ST({chain:T,...x}){let N=await HG(T),y=F5[T],f="index"in x?x.index||0:0,G=S5("derivationPath"in x&&x.derivationPath?x.derivationPath:MG(UG[T],{index:f})),L=await IG(x).with({phrase:v5.string},({phrase:J})=>E0({derivationPath:G,phrase:J,prefix:y})).with({signer:v5.any},({signer:J})=>J).otherwise(()=>{return});async function X(J){return(await Ry(N)).getAccount(J)}async function _(){let[J]=await L?.getAccounts()||[];return J?.address}async function Z(){let[J]=await L?.getAccounts()||[];if(!J?.pubkey)throw new Mf("toolbox_cosmos_signer_not_defined");return O0.encode(J?.pubkey)}async function q({recipient:J,assetValue:B,memo:Y="",feeRate:W,feeOptionKey:M=If.Fast}){let I=await _();if(!(L&&I))throw new Mf("toolbox_cosmos_signer_not_defined");let O=Uf.from({chain:T}),l=GT(O),S=W||l5((await C0(T,w0[T]))[M],l),F=await NT(N,L),j=My(B.symbol),d=B.getBaseValue("string"),{TxRaw:Gy}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),D={amount:[{amount:d,denom:j}],fromAddress:I,toAddress:J},v=await F.sign(I,[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:D}],S,Y),z=Gy.encode(v).finish();return Buffer.from(z).toString("hex")}async function Q({recipient:J,assetValue:B,memo:Y="",feeRate:W,feeOptionKey:M=If.Fast,dryRun:I=!1}){if(I)return q({assetValue:B,feeOptionKey:M,feeRate:W,memo:Y,recipient:J});let O=await _();if(!(L&&O))throw new Mf("toolbox_cosmos_signer_not_defined");let l=Uf.from({chain:T}),S=GT(l),F=W||l5((await C0(T,w0[T]))[M],S),j=await NT(N,L),d=My(B.symbol),Gy=[{amount:B.getBaseValue("string"),denom:d}],{transactionHash:D}=await j.sendTokens(O,J,Gy,F,Y);return D}return{createPrivateKeyFromPhrase:EG(G),createTransaction:B0,fetchFeeRateFromSwapKit:k0,getAccount:X,getAddress:_,getBalance:async(J,B)=>{let Y=await A5(N)(J),W=await Promise.all(Y.filter(({denom:M})=>M&&!M.includes("IBC/")&&!([a.THORChain,a.Maya].includes(T)&&M.split("-").length>2)).map(({denom:M,amount:I})=>{let O=[a.THORChain,a.Maya].includes(T)&&(M.includes("/")||M.includes("˜"))?`${T}.${M}`:M;return Y0(O,I)}));if(W.length===0)return[Uf.from({chain:T})];return W},getBalanceAsDenoms:A5(N),getFees:()=>C0(T,w0[T]),getPubKey:Z,getSignerFromPhrase:async({phrase:J,derivationPath:B})=>E0({derivationPath:S5(B),index:f,phrase:J,prefix:y}),getSignerFromPrivateKey:async(J)=>{let B=await import("@cosmjs/proto-signing");return(B.DirectSecp256k1Wallet??B.default?.DirectSecp256k1Wallet).fromKey(J,y)},signTransaction:q,transfer:Q,validateAddress:K5(T),verifySignature:$5(X)}}async function wG(T,x){try{let y=(await V5.getGasRate()).find((f)=>f.chainId===T)?.value;return y?Number.parseFloat(y):x}catch{return x}}function CG({assetValue:{chain:T}}){return Uf.from({chain:T,value:OG(T)})}async function C0(T,x){let{chainId:N,baseDecimal:y}=WG(T),f=await k0(N,x);return{average:R0.fromBigInt(BigInt(f),y),fast:R0.fromBigInt(BigInt(P5(f,If.Fast,!0)),y),fastest:R0.fromBigInt(BigInt(P5(f,If.Fastest,!0)),y)}}function l5(T,x){return{amount:[{amount:T.getBaseValue("string"),denom:x}],gas:"200000"}}function OG(T){return{[a.Cosmos]:0.007,[a.Kujira]:0.02,[a.Noble]:0.01,[a.THORChain]:0.02,[a.Maya]:0.02,[a.Harbor]:0.02}[T]||0}function K5(T){let x=F5[T];return function(y){if(!y.startsWith(x))return!1;try{let{prefix:f,words:G}=I0.decode(y);return I0.encode(f,G)===y.toLocaleLowerCase()}catch{return!1}}}function A5(T){return async function(N){return(await(await Ry(T)).getAllBalances(N)).map((L)=>({...L,denom:L.denom.includes("/")?L.denom.toUpperCase():L.denom}))}}function EG(T){return async function(N){let y=await import("@cosmjs/crypto"),f=y.stringToPath??y.default?.stringToPath,G=y.Slip10Curve??y.default?.Slip10Curve,L=y.Slip10??y.default?.Slip10,X=y.EnglishMnemonic??y.default?.EnglishMnemonic,_=y.Bip39??y.default?.Bip39,Z=new X(N),q=await _.mnemonicToSeed(Z),{privkey:Q}=L.derivePath(G.Secp256k1,q,f(T));return Q}}var w0;var Rf=k(()=>{DT();w0={[a.Cosmos]:1000,[a.Kujira]:1000,[a.Noble]:1000,[a.THORChain]:5000000,[a.Maya]:5000000,[a.Harbor]:5000000}});import{base64 as hy}from"@scure/base";import{Chain as kG,CosmosChainPrefixes as DG,derivationPathToString as PG,FeeOption as D0,getChainConfig as n5,getRPCUrl as SG,NetworkDerivationPath as vG,RequestClient as lG,SKConfig as AG,SwapKitError as u5,SwapKitNumber as b5,updateDerivationPath as FG}from"@swapkit/helpers";import{match as VG,P as j5}from"ts-pattern";function $G({prefix:T,derivationPath:x}){return async function(y,f=0){let G=await import("@cosmjs/amino"),L=G.Secp256k1HdWallet??G.default?.Secp256k1HdWallet,X=await import("@cosmjs/crypto"),_=X.stringToPath??X.default?.stringToPath;return L.fromMnemonic(y,{hdPaths:[_(`${x}/${f}`)],prefix:T})}}function KG(T){return hy.encode(T)}function nG(T){return async function({wallet:N,tx:y}){let{msgs:f,accountNumber:G,sequence:L,chainId:X,fee:_,memo:Z}=typeof y==="string"?JSON.parse(y):y,q=(await N.getAccounts())?.[0]?.address||"",Q=await ky(T),J=await jy(),B=await Q0(N,{aminoTypes:Q,registry:J}),Y=[];for(let I of f){let O=await Dy(I,T);Y.push(O)}let{signatures:[W]}=await B.sign(q,Y,_,Z,{accountNumber:G,chainId:X,sequence:L});return{bodyBytes:await PT({chain:T,memo:Z,msgs:f.map(Py)}),signature:KG(W)}}}function uG({prefix:T,rpcUrl:x}){return async function(y,f,G,L,X){let{encodeSecp256k1Pubkey:_,pubkeyToAddress:Z}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:q}=(await import("@cosmjs/stargate")).default,{sequence:Q,fee:J}=JSON.parse(y),B=await h5(G,L),Y=f.map((I)=>[Z(_(hy.decode(I.pubKey)),T),hy.decode(I.signature)]),W=await Ry(x),{transactionHash:M}=await W.broadcastTx(q(B,Q,J,X,new Map(Y)));return M}}async function h5(T,x,N=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:f}=(await import("@cosmjs/amino")).default;return y(T.map((G)=>f(hy.decode(G))),x,N)}function bG(T){return hy.decode(T)}async function jG({privateKey:T,message:x}){let{Secp256k1:N}=(await import("@cosmjs/crypto")).default,y=await N.createSignature(hy.decode(x),T);return hy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function P0({chain:T,...x}){let N=await SG(T),{nodeUrl:y}=n5(T),{isStagenet:f}=AG.get("envs"),G=T===kG.THORChain,L=`${f?"s":""}${DG[T]}`,X="index"in x?x.index||0:0,_="derivationPath"in x&&x.derivationPath?x.derivationPath:FG(vG[T],{index:X}),Z=await ST({chain:T,...x}),q=await VG(x).with({phrase:j5.string},({phrase:Y})=>Z.getSignerFromPhrase({derivationPath:_,phrase:Y})).with({signer:j5.any},({signer:Y})=>Y).otherwise(()=>{return}),Q=Iy(T);async function J(){let Y,W=`${y}/${G?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:M}}=await lG.get(W);if(!M||Number.isNaN(M)||M<0)throw new u5("toolbox_cosmos_invalid_fee",{nativeFee:M.toString()});Y=new b5(M)}catch{Y=new b5({decimal:n5(T).baseDecimal,value:G?0.02:1})}return{[D0.Average]:Y,[D0.Fast]:Y,[D0.Fastest]:Y}}async function B({assetValue:Y,memo:W="",recipient:M}){let{TxRaw:I}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),O=(await q?.getAccounts())?.[0]?.address;if(!(O&&q))throw new u5("toolbox_cosmos_no_signer");let l="signAmino"in q,S=await jy(),F=await ky(T),j=await NT(N,q,{aminoTypes:F,registry:S}),d=Hf({assetValue:Y,memo:W,recipient:M,sender:O});if(l){let z=await Dy(d,T),{signatures:R,authInfoBytes:C}=await j.sign(O,[z],Q,W),A=I.encode({authInfoBytes:C,bodyBytes:await PT({chain:T,memo:W,msgs:[d].map(Py)}),signatures:R}).finish();return(await j.broadcastTx(A)).transactionHash}let Gy=Py(d),D=await Dy(Gy,T);return(await j.signAndBroadcast(O,[D],Q,W)).transactionHash}return{...Z,broadcastMultisigTx:uG({prefix:L,rpcUrl:N}),buildAminoMsg:Hf,buildEncodedTxBody:PT,convertToSignable:Dy,createDefaultAminoTypes:()=>ky(T),createDefaultRegistry:jy,createMultisig:h5,createTransaction:U0(N),deposit:B,getFees:J,importSignature:bG,parseAminoMessageForDirectSigning:Py,pubkeyToAddress:async(Y)=>{let{pubkeyToAddress:W}=(await import("@cosmjs/amino")).default;return W(Y,L)},secp256k1HdWalletFromMnemonic:$G({derivationPath:PG(_),prefix:L}),signMultisigTx:nG(T),signWithPrivateKey:jG,transfer:B}}var S0=k(()=>{M0();DT();Rf()});import{Chain as vT,SwapKitError as hG}from"@swapkit/helpers";var oG=(T,x)=>{switch(T){case vT.Cosmos:case vT.Kujira:case vT.Noble:return ST({chain:T,...x});case vT.Maya:case vT.THORChain:return P0({chain:T,...x});default:throw new hG("toolbox_cosmos_not_supported",{chain:T})}};var o5=k(()=>{Rf();S0();Rf();S0()});var wf={};Ty(wf,{verifySignature:()=>$5,transferMsgAmino:()=>W0,toBase64:()=>NG,parseAminoMessageForDirectSigning:()=>Py,getSignerFromPrivateKey:()=>RG,getSignerFromPhrase:()=>E0,getMsgSendDenom:()=>My,getFeeRateFromSwapKit:()=>wG,getDenomWithChain:()=>GT,getDefaultChainFee:()=>Iy,getCreateTransaction:()=>U0,getCosmosValidateAddress:()=>K5,getCosmosToolbox:()=>oG,getAssetFromDenom:()=>Y0,fromBase64:()=>LG,fetchFeeRateFromSwapKit:()=>k0,estimateTransactionFee:()=>CG,depositMsgAmino:()=>H0,createThorchainToolbox:()=>P0,createStargateClient:()=>Ry,createSigningStargateClient:()=>NT,createOfflineStargateClient:()=>Q0,createDefaultRegistry:()=>jy,createDefaultAminoTypes:()=>ky,createCosmosToolbox:()=>ST,cosmosCreateTransaction:()=>B0,convertToSignable:()=>Dy,buildTransferTx:()=>C5,buildEncodedTxBody:()=>PT,buildDepositTx:()=>O5,buildAminoMsg:()=>Hf,bech32ToBase64:()=>ET,base64ToBech32:()=>kT,YUM_KUJIRA_FACTORY_DENOM:()=>z5,USK_KUJIRA_FACTORY_DENOM:()=>q0,THORCHAIN_GAS_VALUE:()=>BG,MAYA_GAS_VALUE:()=>YG,DEFAULT_NOBLE_FEE_MAINNET:()=>U5,DEFAULT_KUJI_FEE_MAINNET:()=>H5,DEFAULT_COSMOS_FEE_MAINNET:()=>W5});var Cf=k(()=>{M0();o5();DT()});import{AssetValue as Of,Chain as Sy,DerivationPath as pG,derivationPathToString as mG,getChainConfig as c5,getRPCUrl as cG,NetworkDerivationPath as tG,SwapKitError as py,updateDerivationPath as gG}from"@swapkit/helpers";import{match as dG,P as p5}from"ts-pattern";async function t5(T){let x=Of.from({address:T,chain:Sy.Solana});if(x.symbol!=="UNKNOWN")return{decimals:x.decimal||0,id:T,logoURI:x.getIconUrl(),name:x.symbol,symbol:x.ticker};let N=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(T)}`;try{let y=await fetch(N);if(!y.ok)return null;let f=await y.json();if(!Array.isArray(f)||f.length===0)return null;return f.find((L)=>L.id===T)||null}catch{return null}}async function iG(T){let x=await oy(),{PublicKey:N}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),f=new N(T),{baseDecimal:G}=c5(Sy.Solana),L=await x.getBalance(f),X=[Of.from({chain:Sy.Solana,fromBaseDecimal:G,value:L||0})],_=await x.getParsedTokenAccountsByOwner(f,{programId:y});for(let{account:Z}of _.value){let q=Z.data.parsed.info,Q=q.mint,J=q.tokenAmount.amount;if(Number(J)===0)continue;let B=await t5(Q),Y=B?.symbol||"UNKNOWN",W=B?.decimals||q.tokenAmount.decimals;X.push(Of.from({asset:`${Sy.Solana}.${Y}-${Q}`,fromBaseDecimal:W,value:J}))}return X}async function A0(){let{PublicKey:T}=await import("@solana/web3.js");return(x)=>{try{let N=new T(x);return T.isOnCurve(N.toBytes())}catch{return!1}}}async function rG(T){let x=T&&"index"in T?T.index||0:0,N=mG(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:gG(tG[Sy.Solana],{index:x})),y=await dG(T).with({phrase:p5.string},({phrase:L})=>l0({derivationPath:N,phrase:L})).with({signer:p5.any},({signer:L})=>L).otherwise(()=>{return});function f(){return y?.publicKey?m5(y.publicKey):""}function G(L){let X=L||f();if(!X)throw new py("core_wallet_connection_not_found");return iG(X)}return{broadcastTransaction:v0(oy),createKeysForPath:l0,createTransaction:F0(oy),createTransactionFromInstructions:yN,estimateTransactionFee:aG(oy),getAddress:f,getAddressFromPubKey:m5,getAddressValidator:A0,getBalance:G,getConnection:oy,getPubkeyFromAddress:V0,signTransaction:fN(oy,y),transfer:TN(oy,y)}}function aG(T){return async({recipient:x,assetValue:N,memo:y,isProgramDerivedAddress:f,sender:G})=>{let L=await T(),_=(await F0(T)({assetValue:N,isProgramDerivedAddress:f,memo:y,recipient:x,sender:G})).compileMessage(),Z=await L.getFeeForMessage(_);if(Z.value===null)throw new py("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:q}=c5(Sy.Solana);return Of.from({chain:Sy.Solana,fromBaseDecimal:q,value:Z.value})}}async function oy(){let{Connection:T}=await import("@solana/web3.js"),x=await cG(Sy.Solana);return new T(x,"confirmed")}function sG(T){return async({assetValue:x,recipient:N,sender:y,isProgramDerivedAddress:f})=>{let G=await T(),L=await V0(y);if(x.isGasAsset){let{Transaction:X,SystemProgram:_,PublicKey:Z}=await import("@solana/web3.js");return new X().add(_.transfer({fromPubkey:L,lamports:x.getBaseValue("number"),toPubkey:new Z(N)}))}if(x.address)return eG({amount:x.getBaseValue("number"),connection:G,decimals:x.decimal,from:L,isProgramDerivedAddress:f,recipient:N,tokenAddress:x.address});return}}async function eG({tokenAddress:T,recipient:x,from:N,connection:y,amount:f,decimals:G,isProgramDerivedAddress:L}){let{getAssociatedTokenAddress:X,getAccount:_,createAssociatedTokenAccountInstruction:Z,createTransferCheckedInstruction:q}=await import("@solana/spl-token"),{Transaction:Q,PublicKey:J}=await import("@solana/web3.js"),B=new Q,Y=new J(T),W=await X(Y,N),M=new J(x),I=await X(Y,M,L),O=!1;try{await _(y,I),O=!0}catch{}if(!O)B.add(Z(N,I,M,Y));return B.add(q(W,Y,I,N,f,G)),B}function F0(T){return async({recipient:x,assetValue:N,memo:y,isProgramDerivedAddress:f,sender:G})=>{let{createMemoInstruction:L}=await import("@solana/spl-memo"),X=await V0(G),_=await A0();if(!(f||_(x)))throw new py("core_transaction_invalid_recipient_address");let Z=await T(),q=await sG(T)({assetValue:N,isProgramDerivedAddress:f,recipient:x,sender:G});if(!q)throw new py("core_transaction_invalid_sender_address");if(y)q.add(L(y));let Q=await Z.getLatestBlockhash();return q.recentBlockhash=Q.blockhash,q.feePayer=X,q}}async function yN({instructions:T}){let{Transaction:x}=await import("@solana/web3.js"),N=new x().add(...T);if(!N)throw new py("core_transaction_invalid_sender_address");return N}function TN(T,x){return async({recipient:N,assetValue:y,memo:f,isProgramDerivedAddress:G})=>{if(!x)throw new py("core_transaction_invalid_sender_address");let L=x.publicKey?.toString()??(await x.connect()).publicKey.toString(),X=await F0(T)({assetValue:y,isProgramDerivedAddress:G,memo:f,recipient:N,sender:L});if("signTransaction"in x){let _=await x.signTransaction(X);return v0(T)(_)}return X.sign(x),v0(T)(X)}}function v0(T){return async(x)=>{return(await T()).sendRawTransaction(x.serialize())}}function fN(T,x){return async(N)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!x)throw new py("toolbox_solana_no_signer");if(!(N instanceof y)){let G=await(await T()).getLatestBlockhash();N.recentBlockhash=G.blockhash,N.feePayer=x.publicKey||void 0}if("connect"in x)return await x.signTransaction(N);return await N.sign([x]),N}}async function l0({phrase:T,derivationPath:x=pG.SOL}){let{HDKey:N}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:y}=await import("@scure/bip39"),{Keypair:f}=await import("@solana/web3.js"),G=y(T),L=N.fromMasterSeed(G);return f.fromSeed(L.derive(x,!0).privateKey)}function m5(T){return T.toString()}async function V0(T){let{PublicKey:x}=await import("@solana/web3.js");return new x(T)}var g5=()=>{};var $0={};Ty($0,{getSolanaToolbox:()=>rG,getSolanaAddressValidator:()=>A0,fetchTokenMetaData:()=>t5,createKeysForPath:()=>l0});var K0=k(()=>{g5()});import{AssetValue as lT,Chain as n0,getChainConfig as xN,SwapKitError as my}from"@swapkit/helpers";import{match as GN,P as d5}from"ts-pattern";async function i5(){let{isValidSuiAddress:T}=await import("@mysten/sui/utils");return function(N){try{return T(N)}catch{return!1}}}async function NN({provider:T,...x}={}){let N=await i5(),y=await GN(x).with({phrase:d5.string},async({phrase:Q})=>{let{Ed25519Keypair:J}=await import("@mysten/sui/keypairs/ed25519");return J.deriveKeypair(Q)}).with({signer:d5.any},({signer:Q})=>Q).otherwise(()=>{return});async function f(Q=T){let{SuiClient:J,getFullnodeUrl:B}=await import("@mysten/sui/client");return new J({url:Q||B("mainnet")})}function G(){return y?.toSuiAddress()||""}async function L(Q){let J=Q||G();if(!J)throw new my("toolbox_sui_address_required");let{baseDecimal:B,chain:Y}=xN(n0.Sui);try{let W=await f(),{totalBalance:M}=await W.getBalance({owner:J}),I=[lT.from({chain:Y,fromBaseDecimal:B,value:M})],O=await W.getAllBalances({owner:J});for(let{coinType:l,totalBalance:S}of O){if(l==="0x2::sui::SUI")continue;if(Number(S)>0){let F=l.split("::").pop()?.toUpperCase()||"UNKNOWN",j=`${Y}.${F}-${l}`;I.push(lT.from({asset:j,fromBaseDecimal:B,value:S}))}}return I}catch{return[lT.from({chain:Y})]}}async function X(Q){let J=lT.from({chain:n0.Sui,value:"0.01"});if(!Q)return J;try{let B=await f(),{txBytes:Y}=await _(Q),{effects:{status:W,gasUsed:M}}=await B.dryRunTransactionBlock({transactionBlock:Y});if(W.status!=="success")return J;let I=Number(M.computationCost)+Number(M.storageCost)-Number(M.storageRebate);return lT.from({chain:n0.Sui,value:I.toString()})}catch{return J}}async function _({recipient:Q,assetValue:J,gasBudget:B,sender:Y}){let{Transaction:W}=await import("@mysten/sui/transactions"),M=Y||G();if(!M)throw new my("toolbox_sui_no_sender");try{let I=new W;if(I.setSender(M),J.isGasAsset||J.symbol==="SUI"){let[S]=I.splitCoins(I.gas,[J.getBaseValue("string")]);I.transferObjects([S],Q)}else throw new my("toolbox_sui_custom_token_transfer_not_implemented");if(B)I.setGasBudget(B);let O=await f(),l=await I.build({client:O});return{tx:I,txBytes:l}}catch(I){throw new my("toolbox_sui_transaction_creation_error",{error:I})}}async function Z(Q){if(!y)throw new my("toolbox_sui_no_signer");if(Q instanceof Uint8Array)return y.signTransaction(Q);let{txBytes:J}="tx"in Q?Q:await _(Q);return y.signTransaction(J)}async function q({assetValue:Q,gasBudget:J,recipient:B}){if(!y)throw new my("toolbox_sui_no_signer");let Y=y.toSuiAddress()||G();if(!Y)throw new my("toolbox_sui_no_sender");let{txBytes:W}=await _({assetValue:Q,gasBudget:J,recipient:B,sender:Y}),M=await f(),{digest:I}=await M.signAndExecuteTransaction({signer:y,transaction:W});return I}return{createTransaction:_,estimateTransactionFee:X,getAddress:G,getBalance:L,signTransaction:Z,transfer:q,validateAddress:N}}var r5=()=>{};var Ef={};Ty(Ef,{getSuiToolbox:()=>NN,getSuiAddressValidator:()=>i5});var kf=k(()=>{r5()});import{AssetValue as u0,Chain as AT,getChainConfig as a5,SwapKitError as FT,SwapKitNumber as LN}from"@swapkit/helpers";import{match as XN,P as s5}from"ts-pattern";async function _N(T={}){let{mnemonicToWalletKey:x}=await import("@ton/crypto"),{Address:N,TonClient:y,WalletContractV4:f}=await import("@ton/ton"),G=await e5(),L,X,_=await XN(T).with({phrase:s5.string},async({phrase:I})=>x(I.split(" "))).with({signer:s5.any},({signer:I})=>I).otherwise(()=>{return});function Z(){let{rpcUrls:I}=a5(AT.Ton),[O]=I;if(!L||L.parameters.endpoint!==O)L=new y({endpoint:O});return L}function q(I){if(!X||I){let O=Z(),l=I||_;if(!l)throw new FT("core_wallet_connection_not_found");let S=f.create({publicKey:l.publicKey,workchain:0});X=O.open(S)}return X}async function Q(I){let O=Z(),{baseDecimal:l}=a5(AT.Ton);try{let S=await O.getBalance(N.parse(I));return[u0.from({chain:AT.Ton,value:LN.fromBigInt(S,l)})]}catch{return[u0.from({chain:AT.Ton})]}}async function J({assetValue:I,recipient:O,memo:l}){let S=q();if(!S||!_)throw new FT("core_wallet_connection_not_found");let{toNano:F,comment:j,internal:d}=await import("@ton/ton"),Gy=await S.getSeqno(),D=F(I.getValue("string")),v=l?j(l):void 0;return S.createTransfer({messages:[d({body:v,to:O,value:D})],secretKey:_.secretKey,seqno:Gy})}async function B({assetValue:I,recipient:O,memo:l}){let S=q();if(!S||!_)throw new FT("core_wallet_connection_not_found");let F=await J({assetValue:I,memo:l,recipient:O});return await S.send(F),F.hash().toString()}async function Y(I){let O=q();if(!O)throw new FT("core_wallet_connection_not_found");try{return await O.send(I),I.hash().toString("hex")}catch(l){throw new FT("core_wallet_connection_not_found",{error:l})}}function W(){return q().address.toString()}function M(){return Promise.resolve(u0.from({chain:AT.Ton,value:"0.0001"}))}return{createTransaction:J,estimateTransactionFee:M,getAddress:W,getBalance:Q,sendTransaction:Y,transfer:B,validateAddress:G}}async function e5(){let{Address:T}=await import("@ton/ton");return function(N){try{return T.parse(N),!0}catch{return!1}}}var yx=()=>{};var Df={};Ty(Df,{getTONToolbox:()=>_N,getTONAddressValidator:()=>e5});var Pf=k(()=>{yx()});var LT;var b0=k(()=>{LT=[{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}]});import{SwapKitError as ZN}from"@swapkit/helpers";async function Tx(T){let x=await import("tronweb"),N=x.TronWeb??x.default?.TronWeb;try{let y=await fetch(`${JN}/v1/accounts/${T}`);if(!y.ok)throw Error(`TronGrid API error: ${y.status} ${y.statusText}`);let f=await y.json();if(!(f.success&&f.data)||f.data.length===0)throw Error("Invalid response from TronGrid API");let G;try{G=N.address.toHex(T).toLowerCase()}catch{G=T.toLowerCase()}let L=f.data.find((X)=>{return X.address.toLowerCase()===G});if(!L)return;return{balance:L.balance,trc20:L.trc20||[]}}catch(y){throw new ZN("toolbox_tron_trongrid_api_error",{address:T,message:y instanceof Error?y.message:"Unknown error"})}}var JN="https://api.trongrid.io";var fx=()=>{};import{AssetValue as wy,BaseDecimal as xx,Chain as By,derivationPathToString as Lx,getRPCUrl as qN,NetworkDerivationPath as Xx,SwapKitError as fy,updateDerivationPath as _x,warnOnce as j0}from"@swapkit/helpers";import{match as QN,P as Gx}from"ts-pattern";async function h0(){let T=await import("tronweb"),x=T.TronWeb??T.default?.TronWeb;return(N)=>{return x.isAddress(N)}}async function Zx({phrase:T,derivationPath:x,index:N}){let y=x||Lx(_x(Xx[By.Tron],{index:N||0})),{HDKey:f}=await import("@scure/bip32"),{mnemonicToSeedSync:G}=await import("@scure/bip39"),L=G(T),_=f.fromMasterSeed(L).derive(y);if(!_.privateKey)throw new fy("toolbox_tron_no_signer");return Buffer.from(_.privateKey).toString("hex")}async function HN({phrase:T,derivationPath:x,tronWeb:N}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),G=f(T),X=y.fromMasterSeed(G).derive(x);if(!X.privateKey)throw new fy("toolbox_tron_no_signer");let _=Buffer.from(X.privateKey).toString("hex");N.setPrivateKey(_);let Z=N?.address.fromPrivateKey(_);return{getAddress:()=>Promise.resolve(typeof Z==="string"?Z:""),signTransaction:async(q)=>{return await N.trx.sign(q,_)}}}var BN=268,YN=13000,zN=345,Nx="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",WN="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",Jx=async(T={})=>{let x=await import("tronweb"),N=x.TronWeb??x.default?.TronWeb,y=await qN(By.Tron),f=void 0,G=new N({fullHost:y,headers:void 0}),L="index"in T?T.index||0:0,X=Lx("derivationPath"in T&&T.derivationPath?T.derivationPath:_x(Xx[By.Tron],{index:L})),_=await QN(T).with({phrase:Gx.string},async({phrase:D})=>HN({derivationPath:X,phrase:D,tronWeb:G})).with({signer:Gx.any},({signer:D})=>Promise.resolve(D)).otherwise(()=>Promise.resolve(void 0)),Z=async()=>{if(!_)throw new fy("toolbox_tron_no_signer");return await _.getAddress()},q=()=>{return 1e8},Q=async()=>{try{let D=await G.trx.getChainParameters(),v={};for(let z of D)v[z.key]=z.value;return{bandwidthFee:v.getTransactionFee||1000,createAccountFee:v.getCreateAccountFee||1e5,energyFee:v.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},J=async(D)=>{try{let v=await G.trx.getAccount(D);return v&&Object.keys(v).length>0}catch{return!1}},B=async(D)=>{try{let v=await G.trx.getAccountResources(D);return{bandwidth:{free:v.freeNetLimit-v.freeNetUsed,total:v.NetLimit||0,used:v.NetUsed||0},energy:{total:v.EnergyLimit||0,used:v.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},Y=async(D,v)=>{try{let z=G.contract(LT,v);if(!z.methods?.balanceOf)return 0n;let[R]=await z.methods.balanceOf(D).call();return R?typeof R==="bigint"?R:BigInt(R):0n}catch(z){let R=z instanceof Error?z.message:String(z);return console.warn(`balanceOf() failed for ${v}: ${R}`),0n}},W=async(D,v)=>{try{G.setAddress(v);let z=G.contract(LT,D),[R,C]=await Promise.all([z.symbol().call().catch(()=>"UNKNOWN"),z.decimals().call().catch(()=>"18")]);return{decimals:Number(C??18),symbol:R??"UNKNOWN"}}catch(z){return j0({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${D}: ${z instanceof Error?z.message:z}`}),null}},M=async(D,v=!0)=>{let z=[wy.from({chain:By.Tron})];try{let R=await Tx(D);if(R){let C=[];C.push(wy.from({chain:By.Tron,fromBaseDecimal:6,value:R.balance}));for(let A of R.trc20){let[u,n]=Object.entries(A)[0]||[];if(!(u&&n))continue;let $=await W(u,D);if(!$)continue;C.push(wy.from({asset:`TRON.${$.symbol}-${u}`,fromBaseDecimal:$.decimals,value:BigInt(n||0)}))}return C}return z}catch(R){j0({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${R instanceof Error?R.message:R}`});try{let C=[],A=await G.trx.getBalance(D);if(A&&Number(A)>0)C.push(wy.from({chain:By.Tron,fromBaseDecimal:6,value:A}));let u=await Y(D,Nx);if(u)C.push(wy.from({asset:`TRON.USDT-${Nx}`,fromBaseDecimal:6,value:u}));if(C.length===0)return z;return C}catch(C){let A=C instanceof Error?C.message:String(C);return console.error(`Tron balance fetch failed: ${A}`),z}}},I=async({recipient:D,assetValue:v,memo:z,expiration:R})=>{if(!_)throw new fy("toolbox_tron_no_signer");let C=await Z();G.setAddress(C);let A=await l({assetValue:v,expiration:R,memo:z,recipient:D,sender:C}),u=await _.signTransaction(A),{txid:n}=await G.trx.sendRawTransaction(u);if(!n)throw new fy("toolbox_tron_token_transfer_failed");return n},O=async({assetValue:D,recipient:v,sender:z})=>{let R=D.isGasAsset;try{let C=z?z:_?await Z():void 0;if(!C)return R?wy.from({chain:By.Tron,fromBaseDecimal:0,value:0.1}):wy.from({chain:By.Tron,fromBaseDecimal:0,value:15});let A=await Q(),n=await J(v)?0:A.createAccountFee,$=await B(C);if(R){let Ky=BN,mT=$.bandwidth.free+($.bandwidth.total-$.bandwidth.used),cT=0;if(Ky>mT)cT=(Ky-mT)*A.bandwidthFee;let tT=n+cT;return wy.from({chain:By.Tron,fromBaseDecimal:xx.TRON,value:tT})}let h=zN,i=YN,yy=$.bandwidth.free+($.bandwidth.total-$.bandwidth.used),Ny=$.energy.total-$.energy.used,$y=0;if(h>yy)$y=(h-yy)*A.bandwidthFee;let pT=0;if(i>Ny)pT=(i-Ny)*A.energyFee;let pf=n+$y+pT;return wy.from({chain:By.Tron,fromBaseDecimal:xx.TRON,value:pf})}catch(C){throw j0({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${C instanceof Error?C.message:C}`}),new fy("toolbox_tron_fee_estimation_failed",{error:C})}},l=async(D)=>{let{recipient:v,assetValue:z,memo:R,sender:C,expiration:A}=D,u=z.isGasAsset,n=async({transaction:h,memo:i,expiration:yy})=>{let Ny=i?await G.transactionBuilder.addUpdateData(h,i,"utf8"):h;return yy?await G.transactionBuilder.extendExpiration(Ny,yy):Ny};if(u){let h=await G.transactionBuilder.sendTrx(v,z.getBaseValue("number"),C);return n({expiration:A,memo:R,transaction:h})}G.setAddress(C);let $=z.address;if(!$)throw new fy("toolbox_tron_invalid_token_identifier",{identifier:z.toString()});try{let i=[{type:"address",value:v},{type:"uint256",value:z.getBaseValue("string")}],yy={callValue:0,feeLimit:q()},{transaction:Ny}=await G.transactionBuilder.triggerSmartContract($,"transfer(address,uint256)",yy,i,C);return n({expiration:A,memo:R,transaction:Ny})}catch(h){throw new fy("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction.",originalError:h instanceof Error?h.message:String(h)})}},S=async(D)=>{if(!_)throw new fy("toolbox_tron_no_signer");return await _.signTransaction(D)},F=async(D)=>{let{txid:v}=await G.trx.sendRawTransaction(D);return v},j=async({assetAddress:D,spenderAddress:v,from:z})=>{try{let R=G.contract(LT,D);if(!R.methods?.allowance)throw new fy("toolbox_tron_invalid_token_contract");let[C]=await R.methods.allowance(z,v).call();return C?typeof C==="bigint"?C:BigInt(C):0n}catch(R){throw new fy("toolbox_tron_allowance_check_failed",{error:R})}};return{approve:async({assetAddress:D,spenderAddress:v,amount:z,from:R})=>{if(!_)throw new fy("toolbox_tron_no_signer");let C=R||await Z(),A=z!==void 0?BigInt(z).toString():WN,u="approve(address,uint256)",n=[{type:"address",value:v},{type:"uint256",value:A}],h={callValue:0,feeLimit:q()};try{let{transaction:i}=await G.transactionBuilder.triggerSmartContract(D,u,h,n,C),yy=await _.signTransaction(i),{txid:Ny}=await G.trx.sendRawTransaction(yy);if(!Ny)throw new fy("toolbox_tron_approve_failed");return Ny}catch(i){throw new fy("toolbox_tron_approve_failed",{error:i})}},broadcastTransaction:F,createTransaction:l,estimateTransactionFee:O,getAddress:Z,getApprovedAmount:j,getBalance:M,isApproved:async({assetAddress:D,spenderAddress:v,from:z,amount:R})=>{let C=await j({assetAddress:D,from:z,spenderAddress:v});if(!R)return C>0n;let A=BigInt(R);return C>=A},signTransaction:S,transfer:I,tronWeb:G,validateAddress:await h0()}};var qx=k(()=>{b0();fx()});var o0={};Ty(o0,{trc20ABI:()=>LT,getTronPrivateKeyFromMnemonic:()=>Zx,getTronAddressValidator:()=>h0,createTronToolbox:()=>Jx});var p0=k(()=>{b0();qx()});import{networks as UN}from"@bitgo/utxo-lib";import{Chain as s,getRPCUrl as MN,RequestClient as Sf,SKConfig as IN,SwapKitError as vy,warnOnce as RN}from"@swapkit/helpers";import{networks as wN}from"bitcoinjs-lib";import VT from"coininfo";async function CN({chain:T,txHash:x}){let N=`${vf(T)}/push/transaction`,y=JSON.stringify({data:x});try{let f=await Sf.post(N,{body:y,headers:{"Content-Type":"application/json"}});if(f.context.code!==200)throw new vy("toolbox_utxo_broadcast_failed",{error:f.context.error||"Transaction broadcast failed"});return f.data?.transaction_hash||x}catch(f){let G=await MN(T);if(G){let L=JSON.stringify({id:n1(),jsonrpc:"2.0",method:"sendrawtransaction",params:[x]}),X=await Sf.post(G,{body:L,headers:{"Content-Type":"application/json"}});if(X.error)throw new vy("toolbox_utxo_broadcast_failed",{error:X.error?.message});if(X.result.includes('"code":-26'))throw new vy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return X.result}throw f}}function vf(T){return`https://api.blockchair.com/${ON(T)}`}function Qx(T){switch(T){case s.Bitcoin:return 5;case s.Dogecoin:return 1e4;case s.Litecoin:return 1;case s.Zcash:return 1;default:return 2}}function ON(T){switch(T){case s.BitcoinCash:return"bitcoin-cash";case s.Litecoin:return"litecoin";case s.Dash:return"dash";case s.Dogecoin:return"dogecoin";case s.Zcash:return"zcash";case s.Polkadot:return"polkadot";default:return"bitcoin"}}async function EN(T){try{let{feePerKb:x}=await Sf.get(`https://app.bitgo.com/api/v2/${T.toLowerCase()}/tx/fee`),N=x/1000;return Math.max(N,Qx(T))}catch{return Qx(T)}}async function m0(T,x){let N=await Sf.get(`${T}${x?`${T.includes("?")?"&":"?"}key=${x}`:""}`);if(!N||N.context.code!==200)throw new vy("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return N.data}async function Yx({address:T,chain:x,apiKey:N}){if(!T)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await m0(`${vf(x)}/dashboards/address/${T}?transaction_details=true`,N))[T]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function kN({address:T,chain:x,apiKey:N}){return(await Yx({address:T,apiKey:N,chain:x}))?.address.balance||0}async function zx({chain:T,apiKey:x,txHash:N}){if(!N)throw new vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await m0(`${vf(T)}/raw/transaction/${N}`,x))?.[N]?.raw_transaction||""}catch(y){let f=y instanceof Error?y.message:String(y);return console.error(`Failed to fetch raw transaction: ${f}`),""}}async function DN({chain:T,address:x,apiKey:N,offset:y=0,limit:f=30}){return(await m0(`${vf(T)}/outputs?q=recipient(${x}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${f}&offset=${y}`,N)).map(({is_spent:_,script_hex:Z,block_id:q,transaction_hash:Q,index:J,value:B,spending_signature_hex:Y})=>({hash:Q,index:J,is_confirmed:q!==-1,is_spent:_,script_hex:Z,txHex:Y,value:B}))}function PN(T){return T.reduce((x,N)=>x+N.value,0)}function Bx(T,x){let N=[...T].sort((y,f)=>f.value-y.value);if(x){let y=[],f=0;for(let G of N)if(y.push(G),f+=G.value,f>=x)break;return y}return N}async function Wx({chain:T,address:x,apiKey:N,targetValue:y,accumulativeValue:f=0,offset:G=0,limit:L=30}){if(!x)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let X=await DN({address:x,apiKey:N,chain:T,limit:L,offset:G,targetValue:y}),Z=X.length<L,q=X.filter(({is_spent:M})=>!M),Q=PN(q),J=f+Q,B=y&&J>=y;if(Z||B)return Bx(q,y);let Y=await Wx({accumulativeValue:J,address:x,apiKey:N,chain:T,limit:L,offset:G+L,targetValue:y}),W=[...q,...Y];return Bx(W,y)}catch(X){let _=X instanceof Error?X.message:String(X);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function SN({address:T,chain:x,apiKey:N,fetchTxHex:y=!0,targetValue:f}){let G=await Wx({address:T,apiKey:N,chain:x,targetValue:f}),L=[];for(let{hash:X,index:_,script_hex:Z,value:q}of G){let Q;if(y)Q=await zx({apiKey:N,chain:x,txHash:X});L.push({address:T,hash:X,index:_,txHex:Q,value:q,witnessUtxo:{script:Buffer.from(Z,"hex"),value:q}})}return L}function Ly(T){let x=IN.get("apiKeys").blockchair||"";return RN({condition:!x,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(N)=>CN({chain:T,txHash:N}),getAddressData:(N)=>Yx({address:N,apiKey:x,chain:T}),getBalance:(N)=>kN({address:N,apiKey:x,chain:T}),getRawTx:(N)=>zx({apiKey:x,chain:T,txHash:N}),getSuggestedTxFee:()=>EN(T),getUtxos:(N)=>SN({...N,apiKey:x,chain:T})}}function vN(T){return T}function Yy(){return function(x){switch(x){case s.Bitcoin:return wN.bitcoin;case s.BitcoinCash:return VT.bitcoincash.main.toBitcoinJS();case s.Dash:return VT.dash.main.toBitcoinJS();case s.Litecoin:return VT.litecoin.main.toBitcoinJS();case s.Dogecoin:{let N={private:70615956,public:70617039},y=VT.dogecoin.test;return y.versions.bip32=N,VT.dogecoin.main.toBitcoinJS()}case s.Zcash:return UN.zcash;default:throw new vy("toolbox_utxo_not_supported",{chain:x})}}}var Hx=k(()=>{WT()});import{SwapKitError as Mx}from"@swapkit/helpers";import Ix from"bs58check";import Rx from"cashaddrjs";function t0(T){try{return lf(T),!0}catch{return!1}}function g0(T){return lf(T)?.network}function XT(T){let x=lf(T);if(x?.format==="legacy")return T;return FN(x)}function $T(T){let x=lf(T);return VN(x)}function lf(T){try{let x=lN(T);if(x)return x}catch{}try{let x=AN(T);if(x)return x}catch{}throw new Mx("toolbox_utxo_invalid_address",{address:T})}function lN(T){try{let x=Ix.decode(T);if(x.length!==21)throw new Mx("toolbox_utxo_invalid_address",{address:T});let N=x[0],y=Array.prototype.slice.call(x,1);switch(N){case cy.legacy.mainnet.p2pkh:return{format:"legacy",hash:y,network:"mainnet",type:"p2pkh"};case cy.legacy.mainnet.p2sh:return{format:"legacy",hash:y,network:"mainnet",type:"p2sh"};case cy.legacy.testnet.p2pkh:return{format:"legacy",hash:y,network:"testnet",type:"p2pkh"};case cy.legacy.testnet.p2sh:return{format:"legacy",hash:y,network:"testnet",type:"p2sh"};case cy.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2pkh"};case cy.bitpay.mainnet.p2sh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function AN(T){if(T.indexOf(":")!==-1)try{return Ux(T)}catch{}else{let x=["bitcoincash","bchtest","bchreg"];for(let N of x)try{return Ux(`${N}:${T}`)}catch{}}return}function Ux(T){try{let{hash:x,prefix:N,type:y}=Rx.decode(T);return{format:"cashaddr",hash:Array.prototype.slice.call(x,0),network:N==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function FN(T){let x=cy.legacy[T.network][T.type],N=Buffer.alloc(1+T.hash.length);return N[0]=x,N.set(T.hash,1),Ix.encode(N)}function VN(T){let x=T.network==="mainnet"?"bitcoincash":"bchtest",N=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return Rx.encode(x,N,y)}var c0,cy;var wx=k(()=>{((N)=>{N.Mainnet="mainnet";N.Testnet="testnet"})(c0||={});cy={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as $N}from"@swapkit/helpers";import{opcodes as KN,script as nN}from"bitcoinjs-lib";function zy(T){let x=Buffer.from(T,"utf8");return nN.compile([KN.OP_RETURN,x])}var uN=1000,Vf=10,Cx=10,bN=41,jN=107,$f,Af,Ff,KT=(T)=>{if(T.startsWith("bc1")||T.startsWith("tb1")||T.startsWith("ltc1")||T.startsWith("tltc1"))return"P2WPKH";if(T.startsWith("1")||T.startsWith("m")||T.startsWith("n")||T.startsWith("bitcoincash:q")||T.startsWith("bitcoincash:p")||T.startsWith("q")||T.startsWith("p")||T.startsWith("L")||T.startsWith("M")||T.startsWith("3")||T.startsWith("D")||T.startsWith("A")||T.startsWith("9")||T.startsWith("X")||T.startsWith("7")||T.startsWith("y")||T.startsWith("t1")||T.startsWith("t3")||T.startsWith("tm"))return"P2PKH";throw new $N("toolbox_utxo_invalid_address",{address:T})},_T=({inputs:T,outputs:x,feeRate:N})=>{let y=T[0]&&"address"in T[0]&&T[0].address?KT(T[0].address):"P2PKH",f=T.filter((L)=>L.value>=Af["type"in L?L.type:"P2PKH"]*Math.ceil(N)).reduce((L,X)=>L+ly(X),0),G=x?.reduce((L,X)=>L+nT(X),0)||Ff[y];return Vf+f+G},ly=(T)=>{if("type"in T)return Af[T.type];if("address"in T&&T.address)return Af[KT(T.address)];return bN+jN},nT=(T,x)=>{if(T?.script)return Cx+T.script.length+(T.script.length>=74?2:1);if(x)return Ff[x];return Ff.P2PKH};var d0=k(()=>{((N)=>{N.P2PKH="P2PKH";N.P2WPKH="P2WPKH"})($f||={});Af={["P2PKH"]:148,["P2WPKH"]:68},Ff={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as ty,SwapKitError as hN}from"@swapkit/helpers";function Kf(T){switch(T){case ty.Bitcoin:case ty.BitcoinCash:return 550;case ty.Dash:case ty.Litecoin:return 5500;case ty.Dogecoin:return 1e5;case ty.Zcash:return 546;default:throw new hN("toolbox_utxo_not_supported",{chain:T})}}function Wy({inputs:T,outputs:x,feeRate:N=1,chain:y=ty.Bitcoin,changeAddress:f=""}){let G=Math.ceil(N),L=T[0]&&"address"in T[0]&&T[0].address?KT(T[0].address):"P2PKH",X=T.filter((B)=>ly(B)*G<=B.value),_=Vf+x.reduce((B,Y)=>B+nT(Y,L),0),Z=x.reduce((B,Y)=>B+Y.value,0),q=_*G,Q=0,J=[];for(let B of X){let Y=ly(B),W=G*Y;q+=W,Q+=B.value,J.push(B);let M=q+Z;if(Q<M)continue;let I=Q-M,O=G*nT({address:"",value:0},L);if(I>O){let l=O+q,S=Q-(Z+l);if(S>Math.max(ly({})*G,Kf(y)))return{fee:l,inputs:J,outputs:x.concat({address:f,value:S})}}return{fee:q,inputs:J,outputs:x}}return{fee:G*_T({feeRate:G,inputs:T,outputs:x})}}var Ox=k(()=>{d0()});var ZT=k(()=>{Hx();wx();Ox();d0()});import{networks as oN,address as pN}from"@bitgo/utxo-lib";import mN from"bs58check";function gy(T){return T.replace(/(bchtest:|bitcoincash:)/,"")}function Ay(T){let x=gy(T);return t0(x)&&g0(x)==="mainnet"}function JT(T){try{if(T.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let x=oN.zcash;try{return pN.toOutputScript(T,x),!0}catch{let N=mN.decode(T);if(N.length<21)return!1;let y=N[0];return y===x.pubKeyHash||y===x.scriptHash}}catch{return!1}}var uT=k(()=>{ZT()});import r0 from"@bitcoinerlab/secp256k1";import{ECPair as cN,HDNode as tN}from"@psf/bitcoincashjs-lib";import{HDKey as gN}from"@scure/bip32";import{mnemonicToSeedSync as Ex}from"@scure/bip39";import{AssetValue as i0,applyFeeMultiplier as kx,Chain as Xy,DerivationPath as dN,derivationPathToString as iN,FeeOption as Cy,NetworkDerivationPath as rN,SwapKitError as Oy,SwapKitNumber as aN,updateDerivationPath as sN}from"@swapkit/helpers";import{address as eN,initEccLib as Px,Psbt as yL,payments as Dx}from"bitcoinjs-lib";import{ECPairFactory as TL}from"ecpair";function Sx({inputs:T,outputs:x,chain:N,psbt:y,sender:f,compiledMemo:G}){for(let L of T){let X=!!L.witnessUtxo&&!bT.includes(N)&&{witnessUtxo:L.witnessUtxo},_=bT.includes(N)&&{nonWitnessUtxo:L.txHex?Buffer.from(L.txHex,"hex"):void 0};y.addInput({hash:L.hash,index:L.index,...X,..._})}for(let L of x){let X="address"in L&&L.address?L.address:f,_=L.script;if(_&&!G)continue;let Z=_?{script:G,value:0}:{address:X,value:L.value};Px(r0),y.addOutput(Z)}return{inputs:T,psbt:y}}async function vx({assetValue:T,recipient:x,memo:N,feeRate:y,sender:f,fetchTxHex:G=!1}){let L=T.chain,X=N?await zy(N):null,_=await Fx({assetValue:T,fetchTxHex:G,memo:N,recipient:x,sender:f}),{inputs:Z,outputs:q}=Wy({..._,chain:L,feeRate:y});if(!(Z&&q))throw new Oy("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let Q=await Yy(),J=new yL({network:Q(L)});if(L===Xy.Dogecoin)J.setMaximumFeeRate(650000000);let{psbt:B,inputs:Y}=await Sx({chain:L,compiledMemo:X,inputs:Z,outputs:q,psbt:J,sender:f});return{inputs:Y,psbt:B,utxos:_.inputs}}async function lx(){let T=await Yy();return function({address:N,chain:y}){if(y===Xy.BitcoinCash)return Ay(N);if(y===Xy.Zcash)return JT(N);try{return Px(r0),eN.toOutputScript(N,T(y)),!0}catch{return!1}}}async function fL({chain:T,phrase:x,derivationPath:N}){let y=(await jT(T))({derivationPath:N,phrase:x});async function f(L){return await L.signAllInputs(y),L}function G(){return a0(T)(y)}return{getAddress:G,signTransaction:f}}async function dy({chain:T,...x}){let N="phrase"in x?x.phrase:void 0,y="index"in x?x.index||0:0,f=iN("derivationPath"in x&&x.derivationPath?x.derivationPath:sN(rN[T],{index:y})),G=N?await fL({chain:T,derivationPath:f,phrase:N}):("signer"in x)?x.signer:void 0;function L(){return Promise.resolve(G?.getAddress())}let X=await lx(),_=await jT(T);return{accumulative:Wy,broadcastTx:(Z)=>Ly(T).broadcastTx(Z),calculateTxSize:_T,createKeysForPath:_,createTransaction:vx,estimateMaxSendableAmount:xL(T),estimateTransactionFee:GL(T),getAddress:L,getAddressFromKeys:a0(T),getBalance:ry(T),getFeeRates:()=>hT(T),getInputsOutputsFee:Ax,getPrivateKeyFromMnemonic:(Z)=>{return _(Z).toWIF()},transfer:NL(G),validateAddress:(Z)=>X({address:Z,chain:T})}}async function Ax({assetValue:T,feeOptionKey:x=Cy.Fast,feeRate:N,memo:y,sender:f,recipient:G}){let L=T.chain,X=await Fx({assetValue:T,memo:y,recipient:G,sender:f}),_=N?Math.floor(N):(await hT(L))[x];return Wy({...X,chain:L,feeRate:_})}function xL(T){return async function({from:N,memo:y,feeRate:f,feeOptionKey:G=Cy.Fast,recipients:L=1}){let X=await Ly(T).getAddressData(N),_=f?Math.ceil(f):(await hT(T))[G],Z=X?.utxo.map((Y)=>({...Y,hash:"",type:"P2PKH"})).filter((Y)=>Y.value>Math.max(Kf(T),ly(Y)*_));if(!Z?.length)return i0.from({chain:T});let q=i0.from({chain:T,value:Z.reduce((Y,W)=>Y+W.value,0)}),Q=typeof L==="number"?Array.from({length:L},()=>({address:N,value:0})):L;if(y){let Y=await zy(y);Q.push({address:N,script:Y,value:0})}let B=_T({feeRate:_,inputs:Z,outputs:Q})*_;return q.sub(B)}}function GL(T){return async(x)=>{let N=await Ax(x);return i0.from({chain:T,value:aN.fromBigInt(BigInt(N.fee),8).getValue("string")})}}async function jT(T){let x=await Yy();switch(T){case Xy.BitcoinCash:return function({phrase:y,derivationPath:f=`${dN.BCH}/0`,wif:G}){let L=x(T);if(G)return cN.fromWIF(G,L);if(!y)throw new Oy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return tN.fromSeedBuffer(Buffer.from(Ex(y)),L).derivePath(f).keyPair};case Xy.Bitcoin:case Xy.Dogecoin:case Xy.Litecoin:case Xy.Zcash:case Xy.Dash:return function({phrase:y,wif:f,derivationPath:G}){if(!(f||y))throw new Oy("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let L=TL(r0),X=x(T);if(f)return L.fromWIF(f,X);let _=Ex(y),Z=gN.fromMasterSeed(_,X).derive(G);if(!Z.privateKey)throw new Oy("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return L.fromPrivateKey(Buffer.from(Z.privateKey),{network:X})};default:throw new Oy("toolbox_utxo_not_supported",{chain:T})}}function a0(T){let x=Yy();return function(y){if(!y)throw new Oy("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let f=bT.includes(T)?Dx.p2pkh:Dx.p2wpkh,{address:G}=f({network:x(T),pubkey:y.publicKey});if(!G)throw new Oy("toolbox_utxo_invalid_address",{error:"Address not defined"});return G}}function NL(T){return async function({memo:N,recipient:y,feeOptionKey:f,feeRate:G,assetValue:L}){let X=await T?.getAddress(),_=L.chain;if(!(T&&X))throw new Oy("toolbox_utxo_no_signer");if(!y)throw new Oy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Z=G||(await hT(_))[f||Cy.Fast],{psbt:q}=await vx({assetValue:L,feeRate:Z,memo:N,recipient:y,sender:X}),Q=await T.signTransaction(q);return Q.finalizeAllInputs(),Ly(_).broadcastTx(Q.extractTransaction().toHex())}}async function hT(T){let x=await Ly(T).getSuggestedTxFee();return{[Cy.Average]:x,[Cy.Fast]:kx(x,Cy.Fast),[Cy.Fastest]:kx(x,Cy.Fastest)}}async function Fx({assetValue:T,recipient:x,memo:N,sender:y,fetchTxHex:f=!1}){let G=T.chain,L=(await hT(G))[Cy.Fastest],X=f||bT.includes(G),_=T.getBaseValue("number"),Z=Math.ceil(_+L*5000);return{inputs:await Ly(G).getUtxos({address:y,fetchTxHex:X,targetValue:Z}),outputs:[{address:x,value:_},...N?[{address:"",script:await zy(N),value:0}]:[]]}}var bT;var oT=k(()=>{WT();ZT();uT();bT=[Xy.Dash,Xy.Dogecoin,Xy.Zcash,Xy.BitcoinCash]});import{address as LL,Transaction as XL,TransactionBuilder as _L}from"@psf/bitcoincashjs-lib";import{Chain as ZL,derivationPathToString as JL,FeeOption as qL,NetworkDerivationPath as QL,SwapKitError as qT,updateDerivationPath as BL}from"@swapkit/helpers";import{Psbt as YL}from"bitcoinjs-lib";function iy(T){return gy($T(T))}function zL(T){function x({builder:y,utxos:f}){return f.forEach((G,L)=>{y.sign(L,T,void 0,65,G.witnessUtxo?.value)}),y.build()}return{getAddress:()=>{let y=T.getAddress(0);return Promise.resolve(iy(y))},signTransaction:x}}async function s0(T){let x="phrase"in T?T.phrase:void 0,N="index"in T?T.index||0:0,y=JL("derivationPath"in T&&T.derivationPath?T.derivationPath:BL(QL[Jy],{index:N})),f=x?(await jT(Jy))({derivationPath:y,phrase:x}):void 0,G=f?zL(f):("signer"in T)?T.signer:void 0;function L(){return Promise.resolve(G?.getAddress())}let{getBalance:X,getFeeRates:_,broadcastTx:Z,...q}=await dy({chain:Jy});function Q(J,B=!0){return X(gy($T(J)))}return{...q,broadcastTx:Z,buildTx:HL,createTransaction:Vx,getAddress:L,getAddressFromKeys:UL,getBalance:Q,getFeeRates:_,stripPrefix:gy,stripToCashAddress:iy,transfer:WL({broadcastTx:Z,getFeeRates:_,signer:G}),validateAddress:Ay}}async function Vx({assetValue:T,recipient:x,memo:N,feeRate:y,sender:f}){if(!Ay(x))throw new qT("toolbox_utxo_invalid_address",{address:x});let G=Math.ceil(T.getBaseValue("number")+y*7500),L=await Ly(Jy).getUtxos({address:iy(f),fetchTxHex:!0,targetValue:G}),X=N?await zy(N):null,_=[];_.push({address:x,value:T.getBaseValue("number")});let{inputs:Z,outputs:q}=Wy({chain:Jy,feeRate:y,inputs:L,outputs:_});if(!(Z&&q))throw new qT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let Q=await Yy(),J=new _L(Q(Jy));await Promise.all(Z.map(async(B)=>{let Y=await Ly(Jy).getRawTx(B.hash);J.addInput(XL.fromBuffer(Buffer.from(Y,"hex")),B.index)}));for(let B of q){let Y="address"in B&&B.address?B.address:XT(f),W=await Yy(),M=LL.toOutputScript(XT(Y),W(Jy));J.addOutput(M,B.value)}if(X)J.addOutput(X,0);return{builder:J,utxos:Z}}function WL({broadcastTx:T,getFeeRates:x,signer:N}){return async function({recipient:f,assetValue:G,feeOptionKey:L=qL.Fast,...X}){let _=await N?.getAddress();if(!(N&&_))throw new qT("toolbox_utxo_no_signer");if(!f)throw new qT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Z=X.feeRate||(await x())[L],{builder:q,utxos:Q}=await Vx({...X,assetValue:G,feeRate:Z,recipient:f,sender:_}),B=(await N.signTransaction({builder:q,utxos:Q})).toHex();return T(B)}}async function HL({assetValue:T,recipient:x,memo:N,feeRate:y,sender:f,setSigHashType:G}){let L=$T(x);if(!Ay(L))throw new qT("toolbox_utxo_invalid_address",{address:L});let X=Math.ceil(T.getBaseValue("number")+y*7500),_=await Ly(Jy).getUtxos({address:iy(f),fetchTxHex:!1,targetValue:X}),Z=Number(y.toFixed(0)),q=N?await zy(N):null,Q=[];if(Q.push({address:XT(x),value:T.getBaseValue("number")}),q)Q.push({script:q,value:0});let{inputs:J,outputs:B}=Wy({chain:Jy,feeRate:Z,inputs:_,outputs:Q});if(!(J&&B))throw new qT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let Y=await Yy(),W=new YL({network:Y(Jy)});for(let{hash:M,index:I,witnessUtxo:O}of J)W.addInput({hash:M,index:I,sighashType:G?65:void 0,witnessUtxo:O});for(let M of B){let I="address"in M&&M.address?M.address:XT(f),O=M.script?q?{script:q,value:0}:void 0:{address:I,value:M.value};if(O)W.addOutput(O)}return{inputs:J,psbt:W,utxos:_}}function UL(T){let x=T.getAddress(0);return iy(x)}var Jy;var nf=k(()=>{ZT();oT();uT();Jy=ZL.BitcoinCash});import{bitgo as ML,crypto as IL,ECPair as nx,networks as RL,address as wL}from"@bitgo/utxo-lib";import{ZcashTransaction as $x}from"@bitgo/utxo-lib/dist/src/bitgo";import{HDKey as ux}from"@scure/bip32";import{mnemonicToSeedSync as bx}from"@scure/bip39";import{Chain as uf,derivationPathToString as CL,FeeOption as OL,NetworkDerivationPath as EL,SKConfig as kL,SwapKitError as bf,updateDerivationPath as DL}from"@swapkit/helpers";import PL from"bs58check";import{match as SL,P as e0}from"ts-pattern";function y1(){return RL.zcash}function jx(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
+ `,pubKeyHash:28,scriptHash:28,wif:128}}function vL({phrase:T,derivationPath:x}){let N=bx(T),f=ux.fromMasterSeed(N).derive(x);if(!f.privateKey)throw new bf("toolbox_utxo_invalid_params");let G=jx(),L=nx.fromPrivateKey(Buffer.from(f.privateKey),{network:G}),X=IL.hash160(L.publicKey),{isStagenet:_}=kL.get("envs"),Z=_?Buffer.from([29,37]):Buffer.from([28,184]),q=Buffer.concat([Z,X]),Q=PL.encode(q);return{getAddress:()=>Promise.resolve(Q),signTransaction:(J)=>{let B=J.signAllInputs(L);return Promise.resolve(B)}}}function lL({inputs:T,outputs:x,psbt:N,sender:y,compiledMemo:f}){for(let G of T){let L=!!G.witnessUtxo&&{witnessUtxo:{...G.witnessUtxo,value:BigInt(G.value)}},X=!G.witnessUtxo&&{nonWitnessUtxo:G.txHex?Buffer.from(G.txHex,"hex"):void 0};N.addInput({hash:G.hash,index:G.index,...L,...X})}for(let G of x){let L="address"in G&&G.address?G.address:y,X=G.script;if(X&&!f)continue;let _=X?{script:f,value:0n}:{script:wL.toOutputScript(L,y1()),value:BigInt(G.value)};N.addOutput(_)}return{inputs:T,psbt:N}}async function Kx(T){let{assetValue:x,recipient:N,memo:y,feeRate:f,sender:G,fetchTxHex:L}=T,X=y?zy(y):null,_=await Ly(uf.Zcash).getUtxos({address:G,fetchTxHex:L!==!1}),Z=[{address:N,value:Number(x.getBaseValue("string"))},...X?[{script:X,value:0}]:[]],{inputs:q,outputs:Q}=Wy({chain:uf.Zcash,changeAddress:G,feeRate:f,inputs:_,outputs:Z});if(!(q&&Q))throw new bf("toolbox_utxo_insufficient_balance",{assetValue:x,sender:G});let J=ML.createPsbtForNetwork({network:y1()},{version:$x.VERSION4_BRANCH_NU6_1}),{psbt:B,inputs:Y}=await lL({compiledMemo:X,inputs:q,outputs:Q,psbt:J,sender:G});return B.setDefaultsForVersion(y1(),$x.VERSION4_BRANCH_NU6_1),{inputs:Y,outputs:Q,psbt:B}}async function T1(T){let x=await SL(T).with({signer:e0.not(e0.nullish)},({signer:L})=>Promise.resolve(L)).with({phrase:e0.string},({phrase:L,derivationPath:X,index:_=0})=>{let Z=X||EL[uf.Zcash]||[44,133,0,0,0],q=DL(Z,{index:_}),Q=CL(q);return vL({derivationPath:Q,phrase:L})}).otherwise(()=>Promise.resolve(void 0)),N=await dy({chain:uf.Zcash,signer:x});async function y({recipient:L,assetValue:X,feeOptionKey:_=OL.Fast,...Z}){let q=await x?.getAddress();if(!(x&&q))throw new bf("toolbox_utxo_no_signer");let Q=Z.feeRate||(await N.getFeeRates())[_],{psbt:J}=await Kx({...Z,assetValue:X,feeRate:Q,recipient:L,sender:q}),B=await x.signTransaction(J);B.validateSignaturesOfAllInputs(),B.finalizeAllInputs();let W=B.extractTransaction().toHex();return N.broadcastTx(W)}function f({phrase:L,derivationPath:X="m/44'/133'/0'/0/0"}){let _=bx(L),q=ux.fromMasterSeed(_).derive(X);if(!q.privateKey)throw new bf("toolbox_utxo_invalid_params");let Q=jx();return nx.fromPrivateKey(Buffer.from(q.privateKey),{network:Q})}function G({phrase:L,derivationPath:X="m/44'/133'/0'/0/0"}){return f({derivationPath:X,phrase:L}).toWIF()}return{...N,createKeysForPath:f,createTransaction:Kx,getPrivateKeyFromMnemonic:G,transfer:y,validateAddress:JT}}var f1=k(()=>{ZT();oT();uT()});import{Chain as QT,SwapKitError as AL}from"@swapkit/helpers";async function FL(T,x){switch(T){case QT.BitcoinCash:return await s0(x||{});case QT.Zcash:return await T1(x);case QT.Bitcoin:case QT.Dogecoin:case QT.Litecoin:case QT.Dash:return await dy({chain:T,...x});default:throw new AL("toolbox_utxo_not_supported",{chain:T})}}var hx=k(()=>{nf();oT();f1();nf();uT()});var x1={};Ty(x1,{validateZcashAddress:()=>JT,toLegacyAddress:()=>XT,toCashAddress:()=>$T,stripToCashAddress:()=>iy,stripPrefix:()=>gy,nonSegwitChains:()=>bT,isValidAddress:()=>t0,getUtxoToolbox:()=>FL,getUtxoNetwork:()=>Yy,getUtxoApi:()=>Ly,getUTXOAddressValidator:()=>lx,getScriptTypeForAddress:()=>KT,getOutputSize:()=>nT,getInputSize:()=>ly,getDustThreshold:()=>Kf,getCreateKeysForPath:()=>jT,detectAddressNetwork:()=>g0,createZcashToolbox:()=>T1,createUTXOToolbox:()=>dy,createCustomUtxoApi:()=>vN,createBCHToolbox:()=>s0,compileMemo:()=>zy,calculateTxSize:()=>_T,bchValidateAddress:()=>Ay,addressFromKeysGetter:()=>a0,addInputsAndOutputs:()=>Sx,accumulative:()=>Wy,UtxoNetwork:()=>c0,UTXOScriptType:()=>$f,TX_OVERHEAD:()=>Vf,OutputSizes:()=>Ff,OP_RETURN_OVERHEAD:()=>Cx,MIN_TX_FEE:()=>uN,InputSizes:()=>Af});var G1=k(()=>{ZT();hx();nf();oT();f1()});import{KeyPairSigner as VL}from"@near-js/signers";import{derivationPathToString as $L,SwapKitError as KL}from"@swapkit/helpers";async function jf(){let{validateAccountId:T}=await import("near-sdk-js");return(x)=>{try{return T(x)}catch{let N=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return x.length>=2&&x.length<=64&&N.test(x)}}}async function hf(T){let{parseSeedPhrase:x}=await import("near-seed-phrase"),{KeyPair:N}=await import("@near-js/crypto"),y=T.index||0,f=T.derivationPath?$L(T.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:G}=x(T.phrase,f),L=N.fromString(G);return px(L)}async function N1(T){let{KeyPair:x}=await import("@near-js/crypto"),N=x.fromString(T);return px(N)}function px(T){return new ox(T)}async function of(T,x){let y=(await T.query({account_id:x,finality:"final",request_type:"view_access_key_list"})).keys.find((X)=>X.access_key.permission==="FullAccess");if(!y)throw new KL("toolbox_near_no_public_key_found");let{PublicKey:f}=await import("@near-js/crypto"),G=f.fromString(y.public_key);return{nonce:y.access_key.nonce||0,publicKey:G}}var ox;var L1=k(()=>{ox=class ox extends VL{#y;constructor(T){super(T);this.#y=T}getAddress(){let T=this.#y.getPublicKey(),x=Buffer.from(T.data).toString("hex");return Promise.resolve(x)}}});function X1(T){return"recipient"in T&&"amount"in T&&!("contractId"in T)}function _1(T){return"contractId"in T&&"methodName"in T}function Z1(T){return"actions"in T}function J1(T){return"newAccountId"in T}function q1(T){return"contractCode"in T}function Q1(T){return"customEstimator"in T}function B1(T){let x=0;for(let N of T)switch(N.enum){case"transfer":x+=Number(e.SIMPLE_TRANSFER);break;case"functionCall":x+=Number(e.CONTRACT_CALL);break;case"createAccount":x+=Number(e.ACCOUNT_CREATION);break;case"deployContract":x+=Number(e.CONTRACT_DEPLOYMENT);break;case"addKey":x+=Number(e.ACCESS_KEY_ADDITION);break;case"deleteKey":x+=Number(e.ACCESS_KEY_DELETION);break;case"stake":x+=Number(e.STAKE);break;default:x+=Number(e.CONTRACT_CALL)}return x.toString()}function Y1(T){if(T==="ft_transfer"||T==="ft_transfer_call")return e.TOKEN_TRANSFER;if(T==="storage_deposit")return e.STORAGE_DEPOSIT;return e.CONTRACT_CALL}function nL(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function uL(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var e;var z1=k(()=>{e={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 W1({account:T,contractId:x,viewMethods:N,changeMethods:y}){let{Contract:f}=await import("@near-js/accounts");return new f(T,x,{changeMethods:y,useLocalViewExecution:!0,viewMethods:N})}import{AssetValue as mx,Chain as BT,getChainConfig as cx,getRPCUrl as bL,SwapKitError as xy}from"@swapkit/helpers";async function jL(T){let{P:x,match:N}=await import("ts-pattern"),{JsonRpcProvider:y}=await import("@near-js/providers"),f=await N(T).with({phrase:x.string},async(z)=>{return await hf(z)}).with({signer:x.any},({signer:z})=>z).otherwise(()=>{return}),G=await bL(BT.Near),L=new y({url:G});async function X(z){let{Account:R}=await import("@near-js/accounts"),C=z||await _();return new R(C,L,f)}async function _(){if(!f)throw new xy("toolbox_near_no_signer");return await f.getAddress()}async function Z(z){return(await d({changeMethods:[],contractId:z.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:z.accountId})}async function q(z){let C=[await W({args:{account_id:z.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await W({args:{amount:z.assetValue.getBaseValue("string"),memo:z.memo||null,receiver_id:z.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return Gy({actions:C,receiverId:z.contractId})}async function Q(z){if(!f)throw new xy("toolbox_near_no_signer");let{assetValue:R,recipient:C,memo:A}=z,u=await _();if(!R.isGasAsset&&R.address){if(!await Z({accountId:C,contractId:R.address}))return q({assetValue:R,contractId:R.address,memo:A,recipient:C})}let n=await J({...z,sender:u});return O(n)}async function J(z){let{recipient:R,assetValue:C,memo:A,attachedDeposit:u,sender:n,functionCall:$}=z,h=await jf();if(!h(R))throw new xy("toolbox_near_invalid_address",{recipient:R});if(!h(n))throw new xy("toolbox_near_invalid_address",{signerId:n});if($)return Y({...$,sender:n});if(!C.isGasAsset){let tT=C.address;if(!tT)throw new xy("toolbox_near_missing_contract_address");return Y({args:{amount:C.getBaseValue("string"),memo:A||null,receiver_id:R},attachedDeposit:u||"1",contractId:tT,gas:"250000000000000",methodName:"ft_transfer",sender:n})}let{publicKey:i,nonce:yy}=await of(L,n),Ny=C.getBaseValue("bigint"),{actionCreators:$y,createTransaction:pT}=await import("@near-js/transactions"),{baseDecode:pf}=await import("@near-js/utils"),Ky=[$y.transfer(Ny)];if(A&&u)Ky.push($y.functionCall("memo",{memo:A},BigInt("250000000000000"),BigInt(u)));let mT=await L.block({finality:"final"}),cT=pf(mT.header.hash);return pT(n,i,R,yy+1,Ky,cT)}function B(z){let R=z.encode();return Buffer.from(R).toString("base64")}async function Y(z){let{sender:R}=z,{publicKey:C,nonce:A}=await of(L,R),{createTransaction:u,actionCreators:n}=await import("@near-js/transactions"),{baseDecode:$}=await import("@near-js/utils"),h=await L.block({finality:"final"}),i=$(h.header.hash),yy=[n.functionCall(z.methodName,Buffer.from(JSON.stringify(z.args)),BigInt(z.gas),BigInt(z.attachedDeposit))];return u(R,C,z.contractId,A+1,yy,i)}async function W(z){let{actionCreators:R}=await import("@near-js/transactions");return R.functionCall(z.methodName,Buffer.from(JSON.stringify(z.args)),BigInt(z.gas),BigInt(z.attachedDeposit))}async function M(z){if(!f)throw new xy("toolbox_near_no_signer");let[R,C]=await f.signTransaction(z);return C}async function I(z){return(await L.sendTransaction(z)).transaction.hash}async function O(z){if(!f)throw new xy("toolbox_near_no_signer");try{let R=await M(z);return await I(R)}catch{return f.signAndSendTransactions?.({transactions:[z]})}}async function l(z){if("assetValue"in z){let u=BigInt("115123062500")+BigInt("108059500000"),n=await S(),$=u*BigInt(n.toString()),{baseDecimal:h}=cx(BT.Near);return mx.from({chain:BT.Near,fromBaseDecimal:h,value:$.toString()})}let R=f?await X():void 0;return D(z,R)}async function S(){try{return await L.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function F(z,R,C){if(!f)throw new xy("toolbox_near_no_signer");let A=await X(),{formatNearAmount:u}=await import("@near-js/utils"),{PublicKey:n}=await import("@near-js/crypto"),$=u(C)||"0";return(await A.createAccount(z,n.fromString(R),BigInt($))).transaction.hash}async function j(z){try{if(!f)throw new xy("toolbox_near_no_signer");let{actionCreators:R}=await import("@near-js/transactions"),{contractId:C,methodName:A,args:u,deposit:n}=z,$=await X(),h=await D({args:u||{},contractId:C,methodName:A}),i=R.functionCall(A,u||{},h.getBaseValue("bigint"),BigInt(n||"1"));return(await $.signAndSendTransaction({actions:[i],receiverId:C})).transaction_outcome.id}catch(R){throw new xy("toolbox_near_transfer_failed",{error:R})}}async function d(z){let R=await X();return W1({account:R,changeMethods:z.changeMethods,contractId:z.contractId,viewMethods:z.viewMethods})}async function Gy(z){if(!f)throw new xy("toolbox_near_no_signer");if(z.actions.length===0)throw new xy("toolbox_near_empty_batch");return(await(await X()).signAndSendTransaction({actions:z.actions,receiverId:z.receiverId})).transaction.hash}async function D(z,R){let{baseDecimal:C}=cx(BT.Near),A=await N(z).when(X1,()=>e.SIMPLE_TRANSFER).when(_1,($)=>Y1($.methodName)).when(Z1,($)=>B1($.actions)).when(J1,()=>e.ACCOUNT_CREATION).when(q1,()=>e.CONTRACT_DEPLOYMENT).when(Q1,($)=>{if(!R)throw new xy("toolbox_near_no_account");return $.customEstimator(R)}).otherwise(()=>{throw new xy("toolbox_near_invalid_gas_params")}),n=BigInt(A)*BigInt(1000000000000);return mx.from({chain:BT.Near,fromBaseDecimal:C,value:n})}async function v(){try{return(await L.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:I,callFunction:j,createAction:W,createContract:d,createContractFunctionCall:Y,createSubAccount:F,createTransaction:J,estimateGas:D,estimateTransactionFee:l,executeBatchTransaction:Gy,getAddress:_,getBalance:ry(BT.Near),getGasPrice:v,getPublicKey:async()=>f?(await f.getPublicKey()).toString():"",getSignerFromPhrase:(z)=>hf(z),getSignerFromPrivateKey:N1,provider:L,serializeTransaction:B,signAndSendTransaction:O,signTransaction:M,transfer:Q,validateAddress:await jf()}}var H1=k(()=>{WT();L1();z1()});var tx=k(()=>{H1()});var U1={};Ty(U1,{tgasToGas:()=>nL,isSimpleTransfer:()=>X1,isCustomEstimator:()=>Q1,isContractDeployment:()=>q1,isContractCall:()=>_1,isBatchTransaction:()=>Z1,isAccountCreation:()=>J1,getValidateNearAddress:()=>jf,getNearToolbox:()=>jL,getNearSignerFromPrivateKey:()=>N1,getNearSignerFromPhrase:()=>hf,getFullAccessPublicKey:()=>of,getContractMethodGas:()=>Y1,gasToTGas:()=>uL,estimateBatchGas:()=>B1,createNearContract:()=>W1,GAS_COSTS:()=>e});var M1=k(()=>{L1();z1();H1();tx()});var R1={};Ty(R1,{radixValidateAddress:()=>dx,RadixToolbox:()=>gL});import{AssetValue as gx,Chain as I1,SKConfig as hL,SwapKitError as oL}from"@swapkit/helpers";function dx(T){return T.startsWith("account_rdx1")&&T.length===66}function pL({networkApi:T}){return async function(N){let y=await mL({address:N,networkApi:T}),f=await cL({networkApi:T,resources:y});if(!f.some((L)=>L.isGasAsset))return[gx.from({chain:I1.Radix}),...f];return f}}async function mL({address:T,networkApi:x}){let N=!0,y,f=[],G=await tL(x);while(N){let L={address:T,at_ledger_state:{state_version:G},cursor:y,limit_per_page:100},X=await x.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:L});if(f=f.concat(X.items),X.next_cursor)y=X.next_cursor;else N=!1}return f}async function cL({resources:T,networkApi:x}){let N=[],y=50,f=[];for(let G=0;G<T.length;G+=50)f.push(T.slice(G,G+50));for(let G of f){let L=G.map((Z)=>Z.resource_address),X=await x.state.getEntityDetailsVaultAggregated(L),_=new Map;for(let Z of X)if(Z.details!==void 0){let q=Z.metadata?.items.find((J)=>J.key==="symbol"),Q=q?.value.typed.type==="String"?q.value.typed.value:"?";if(Z.details.type==="FungibleResource")_.set(Z.address,{decimals:Z.details.divisibility,symbol:Q})}for(let Z of G)if(Z.aggregation_level==="Global"){let q=_.get(Z.resource_address)||{decimals:0,symbol:"?"},Q=gx.from({asset:q.symbol!==I1.Radix?`${I1.Radix}.${q.symbol}-${Z.resource_address}`:"XRD.XRD",value:Z.amount});N.push(Q)}}return N}function tL(T){return T.status.getCurrent().then((x)=>x.ledger_state.state_version)}var gL=async({dappConfig:T}={})=>{let{RadixDappToolkit:x}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:N}=await import("@radixdlt/babylon-gateway-api-sdk"),y=T||hL.get("integrations").radix,f=x({...y,networkId:y.network?.networkId||1}),G=N.initialize(f.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:pL({networkApi:G}),networkApi:G,signAndBroadcast:()=>{throw new oL("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:dx}};var w1=()=>{};var E1={};Ty(E1,{rippleValidateAddress:()=>O1,hashes:()=>fX,getRippleToolbox:()=>TX});import{AssetValue as C1,Chain as Ey,getChainConfig as ix,getRPCUrl as dL,SwapKitError as Fy,SwapKitNumber as iL}from"@swapkit/helpers";import{Client as rL,isValidAddress as aL,Wallet as sL,xrpToDrops as eL}from"xrpl";import{hashes as fX}from"xrpl";function rx(T){let x=sL.fromMnemonic(T);return{getAddress:()=>Promise.resolve(x.address),signTransaction:(N)=>Promise.resolve(x.sign(N))}}function O1(T){return aL(T)}var yX,TX=async(T={})=>{let x="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?rx(T.phrase):void 0,N=await dL(Ey.Ripple);if(!N)throw new Fy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:Ey.Ripple}});let y=new rL(N);await y.connect();let f=()=>{if(!x)throw new Fy({errorKey:"toolbox_ripple_signer_not_found"});return x.getAddress()},G=async(J)=>{let B=J||await f(),{baseDecimal:Y}=ix(Ey.Ripple);try{let M=(await y.request({account:B,command:"account_info"})).result.account_data.Balance;return[C1.from({chain:Ey.Ripple,fromBaseDecimal:Y,value:M})]}catch(W){if(W.data.error_code===yX.ACCOUNT_NOT_FOUND)return[C1.from({chain:Ey.Ripple,value:0})];throw new Fy("toolbox_ripple_get_balance_error",{info:{address:B,error:W}})}},L=async()=>{let B=(await y.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:Y}=ix(Ey.Ripple);return C1.from({chain:Ey.Ripple,fromBaseDecimal:Y,value:iL.fromBigInt(BigInt(B),Y)})},X=async({assetValue:J,recipient:B,memo:Y,sender:W})=>{if(!O1(B))throw new Fy({errorKey:"core_transaction_invalid_recipient_address"});let M=W||await f();if(!J.isGasAsset||J.chain!==Ey.Ripple)throw new Fy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:J.toString()}});let I={Account:M,Amount:eL(J.getValue("string")),Destination:B,TransactionType:"Payment"};if(Y)I.Memos=[{Memo:{MemoData:Buffer.from(Y).toString("hex")}}];return await y.autofill(I)},_=(J)=>{if(!x)throw new Fy({errorKey:"toolbox_ripple_signer_not_found"});return x.signTransaction(J)},Z=async(J)=>{let Y=(await y.submitAndWait(J)).result;if(Y.validated)return Y.hash;throw new Fy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Ey.Ripple}})};return{broadcastTransaction:Z,createSigner:rx,createTransaction:X,disconnect:()=>y.disconnect(),estimateTransactionFee:L,getAddress:f,getBalance:G,signer:x,signTransaction:_,transfer:async(J)=>{if(!x)throw new Fy({errorKey:"toolbox_ripple_signer_not_found"});let B=await x.getAddress(),Y=await X({...J,sender:B}),W=await _(Y);return Z(W.tx_blob)},validateAddress:O1}};var k1=k(()=>{yX={ACCOUNT_NOT_FOUND:19}});import{AssetValue as xX,Chain as GX,SwapKitNumber as ax}from"@swapkit/helpers";async function NX(T,x,N){try{let y=await T.query.system?.account?.(N);if(!y)return[x.set(0)];let{data:{free:f}}=y,G=ax.fromBigInt(BigInt(f.toString()),x.decimal).getValue("string");return[x.set(G)]}catch(y){let f=y instanceof Error?y.message:String(y);return console.error(`Error fetching substrate balance: ${f}`),[x.set(0)]}}async function LX(T,x,N){try{let y=await T.query.flip?.account?.(N);if(!y)return[x.set(0)];let f=y.balance||y.data?.balance;if(!f||f.isEmpty)return[x.set(0)];let G=ax.fromBigInt(BigInt(f.toString()),x.decimal).getValue("string");return[x.set(G)]}catch(y){let f=y instanceof Error?y.message:String(y);return console.error(`Error fetching chainflip balance: ${f}`),[x.set(0)]}}function sx(T,x){return function(y){let f=xX.from({chain:T});switch(T){case GX.Chainflip:return LX(x,f,y);default:return NX(x,f,y)}}}var ex=()=>{};var XX,_X,ZX,Vy;var D1=k(()=>{XX={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},_X={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},ZX={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},Vy={DOT:XX,FLIP:_X,GENERIC:ZX}});import{hexToU8a as JX,isHex as qX,u8aToHex as QX}from"@polkadot/util";import{decodeAddress as T2,encodeAddress as f2}from"@polkadot/util-crypto";import{AssetValue as BX,Chain as zT,getRPCUrl as YX,SwapKitError as Hy,SwapKitNumber as zX}from"@swapkit/helpers";import{match as WX,P as y2}from"ts-pattern";function HX(T,x){switch(T){case zT.Chainflip:return G2(x);case zT.Polkadot:return x2(x);default:throw new Hy("toolbox_substrate_not_supported",{chain:T})}}function YT(T){return"address"in T}async function S1(T,x){let{Keyring:N}=await import("@polkadot/api"),{cryptoWaitReady:y}=await import("@polkadot/util-crypto");return await y(),new N({ss58Format:x,type:"sr25519"}).addFromUri(T)}function OX(T,x){let N=T2(T);return f2(N,x)}function N2(T,x){return qX(T)?JX(T):T2(T,void 0,x)}function L2(T,x="ss58",N){if(x==="hex")return QX(T);return f2(T,N)}async function A1({generic:T,chain:x,...N}){let{ApiPromise:y,WsProvider:f}=await import("@polkadot/api"),G=await YX(x),L=new f(G),X=await y.create({noInitWarn:!0,provider:L}),_=BX.from({chain:x}),Z=T?Vy.GENERIC:Vy[x],q=await WX(N).with({phrase:y2.string},({phrase:Q})=>S1(Q,Vy[x].prefix)).with({signer:y2.any},({signer:Q})=>Q).otherwise(()=>{return});return X2({api:X,chain:x,gasAsset:_,network:Z,signer:q})}var x2=({generic:T=!1,...x}={})=>{return A1({chain:zT.Polkadot,generic:T,...x})},G2=async({generic:T=!1,...x}={})=>{return{...await A1({chain:zT.Chainflip,generic:T,...x})}},v1=(T,x)=>T.rpc.system.accountNextIndex(x),P1=(T,x)=>{try{let N=N2(T,x);return L2(N,"ss58",x),!0}catch{return!1}},l1=(T,{recipient:x,assetValue:N})=>T.tx.balances?.transferAllowDeath?.(x,N.getBaseValue("number")),UX=async(T,x,{recipient:N,assetValue:y,sender:f})=>{let G=l1(T,{assetValue:y,recipient:N});if(!G)throw new Hy("toolbox_substrate_transfer_error");let L=YT(x),X=L?x.address:f;if(!X)throw new Hy("core_transaction_invalid_sender_address");let _=await v1(T,X);return(await G.signAndSend(L?x:X,{nonce:_,signer:L?void 0:x})).toString()},MX=async(T,x,N,{recipient:y,assetValue:f,sender:G})=>{let L=l1(T,{assetValue:f,recipient:y}),X=YT(x)?x.address:G;if(!X)return;let _=await L?.paymentInfo(X,{nonce:await v1(T,X)})||{partialFee:0};return N.set(zX.fromBigInt(BigInt(_.partialFee.toString()),N.decimal).getValue("string"))},IX=async(T,x)=>{if(x)return T.send(x);return(await T.send()).toString()},RX=async(T,x)=>{return await x.signAsync(T)},wX=(T,x,N)=>{if(N)return x.signAndSend(T,N);return x.signAndSend(T).toString()},CX=async({signer:T,address:x,tx:N,callback:y,api:f})=>{let G=await v1(f,x);if(y)N.signAndSend(x,{nonce:G,signer:T},y);return N.signAndSend(x,{nonce:G,signer:T}).toString()},X2=({api:T,network:x,gasAsset:N,signer:y,chain:f})=>({api:T,broadcast:IX,convertAddress:OX,createKeyring:(G)=>S1(G,x.prefix),createTransaction:(G)=>l1(T,G),decodeAddress:N2,encodeAddress:L2,estimateTransactionFee:(G)=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");return MX(T,y,N,G)},gasAsset:N,getAddress:(G)=>{let L=G||y;if(!L)throw new Hy("core_wallet_not_keypair_wallet");return YT(L)?L.address:void 0},getBalance:sx(f||zT.Polkadot,T),network:x,sign:(G)=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");if(YT(y))return RX(y,G);throw new Hy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:G,callback:L,address:X})=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");if(YT(y))return wX(y,G,L);if(X)return CX({address:X,api:T,callback:L,signer:y,tx:G});throw new Hy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(G)=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");return UX(T,y,G)},validateAddress:(G)=>P1(G,x.prefix)}),EX=({address:T,chain:x})=>{let{prefix:N}=x===zT.Polkadot?Vy.DOT:Vy.FLIP;return P1(T,N)||P1(T,Vy.GENERIC.prefix)};var _2=k(()=>{ex();D1()});var F1={};Ty(F1,{substrateValidateAddress:()=>EX,isKeyringPair:()=>YT,getSubstrateToolbox:()=>HX,createSubstrateToolbox:()=>A1,createKeyring:()=>S1,SubstrateNetwork:()=>Vy,PolkadotToolbox:()=>x2,ChainflipToolbox:()=>G2,BaseSubstrateToolbox:()=>X2});var V1=k(()=>{_2();D1()});import{AssetValue as kX,Chain as V,CosmosChains as J2,EVMChains as $1,FeeOption as DX,SubstrateChains as PX,SwapKitError as SX,UTXOChains as q2}from"@swapkit/helpers";async function K4(){let{match:T}=await import("ts-pattern"),{evmValidateAddress:x}=await Promise.resolve().then(() => (Z5(),_5)),{getCardanoAddressValidator:N}=await Promise.resolve().then(() => (_0(),X0)),{getCosmosValidateAddress:y}=await Promise.resolve().then(() => (Cf(),wf)),{getSolanaAddressValidator:f}=await Promise.resolve().then(() => (K0(),$0)),{getSuiAddressValidator:G}=await Promise.resolve().then(() => (kf(),Ef)),{getTONAddressValidator:L}=await Promise.resolve().then(() => (Pf(),Df)),{getTronAddressValidator:X}=await Promise.resolve().then(() => (p0(),o0)),{getUTXOAddressValidator:_}=await Promise.resolve().then(() => (G1(),x1)),{getValidateNearAddress:Z}=await Promise.resolve().then(() => (M1(),U1)),{radixValidateAddress:q}=await Promise.resolve().then(() => (w1(),R1)),{rippleValidateAddress:Q}=await Promise.resolve().then(() => (k1(),E1)),{substrateValidateAddress:J}=await Promise.resolve().then(() => (V1(),F1)),B=await N(),Y=await Z(),W=await f(),M=await G(),I=await L(),O=await X(),l=await _();return function({address:F,chain:j}){return T(j).with(...$1,()=>x({address:F})).with(...q2,()=>l({address:F,chain:j})).with(V.Cosmos,V.Kujira,V.Noble,V.Maya,V.THORChain,(Gy)=>{return y(Gy)(F)}).with(V.Chainflip,V.Polkadot,()=>J({address:F,chain:j})).with(V.Radix,()=>q(F)).with(V.Near,()=>Y(F)).with(V.Ripple,()=>Q(F)).with(V.Solana,()=>W(F)).with(V.Sui,()=>M(F)).with(V.Ton,()=>I(F)).with(V.Tron,()=>O(F)).with(V.Cardano,()=>B(F)).otherwise(()=>!1)}}function n4(T){return async function(N){let{match:y}=await import("ts-pattern");return y(T).returnType().with(...$1,async(f)=>{let G=await Z2(f),L=await G.createTransaction(N);return G.estimateTransactionFee({...L,chain:f,feeOption:N.feeOptionKey||DX.Fast})}).with(V.Bitcoin,V.BitcoinCash,V.Dogecoin,V.Dash,V.Litecoin,V.Polkadot,V.Solana,V.Ripple,V.Tron,V.Near,V.Cardano,async(f)=>{return(await Z2(f)).estimateTransactionFee(N)}).with(V.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (kf(),Ef));return(await f()).estimateTransactionFee(N)}).with(V.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (Pf(),Df));return(await f()).estimateTransactionFee()}).with(...J2,async()=>{let{estimateTransactionFee:f}=await Promise.resolve().then(() => (Cf(),wf));return f(N)}).otherwise(async()=>kX.from({chain:T}))}}async function Z2(T,x){let{match:N}=await import("ts-pattern");return N(T).returnType().with(...$1,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (N0(),N5));return await y(T,x)}).with(...q2,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (G1(),x1));return await y(T,x)}).with(...J2,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (Cf(),wf));return await y(T,x)}).with(...PX,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (V1(),F1));return await y(T,x)}).with(V.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (w1(),R1));return await y(x)}).with(V.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (k1(),E1));return await y(x)}).with(V.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (K0(),$0));return await y(x)}).with(V.Sui,async()=>{let{getSuiToolbox:y}=await Promise.resolve().then(() => (kf(),Ef));return await y(x)}).with(V.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (p0(),o0));return await y(x)}).with(V.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (M1(),U1));return await y(x)}).with(V.Cardano,async()=>{let{getCardanoToolbox:y}=await Promise.resolve().then(() => (_0(),X0));return await y(x)}).with(V.Ton,async()=>{let{getTONToolbox:y}=await Promise.resolve().then(() => (Pf(),Df));return await y(x)}).otherwise(()=>{throw new SX("toolbox_not_supported",{chain:T})})}export{Z2 as getToolbox,n4 as getFeeEstimator,K4 as getAddressValidator};
3
3
 
4
- //# debugId=3B2C05ACE1C7EE3264756E2164756E21
4
+ //# debugId=FF315A2C2CA51CF964756E2164756E21
5
5
  //# sourceMappingURL=index.js.map