@uswap/toolboxes 4.3.14 → 4.3.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/cardano/index.cjs +4 -0
  2. package/dist/{src/cardano → cardano}/index.cjs.map +2 -2
  3. package/dist/cardano/index.js +4 -0
  4. package/dist/{src/cardano → cardano}/index.js.map +2 -2
  5. package/dist/cosmos/index.cjs +4 -0
  6. package/dist/{src/cosmos → cosmos}/index.cjs.map +2 -2
  7. package/dist/cosmos/index.js +4 -0
  8. package/dist/{src/cosmos → cosmos}/index.js.map +2 -2
  9. package/dist/evm/index.cjs +4 -0
  10. package/dist/{src/evm → evm}/index.cjs.map +2 -2
  11. package/dist/evm/index.js +4 -0
  12. package/dist/{src/evm → evm}/index.js.map +2 -2
  13. package/dist/index.cjs +5 -0
  14. package/dist/{src/index.cjs.map → index.cjs.map} +2 -2
  15. package/dist/index.js +5 -0
  16. package/dist/{src/index.js.map → index.js.map} +2 -2
  17. package/dist/near/index.cjs +4 -0
  18. package/dist/{src/near → near}/index.cjs.map +2 -2
  19. package/dist/near/index.js +4 -0
  20. package/dist/{src/near → near}/index.js.map +2 -2
  21. package/dist/radix/index.cjs +4 -0
  22. package/dist/{src/radix → radix}/index.cjs.map +2 -2
  23. package/dist/radix/index.js +4 -0
  24. package/dist/{src/radix → radix}/index.js.map +2 -2
  25. package/dist/ripple/index.cjs +4 -0
  26. package/dist/{src/ripple → ripple}/index.cjs.map +2 -2
  27. package/dist/ripple/index.js +4 -0
  28. package/dist/{src/ripple → ripple}/index.js.map +2 -2
  29. package/dist/solana/index.cjs +4 -0
  30. package/dist/{src/solana → solana}/index.cjs.map +2 -2
  31. package/dist/solana/index.js +4 -0
  32. package/dist/{src/solana → solana}/index.js.map +2 -2
  33. package/dist/substrate/index.cjs +4 -0
  34. package/dist/{src/substrate → substrate}/index.cjs.map +2 -2
  35. package/dist/substrate/index.js +4 -0
  36. package/dist/{src/substrate → substrate}/index.js.map +2 -2
  37. package/dist/sui/index.cjs +4 -0
  38. package/dist/{src/sui → sui}/index.cjs.map +2 -2
  39. package/dist/sui/index.js +4 -0
  40. package/dist/{src/sui → sui}/index.js.map +2 -2
  41. package/dist/ton/index.cjs +4 -0
  42. package/dist/{src/ton → ton}/index.cjs.map +2 -2
  43. package/dist/ton/index.js +4 -0
  44. package/dist/{src/ton → ton}/index.js.map +2 -2
  45. package/dist/tron/index.cjs +4 -0
  46. package/dist/{src/tron → tron}/index.cjs.map +2 -2
  47. package/dist/tron/index.js +4 -0
  48. package/dist/{src/tron → tron}/index.js.map +2 -2
  49. package/dist/utxo/index.cjs +5 -0
  50. package/dist/{src/utxo → utxo}/index.cjs.map +2 -2
  51. package/dist/utxo/index.js +5 -0
  52. package/dist/{src/utxo → utxo}/index.js.map +2 -2
  53. package/package.json +28 -28
  54. package/dist/src/cardano/index.cjs +0 -4
  55. package/dist/src/cardano/index.js +0 -4
  56. package/dist/src/cosmos/index.cjs +0 -4
  57. package/dist/src/cosmos/index.js +0 -4
  58. package/dist/src/evm/index.cjs +0 -4
  59. package/dist/src/evm/index.js +0 -4
  60. package/dist/src/index.cjs +0 -5
  61. package/dist/src/index.js +0 -5
  62. package/dist/src/near/index.cjs +0 -4
  63. package/dist/src/near/index.js +0 -4
  64. package/dist/src/radix/index.cjs +0 -4
  65. package/dist/src/radix/index.js +0 -4
  66. package/dist/src/ripple/index.cjs +0 -4
  67. package/dist/src/ripple/index.js +0 -4
  68. package/dist/src/solana/index.cjs +0 -4
  69. package/dist/src/solana/index.js +0 -4
  70. package/dist/src/substrate/index.cjs +0 -4
  71. package/dist/src/substrate/index.js +0 -4
  72. package/dist/src/sui/index.cjs +0 -4
  73. package/dist/src/sui/index.js +0 -4
  74. package/dist/src/ton/index.cjs +0 -4
  75. package/dist/src/ton/index.js +0 -4
  76. package/dist/src/tron/index.cjs +0 -4
  77. package/dist/src/tron/index.js +0 -4
  78. package/dist/src/utxo/index.cjs +0 -5
  79. package/dist/src/utxo/index.js +0 -5
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ var Jx=Object.defineProperty;var qx=(T)=>T;function zx(T,x){this[T]=qx.bind(null,x)}var yy=(T,x)=>{for(var N in x)Jx(T,N,{get:x[N],enumerable:!0,configurable:!0,set:zx.bind(x,N)})};var K=(T,x)=>()=>(T&&(x=T(T=0)),x);var H=((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 F5,getChainConfig as Qx}from"@uswap/helpers";import{USwapApi as Bx}from"@uswap/helpers/api";function V5(){function T(){let x=Date.now(),N=pf||x;return pf=N,x>pf?x:N+1}return Yx+T().toString(36)}function dy(T){return async function(N,y=!0){let f=await Bx.getChainBalance({address:N,chain:T,scamFilter:y}),{baseDecimal:G}=Qx(T),L=f.map(({identifier:_,value:Z,decimal:q})=>{return new F5({decimal:q||G,identifier:_,value:Z})});if(!L.some((_)=>_.isGasAsset))return[F5.from({chain:T}),...L];return L}}var Yx,pf=0;var YT=K(()=>{Yx=typeof process<"u"&&process.pid?process.pid.toString(36):""});function WT(T){return{getBalance:dy(T)}}function Wx(T){return T}var cT=K(()=>{YT()});import{Chain as h,getChainConfig as $5,getRPCUrl as Hx}from"@uswap/helpers";import{match as Mx}from"ts-pattern";async function $y(T,x){let{JsonRpcProvider:N}=await import("ethers");return new N(x||await Hx(T))}function HT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function tf(T){let{explorerUrl:x,chainIdHex:N,rpcUrls:y}=$5(T);return function(){return T!==h.Ethereum?{...Ix({chain:T}),blockExplorerUrls:[x],chainId:N,rpcUrls:y}:void 0}}function mf(T){return![h.Arbitrum,h.BinanceSmartChain].includes(T)}function Ix({chain:T}){let{name:x,nativeCurrency:N,baseDecimal:y}=$5(T);return Mx(T).with(h.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:y,name:"Ethereum",symbol:h.Ethereum}})).with(h.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:h.Ethereum}})).with(h.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:y,name:"Avalanche",symbol:T}})).with(h.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:h.Ethereum}})).with(h.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:y,name:"Berachain",symbol:"BERA"}})).with(h.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:y,name:"OKB",symbol:"OKB"}})).with(h.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:y,name:"Binance Coin",symbol:"BNB"}})).with(h.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:y,name:"xDAI",symbol:"XDAI"}})).with(h.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:h.Ethereum}})).with(h.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:y,name:"Polygon",symbol:h.Polygon}})).otherwise(()=>({chainName:x,nativeCurrency:{decimals:y,name:N,symbol:N}}))}var ry=()=>{};var n5;var u5=K(()=>{n5=[{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 Rx,applyFeeMultiplierToBigInt as Xy,Chain as Jy,EVMChains as Cx,FeeOption as u,isGasAsset as wx,USwapError as o,USwapNumber as iT}from"@uswap/helpers";import{erc20ABI as MT}from"@uswap/helpers/contracts";import{BrowserProvider as Ox,Contract as b5,getAddress as gT,Interface as j5}from"ethers";import{match as kx}from"ts-pattern";function ay({chain:T=Jy.Ethereum,provider:x,signer:N,isEIP1559Compatible:y=!0}){return{approve:Px({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),approvedAmount:p5({chain:T,provider:x}),broadcastTransaction:x.broadcastTransaction,call:sf({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),createApprovalTx:Ax({chain:T,provider:x,signer:N}),createContract:df({chain:T,provider:x}),createContractTxObject:ny({chain:T,provider:x}),createTransaction:cf({chain:T,provider:x,signer:N}),createTransferTx:cf({chain:T,provider:x,signer:N}),EIP1193SendTransaction:ey(x),estimateCall:t5({provider:x,signer:N}),estimateGasLimit:vx({chain:T,provider:x,signer:N}),estimateGasPrices:uy({chain:T,isEIP1559Compatible:y,provider:x}),estimateTransactionFee:Fx({chain:T,isEIP1559Compatible:y,provider:x}),getAddress:()=>{return N?N.getAddress():void 0},getBalance:WT(T).getBalance,getNetworkParams:tf(T),isApproved:Sx({chain:T,provider:x}),sendTransaction:m5({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),signMessage:N?(f)=>N.signMessage(f):void 0,transfer:Ux({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),validateAddress:(f)=>gf({address:f})}}function gf({address:T}){try{return gT(T),!0}catch{return!1}}function sy(T){return T instanceof Ox}function RT(T,x,N){return new b5(T,j5.from(x),N)}function df({provider:T}){return function(N,y){return new b5(N,j5.from(y),T)}}function rf({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&&Kx.includes(N.stateMutability)}function o5(T){return gT(T)}function ey(T){return function({value:N,...y}){if(!sy(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:HT(BigInt(N||0))}])}}function h5(T,x){let N=yT(T,x);if(N)return gT(N.toLowerCase());throw new o("toolbox_evm_invalid_gas_asset_address")}function yT({chain:T,symbol:x,ticker:N},y){try{let f=T===Jy.BinanceSmartChain&&x==="BNB"&&N==="BNB",G=T===y&&x===y&&N===y,L=Dx.includes(T)&&x==="ETH"&&N==="ETH";if(G||f||L)return af[y];return gT(x.slice(N.length+1).replace(/^0X/,""))}catch{return null}}function ny({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 uy({chain:T,provider:x,isEIP1559Compatible:N=!0}){return kx(T).with(Jy.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{[u.Average]:{maxFeePerGas:Xy(f,u.Average),maxPriorityFeePerGas:Xy(G,u.Average)},[u.Fast]:{maxFeePerGas:Xy(f,u.Fast),maxPriorityFeePerGas:Xy(G,u.Fast)},[u.Fastest]:{maxFeePerGas:Xy(f,u.Fastest),maxPriorityFeePerGas:Xy(G,u.Fastest)}}}catch(f){throw new o("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).with(Jy.Arbitrum,()=>{return async function(){try{let{gasPrice:f}=await x.getFeeData();if(!f)throw new o("toolbox_evm_no_fee_data");return{[u.Average]:{gasPrice:f},[u.Fast]:{gasPrice:f},[u.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{[u.Average]:{maxFeePerGas:f,maxPriorityFeePerGas:G},[u.Fast]:{maxFeePerGas:Xy(f,u.Fast),maxPriorityFeePerGas:Xy(G,u.Fast)},[u.Fastest]:{maxFeePerGas:Xy(f,u.Fastest),maxPriorityFeePerGas:Xy(G,u.Fastest)}}}if(!L)throw new o("toolbox_evm_no_gas_price");return{[u.Average]:{gasPrice:L},[u.Fast]:{gasPrice:Xy(L,u.Fast)},[u.Fastest]:{gasPrice:Xy(L,u.Fastest)}}}catch(f){throw new o("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}})}function sf({provider:T,isEIP1559Compatible:x,signer:N,chain:y}){return async function({callProvider:G,contractAddress:L,abi:X,funcName:_,funcParams:Z=[],txOverrides:q={},feeOption:z=u.Fast}){let J=G||T;if(!L)throw new o("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let Q=rf({abi:X,funcName:_});if(Q&&sy(J)&&N){let M=ny({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 ey(J)(O)}let B=RT(L,X,J);if(Q){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=B.connect(N),O=uy({chain:y,isEIP1559Compatible:x,provider:T}),{maxFeePerGas:U,maxPriorityFeePerGas:S,gasPrice:l}=(await O())[z],b=await B.getFunction(_).estimateGas(...Z,q),i=await I[_](...Z,{...q,gasLimit:b,gasPrice:l,maxFeePerGas:U,maxPriorityFeePerGas:S,nonce:q?.nonce||await J.getTransactionCount(M)});return typeof i?.hash==="string"?i?.hash:i}let W=await B[_]?.(...Z);return typeof W?.hash==="string"?W?.hash:W}}function p5({provider:T,chain:x}){return function({assetAddress:y,spenderAddress:f,from:G}){return sf({chain:x,isEIP1559Compatible:!0,provider:T})({abi:MT,contractAddress:y,funcName:"allowance",funcParams:[G,f]})}}function Sx({provider:T,chain:x}){return async function({assetAddress:y,spenderAddress:f,from:G,amount:L=IT}){let X=await p5({chain:x,provider:T})({assetAddress:y,from:G,spenderAddress:f});return iT.fromBigInt(X).gte(iT.fromBigInt(BigInt(L)))}}function Px({signer:T,isEIP1559Compatible:x=!0,provider:N,chain:y}){return async function({assetAddress:G,spenderAddress:L,feeOptionKey:X=u.Fast,amount:_,gasLimitFallback:Z,from:q,nonce:z}){let J=[L,BigInt(_||IT)],Q=await T?.getAddress()||q,B={abi:MT,contractAddress:G,funcName:"approve",funcParams:J,signer:T,txOverrides:{from:Q}};if(sy(N)){let M=ny({chain:y,provider:N}),I=ey(N),O=await M(B);return I(O)}return sf({chain:y,isEIP1559Compatible:x,provider:N,signer:T})({...B,feeOption:X,funcParams:J,txOverrides:{from:Q,gasLimit:Z?BigInt(Z.toString()):void 0,nonce:z}})}}function Ux({signer:T,isEIP1559Compatible:x=!0,provider:N}){return async function({assetValue:f,memo:G,recipient:L,feeOptionKey:X=u.Fast,sender:_,...Z}){let{hexlify:q,toUtf8Bytes:z}=await import("ethers"),J=f.getBaseValue("bigint"),Q=f.chain,B=_||await T?.getAddress(),W=m5({chain:Q,isEIP1559Compatible:x,provider:N,signer:T});if(!B)throw new o("toolbox_evm_no_from_address");if(f.isGasAsset){let l={...Z,data:q(z(G||"")),feeOptionKey:X,from:B,to:L,value:J};return W(l)}if(!yT(f,Q))throw new o("toolbox_evm_no_contract_address");let{maxFeePerGas:I,maxPriorityFeePerGas:O,gasPrice:U}=(await uy({chain:Q,isEIP1559Compatible:x,provider:N})())[X],S=await cf({chain:Q,provider:N,signer:T})({assetValue:f,data:q(z(G||"")),gasPrice:U,maxFeePerGas:I,maxPriorityFeePerGas:O,memo:G,recipient:L,sender:B});return W(S)}}function t5({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 vx({provider:T,signer:x}){return async function({assetValue:y,recipient:f,memo:G,data:L,sender:X,funcName:_,funcParams:Z,txOverrides:q}){let z=y.bigIntValue,J=y.isGasAsset?null:yT(y,y.chain);if(J&&_)return t5({provider:T,signer:x})({abi:MT,contractAddress:J,funcName:_,funcParams:Z,txOverrides:q});let{hexlify:Q,toUtf8Bytes:B}=await import("ethers");return T.estimateGas({data:L?L:G?Q(B(G)):void 0,from:X,to:f,value:z})}}function m5({provider:T,signer:x,isEIP1559Compatible:N=!0,chain:y}){return async function({feeOptionKey:G=u.Fast,...L}){let{from:X,to:_,data:Z,value:q,...z}=L;if(!x)throw new o("toolbox_evm_no_signer");if(!_)throw new o("toolbox_evm_no_to_address");let J={...z,data:Z||"0x",from:X,to:_,value:BigInt(q||0)};if(sy(T))return ey(T)(J);let Q=X||await x.getAddress(),B=L.nonce||await T.getTransactionCount(Q),W=(await T.getNetwork()).chainId,M=lx(J)||N,I=uy({chain:y,isEIP1559Compatible:N,provider:T}),O=M&&!(J.maxFeePerGas&&J.maxPriorityFeePerGas)||!J.gasPrice?Object.entries((await I())[G]).reduce((S,[l,b])=>({...S,[l]:HT(BigInt(b))}),{}):{},U;try{U=HT(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:U,nonce:B,type:M?2:0,...O};try{return(await x.sendTransaction(S)).hash}catch{let l=await x.signTransaction({...S,from:Q});return(await T.broadcastTransaction(l)).hash}}catch(S){throw new o("toolbox_evm_error_sending_transaction",{error:S})}}}function cf({provider:T,signer:x}){return async function({assetValue:y,memo:f,recipient:G,data:L,sender:X,maxFeePerGas:_,maxPriorityFeePerGas:Z,gasPrice:q,...z}){let J=y.getBaseValue("bigint"),Q=y.chain,B=X||await x?.getAddress();if(!B)throw new o("toolbox_evm_no_from_address");if(wx(y)){let{hexlify:I,toUtf8Bytes:O}=await import("ethers");return{...z,data:L||I(O(f||"")),from:B,to:G,value:J}}let W=yT(y,Q);if(!W)throw new o("toolbox_evm_no_contract_address");return ny({chain:y.chain,provider:T})({abi:MT,contractAddress:W,funcName:"transfer",funcParams:[G,J],txOverrides:{from:B,gasPrice:q,maxFeePerGas:_,maxPriorityFeePerGas:Z}})}}function Ax({provider:T,signer:x,chain:N}){return async function({assetAddress:f,spenderAddress:G,amount:L,from:X}){let _=await x?.getAddress()||X,Z=ny({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 Fx({provider:T,isEIP1559Compatible:x=!0}){return async function({feeOption:y=u.Fast,chain:f,...G}){let X=await uy({chain:f,isEIP1559Compatible:x,provider:T})(),_=await T.estimateGas(G),Z=Rx.from({chain:f}),{gasPrice:q,maxFeePerGas:z,maxPriorityFeePerGas:J}=X[y];if(!x&&q)return Z.set(iT.fromBigInt(q*_,Z.decimal));if(z&&J){let Q=(z+J)*_;return Z.set(iT.fromBigInt(Q,Z.decimal))}throw new o("toolbox_evm_no_gas_price")}}var IT,Kx,Ex,af,Dx,lx=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var dT=K(()=>{cT();ry();IT=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Kx=["payable","nonpayable"];Ex=Cx.reduce((T,x)=>{return T[x]="0x0000000000000000000000000000000000000000",T},{}),af={...Ex,[Jy.Optimism]:"0x4200000000000000000000000000000000000042",[Jy.Polygon]:"0x0000000000000000000000000000000000001010"},Dx=[Jy.Arbitrum,Jy.Aurora,Jy.Base,Jy.Optimism]});import{Chain as t,FeeOption as Vx,getRPCUrl as $x}from"@uswap/helpers";import{match as nx,P as c5}from"ts-pattern";async function rT({provider:T,...x}){let N=await m(t.Ethereum)({provider:T,...x});async function y(f,G="0x5ba1e12693dc8f9c48aad8770482f4739beed696",L="aggregate",X=Vx.Fast){let _=await N.createContractTxObject({abi:n5,contractAddress:G,funcName:L,funcParams:[f]});return N.sendTransaction({..._,feeOptionKey:X})}return{...N,multicall:y}}function m(T){return async function({provider:N,...y}){let{HDNodeWallet:f}=await import("ethers"),G=await $x(T),L=N||await $y(T,G),X=mf(T),_=nx(y).with({phrase:c5.string},({phrase:q})=>f.fromPhrase(q).connect(L)).with({signer:c5.any},({signer:q})=>q).otherwise(()=>{return});return ay({chain:T,isEIP1559Compatible:X,provider:L,signer:_})}}var aT,sT,eT,yf,Tf,ff,i5,xf,Gf,Nf,Lf,Xf,_f,CT,Zf,Jf,qf,zf;var ef=K(()=>{u5();ry();dT();aT=m(t.Arbitrum),sT=m(t.Aurora),eT=m(t.Avalanche),yf=m(t.Base),Tf=m(t.Berachain),ff=m(t.BinanceSmartChain),i5=m(t.Botanix),xf=m(t.Core),Gf=m(t.Corn),Nf=m(t.Cronos),Lf=m(t.Gnosis),Xf=m(t.Hyperevm),_f=m(t.Polygon),CT=m(t.Sonic),Zf=m(t.Unichain),Jf=m(t.XLayer),qf=m(t.Monad),zf=m(t.MegaETH)});var g5;var d5=K(()=>{g5=[{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 TT,Chain as r5,FeeOption as Hy,getRPCUrl as bx,USwapError as y0}from"@uswap/helpers";import{Contract as jx,HDNodeWallet as ox}from"ethers";import{match as hx,P as a5}from"ts-pattern";function T0(T){return new jx(px,g5,T)}function s5(T){return async function(){let N=T0(T);if(N&&"l1BaseFee"in N)return await N?.l1BaseFee();return}}function e5(T){return async function({from:N,to:y,nonce:f,...G}){let{Transaction:L}=await import("ethers");if(!y)throw new y0("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 y1(T){return async function(N){let y=T0(T),f=await e5(T)(N);if(y&&"getL1Fee"in y)return y.getL1Fee(f)}}function T1(T){return async function(N){let y=await T.send("eth_gasPrice",[]),f=await T.estimateGas(N);return y.mul(f)}}function tx(T){return async function(N){let y=await y1(T)(N),f=await T1(T)(N);return y.add(f)}}function mx(T){return async function(N){let y=T0(T),f=await e5(T)(N);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(f)}}async function cx(T){try{let{maxFeePerGas:x,maxPriorityFeePerGas:N,gasPrice:y}=await T.getFeeData(),f=await s5(T)(),G=y;if(!(x&&N))throw new y0("toolbox_evm_no_fee_data");return{[Hy.Average]:{gasPrice:G,l1GasPrice:f,maxFeePerGas:x,maxPriorityFeePerGas:N},[Hy.Fast]:{gasPrice:TT(G,Hy.Fast),l1GasPrice:TT(f||0n,Hy.Fast),maxFeePerGas:x,maxPriorityFeePerGas:TT(N,Hy.Fast)},[Hy.Fastest]:{gasPrice:TT(G,Hy.Fastest),l1GasPrice:TT(f||0n,Hy.Fastest),maxFeePerGas:x,maxPriorityFeePerGas:TT(N,Hy.Fastest)}}}catch(x){throw new y0("toolbox_evm_gas_estimation_error",{error:x.msg??x.toString()})}}async function Qf({provider:T,...x}){let N=r5.Optimism,y=await bx(N),f=T||await $y(N,y),G=hx(x).with({phrase:a5.string},({phrase:_})=>ox.fromPhrase(_).connect(f)).with({signer:a5.any},({signer:_})=>_).otherwise(()=>{return}),L=ay({provider:f,signer:G}),X=s5(f);return{...L,estimateGasPrices:cx(f),estimateL1Gas:mx(f),estimateL1GasCost:y1(f),estimateL2GasCost:T1(f),estimateTotalGasCost:tx(f),getBalance:WT(r5.Optimism).getBalance,getL1GasPrice:X}}var px="0x420000000000000000000000000000000000000f";var f0=K(()=>{cT();d5();ry();dT()});var x1={};yy(x1,{toChecksumAddress:()=>o5,isStateChangingCall:()=>rf,isBrowserProvider:()=>sy,getTokenAddress:()=>yT,getEvmToolbox:()=>f1,getEstimateGasPrices:()=>uy,getEIP1193SendTransaction:()=>ey,getCreateContractTxObject:()=>ny,getCreateContract:()=>df,getChecksumAddressFromAsset:()=>h5,evmValidateAddress:()=>gf,createContract:()=>RT,XLayerToolbox:()=>Jf,UNIToolbox:()=>Zf,SONICToolbox:()=>CT,OPToolbox:()=>Qf,MONADToolbox:()=>qf,MEGAETHToolbox:()=>zf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>_f,HYPEREVMToolbox:()=>Xf,GNOToolbox:()=>Lf,ETHToolbox:()=>rT,ContractAddress:()=>af,CROToolbox:()=>Nf,CORNToolbox:()=>Gf,COREToolbox:()=>xf,BotanixToolbox:()=>i5,BaseEVMToolbox:()=>ay,BSCToolbox:()=>ff,BERAToolbox:()=>Tf,BASEToolbox:()=>yf,AVAXToolbox:()=>eT,AURORAToolbox:()=>sT,ARBToolbox:()=>aT});import{Chain as p}from"@uswap/helpers";import{match as ix}from"ts-pattern";async function f1(T,x){let N={...x,provider:x?.provider||await $y(T)};return ix(T).returnType().with(p.Arbitrum,()=>aT(N)).with(p.Aurora,()=>sT(N)).with(p.Avalanche,()=>eT(N)).with(p.Base,()=>yf(N)).with(p.Berachain,()=>Tf(N)).with(p.BinanceSmartChain,()=>ff(N)).with(p.Botanix,()=>CT(N)).with(p.Core,()=>xf(N)).with(p.Corn,()=>Gf(N)).with(p.Cronos,()=>Nf(N)).with(p.Ethereum,()=>rT(N)).with(p.Gnosis,()=>Lf(N)).with(p.Hyperevm,()=>Xf(N)).with(p.Optimism,()=>Qf(N)).with(p.Polygon,()=>_f(N)).with(p.Sonic,()=>CT(N)).with(p.Unichain,()=>Zf(N)).with(p.XLayer,()=>Jf(N)).with(p.Monad,()=>qf(N)).with(p.MegaETH,()=>zf(N)).exhaustive()}var x0=K(()=>{ry();ef();f0();dT();ef();f0()});var G1;var N1=K(()=>{((N)=>{N.Test="goerli";N.Main="homestead"})(G1||={})});var L1={};yy(L1,{toHexString:()=>HT,toChecksumAddress:()=>o5,isStateChangingCall:()=>rf,isBrowserProvider:()=>sy,getTokenAddress:()=>yT,getProvider:()=>$y,getNetworkParams:()=>tf,getIsEIP1559Compatible:()=>mf,getEvmToolbox:()=>f1,getEvmApi:()=>WT,getEstimateGasPrices:()=>uy,getEIP1193SendTransaction:()=>ey,getCreateContractTxObject:()=>ny,getCreateContract:()=>df,getChecksumAddressFromAsset:()=>h5,evmValidateAddress:()=>gf,createCustomEvmApi:()=>Wx,createContract:()=>RT,XLayerToolbox:()=>Jf,UNIToolbox:()=>Zf,SONICToolbox:()=>CT,OPToolbox:()=>Qf,MONADToolbox:()=>qf,MEGAETHToolbox:()=>zf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>_f,HYPEREVMToolbox:()=>Xf,GNOToolbox:()=>Lf,EthNetwork:()=>G1,ETHToolbox:()=>rT,ContractAddress:()=>af,CROToolbox:()=>Nf,CORNToolbox:()=>Gf,COREToolbox:()=>xf,BotanixToolbox:()=>i5,BaseEVMToolbox:()=>ay,BSCToolbox:()=>ff,BERAToolbox:()=>Tf,BASEToolbox:()=>yf,AVAXToolbox:()=>eT,AURORAToolbox:()=>sT,ARBToolbox:()=>aT});var X1=K(()=>{cT();ry();x0();N1()});import{AssetValue as OT,Chain as fT,getChainConfig as gx,USwapError as wT}from"@uswap/helpers";import{match as dx,P as _1}from"ts-pattern";async function G0(){let{BlockfrostProvider:T}=await import("@meshsdk/core"),x="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS";return new T("mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS")}async function ax(T){try{let{MeshWallet:x}=await import("@meshsdk/core"),N=await G0(),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===rx){let{baseDecimal:X}=gx(fT.Cardano);G.push(OT.from({chain:fT.Cardano,fromBaseDecimal:X,value:L.quantity}))}else G.push(OT.from({asset:`${fT.Cardano}.${L.unit}`,value:L.quantity}));if(G.length===0)return[OT.from({chain:fT.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:fT.Cardano})]}}async function Z1(){let{deserializeAddress:T}=await import("@meshsdk/core");return(x)=>{try{return T(x),!0}catch{return!1}}}async function sx(T){let x=await Z1(),N=await dx(T).with({phrase:_1.string},async({phrase:q})=>{let{MeshWallet:z}=await import("@meshsdk/core"),J=await G0(),Q=new z({fetcher:J,key:{type:"mnemonic",words:q.split(" ")},networkId:1,submitter:J});return await Q.init(),Q}).with({signer:_1.any},({signer:q})=>q).otherwise(()=>{return}),y=N&&"getChangeAddress"in N?await N.getChangeAddress():"";function f(){return y||""}function G(q){let z=q||f();if(!z)throw new wT("core_wallet_connection_not_found");return ax(z)}function L(){return Promise.resolve(OT.from({chain:fT.Cardano,value:"0.01"}))}async function X({recipient:q,assetValue:z,memo:J}){if(!N||!("getChangeAddress"in N))throw new wT("core_wallet_connection_not_found");let{Transaction:Q}=await import("@meshsdk/core"),[,B]=z.symbol.split("-");if(!z.isGasAsset&&!B)throw new wT("core_wallet_connection_not_found");let W=new Q({initiator:N});if(W.sendAssets({address:q},[{quantity:z.getBaseValue("string"),unit:z.isGasAsset?"lovelace":z.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 wT("core_wallet_connection_not_found");return N.signTx(q)}async function Z({recipient:q,assetValue:z,memo:J}){if(!N||!("getChangeAddress"in N))throw new wT("core_wallet_connection_not_found");let{unsignedTx:Q}=await X({assetValue:z,memo:J,recipient:q}),B=await _(Q);return await(await G0()).submitTx(B)}return{createTransaction:X,estimateTransactionFee:L,getAddress:f,getBalance:G,signTransaction:_,transfer:Z,validateAddress:x}}var rx="lovelace";var J1=()=>{};var N0={};yy(N0,{getCardanoToolbox:()=>sx,getCardanoAddressValidator:()=>Z1});var L0=K(()=>{J1()});import{base64 as q1,bech32 as Bf}from"@scure/base";import{USwapError as ex}from"@uswap/helpers";import{fromByteArray as yG,toByteArray as TG}from"base64-js";function kT(T){return q1.encode(Uint8Array.from(Bf.fromWords(Bf.decode(T).words)))}function KT(T,x="thor"){return Bf.encode(x,Bf.toWords(q1.decode(T)))}function fG(T){return yG(T)}function xG(T){if(!T.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new ex("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return TG(T)}var X0=()=>{};import{AssetValue as _0,Chain as V,getChainConfig as qy,getRPCUrl as GG,USwapError as z1}from"@uswap/helpers";function Iy(T){switch(T){case V.Maya:return{amount:[],gas:"10000000000"};case V.THORChain:return{amount:[],gas:"500000000"};case V.Kujira:return Y1;case V.Noble:return W1;default:return B1}}async function Ry(T){let x=await import("@cosmjs/stargate"),N=x.StargateClient??x.default?.StargateClient,y=typeof window<"u"?{}:{referer:"https://sdk.uswap.dev",referrer:"https://sdk.uswap.dev"};return N.connect({headers:y,url:T})}async function GT(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 J0(T,x){let N=await import("@cosmjs/stargate");return(N.SigningStargateClient??N.default?.SigningStargateClient).offline(T,x)}async function q0({sender:T,recipient:x,assetValue:N,memo:y="",feeRate:f,sequence:G,accountNumber:L}){let{chain:X,chainId:_}=N,Z=await GG(X),z=await(await Ry(Z)).getAccount(T);if(!z)throw new z1("toolbox_cosmos_account_not_found",{sender:T});let J=_0.from({chain:X}),Q=My(J.symbol),B=Iy(X),W=Q&&f?{amount:[{amount:f.toString(),denom:Q}],gas:B.gas}:B,M={amount:[{amount:N.getBaseValue("string"),denom:My(N.symbol)}],fromAddress:T,toAddress:x};return{accountNumber:L??z.accountNumber,chainId:_,fee:W,memo:y,msgs:[{typeUrl:NG(X),value:M}],sequence:G??z.sequence}}var Z0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",Q1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",B1,Y1,W1,My=(T,x=!1)=>{if(x)return T.toLowerCase();switch(T){case"uUSK":case"USK":return Z0;case"uYUM":case"YUM":return Q1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return T}},xT=({symbol:T,chain:x})=>{if(x===V.Maya)return(T.toUpperCase()!=="CACAO"?T:`${V.Maya}.${T}`).toUpperCase();if(x===V.THORChain)return(["RUNE","TCY","RUJI"].includes(T.toUpperCase())?`${V.THORChain}.${T}`:T).toUpperCase();return My(T,!1)},NG=(T)=>{switch(T){case V.Maya:case V.THORChain:return"/types.MsgSend";case V.Cosmos:case V.Kujira:case V.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new z1("toolbox_cosmos_not_supported",{chain:T})}},LG,z0=(T,x)=>{let N=LG[T.toLowerCase()];if(!N)return _0.from({asset:T,fromBaseDecimal:8,value:x});let{chain:y,asset:f,decimals:G}=N,L=y?{chain:y}:{asset:f};return _0.from({...L,fromBaseDecimal:G,value:x})};var ET=K(()=>{B1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},Y1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},W1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};LG={atom:{chain:V.Cosmos,decimals:qy(V.Cosmos).baseDecimal},cacao:{chain:V.Maya,decimals:10},kuji:{chain:V.Kujira,decimals:qy(V.Kujira).baseDecimal},maya:{asset:`${V.Maya}.${V.Maya}`,decimals:4},rune:{chain:V.THORChain,decimals:qy(V.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:qy(V.THORChain).baseDecimal},uatom:{chain:V.Cosmos,decimals:qy(V.Cosmos).baseDecimal},ukuji:{chain:V.Kujira,decimals:qy(V.Kujira).baseDecimal},usdc:{chain:V.Noble,decimals:qy(V.Noble).baseDecimal},uusdc:{chain:V.Noble,decimals:qy(V.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:qy(V.THORChain).baseDecimal},[Z0.toLowerCase()]:{asset:`${V.Kujira}.USK`,decimals:qy(V.Kujira).baseDecimal}}});var H1={};yy(H1,{$root:()=>C});import d from"protobufjs/minimal.js";var D,_y,k,C;var M1=K(()=>{D=d.Reader,_y=d.Writer,k=d.util,C=d.roots.default||(d.roots.default={});C.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=_y.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 D))y=D.create(y);let G=f===void 0?y.len:y.pos+f,L=new C.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 D))y=new D(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(!k.isString(y.chain))return"chain: string expected"}if(y.symbol!=null&&y.hasOwnProperty("symbol")){if(!k.isString(y.symbol))return"symbol: string expected"}if(y.ticker!=null&&y.hasOwnProperty("ticker")){if(!k.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 C.common.Asset)return y;let f=new C.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,d.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=k.Long?k.Long.fromBits(0,0,!1):0,x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=_y.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))C.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 D))y=D.create(y);let G=f===void 0?y.len:y.pos+f,L=new C.common.Coin;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.asset=C.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 D))y=new D(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=C.common.Asset.verify(y.asset);if(f)return"asset."+f}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!k.isString(y.amount))return"amount: string expected"}if(y.decimals!=null&&y.hasOwnProperty("decimals")){if(!k.isInteger(y.decimals)&&!(y.decimals&&k.isInteger(y.decimals.low)&&k.isInteger(y.decimals.high)))return"decimals: integer|Long expected"}return null},x.fromObject=function(y){if(y instanceof C.common.Coin)return y;let f=new C.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");f.asset=C.common.Asset.fromObject(y.asset)}if(y.amount!=null)f.amount=String(y.amount);if(y.decimals!=null){if(k.Long)(f.decimals=k.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 k.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="",k.Long){let L=new k.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=C.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?k.Long.prototype.toString.call(y.decimals):f.longs===Number?new k.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber():y.decimals;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,d.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=_y.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 D))y=D.create(y);let G=f===void 0?y.len:y.pos+f,L=new C.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 D))y=new D(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(!k.isString(y.secp256k1))return"secp256k1: string expected"}if(y.ed25519!=null&&y.hasOwnProperty("ed25519")){if(!k.isString(y.ed25519))return"ed25519: string expected"}return null},x.fromObject=function(y){if(y instanceof C.common.PubKeySet)return y;let f=new C.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,d.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=k.emptyArray,x.prototype.gas=k.emptyArray,x.prototype.memo="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=_y.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)C.common.Coin.encode(y.coins[G],f.uint32(42).fork()).ldelim();if(y.gas?.length)for(let G=0;G<y.gas.length;++G)C.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 D))y=D.create(y);let G=f===void 0?y.len:y.pos+f,L=new C.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(C.common.Coin.decode(y,y.uint32()));break;case 6:if(!L.gas?.length)L.gas=[];L.gas.push(C.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 D))y=new D(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(!k.isString(y.id))return"id: string expected"}if(y.chain!=null&&y.hasOwnProperty("chain")){if(!k.isString(y.chain))return"chain: string expected"}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!k.isString(y.fromAddress))return"fromAddress: string expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!k.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=C.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=C.common.Coin.verify(y.gas[f]);if(G)return"gas."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!k.isString(y.memo))return"memo: string expected"}return null},x.fromObject=function(y){if(y instanceof C.common.Tx)return y;let f=new C.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]=C.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]=C.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]=C.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]=C.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,d.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=k.emptyArray,x.prototype.poolDeduct="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=_y.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)C.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 D))y=D.create(y);let G=f===void 0?y.len:y.pos+f,L=new C.common.Fee;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:if(!L.coins?.length)L.coins=[];L.coins.push(C.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 D))y=new D(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=C.common.Coin.verify(y.coins[f]);if(G)return"coins."+G}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!k.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},x.fromObject=function(y){if(y instanceof C.common.Fee)return y;let f=new C.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]=C.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]=C.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,d.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=_y.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 D))y=D.create(y);let G=f===void 0?y.len:y.pos+f,L=new C.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 D))y=new D(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(!k.isString(y.value))return"value: string expected"}return null},x.fromObject=function(y){if(y instanceof C.common.ProtoUint)return y;let f=new C.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,d.util.toJSONOptions)},x})(),T})();C.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=k.emptyArray,x.prototype.memo="",x.prototype.signer=k.newBuffer([]),x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=_y.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)C.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 D))y=D.create(y);let G=f===void 0?y.len:y.pos+f,L=new C.types.MsgDeposit;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:if(!L.coins?.length)L.coins=[];L.coins.push(C.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 D))y=new D(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=C.common.Coin.verify(y.coins[f]);if(G)return"coins."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!k.isString(y.memo))return"memo: string expected"}if(y.signer!=null&&y.hasOwnProperty("signer")){if(!(y.signer&&typeof y.signer.length==="number"||k.isString(y.signer)))return"signer: buffer expected"}return null},x.fromObject=function(y){if(y instanceof C.types.MsgDeposit)return y;let f=new C.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]=C.common.Coin.fromObject(y.coins[G])}}if(y.memo!=null)f.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")k.base64.decode(y.signer,f.signer=k.newBuffer(k.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=k.newBuffer(G.signer)}if(y.coins?.length){G.coins=[];for(let L=0;L<y.coins.length;++L)G.coins[L]=C.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?k.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,d.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=k.newBuffer([]),x.prototype.toAddress=k.newBuffer([]),x.prototype.amount=k.emptyArray,x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=_y.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)C.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 D))y=D.create(y);let G=f===void 0?y.len:y.pos+f,L=new C.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(C.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof D))y=new D(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"||k.isString(y.fromAddress)))return"fromAddress: buffer expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!(y.toAddress&&typeof y.toAddress.length==="number"||k.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=C.cosmos.base.v1beta1.Coin.verify(y.amount[f]);if(G)return"amount."+G}}return null},x.fromObject=function(y){if(y instanceof C.types.MsgSend)return y;let f=new C.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")k.base64.decode(y.fromAddress,f.fromAddress=k.newBuffer(k.base64.length(y.fromAddress)),0);else if(y.fromAddress.length)f.fromAddress=y.fromAddress}if(y.toAddress!=null){if(typeof y.toAddress==="string")k.base64.decode(y.toAddress,f.toAddress=k.newBuffer(k.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]=C.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=k.newBuffer(G.fromAddress);if(f.bytes===String)G.toAddress="";else if(G.toAddress=[],f.bytes!==Array)G.toAddress=k.newBuffer(G.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=f.bytes===String?k.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?k.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]=C.cosmos.base.v1beta1.Coin.toObject(y.amount[L],f)}return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},x})(),T})();C.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=_y.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 D))G=D.create(G);let X=L===void 0?G.len:G.pos+L,_=new C.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 D))G=new D(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(!k.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!k.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.Coin)return G;let L=new C.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,d.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=_y.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 D))G=D.create(G);let X=L===void 0?G.len:G.pos+L,_=new C.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 D))G=new D(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(!k.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!k.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.DecCoin)return G;let L=new C.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,d.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=_y.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 D))G=D.create(G);let X=L===void 0?G.len:G.pos+L,_=new C.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 D))G=new D(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(!k.isString(G.int))return"int: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.IntProto)return G;let L=new C.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,d.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=_y.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 D))G=D.create(G);let X=L===void 0?G.len:G.pos+L,_=new C.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 D))G=new D(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(!k.isString(G.dec))return"dec: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.DecProto)return G;let L=new C.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,d.util.toJSONOptions)},y})(),N})(),x})(),T})()});import{Chain as XG}from"@uswap/helpers";async function by(){let{$root:T}=await Promise.resolve().then(() => (M1(),H1)),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===XG.THORChain?"thorchain":"mayachain";return new N({"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,fromAmino:({signer:f,...G})=>({...G,signer:kT(f)}),toAmino:({signer:f,...G})=>({...G,signer:KT(f)})},"/types.MsgSend":{aminoType:`${y}/MsgSend`,fromAmino:({from_address:f,to_address:G,...L})=>({...L,fromAddress:kT(f),toAddress:kT(G)}),toAmino:({fromAddress:f,toAddress:G,...L})=>({...L,from_address:KT(f),to_address:KT(G)})}})}var Q0=K(()=>{X0()});import{AssetValue as _G,Chain as Yf,getChainConfig as I1,USwapError as ZG}from"@uswap/helpers";function W0(T){return function(N){let{assetValue:y,recipient:f,memo:G,sender:L,asSignable:X,asAminoMessage:_}=N;if(f)return C1(T)({asAminoMessage:_,asSignable:X,assetValue:y,memo:G,recipient:f,sender:L});return w1(T)({asAminoMessage:_,asSignable:X,assetValue:y,memo:G,sender:L})}}function Dy(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=_G.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 DT({chain:T,memo:x,msgs:N}){let y=await by(),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 JG,qG,B0=({sender:T,recipient:x,assetValue:N})=>{return{type:`${N.chain===Yf.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:N.getBaseValue("string"),denom:My(N.symbol,!0)}],from_address:T,to_address:x}}},Y0=({sender:T,assetValue:x,memo:N=""})=>{return{type:`${x.chain===Yf.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:x.getBaseValue("string"),asset:xT(x)}],memo:N,signer:T}}},Wf=({sender:T,recipient:x,assetValue:N,memo:y})=>{return!x?Y0({assetValue:N,memo:y,sender:T}):B0({assetValue:N,recipient:x,sender:T})},Ey=async(T,x)=>{return(await Ky(x)).fromAmino(T)},R1=async({rpcUrl:T,sender:x})=>{let y=await(await Ry(T)).getAccount(x);if(!y)throw new ZG("toolbox_cosmos_account_not_found",{sender:x});return y},C1=(T)=>async({sender:x,recipient:N,assetValue:y,memo:f="",asSignable:G=!0,asAminoMessage:L=!1,sequence:X,accountNumber:_})=>{let Z=await R1({rpcUrl:T,sender:x}),q=y.chain,{chainId:z}=I1(q),J=B0({assetValue:y,recipient:N,sender:x}),Q=G?await Ey(L?J:Dy(J),q):J;return{accountNumber:_||Z.accountNumber,chainId:z,fee:Iy(q),memo:f,msgs:[Q],sequence:X||Z.sequence}},w1=(T)=>async({sender:x,assetValue:N,memo:y="",asSignable:f=!0,asAminoMessage:G=!1,sequence:L,accountNumber:X})=>{let _=await R1({rpcUrl:T,sender:x}),Z=N.chain,{chainId:q}=I1(Z),z=Y0({assetValue:N,memo:y,sender:x}),J=f?await Ey(G?z:Dy(z),Z):z;return{accountNumber:X||_.accountNumber,chainId:q,fee:Iy(Z),memo:y,msgs:[J],sequence:L||_.sequence}};var O1=K(()=>{ET();Q0();JG=Iy(Yf.THORChain).gas,qG=Iy(Yf.Maya).gas});var k1=()=>{};var K1=K(()=>{k1()});var H0=K(()=>{X0();O1();Q0();K1()});import{base64 as w0,bech32 as M0}from"@scure/base";import{AssetValue as Hf,applyFeeMultiplier as E1,Chain as r,CosmosChainPrefixes as v1,DerivationPath as zG,derivationPathToString as D1,FeeOption as If,getChainConfig as QG,getRPCUrl as BG,NetworkDerivationPath as YG,USwapError as Mf,USwapNumber as I0,updateDerivationPath as WG}from"@uswap/helpers";import{USwapApi as l1}from"@uswap/helpers/api";import{match as HG,P as S1}from"ts-pattern";async function k0(T,x){try{let y=(await l1.getGasRate()).find((f)=>f.chainId===T)?.value;return y?Number.parseFloat(y):x}catch{return x}}async function O0({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 MG({privateKey:T,prefix:x}){let N=await import("@cosmjs/proto-signing");return(N.DirectSecp256k1Wallet??N.default?.DirectSecp256k1Wallet).fromKey(T,x)}function A1(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(w0.decode(N));return _.verifySignature(Z,w0.decode(y),G.pubkey.value)}}async function ST({chain:T,...x}){let N=await BG(T),y=v1[T],f="index"in x?x.index||0:0,G=D1("derivationPath"in x&&x.derivationPath?x.derivationPath:WG(YG[T],{index:f})),L=await HG(x).with({phrase:S1.string},({phrase:J})=>O0({derivationPath:G,phrase:J,prefix:y})).with({signer:S1.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 w0.encode(J?.pubkey)}async function q({recipient:J,assetValue:Q,memo:B="",feeRate:W,feeOptionKey:M=If.Fast}){let I=await _();if(!(L&&I))throw new Mf("toolbox_cosmos_signer_not_defined");let O=Hf.from({chain:T}),U=xT(O),S=W||P1((await C0(T,R0[T]))[M],U),l=await GT(N,L),b=My(Q.symbol),i=Q.getBaseValue("string"),{TxRaw:xy}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),E={amount:[{amount:i,denom:b}],fromAddress:I,toAddress:J},P=await l.sign(I,[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:E}],S,B),Y=xy.encode(P).finish();return Buffer.from(Y).toString("hex")}async function z({recipient:J,assetValue:Q,memo:B="",feeRate:W,feeOptionKey:M=If.Fast,dryRun:I=!1}){if(I)return q({assetValue:Q,feeOptionKey:M,feeRate:W,memo:B,recipient:J});let O=await _();if(!(L&&O))throw new Mf("toolbox_cosmos_signer_not_defined");let U=Hf.from({chain:T}),S=xT(U),l=W||P1((await C0(T,R0[T]))[M],S),b=await GT(N,L),i=My(Q.symbol),xy=[{amount:Q.getBaseValue("string"),denom:i}],{transactionHash:E}=await b.sendTokens(O,J,xy,l,B);return E}return{createPrivateKeyFromPhrase:wG(G),createTransaction:q0,fetchFeeRateFromSwapKit:k0,getAccount:X,getAddress:_,getBalance:async(J,Q)=>{let B=await U1(N)(J),W=await Promise.all(B.filter(({denom:M})=>M&&!M.includes("IBC/")&&!([r.THORChain,r.Maya].includes(T)&&M.split("-").length>2)).map(({denom:M,amount:I})=>{let O=[r.THORChain,r.Maya].includes(T)&&(M.includes("/")||M.includes("˜"))?`${T}.${M}`:M;return z0(O,I)}));if(W.length===0)return[Hf.from({chain:T})];return W},getBalanceAsDenoms:U1(N),getFees:()=>C0(T,R0[T]),getPubKey:Z,getSignerFromPhrase:async({phrase:J,derivationPath:Q})=>O0({derivationPath:D1(Q),index:f,phrase:J,prefix:y}),getSignerFromPrivateKey:async(J)=>{let Q=await import("@cosmjs/proto-signing");return(Q.DirectSecp256k1Wallet??Q.default?.DirectSecp256k1Wallet).fromKey(J,y)},signTransaction:q,transfer:z,validateAddress:F1(T),verifySignature:A1(X)}}async function IG(T,x){try{let y=(await l1.getGasRate()).find((f)=>f.chainId===T)?.value;return y?Number.parseFloat(y):x}catch{return x}}function RG({assetValue:{chain:T}}){return Hf.from({chain:T,value:CG(T)})}async function C0(T,x){let{chainId:N,baseDecimal:y}=QG(T),f=await k0(N,x);return{average:I0.fromBigInt(BigInt(f),y),fast:I0.fromBigInt(BigInt(E1(f,If.Fast,!0)),y),fastest:I0.fromBigInt(BigInt(E1(f,If.Fastest,!0)),y)}}function P1(T,x){return{amount:[{amount:T.getBaseValue("string"),denom:x}],gas:"200000"}}function CG(T){return{[r.Cosmos]:0.007,[r.Kujira]:0.02,[r.Noble]:0.01,[r.THORChain]:0.02,[r.Maya]:0.02,[r.Harbor]:0.02}[T]||0}function F1(T){let x=v1[T];return function(y){if(!y.startsWith(x))return!1;try{let{prefix:f,words:G}=M0.decode(y);return M0.encode(f,G)===y.toLocaleLowerCase()}catch{return!1}}}function U1(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 wG(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:z}=L.derivePath(G.Secp256k1,q,f(T));return z}}var R0;var Rf=K(()=>{ET();R0={[r.Cosmos]:1000,[r.Kujira]:1000,[r.Noble]:1000,[r.THORChain]:5000000,[r.Maya]:5000000,[r.Harbor]:5000000}});import{base64 as jy}from"@scure/base";import{Chain as OG,CosmosChainPrefixes as kG,derivationPathToString as KG,FeeOption as K0,getChainConfig as V1,getRPCUrl as EG,NetworkDerivationPath as DG,RequestClient as SG,USwapConfig as PG,USwapError as $1,USwapNumber as n1,updateDerivationPath as UG}from"@uswap/helpers";import{match as vG,P as u1}from"ts-pattern";function lG({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 AG(T){return jy.encode(T)}function FG(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||"",z=await Ky(T),J=await by(),Q=await J0(N,{aminoTypes:z,registry:J}),B=[];for(let I of f){let O=await Ey(I,T);B.push(O)}let{signatures:[W]}=await Q.sign(q,B,_,Z,{accountNumber:G,chainId:X,sequence:L});return{bodyBytes:await DT({chain:T,memo:Z,msgs:f.map(Dy)}),signature:AG(W)}}}function VG({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:z,fee:J}=JSON.parse(y),Q=await b1(G,L),B=f.map((I)=>[Z(_(jy.decode(I.pubKey)),T),jy.decode(I.signature)]),W=await Ry(x),{transactionHash:M}=await W.broadcastTx(q(Q,z,J,X,new Map(B)));return M}}async function b1(T,x,N=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:f}=(await import("@cosmjs/amino")).default;return y(T.map((G)=>f(jy.decode(G))),x,N)}function $G(T){return jy.decode(T)}async function nG({privateKey:T,message:x}){let{Secp256k1:N}=(await import("@cosmjs/crypto")).default,y=await N.createSignature(jy.decode(x),T);return jy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function E0({chain:T,...x}){let N=await EG(T),{nodeUrl:y}=V1(T),{isStagenet:f}=PG.get("envs"),G=T===OG.THORChain,L=`${f?"s":""}${kG[T]}`,X="index"in x?x.index||0:0,_="derivationPath"in x&&x.derivationPath?x.derivationPath:UG(DG[T],{index:X}),Z=await ST({chain:T,...x}),q=await vG(x).with({phrase:u1.string},({phrase:B})=>Z.getSignerFromPhrase({derivationPath:_,phrase:B})).with({signer:u1.any},({signer:B})=>B).otherwise(()=>{return}),z=Iy(T);async function J(){let B,W=`${y}/${G?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:M}}=await SG.get(W);if(!M||Number.isNaN(M)||M<0)throw new $1("toolbox_cosmos_invalid_fee",{nativeFee:M.toString()});B=new n1(M)}catch{B=new n1({decimal:V1(T).baseDecimal,value:G?0.02:1})}return{[K0.Average]:B,[K0.Fast]:B,[K0.Fastest]:B}}async function Q({assetValue:B,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 $1("toolbox_cosmos_no_signer");let U="signAmino"in q,S=await by(),l=await Ky(T),b=await GT(N,q,{aminoTypes:l,registry:S}),i=Wf({assetValue:B,memo:W,recipient:M,sender:O});if(U){let Y=await Ey(i,T),{signatures:R,authInfoBytes:w}=await b.sign(O,[Y],z,W),v=I.encode({authInfoBytes:w,bodyBytes:await DT({chain:T,memo:W,msgs:[i].map(Dy)}),signatures:R}).finish();return(await b.broadcastTx(v)).transactionHash}let xy=Dy(i),E=await Ey(xy,T);return(await b.signAndBroadcast(O,[E],z,W)).transactionHash}return{...Z,broadcastMultisigTx:VG({prefix:L,rpcUrl:N}),buildAminoMsg:Wf,buildEncodedTxBody:DT,convertToSignable:Ey,createDefaultAminoTypes:()=>Ky(T),createDefaultRegistry:by,createMultisig:b1,createTransaction:W0(N),deposit:Q,getFees:J,importSignature:$G,parseAminoMessageForDirectSigning:Dy,pubkeyToAddress:async(B)=>{let{pubkeyToAddress:W}=(await import("@cosmjs/amino")).default;return W(B,L)},secp256k1HdWalletFromMnemonic:lG({derivationPath:KG(_),prefix:L}),signMultisigTx:FG(T),signWithPrivateKey:nG,transfer:Q}}var D0=K(()=>{H0();ET();Rf()});import{Chain as PT,USwapError as uG}from"@uswap/helpers";var bG=(T,x)=>{switch(T){case PT.Cosmos:case PT.Kujira:case PT.Noble:return ST({chain:T,...x});case PT.Maya:case PT.THORChain:return E0({chain:T,...x});default:throw new uG("toolbox_cosmos_not_supported",{chain:T})}};var j1=K(()=>{Rf();D0();Rf();D0()});var Cf={};yy(Cf,{verifySignature:()=>A1,transferMsgAmino:()=>B0,toBase64:()=>fG,parseAminoMessageForDirectSigning:()=>Dy,getSignerFromPrivateKey:()=>MG,getSignerFromPhrase:()=>O0,getMsgSendDenom:()=>My,getFeeRateFromSwapKit:()=>IG,getDenomWithChain:()=>xT,getDefaultChainFee:()=>Iy,getCreateTransaction:()=>W0,getCosmosValidateAddress:()=>F1,getCosmosToolbox:()=>bG,getAssetFromDenom:()=>z0,fromBase64:()=>xG,fetchFeeRateFromSwapKit:()=>k0,estimateTransactionFee:()=>RG,depositMsgAmino:()=>Y0,createThorchainToolbox:()=>E0,createStargateClient:()=>Ry,createSigningStargateClient:()=>GT,createOfflineStargateClient:()=>J0,createDefaultRegistry:()=>by,createDefaultAminoTypes:()=>Ky,createCosmosToolbox:()=>ST,cosmosCreateTransaction:()=>q0,convertToSignable:()=>Ey,buildTransferTx:()=>C1,buildEncodedTxBody:()=>DT,buildDepositTx:()=>w1,buildAminoMsg:()=>Wf,bech32ToBase64:()=>kT,base64ToBech32:()=>KT,YUM_KUJIRA_FACTORY_DENOM:()=>Q1,USK_KUJIRA_FACTORY_DENOM:()=>Z0,THORCHAIN_GAS_VALUE:()=>JG,MAYA_GAS_VALUE:()=>qG,DEFAULT_NOBLE_FEE_MAINNET:()=>W1,DEFAULT_KUJI_FEE_MAINNET:()=>Y1,DEFAULT_COSMOS_FEE_MAINNET:()=>B1});var wf=K(()=>{H0();j1();ET()});import{AssetValue as Of,Chain as Sy,DerivationPath as jG,derivationPathToString as oG,getChainConfig as p1,getRPCUrl as hG,NetworkDerivationPath as pG,USwapError as hy,updateDerivationPath as tG}from"@uswap/helpers";import{match as mG,P as o1}from"ts-pattern";async function t1(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 cG(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}=p1(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,z=q.mint,J=q.tokenAmount.amount;if(Number(J)===0)continue;let Q=await t1(z),B=Q?.symbol||"UNKNOWN",W=Q?.decimals||q.tokenAmount.decimals;X.push(Of.from({asset:`${Sy.Solana}.${B}-${z}`,fromBaseDecimal:W,value:J}))}return X}async function U0(){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=oG(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:tG(pG[Sy.Solana],{index:x})),y=await mG(T).with({phrase:o1.string},({phrase:L})=>P0({derivationPath:N,phrase:L})).with({signer:o1.any},({signer:L})=>L).otherwise(()=>{return});function f(){return y?.publicKey?h1(y.publicKey):""}function G(L){let X=L||f();if(!X)throw new hy("core_wallet_connection_not_found");return cG(X)}return{broadcastTransaction:S0(oy),createKeysForPath:P0,createTransaction:v0(oy),createTransactionFromInstructions:aG,estimateTransactionFee:gG(oy),getAddress:f,getAddressFromPubKey:h1,getAddressValidator:U0,getBalance:G,getConnection:oy,getPubkeyFromAddress:l0,signTransaction:eG(oy,y),transfer:sG(oy,y)}}function gG(T){return async({recipient:x,assetValue:N,memo:y,isProgramDerivedAddress:f,sender:G})=>{let L=await T(),_=(await v0(T)({assetValue:N,isProgramDerivedAddress:f,memo:y,recipient:x,sender:G})).compileMessage(),Z=await L.getFeeForMessage(_);if(Z.value===null)throw new hy("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:q}=p1(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 hG(Sy.Solana);return new T(x,"confirmed")}function dG(T){return async({assetValue:x,recipient:N,sender:y,isProgramDerivedAddress:f})=>{let G=await T(),L=await l0(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 rG({amount:x.getBaseValue("number"),connection:G,decimals:x.decimal,from:L,isProgramDerivedAddress:f,recipient:N,tokenAddress:x.address});return}}async function rG({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:z,PublicKey:J}=await import("@solana/web3.js"),Q=new z,B=new J(T),W=await X(B,N),M=new J(x),I=await X(B,M,L),O=!1;try{await _(y,I),O=!0}catch{}if(!O)Q.add(Z(N,I,M,B));return Q.add(q(W,B,I,N,f,G)),Q}function v0(T){return async({recipient:x,assetValue:N,memo:y,isProgramDerivedAddress:f,sender:G})=>{let{createMemoInstruction:L}=await import("@solana/spl-memo"),X=await l0(G),_=await U0();if(!(f||_(x)))throw new hy("core_transaction_invalid_recipient_address");let Z=await T(),q=await dG(T)({assetValue:N,isProgramDerivedAddress:f,recipient:x,sender:G});if(!q)throw new hy("core_transaction_invalid_sender_address");if(y)q.add(L(y));let z=await Z.getLatestBlockhash();return q.recentBlockhash=z.blockhash,q.feePayer=X,q}}async function aG({instructions:T}){let{Transaction:x}=await import("@solana/web3.js"),N=new x().add(...T);if(!N)throw new hy("core_transaction_invalid_sender_address");return N}function sG(T,x){return async({recipient:N,assetValue:y,memo:f,isProgramDerivedAddress:G})=>{if(!x)throw new hy("core_transaction_invalid_sender_address");let L=x.publicKey?.toString()??(await x.connect()).publicKey.toString(),X=await v0(T)({assetValue:y,isProgramDerivedAddress:G,memo:f,recipient:N,sender:L});if("signTransaction"in x){let _=await x.signTransaction(X);return S0(T)(_)}return X.sign(x),S0(T)(X)}}function S0(T){return async(x)=>{return(await T()).sendRawTransaction(x.serialize())}}function eG(T,x){return async(N)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!x)throw new hy("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 P0({phrase:T,derivationPath:x=jG.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 h1(T){return T.toString()}async function l0(T){let{PublicKey:x}=await import("@solana/web3.js");return new x(T)}var m1=()=>{};var A0={};yy(A0,{getSolanaToolbox:()=>iG,getSolanaAddressValidator:()=>U0,fetchTokenMetaData:()=>t1,createKeysForPath:()=>P0});var F0=K(()=>{m1()});import{AssetValue as UT,Chain as V0,getChainConfig as yN,USwapError as py}from"@uswap/helpers";import{match as TN,P as c1}from"ts-pattern";async function i1(){let{isValidSuiAddress:T}=await import("@mysten/sui/utils");return function(N){try{return T(N)}catch{return!1}}}async function fN({provider:T,...x}={}){let N=await i1(),y=await TN(x).with({phrase:c1.string},async({phrase:z})=>{let{Ed25519Keypair:J}=await import("@mysten/sui/keypairs/ed25519");return J.deriveKeypair(z)}).with({signer:c1.any},({signer:z})=>z).otherwise(()=>{return});async function f(z=T){let{SuiClient:J,getFullnodeUrl:Q}=await import("@mysten/sui/client");return new J({url:z||Q("mainnet")})}function G(){return y?.toSuiAddress()||""}async function L(z){let J=z||G();if(!J)throw new py("toolbox_sui_address_required");let{baseDecimal:Q,chain:B}=yN(V0.Sui);try{let W=await f(),{totalBalance:M}=await W.getBalance({owner:J}),I=[UT.from({chain:B,fromBaseDecimal:Q,value:M})],O=await W.getAllBalances({owner:J});for(let{coinType:U,totalBalance:S}of O){if(U==="0x2::sui::SUI")continue;if(Number(S)>0){let l=U.split("::").pop()?.toUpperCase()||"UNKNOWN",b=`${B}.${l}-${U}`;I.push(UT.from({asset:b,fromBaseDecimal:Q,value:S}))}}return I}catch{return[UT.from({chain:B})]}}async function X(z){let J=UT.from({chain:V0.Sui,value:"0.01"});if(!z)return J;try{let Q=await f(),{txBytes:B}=await _(z),{effects:{status:W,gasUsed:M}}=await Q.dryRunTransactionBlock({transactionBlock:B});if(W.status!=="success")return J;let I=Number(M.computationCost)+Number(M.storageCost)-Number(M.storageRebate);return UT.from({chain:V0.Sui,value:I.toString()})}catch{return J}}async function _({recipient:z,assetValue:J,gasBudget:Q,sender:B}){let{Transaction:W}=await import("@mysten/sui/transactions"),M=B||G();if(!M)throw new py("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],z)}else throw new py("toolbox_sui_custom_token_transfer_not_implemented");if(Q)I.setGasBudget(Q);let O=await f(),U=await I.build({client:O});return{tx:I,txBytes:U}}catch(I){throw new py("toolbox_sui_transaction_creation_error",{error:I})}}async function Z(z){if(!y)throw new py("toolbox_sui_no_signer");if(z instanceof Uint8Array)return y.signTransaction(z);let{txBytes:J}="tx"in z?z:await _(z);return y.signTransaction(J)}async function q({assetValue:z,gasBudget:J,recipient:Q}){if(!y)throw new py("toolbox_sui_no_signer");let B=y.toSuiAddress()||G();if(!B)throw new py("toolbox_sui_no_sender");let{txBytes:W}=await _({assetValue:z,gasBudget:J,recipient:Q,sender:B}),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 g1=()=>{};var kf={};yy(kf,{getSuiToolbox:()=>fN,getSuiAddressValidator:()=>i1});var Kf=K(()=>{g1()});import{AssetValue as $0,Chain as vT,getChainConfig as d1,USwapError as lT,USwapNumber as xN}from"@uswap/helpers";import{match as GN,P as r1}from"ts-pattern";async function NN(T={}){let{mnemonicToWalletKey:x}=await import("@ton/crypto"),{Address:N,TonClient:y,WalletContractV4:f}=await import("@ton/ton"),G=await a1(),L,X,_=await GN(T).with({phrase:r1.string},async({phrase:I})=>x(I.split(" "))).with({signer:r1.any},({signer:I})=>I).otherwise(()=>{return});function Z(){let{rpcUrls:I}=d1(vT.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(),U=I||_;if(!U)throw new lT("core_wallet_connection_not_found");let S=f.create({publicKey:U.publicKey,workchain:0});X=O.open(S)}return X}async function z(I){let O=Z(),{baseDecimal:U}=d1(vT.Ton);try{let S=await O.getBalance(N.parse(I));return[$0.from({chain:vT.Ton,value:xN.fromBigInt(S,U)})]}catch{return[$0.from({chain:vT.Ton})]}}async function J({assetValue:I,recipient:O,memo:U}){let S=q();if(!S||!_)throw new lT("core_wallet_connection_not_found");let{toNano:l,comment:b,internal:i}=await import("@ton/ton"),xy=await S.getSeqno(),E=l(I.getValue("string")),P=U?b(U):void 0;return S.createTransfer({messages:[i({body:P,to:O,value:E})],secretKey:_.secretKey,seqno:xy})}async function Q({assetValue:I,recipient:O,memo:U}){let S=q();if(!S||!_)throw new lT("core_wallet_connection_not_found");let l=await J({assetValue:I,memo:U,recipient:O});return await S.send(l),l.hash().toString()}async function B(I){let O=q();if(!O)throw new lT("core_wallet_connection_not_found");try{return await O.send(I),I.hash().toString("hex")}catch(U){throw new lT("core_wallet_connection_not_found",{error:U})}}function W(){return q().address.toString()}function M(){return Promise.resolve($0.from({chain:vT.Ton,value:"0.0001"}))}return{createTransaction:J,estimateTransactionFee:M,getAddress:W,getBalance:z,sendTransaction:B,transfer:Q,validateAddress:G}}async function a1(){let{Address:T}=await import("@ton/ton");return function(N){try{return T.parse(N),!0}catch{return!1}}}var s1=()=>{};var Ef={};yy(Ef,{getTONToolbox:()=>NN,getTONAddressValidator:()=>a1});var Df=K(()=>{s1()});var NT;var n0=K(()=>{NT=[{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{USwapError as LN}from"@uswap/helpers";async function e1(T){let x=await import("tronweb"),N=x.TronWeb??x.default?.TronWeb;try{let y=await fetch(`${XN}/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 LN("toolbox_tron_trongrid_api_error",{address:T,message:y instanceof Error?y.message:"Unknown error"})}}var XN="https://api.trongrid.io";var y2=()=>{};import{AssetValue as Cy,BaseDecimal as T2,Chain as zy,derivationPathToString as G2,getRPCUrl as _N,NetworkDerivationPath as N2,USwapError as Ty,updateDerivationPath as L2,warnOnce as u0}from"@uswap/helpers";import{match as ZN,P as f2}from"ts-pattern";async function b0(){let T=await import("tronweb"),x=T.TronWeb??T.default?.TronWeb;return(N)=>{return x.isAddress(N)}}async function X2({phrase:T,derivationPath:x,index:N}){let y=x||G2(L2(N2[zy.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 Ty("toolbox_tron_no_signer");return Buffer.from(_.privateKey).toString("hex")}async function BN({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 Ty("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 JN=268,qN=13000,zN=345,x2="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",QN="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",_2=async(T={})=>{let x=await import("tronweb"),N=x.TronWeb??x.default?.TronWeb,y=await _N(zy.Tron),f=void 0,G=new N({fullHost:y,headers:void 0}),L="index"in T?T.index||0:0,X=G2("derivationPath"in T&&T.derivationPath?T.derivationPath:L2(N2[zy.Tron],{index:L})),_=await ZN(T).with({phrase:f2.string},async({phrase:E})=>BN({derivationPath:X,phrase:E,tronWeb:G})).with({signer:f2.any},({signer:E})=>Promise.resolve(E)).otherwise(()=>Promise.resolve(void 0)),Z=async()=>{if(!_)throw new Ty("toolbox_tron_no_signer");return await _.getAddress()},q=()=>{return 1e8},z=async()=>{try{let E=await G.trx.getChainParameters(),P={};for(let Y of E)P[Y.key]=Y.value;return{bandwidthFee:P.getTransactionFee||1000,createAccountFee:P.getCreateAccountFee||1e5,energyFee:P.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},J=async(E)=>{try{let P=await G.trx.getAccount(E);return P&&Object.keys(P).length>0}catch{return!1}},Q=async(E)=>{try{let P=await G.trx.getAccountResources(E);return{bandwidth:{free:P.freeNetLimit-P.freeNetUsed,total:P.NetLimit||0,used:P.NetUsed||0},energy:{total:P.EnergyLimit||0,used:P.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},B=async(E,P)=>{try{let Y=G.contract(NT,P);if(!Y.methods?.balanceOf)return 0n;let[R]=await Y.methods.balanceOf(E).call();return R?typeof R==="bigint"?R:BigInt(R):0n}catch(Y){let R=Y instanceof Error?Y.message:String(Y);return console.warn(`balanceOf() failed for ${P}: ${R}`),0n}},W=async(E,P)=>{try{G.setAddress(P);let Y=G.contract(NT,E),[R,w]=await Promise.all([Y.symbol().call().catch(()=>"UNKNOWN"),Y.decimals().call().catch(()=>"18")]);return{decimals:Number(w??18),symbol:R??"UNKNOWN"}}catch(Y){return u0({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${E}: ${Y instanceof Error?Y.message:Y}`}),null}},M=async(E,P=!0)=>{let Y=[Cy.from({chain:zy.Tron})];try{let R=await e1(E);if(R){let w=[];w.push(Cy.from({chain:zy.Tron,fromBaseDecimal:6,value:R.balance}));for(let v of R.trc20){let[n,$]=Object.entries(v)[0]||[];if(!(n&&$))continue;let F=await W(n,E);if(!F)continue;w.push(Cy.from({asset:`TRON.${F.symbol}-${n}`,fromBaseDecimal:F.decimals,value:BigInt($||0)}))}return w}return Y}catch(R){u0({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${R instanceof Error?R.message:R}`});try{let w=[],v=await G.trx.getBalance(E);if(v&&Number(v)>0)w.push(Cy.from({chain:zy.Tron,fromBaseDecimal:6,value:v}));let n=await B(E,x2);if(n)w.push(Cy.from({asset:`TRON.USDT-${x2}`,fromBaseDecimal:6,value:n}));if(w.length===0)return Y;return w}catch(w){let v=w instanceof Error?w.message:String(w);return console.error(`Tron balance fetch failed: ${v}`),Y}}},I=async({recipient:E,assetValue:P,memo:Y,expiration:R})=>{if(!_)throw new Ty("toolbox_tron_no_signer");let w=await Z();G.setAddress(w);let v=await U({assetValue:P,expiration:R,memo:Y,recipient:E,sender:w}),n=await _.signTransaction(v),{txid:$}=await G.trx.sendRawTransaction(n);if(!$)throw new Ty("toolbox_tron_token_transfer_failed");return $},O=async({assetValue:E,recipient:P,sender:Y})=>{let R=E.isGasAsset;try{let w=Y?Y:_?await Z():void 0;if(!w)return R?Cy.from({chain:zy.Tron,fromBaseDecimal:0,value:0.1}):Cy.from({chain:zy.Tron,fromBaseDecimal:0,value:15});let v=await z(),$=await J(P)?0:v.createAccountFee,F=await Q(w);if(R){let Vy=JN,pT=F.bandwidth.free+(F.bandwidth.total-F.bandwidth.used),tT=0;if(Vy>pT)tT=(Vy-pT)*v.bandwidthFee;let mT=$+tT;return Cy.from({chain:zy.Tron,fromBaseDecimal:T2.TRON,value:mT})}let j=zN,g=qN,e=F.bandwidth.free+(F.bandwidth.total-F.bandwidth.used),Gy=F.energy.total-F.energy.used,Fy=0;if(j>e)Fy=(j-e)*v.bandwidthFee;let hT=0;if(g>Gy)hT=(g-Gy)*v.energyFee;let hf=$+Fy+hT;return Cy.from({chain:zy.Tron,fromBaseDecimal:T2.TRON,value:hf})}catch(w){throw u0({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${w instanceof Error?w.message:w}`}),new Ty("toolbox_tron_fee_estimation_failed",{error:w})}},U=async(E)=>{let{recipient:P,assetValue:Y,memo:R,sender:w,expiration:v}=E,n=Y.isGasAsset,$=async({transaction:j,memo:g,expiration:e})=>{let Gy=g?await G.transactionBuilder.addUpdateData(j,g,"utf8"):j;return e?await G.transactionBuilder.extendExpiration(Gy,e):Gy};if(n){let j=await G.transactionBuilder.sendTrx(P,Y.getBaseValue("number"),w);return $({expiration:v,memo:R,transaction:j})}G.setAddress(w);let F=Y.address;if(!F)throw new Ty("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});try{let g=[{type:"address",value:P},{type:"uint256",value:Y.getBaseValue("string")}],e={callValue:0,feeLimit:q()},{transaction:Gy}=await G.transactionBuilder.triggerSmartContract(F,"transfer(address,uint256)",e,g,w);return $({expiration:v,memo:R,transaction:Gy})}catch(j){throw new Ty("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction.",originalError:j instanceof Error?j.message:String(j)})}},S=async(E)=>{if(!_)throw new Ty("toolbox_tron_no_signer");return await _.signTransaction(E)},l=async(E)=>{let{txid:P}=await G.trx.sendRawTransaction(E);return P},b=async({assetAddress:E,spenderAddress:P,from:Y})=>{try{let R=G.contract(NT,E);if(!R.methods?.allowance)throw new Ty("toolbox_tron_invalid_token_contract");let[w]=await R.methods.allowance(Y,P).call();return w?typeof w==="bigint"?w:BigInt(w):0n}catch(R){throw new Ty("toolbox_tron_allowance_check_failed",{error:R})}};return{approve:async({assetAddress:E,spenderAddress:P,amount:Y,from:R})=>{if(!_)throw new Ty("toolbox_tron_no_signer");let w=R||await Z(),v=Y!==void 0?BigInt(Y).toString():QN,n="approve(address,uint256)",$=[{type:"address",value:P},{type:"uint256",value:v}],j={callValue:0,feeLimit:q()};try{let{transaction:g}=await G.transactionBuilder.triggerSmartContract(E,n,j,$,w),e=await _.signTransaction(g),{txid:Gy}=await G.trx.sendRawTransaction(e);if(!Gy)throw new Ty("toolbox_tron_approve_failed");return Gy}catch(g){throw new Ty("toolbox_tron_approve_failed",{error:g})}},broadcastTransaction:l,createTransaction:U,estimateTransactionFee:O,getAddress:Z,getApprovedAmount:b,getBalance:M,isApproved:async({assetAddress:E,spenderAddress:P,from:Y,amount:R})=>{let w=await b({assetAddress:E,from:Y,spenderAddress:P});if(!R)return w>0n;let v=BigInt(R);return w>=v},signTransaction:S,transfer:I,tronWeb:G,validateAddress:await b0()}};var Z2=K(()=>{n0();y2()});var j0={};yy(j0,{trc20ABI:()=>NT,getTronPrivateKeyFromMnemonic:()=>X2,getTronAddressValidator:()=>b0,createTronToolbox:()=>_2});var o0=K(()=>{n0();Z2()});import{networks as YN}from"@bitgo/utxo-lib";import{Chain as a,getRPCUrl as WN,RequestClient as Sf,USwapConfig as HN,USwapError as Py,warnOnce as MN}from"@uswap/helpers";import{networks as IN}from"bitcoinjs-lib";import AT from"coininfo";async function RN({chain:T,txHash:x}){let N=`${Pf(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 Py("toolbox_utxo_broadcast_failed",{error:f.context.error||"Transaction broadcast failed"});return f.data?.transaction_hash||x}catch(f){let G=await WN(T);if(G){let L=JSON.stringify({id:V5(),jsonrpc:"2.0",method:"sendrawtransaction",params:[x]}),X=await Sf.post(G,{body:L,headers:{"Content-Type":"application/json"}});if(X.error)throw new Py("toolbox_utxo_broadcast_failed",{error:X.error?.message});if(X.result.includes('"code":-26'))throw new Py("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return X.result}throw f}}function Pf(T){return`https://api.blockchair.com/${CN(T)}`}function J2(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 wN(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,J2(T))}catch{return J2(T)}}async function h0(T,x){let N=await Sf.get(`${T}${x?`${T.includes("?")?"&":"?"}key=${x}`:""}`);if(!N||N.context.code!==200)throw new Py("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return N.data}async function z2({address:T,chain:x,apiKey:N}){if(!T)throw new Py("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await h0(`${Pf(x)}/dashboards/address/${T}?transaction_details=true`,N))[T]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function ON({address:T,chain:x,apiKey:N}){return(await z2({address:T,apiKey:N,chain:x}))?.address.balance||0}async function Q2({chain:T,apiKey:x,txHash:N}){if(!N)throw new Py("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await h0(`${Pf(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 h0(`${Pf(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:z,index:J,value:Q,spending_signature_hex:B})=>({hash:z,index:J,is_confirmed:q!==-1,is_spent:_,script_hex:Z,txHex:B,value:Q}))}function KN(T){return T.reduce((x,N)=>x+N.value,0)}function q2(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 B2({chain:T,address:x,apiKey:N,targetValue:y,accumulativeValue:f=0,offset:G=0,limit:L=30}){if(!x)throw new Py("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),z=KN(q),J=f+z,Q=y&&J>=y;if(Z||Q)return q2(q,y);let B=await B2({accumulativeValue:J,address:x,apiKey:N,chain:T,limit:L,offset:G+L,targetValue:y}),W=[...q,...B];return q2(W,y)}catch(X){let _=X instanceof Error?X.message:String(X);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function EN({address:T,chain:x,apiKey:N,fetchTxHex:y=!0,targetValue:f}){let G=await B2({address:T,apiKey:N,chain:x,targetValue:f}),L=[];for(let{hash:X,index:_,script_hex:Z,value:q}of G){let z;if(y)z=await Q2({apiKey:N,chain:x,txHash:X});L.push({address:T,hash:X,index:_,txHex:z,value:q,witnessUtxo:{script:Buffer.from(Z,"hex"),value:q}})}return L}function Ny(T){let x=HN.get("apiKeys").blockchair||"";return MN({condition:!x,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(N)=>RN({chain:T,txHash:N}),getAddressData:(N)=>z2({address:N,apiKey:x,chain:T}),getBalance:(N)=>ON({address:N,apiKey:x,chain:T}),getRawTx:(N)=>Q2({apiKey:x,chain:T,txHash:N}),getSuggestedTxFee:()=>wN(T),getUtxos:(N)=>EN({...N,apiKey:x,chain:T})}}function DN(T){return T}function Qy(){return function(x){switch(x){case a.Bitcoin:return IN.bitcoin;case a.BitcoinCash:return AT.bitcoincash.main.toBitcoinJS();case a.Dash:return AT.dash.main.toBitcoinJS();case a.Litecoin:return AT.litecoin.main.toBitcoinJS();case a.Dogecoin:{let N={private:70615956,public:70617039},y=AT.dogecoin.test;return y.versions.bip32=N,AT.dogecoin.main.toBitcoinJS()}case a.Zcash:return YN.zcash;default:throw new Py("toolbox_utxo_not_supported",{chain:x})}}}var Y2=K(()=>{YT()});import{USwapError as H2}from"@uswap/helpers";import M2 from"bs58check";import I2 from"cashaddrjs";function t0(T){try{return Uf(T),!0}catch{return!1}}function m0(T){return Uf(T)?.network}function LT(T){let x=Uf(T);if(x?.format==="legacy")return T;return UN(x)}function FT(T){let x=Uf(T);return vN(x)}function Uf(T){try{let x=SN(T);if(x)return x}catch{}try{let x=PN(T);if(x)return x}catch{}throw new H2("toolbox_utxo_invalid_address",{address:T})}function SN(T){try{let x=M2.decode(T);if(x.length!==21)throw new H2("toolbox_utxo_invalid_address",{address:T});let N=x[0],y=Array.prototype.slice.call(x,1);switch(N){case ty.legacy.mainnet.p2pkh:return{format:"legacy",hash:y,network:"mainnet",type:"p2pkh"};case ty.legacy.mainnet.p2sh:return{format:"legacy",hash:y,network:"mainnet",type:"p2sh"};case ty.legacy.testnet.p2pkh:return{format:"legacy",hash:y,network:"testnet",type:"p2pkh"};case ty.legacy.testnet.p2sh:return{format:"legacy",hash:y,network:"testnet",type:"p2sh"};case ty.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2pkh"};case ty.bitpay.mainnet.p2sh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function PN(T){if(T.indexOf(":")!==-1)try{return W2(T)}catch{}else{let x=["bitcoincash","bchtest","bchreg"];for(let N of x)try{return W2(`${N}:${T}`)}catch{}}return}function W2(T){try{let{hash:x,prefix:N,type:y}=I2.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 UN(T){let x=ty.legacy[T.network][T.type],N=Buffer.alloc(1+T.hash.length);return N[0]=x,N.set(T.hash,1),M2.encode(N)}function vN(T){let x=T.network==="mainnet"?"bitcoincash":"bchtest",N=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return I2.encode(x,N,y)}var p0,ty;var R2=K(()=>{((N)=>{N.Mainnet="mainnet";N.Testnet="testnet"})(p0||={});ty={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{USwapError as lN}from"@uswap/helpers";import{opcodes as AN,script as FN}from"bitcoinjs-lib";function By(T){let x=Buffer.from(T,"utf8");return FN.compile([AN.OP_RETURN,x])}var VN=1000,Af=10,C2=10,$N=41,nN=107,Ff,vf,lf,VT=(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 lN("toolbox_utxo_invalid_address",{address:T})},XT=({inputs:T,outputs:x,feeRate:N})=>{let y=T[0]&&"address"in T[0]&&T[0].address?VT(T[0].address):"P2PKH",f=T.filter((L)=>L.value>=vf["type"in L?L.type:"P2PKH"]*Math.ceil(N)).reduce((L,X)=>L+Uy(X),0),G=x?.reduce((L,X)=>L+$T(X),0)||lf[y];return Af+f+G},Uy=(T)=>{if("type"in T)return vf[T.type];if("address"in T&&T.address)return vf[VT(T.address)];return $N+nN},$T=(T,x)=>{if(T?.script)return C2+T.script.length+(T.script.length>=74?2:1);if(x)return lf[x];return lf.P2PKH};var c0=K(()=>{((N)=>{N.P2PKH="P2PKH";N.P2WPKH="P2WPKH"})(Ff||={});vf={["P2PKH"]:148,["P2WPKH"]:68},lf={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as my,USwapError as uN}from"@uswap/helpers";function Vf(T){switch(T){case my.Bitcoin:case my.BitcoinCash:return 550;case my.Dash:case my.Litecoin:return 5500;case my.Dogecoin:return 1e5;case my.Zcash:return 546;default:throw new uN("toolbox_utxo_not_supported",{chain:T})}}function Yy({inputs:T,outputs:x,feeRate:N=1,chain:y=my.Bitcoin,changeAddress:f=""}){let G=Math.ceil(N),L=T[0]&&"address"in T[0]&&T[0].address?VT(T[0].address):"P2PKH",X=T.filter((Q)=>Uy(Q)*G<=Q.value),_=Af+x.reduce((Q,B)=>Q+$T(B,L),0),Z=x.reduce((Q,B)=>Q+B.value,0),q=_*G,z=0,J=[];for(let Q of X){let B=Uy(Q),W=G*B;q+=W,z+=Q.value,J.push(Q);let M=q+Z;if(z<M)continue;let I=z-M,O=G*$T({address:"",value:0},L);if(I>O){let U=O+q,S=z-(Z+U);if(S>Math.max(Uy({})*G,Vf(y)))return{fee:U,inputs:J,outputs:x.concat({address:f,value:S})}}return{fee:q,inputs:J,outputs:x}}return{fee:G*XT({feeRate:G,inputs:T,outputs:x})}}var w2=K(()=>{c0()});var _T=K(()=>{Y2();R2();w2();c0()});import{networks as bN,address as jN}from"@bitgo/utxo-lib";import oN from"bs58check";function cy(T){return T.replace(/(bchtest:|bitcoincash:)/,"")}function vy(T){let x=cy(T);return t0(x)&&m0(x)==="mainnet"}function ZT(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=bN.zcash;try{return jN.toOutputScript(T,x),!0}catch{let N=oN.decode(T);if(N.length<21)return!1;let y=N[0];return y===x.pubKeyHash||y===x.scriptHash}}catch{return!1}}var nT=K(()=>{_T()});import g0 from"@bitcoinerlab/secp256k1";import{ECPair as hN,HDNode as pN}from"@psf/bitcoincashjs-lib";import{HDKey as tN}from"@scure/bip32";import{mnemonicToSeedSync as O2}from"@scure/bip39";import{AssetValue as i0,applyFeeMultiplier as k2,Chain as Ly,DerivationPath as mN,derivationPathToString as cN,FeeOption as wy,NetworkDerivationPath as iN,USwapError as Oy,USwapNumber as gN,updateDerivationPath as dN}from"@uswap/helpers";import{address as rN,initEccLib as E2,Psbt as aN,payments as K2}from"bitcoinjs-lib";import{ECPairFactory as sN}from"ecpair";function D2({inputs:T,outputs:x,chain:N,psbt:y,sender:f,compiledMemo:G}){for(let L of T){let X=!!L.witnessUtxo&&!uT.includes(N)&&{witnessUtxo:L.witnessUtxo},_=uT.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};E2(g0),y.addOutput(Z)}return{inputs:T,psbt:y}}async function S2({assetValue:T,recipient:x,memo:N,feeRate:y,sender:f,fetchTxHex:G=!1}){let L=T.chain,X=N?await By(N):null,_=await v2({assetValue:T,fetchTxHex:G,memo:N,recipient:x,sender:f}),{inputs:Z,outputs:q}=Yy({..._,chain:L,feeRate:y});if(!(Z&&q))throw new Oy("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let z=await Qy(),J=new aN({network:z(L)});if(L===Ly.Dogecoin)J.setMaximumFeeRate(650000000);let{psbt:Q,inputs:B}=await D2({chain:L,compiledMemo:X,inputs:Z,outputs:q,psbt:J,sender:f});return{inputs:B,psbt:Q,utxos:_.inputs}}async function P2(){let T=await Qy();return function({address:N,chain:y}){if(y===Ly.BitcoinCash)return vy(N);if(y===Ly.Zcash)return ZT(N);try{return E2(g0),rN.toOutputScript(N,T(y)),!0}catch{return!1}}}async function eN({chain:T,phrase:x,derivationPath:N}){let y=(await bT(T))({derivationPath:N,phrase:x});async function f(L){return await L.signAllInputs(y),L}function G(){return d0(T)(y)}return{getAddress:G,signTransaction:f}}async function iy({chain:T,...x}){let N="phrase"in x?x.phrase:void 0,y="index"in x?x.index||0:0,f=cN("derivationPath"in x&&x.derivationPath?x.derivationPath:dN(iN[T],{index:y})),G=N?await eN({chain:T,derivationPath:f,phrase:N}):("signer"in x)?x.signer:void 0;function L(){return Promise.resolve(G?.getAddress())}let X=await P2(),_=await bT(T);return{accumulative:Yy,broadcastTx:(Z)=>Ny(T).broadcastTx(Z),calculateTxSize:XT,createKeysForPath:_,createTransaction:S2,estimateMaxSendableAmount:yL(T),estimateTransactionFee:TL(T),getAddress:L,getAddressFromKeys:d0(T),getBalance:dy(T),getFeeRates:()=>jT(T),getInputsOutputsFee:U2,getPrivateKeyFromMnemonic:(Z)=>{return _(Z).toWIF()},transfer:fL(G),validateAddress:(Z)=>X({address:Z,chain:T})}}async function U2({assetValue:T,feeOptionKey:x=wy.Fast,feeRate:N,memo:y,sender:f,recipient:G}){let L=T.chain,X=await v2({assetValue:T,memo:y,recipient:G,sender:f}),_=N?Math.floor(N):(await jT(L))[x];return Yy({...X,chain:L,feeRate:_})}function yL(T){return async function({from:N,memo:y,feeRate:f,feeOptionKey:G=wy.Fast,recipients:L=1}){let X=await Ny(T).getAddressData(N),_=f?Math.ceil(f):(await jT(T))[G],Z=X?.utxo.map((B)=>({...B,hash:"",type:"P2PKH"})).filter((B)=>B.value>Math.max(Vf(T),Uy(B)*_));if(!Z?.length)return i0.from({chain:T});let q=i0.from({chain:T,value:Z.reduce((B,W)=>B+W.value,0)}),z=typeof L==="number"?Array.from({length:L},()=>({address:N,value:0})):L;if(y){let B=await By(y);z.push({address:N,script:B,value:0})}let Q=XT({feeRate:_,inputs:Z,outputs:z})*_;return q.sub(Q)}}function TL(T){return async(x)=>{let N=await U2(x);return i0.from({chain:T,value:gN.fromBigInt(BigInt(N.fee),8).getValue("string")})}}async function bT(T){let x=await Qy();switch(T){case Ly.BitcoinCash:return function({phrase:y,derivationPath:f=`${mN.BCH}/0`,wif:G}){let L=x(T);if(G)return hN.fromWIF(G,L);if(!y)throw new Oy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return pN.fromSeedBuffer(Buffer.from(O2(y)),L).derivePath(f).keyPair};case Ly.Bitcoin:case Ly.Dogecoin:case Ly.Litecoin:case Ly.Zcash:case Ly.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=sN(g0),X=x(T);if(f)return L.fromWIF(f,X);let _=O2(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 d0(T){let x=Qy();return function(y){if(!y)throw new Oy("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let f=uT.includes(T)?K2.p2pkh:K2.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 fL(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 jT(_))[f||wy.Fast],{psbt:q}=await S2({assetValue:L,feeRate:Z,memo:N,recipient:y,sender:X}),z=await T.signTransaction(q);return z.finalizeAllInputs(),Ny(_).broadcastTx(z.extractTransaction().toHex())}}async function jT(T){let x=await Ny(T).getSuggestedTxFee();return{[wy.Average]:x,[wy.Fast]:k2(x,wy.Fast),[wy.Fastest]:k2(x,wy.Fastest)}}async function v2({assetValue:T,recipient:x,memo:N,sender:y,fetchTxHex:f=!1}){let G=T.chain,L=(await jT(G))[wy.Fastest],X=f||uT.includes(G),_=T.getBaseValue("number"),Z=Math.ceil(_+L*5000);return{inputs:await Ny(G).getUtxos({address:y,fetchTxHex:X,targetValue:Z}),outputs:[{address:x,value:_},...N?[{address:"",script:await By(N),value:0}]:[]]}}var uT;var oT=K(()=>{YT();_T();nT();uT=[Ly.Dash,Ly.Dogecoin,Ly.Zcash,Ly.BitcoinCash]});import{address as xL,Transaction as GL,TransactionBuilder as NL}from"@psf/bitcoincashjs-lib";import{Chain as LL,derivationPathToString as XL,FeeOption as _L,NetworkDerivationPath as ZL,USwapError as JT,updateDerivationPath as JL}from"@uswap/helpers";import{Psbt as qL}from"bitcoinjs-lib";function gy(T){return cy(FT(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(gy(y))},signTransaction:x}}async function r0(T){let x="phrase"in T?T.phrase:void 0,N="index"in T?T.index||0:0,y=XL("derivationPath"in T&&T.derivationPath?T.derivationPath:JL(ZL[Zy],{index:N})),f=x?(await bT(Zy))({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 iy({chain:Zy});function z(J,Q=!0){return X(cy(FT(J)))}return{...q,broadcastTx:Z,buildTx:BL,createTransaction:l2,getAddress:L,getAddressFromKeys:YL,getBalance:z,getFeeRates:_,stripPrefix:cy,stripToCashAddress:gy,transfer:QL({broadcastTx:Z,getFeeRates:_,signer:G}),validateAddress:vy}}async function l2({assetValue:T,recipient:x,memo:N,feeRate:y,sender:f}){if(!vy(x))throw new JT("toolbox_utxo_invalid_address",{address:x});let G=Math.ceil(T.getBaseValue("number")+y*7500),L=await Ny(Zy).getUtxos({address:gy(f),fetchTxHex:!0,targetValue:G}),X=N?await By(N):null,_=[];_.push({address:x,value:T.getBaseValue("number")});let{inputs:Z,outputs:q}=Yy({chain:Zy,feeRate:y,inputs:L,outputs:_});if(!(Z&&q))throw new JT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let z=await Qy(),J=new NL(z(Zy));await Promise.all(Z.map(async(Q)=>{let B=await Ny(Zy).getRawTx(Q.hash);J.addInput(GL.fromBuffer(Buffer.from(B,"hex")),Q.index)}));for(let Q of q){let B="address"in Q&&Q.address?Q.address:LT(f),W=await Qy(),M=xL.toOutputScript(LT(B),W(Zy));J.addOutput(M,Q.value)}if(X)J.addOutput(X,0);return{builder:J,utxos:Z}}function QL({broadcastTx:T,getFeeRates:x,signer:N}){return async function({recipient:f,assetValue:G,feeOptionKey:L=_L.Fast,...X}){let _=await N?.getAddress();if(!(N&&_))throw new JT("toolbox_utxo_no_signer");if(!f)throw new JT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Z=X.feeRate||(await x())[L],{builder:q,utxos:z}=await l2({...X,assetValue:G,feeRate:Z,recipient:f,sender:_}),Q=(await N.signTransaction({builder:q,utxos:z})).toHex();return T(Q)}}async function BL({assetValue:T,recipient:x,memo:N,feeRate:y,sender:f,setSigHashType:G}){let L=FT(x);if(!vy(L))throw new JT("toolbox_utxo_invalid_address",{address:L});let X=Math.ceil(T.getBaseValue("number")+y*7500),_=await Ny(Zy).getUtxos({address:gy(f),fetchTxHex:!1,targetValue:X}),Z=Number(y.toFixed(0)),q=N?await By(N):null,z=[];if(z.push({address:LT(x),value:T.getBaseValue("number")}),q)z.push({script:q,value:0});let{inputs:J,outputs:Q}=Yy({chain:Zy,feeRate:Z,inputs:_,outputs:z});if(!(J&&Q))throw new JT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let B=await Qy(),W=new qL({network:B(Zy)});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 Q){let I="address"in M&&M.address?M.address:LT(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 YL(T){let x=T.getAddress(0);return gy(x)}var Zy;var $f=K(()=>{_T();oT();nT();Zy=LL.BitcoinCash});import{bitgo as WL,crypto as HL,ECPair as V2,networks as ML,address as IL}from"@bitgo/utxo-lib";import{ZcashTransaction as A2}from"@bitgo/utxo-lib/dist/src/bitgo";import{HDKey as $2}from"@scure/bip32";import{mnemonicToSeedSync as n2}from"@scure/bip39";import{Chain as nf,derivationPathToString as RL,FeeOption as CL,NetworkDerivationPath as wL,USwapConfig as OL,USwapError as uf,updateDerivationPath as kL}from"@uswap/helpers";import KL from"bs58check";import{match as EL,P as a0}from"ts-pattern";function s0(){return ML.zcash}function u2(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
+ `,pubKeyHash:28,scriptHash:28,wif:128}}function DL({phrase:T,derivationPath:x}){let N=n2(T),f=$2.fromMasterSeed(N).derive(x);if(!f.privateKey)throw new uf("toolbox_utxo_invalid_params");let G=u2(),L=V2.fromPrivateKey(Buffer.from(f.privateKey),{network:G}),X=HL.hash160(L.publicKey),{isStagenet:_}=OL.get("envs"),Z=_?Buffer.from([29,37]):Buffer.from([28,184]),q=Buffer.concat([Z,X]),z=KL.encode(q);return{getAddress:()=>Promise.resolve(z),signTransaction:(J)=>{let Q=J.signAllInputs(L);return Promise.resolve(Q)}}}function SL({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:IL.toOutputScript(L,s0()),value:BigInt(G.value)};N.addOutput(_)}return{inputs:T,psbt:N}}async function F2(T){let{assetValue:x,recipient:N,memo:y,feeRate:f,sender:G,fetchTxHex:L}=T,X=y?By(y):null,_=await Ny(nf.Zcash).getUtxos({address:G,fetchTxHex:L!==!1}),Z=[{address:N,value:Number(x.getBaseValue("string"))},...X?[{script:X,value:0}]:[]],{inputs:q,outputs:z}=Yy({chain:nf.Zcash,changeAddress:G,feeRate:f,inputs:_,outputs:Z});if(!(q&&z))throw new uf("toolbox_utxo_insufficient_balance",{assetValue:x,sender:G});let J=WL.createPsbtForNetwork({network:s0()},{version:A2.VERSION4_BRANCH_NU6_1}),{psbt:Q,inputs:B}=await SL({compiledMemo:X,inputs:q,outputs:z,psbt:J,sender:G});return Q.setDefaultsForVersion(s0(),A2.VERSION4_BRANCH_NU6_1),{inputs:B,outputs:z,psbt:Q}}async function e0(T){let x=await EL(T).with({signer:a0.not(a0.nullish)},({signer:L})=>Promise.resolve(L)).with({phrase:a0.string},({phrase:L,derivationPath:X,index:_=0})=>{let Z=X||wL[nf.Zcash]||[44,133,0,0,0],q=kL(Z,{index:_}),z=RL(q);return DL({derivationPath:z,phrase:L})}).otherwise(()=>Promise.resolve(void 0)),N=await iy({chain:nf.Zcash,signer:x});async function y({recipient:L,assetValue:X,feeOptionKey:_=CL.Fast,...Z}){let q=await x?.getAddress();if(!(x&&q))throw new uf("toolbox_utxo_no_signer");let z=Z.feeRate||(await N.getFeeRates())[_],{psbt:J}=await F2({...Z,assetValue:X,feeRate:z,recipient:L,sender:q}),Q=await x.signTransaction(J);Q.validateSignaturesOfAllInputs(),Q.finalizeAllInputs();let W=Q.extractTransaction().toHex();return N.broadcastTx(W)}function f({phrase:L,derivationPath:X="m/44'/133'/0'/0/0"}){let _=n2(L),q=$2.fromMasterSeed(_).derive(X);if(!q.privateKey)throw new uf("toolbox_utxo_invalid_params");let z=u2();return V2.fromPrivateKey(Buffer.from(q.privateKey),{network:z})}function G({phrase:L,derivationPath:X="m/44'/133'/0'/0/0"}){return f({derivationPath:X,phrase:L}).toWIF()}return{...N,createKeysForPath:f,createTransaction:F2,getPrivateKeyFromMnemonic:G,transfer:y,validateAddress:ZT}}var y5=K(()=>{_T();oT();nT()});import{Chain as qT,USwapError as PL}from"@uswap/helpers";async function UL(T,x){switch(T){case qT.BitcoinCash:return await r0(x||{});case qT.Zcash:return await e0(x);case qT.Bitcoin:case qT.Dogecoin:case qT.Litecoin:case qT.Dash:return await iy({chain:T,...x});default:throw new PL("toolbox_utxo_not_supported",{chain:T})}}var b2=K(()=>{$f();oT();y5();$f();nT()});var T5={};yy(T5,{validateZcashAddress:()=>ZT,toLegacyAddress:()=>LT,toCashAddress:()=>FT,stripToCashAddress:()=>gy,stripPrefix:()=>cy,nonSegwitChains:()=>uT,isValidAddress:()=>t0,getUtxoToolbox:()=>UL,getUtxoNetwork:()=>Qy,getUtxoApi:()=>Ny,getUTXOAddressValidator:()=>P2,getScriptTypeForAddress:()=>VT,getOutputSize:()=>$T,getInputSize:()=>Uy,getDustThreshold:()=>Vf,getCreateKeysForPath:()=>bT,detectAddressNetwork:()=>m0,createZcashToolbox:()=>e0,createUTXOToolbox:()=>iy,createCustomUtxoApi:()=>DN,createBCHToolbox:()=>r0,compileMemo:()=>By,calculateTxSize:()=>XT,bchValidateAddress:()=>vy,addressFromKeysGetter:()=>d0,addInputsAndOutputs:()=>D2,accumulative:()=>Yy,UtxoNetwork:()=>p0,UTXOScriptType:()=>Ff,TX_OVERHEAD:()=>Af,OutputSizes:()=>lf,OP_RETURN_OVERHEAD:()=>C2,MIN_TX_FEE:()=>VN,InputSizes:()=>vf});var f5=K(()=>{_T();b2();$f();oT();y5()});import{KeyPairSigner as vL}from"@near-js/signers";import{derivationPathToString as lL,USwapError as AL}from"@uswap/helpers";async function bf(){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 jf(T){let{parseSeedPhrase:x}=await import("near-seed-phrase"),{KeyPair:N}=await import("@near-js/crypto"),y=T.index||0,f=T.derivationPath?lL(T.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:G}=x(T.phrase,f),L=N.fromString(G);return o2(L)}async function x5(T){let{KeyPair:x}=await import("@near-js/crypto"),N=x.fromString(T);return o2(N)}function o2(T){return new j2(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 AL("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 j2;var G5=K(()=>{j2=class j2 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 N5(T){return"recipient"in T&&"amount"in T&&!("contractId"in T)}function L5(T){return"contractId"in T&&"methodName"in T}function X5(T){return"actions"in T}function _5(T){return"newAccountId"in T}function Z5(T){return"contractCode"in T}function J5(T){return"customEstimator"in T}function q5(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 z5(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 FL(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function VL(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var s;var Q5=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 B5({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 h2,Chain as zT,getChainConfig as p2,getRPCUrl as $L,USwapError as fy}from"@uswap/helpers";async function nL(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(Y)=>{return await jf(Y)}).with({signer:x.any},({signer:Y})=>Y).otherwise(()=>{return}),G=await $L(zT.Near),L=new y({url:G});async function X(Y){let{Account:R}=await import("@near-js/accounts"),w=Y||await _();return new R(w,L,f)}async function _(){if(!f)throw new fy("toolbox_near_no_signer");return await f.getAddress()}async function Z(Y){return(await i({changeMethods:[],contractId:Y.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:Y.accountId})}async function q(Y){let w=[await W({args:{account_id:Y.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await W({args:{amount:Y.assetValue.getBaseValue("string"),memo:Y.memo||null,receiver_id:Y.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return xy({actions:w,receiverId:Y.contractId})}async function z(Y){if(!f)throw new fy("toolbox_near_no_signer");let{assetValue:R,recipient:w,memo:v}=Y,n=await _();if(!R.isGasAsset&&R.address){if(!await Z({accountId:w,contractId:R.address}))return q({assetValue:R,contractId:R.address,memo:v,recipient:w})}let $=await J({...Y,sender:n});return O($)}async function J(Y){let{recipient:R,assetValue:w,memo:v,attachedDeposit:n,sender:$,functionCall:F}=Y,j=await bf();if(!j(R))throw new fy("toolbox_near_invalid_address",{recipient:R});if(!j($))throw new fy("toolbox_near_invalid_address",{signerId:$});if(F)return B({...F,sender:$});if(!w.isGasAsset){let mT=w.address;if(!mT)throw new fy("toolbox_near_missing_contract_address");return B({args:{amount:w.getBaseValue("string"),memo:v||null,receiver_id:R},attachedDeposit:n||"1",contractId:mT,gas:"250000000000000",methodName:"ft_transfer",sender:$})}let{publicKey:g,nonce:e}=await of(L,$),Gy=w.getBaseValue("bigint"),{actionCreators:Fy,createTransaction:hT}=await import("@near-js/transactions"),{baseDecode:hf}=await import("@near-js/utils"),Vy=[Fy.transfer(Gy)];if(v&&n)Vy.push(Fy.functionCall("memo",{memo:v},BigInt("250000000000000"),BigInt(n)));let pT=await L.block({finality:"final"}),tT=hf(pT.header.hash);return hT($,g,R,e+1,Vy,tT)}function Q(Y){let R=Y.encode();return Buffer.from(R).toString("base64")}async function B(Y){let{sender:R}=Y,{publicKey:w,nonce:v}=await of(L,R),{createTransaction:n,actionCreators:$}=await import("@near-js/transactions"),{baseDecode:F}=await import("@near-js/utils"),j=await L.block({finality:"final"}),g=F(j.header.hash),e=[$.functionCall(Y.methodName,Buffer.from(JSON.stringify(Y.args)),BigInt(Y.gas),BigInt(Y.attachedDeposit))];return n(R,w,Y.contractId,v+1,e,g)}async function W(Y){let{actionCreators:R}=await import("@near-js/transactions");return R.functionCall(Y.methodName,Buffer.from(JSON.stringify(Y.args)),BigInt(Y.gas),BigInt(Y.attachedDeposit))}async function M(Y){if(!f)throw new fy("toolbox_near_no_signer");let[R,w]=await f.signTransaction(Y);return w}async function I(Y){return(await L.sendTransaction(Y)).transaction.hash}async function O(Y){if(!f)throw new fy("toolbox_near_no_signer");try{let R=await M(Y);return await I(R)}catch{return f.signAndSendTransactions?.({transactions:[Y]})}}async function U(Y){if("assetValue"in Y){let n=BigInt("115123062500")+BigInt("108059500000"),$=await S(),F=n*BigInt($.toString()),{baseDecimal:j}=p2(zT.Near);return h2.from({chain:zT.Near,fromBaseDecimal:j,value:F.toString()})}let R=f?await X():void 0;return E(Y,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 l(Y,R,w){if(!f)throw new fy("toolbox_near_no_signer");let v=await X(),{formatNearAmount:n}=await import("@near-js/utils"),{PublicKey:$}=await import("@near-js/crypto"),F=n(w)||"0";return(await v.createAccount(Y,$.fromString(R),BigInt(F))).transaction.hash}async function b(Y){try{if(!f)throw new fy("toolbox_near_no_signer");let{actionCreators:R}=await import("@near-js/transactions"),{contractId:w,methodName:v,args:n,deposit:$}=Y,F=await X(),j=await E({args:n||{},contractId:w,methodName:v}),g=R.functionCall(v,n||{},j.getBaseValue("bigint"),BigInt($||"1"));return(await F.signAndSendTransaction({actions:[g],receiverId:w})).transaction_outcome.id}catch(R){throw new fy("toolbox_near_transfer_failed",{error:R})}}async function i(Y){let R=await X();return B5({account:R,changeMethods:Y.changeMethods,contractId:Y.contractId,viewMethods:Y.viewMethods})}async function xy(Y){if(!f)throw new fy("toolbox_near_no_signer");if(Y.actions.length===0)throw new fy("toolbox_near_empty_batch");return(await(await X()).signAndSendTransaction({actions:Y.actions,receiverId:Y.receiverId})).transaction.hash}async function E(Y,R){let{baseDecimal:w}=p2(zT.Near),v=await N(Y).when(N5,()=>s.SIMPLE_TRANSFER).when(L5,(F)=>z5(F.methodName)).when(X5,(F)=>q5(F.actions)).when(_5,()=>s.ACCOUNT_CREATION).when(Z5,()=>s.CONTRACT_DEPLOYMENT).when(J5,(F)=>{if(!R)throw new fy("toolbox_near_no_account");return F.customEstimator(R)}).otherwise(()=>{throw new fy("toolbox_near_invalid_gas_params")}),$=BigInt(v)*BigInt(1000000000000);return h2.from({chain:zT.Near,fromBaseDecimal:w,value:$})}async function P(){try{return(await L.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:I,callFunction:b,createAction:W,createContract:i,createContractFunctionCall:B,createSubAccount:l,createTransaction:J,estimateGas:E,estimateTransactionFee:U,executeBatchTransaction:xy,getAddress:_,getBalance:dy(zT.Near),getGasPrice:P,getPublicKey:async()=>f?(await f.getPublicKey()).toString():"",getSignerFromPhrase:(Y)=>jf(Y),getSignerFromPrivateKey:x5,provider:L,serializeTransaction:Q,signAndSendTransaction:O,signTransaction:M,transfer:z,validateAddress:await bf()}}var Y5=K(()=>{YT();G5();Q5()});var t2=K(()=>{Y5()});var W5={};yy(W5,{tgasToGas:()=>FL,isSimpleTransfer:()=>N5,isCustomEstimator:()=>J5,isContractDeployment:()=>Z5,isContractCall:()=>L5,isBatchTransaction:()=>X5,isAccountCreation:()=>_5,getValidateNearAddress:()=>bf,getNearToolbox:()=>nL,getNearSignerFromPrivateKey:()=>x5,getNearSignerFromPhrase:()=>jf,getFullAccessPublicKey:()=>of,getContractMethodGas:()=>z5,gasToTGas:()=>VL,estimateBatchGas:()=>q5,createNearContract:()=>B5,GAS_COSTS:()=>s});var H5=K(()=>{G5();Q5();Y5();t2()});var I5={};yy(I5,{radixValidateAddress:()=>c2,RadixToolbox:()=>tL});import{AssetValue as m2,Chain as M5,USwapConfig as uL,USwapError as bL}from"@uswap/helpers";function c2(T){return T.startsWith("account_rdx1")&&T.length===66}function jL({networkApi:T}){return async function(N){let y=await oL({address:N,networkApi:T}),f=await hL({networkApi:T,resources:y});if(!f.some((L)=>L.isGasAsset))return[m2.from({chain:M5.Radix}),...f];return f}}async function oL({address:T,networkApi:x}){let N=!0,y,f=[],G=await pL(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 hL({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"),z=q?.value.typed.type==="String"?q.value.typed.value:"?";if(Z.details.type==="FungibleResource")_.set(Z.address,{decimals:Z.details.divisibility,symbol:z})}for(let Z of G)if(Z.aggregation_level==="Global"){let q=_.get(Z.resource_address)||{decimals:0,symbol:"?"},z=m2.from({asset:q.symbol!==M5.Radix?`${M5.Radix}.${q.symbol}-${Z.resource_address}`:"XRD.XRD",value:Z.amount});N.push(z)}}return N}function pL(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||uL.get("integrations").radix,f=x({...y,networkId:y.network?.networkId||1}),G=N.initialize(f.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:jL({networkApi:G}),networkApi:G,signAndBroadcast:()=>{throw new bL("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:c2}};var R5=()=>{};var O5={};yy(O5,{rippleValidateAddress:()=>w5,hashes:()=>eL,getRippleToolbox:()=>sL});import{AssetValue as C5,Chain as ky,getChainConfig as i2,getRPCUrl as mL,USwapError as ly,USwapNumber as cL}from"@uswap/helpers";import{Client as iL,isValidAddress as gL,Wallet as dL,xrpToDrops as rL}from"xrpl";import{hashes as eL}from"xrpl";function g2(T){let x=dL.fromMnemonic(T);return{getAddress:()=>Promise.resolve(x.address),signTransaction:(N)=>Promise.resolve(x.sign(N))}}function w5(T){return gL(T)}var aL,sL=async(T={})=>{let x="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?g2(T.phrase):void 0,N=await mL(ky.Ripple);if(!N)throw new ly({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:ky.Ripple}});let y=new iL(N);await y.connect();let f=()=>{if(!x)throw new ly({errorKey:"toolbox_ripple_signer_not_found"});return x.getAddress()},G=async(J)=>{let Q=J||await f(),{baseDecimal:B}=i2(ky.Ripple);try{let M=(await y.request({account:Q,command:"account_info"})).result.account_data.Balance;return[C5.from({chain:ky.Ripple,fromBaseDecimal:B,value:M})]}catch(W){if(W.data.error_code===aL.ACCOUNT_NOT_FOUND)return[C5.from({chain:ky.Ripple,value:0})];throw new ly("toolbox_ripple_get_balance_error",{info:{address:Q,error:W}})}},L=async()=>{let Q=(await y.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:B}=i2(ky.Ripple);return C5.from({chain:ky.Ripple,fromBaseDecimal:B,value:cL.fromBigInt(BigInt(Q),B)})},X=async({assetValue:J,recipient:Q,memo:B,sender:W})=>{if(!w5(Q))throw new ly({errorKey:"core_transaction_invalid_recipient_address"});let M=W||await f();if(!J.isGasAsset||J.chain!==ky.Ripple)throw new ly({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:J.toString()}});let I={Account:M,Amount:rL(J.getValue("string")),Destination:Q,TransactionType:"Payment"};if(B)I.Memos=[{Memo:{MemoData:Buffer.from(B).toString("hex")}}];return await y.autofill(I)},_=(J)=>{if(!x)throw new ly({errorKey:"toolbox_ripple_signer_not_found"});return x.signTransaction(J)},Z=async(J)=>{let B=(await y.submitAndWait(J)).result;if(B.validated)return B.hash;throw new ly({errorKey:"toolbox_ripple_broadcast_error",info:{chain:ky.Ripple}})};return{broadcastTransaction:Z,createSigner:g2,createTransaction:X,disconnect:()=>y.disconnect(),estimateTransactionFee:L,getAddress:f,getBalance:G,signer:x,signTransaction:_,transfer:async(J)=>{if(!x)throw new ly({errorKey:"toolbox_ripple_signer_not_found"});let Q=await x.getAddress(),B=await X({...J,sender:Q}),W=await _(B);return Z(W.tx_blob)},validateAddress:w5}};var k5=K(()=>{aL={ACCOUNT_NOT_FOUND:19}});import{AssetValue as yX,Chain as TX,USwapNumber as d2}from"@uswap/helpers";async function fX(T,x,N){try{let y=await T.query.system?.account?.(N);if(!y)return[x.set(0)];let{data:{free:f}}=y,G=d2.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 xX(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=d2.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 r2(T,x){return function(y){let f=yX.from({chain:T});switch(T){case TX.Chainflip:return xX(x,f,y);default:return fX(x,f,y)}}}var a2=()=>{};var GX,NX,LX,Ay;var K5=K(()=>{GX={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},NX={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},LX={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},Ay={DOT:GX,FLIP:NX,GENERIC:LX}});import{hexToU8a as XX,isHex as _X,u8aToHex as ZX}from"@polkadot/util";import{decodeAddress as e2,encodeAddress as yx}from"@polkadot/util-crypto";import{AssetValue as JX,Chain as BT,getRPCUrl as qX,USwapError as Wy,USwapNumber as zX}from"@uswap/helpers";import{match as QX,P as s2}from"ts-pattern";function BX(T,x){switch(T){case BT.Chainflip:return fx(x);case BT.Polkadot:return Tx(x);default:throw new Wy("toolbox_substrate_not_supported",{chain:T})}}function QT(T){return"address"in T}async function D5(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=e2(T);return yx(N,x)}function xx(T,x){return _X(T)?XX(T):e2(T,void 0,x)}function Gx(T,x="ss58",N){if(x==="hex")return ZX(T);return yx(T,N)}async function U5({generic:T,chain:x,...N}){let{ApiPromise:y,WsProvider:f}=await import("@polkadot/api"),G=await qX(x),L=new f(G),X=await y.create({noInitWarn:!0,provider:L}),_=JX.from({chain:x}),Z=T?Ay.GENERIC:Ay[x],q=await QX(N).with({phrase:s2.string},({phrase:z})=>D5(z,Ay[x].prefix)).with({signer:s2.any},({signer:z})=>z).otherwise(()=>{return});return Nx({api:X,chain:x,gasAsset:_,network:Z,signer:q})}var Tx=({generic:T=!1,...x}={})=>{return U5({chain:BT.Polkadot,generic:T,...x})},fx=async({generic:T=!1,...x}={})=>{return{...await U5({chain:BT.Chainflip,generic:T,...x})}},S5=(T,x)=>T.rpc.system.accountNextIndex(x),E5=(T,x)=>{try{let N=xx(T,x);return Gx(N,"ss58",x),!0}catch{return!1}},P5=(T,{recipient:x,assetValue:N})=>T.tx.balances?.transferAllowDeath?.(x,N.getBaseValue("number")),YX=async(T,x,{recipient:N,assetValue:y,sender:f})=>{let G=P5(T,{assetValue:y,recipient:N});if(!G)throw new Wy("toolbox_substrate_transfer_error");let L=QT(x),X=L?x.address:f;if(!X)throw new Wy("core_transaction_invalid_sender_address");let _=await S5(T,X);return(await G.signAndSend(L?x:X,{nonce:_,signer:L?void 0:x})).toString()},WX=async(T,x,N,{recipient:y,assetValue:f,sender:G})=>{let L=P5(T,{assetValue:f,recipient:y}),X=QT(x)?x.address:G;if(!X)return;let _=await L?.paymentInfo(X,{nonce:await S5(T,X)})||{partialFee:0};return N.set(zX.fromBigInt(BigInt(_.partialFee.toString()),N.decimal).getValue("string"))},HX=async(T,x)=>{if(x)return T.send(x);return(await T.send()).toString()},MX=async(T,x)=>{return await x.signAsync(T)},IX=(T,x,N)=>{if(N)return x.signAndSend(T,N);return x.signAndSend(T).toString()},RX=async({signer:T,address:x,tx:N,callback:y,api:f})=>{let G=await S5(f,x);if(y)N.signAndSend(x,{nonce:G,signer:T},y);return N.signAndSend(x,{nonce:G,signer:T}).toString()},Nx=({api:T,network:x,gasAsset:N,signer:y,chain:f})=>({api:T,broadcast:HX,convertAddress:CX,createKeyring:(G)=>D5(G,x.prefix),createTransaction:(G)=>P5(T,G),decodeAddress:xx,encodeAddress:Gx,estimateTransactionFee:(G)=>{if(!y)throw new Wy("core_wallet_not_keypair_wallet");return WX(T,y,N,G)},gasAsset:N,getAddress:(G)=>{let L=G||y;if(!L)throw new Wy("core_wallet_not_keypair_wallet");return QT(L)?L.address:void 0},getBalance:r2(f||BT.Polkadot,T),network:x,sign:(G)=>{if(!y)throw new Wy("core_wallet_not_keypair_wallet");if(QT(y))return MX(y,G);throw new Wy("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 Wy("core_wallet_not_keypair_wallet");if(QT(y))return IX(y,G,L);if(X)return RX({address:X,api:T,callback:L,signer:y,tx:G});throw new Wy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(G)=>{if(!y)throw new Wy("core_wallet_not_keypair_wallet");return YX(T,y,G)},validateAddress:(G)=>E5(G,x.prefix)}),wX=({address:T,chain:x})=>{let{prefix:N}=x===BT.Polkadot?Ay.DOT:Ay.FLIP;return E5(T,N)||E5(T,Ay.GENERIC.prefix)};var Lx=K(()=>{a2();K5()});var v5={};yy(v5,{substrateValidateAddress:()=>wX,isKeyringPair:()=>QT,getSubstrateToolbox:()=>BX,createSubstrateToolbox:()=>U5,createKeyring:()=>D5,SubstrateNetwork:()=>Ay,PolkadotToolbox:()=>Tx,ChainflipToolbox:()=>fx,BaseSubstrateToolbox:()=>Nx});var l5=K(()=>{Lx();K5()});import{AssetValue as OX,Chain as A,CosmosChains as _x,EVMChains as A5,FeeOption as kX,SubstrateChains as KX,USwapError as EX,UTXOChains as Zx}from"@uswap/helpers";async function A4(){let{match:T}=await import("ts-pattern"),{evmValidateAddress:x}=await Promise.resolve().then(() => (X1(),L1)),{getCardanoAddressValidator:N}=await Promise.resolve().then(() => (L0(),N0)),{getCosmosValidateAddress:y}=await Promise.resolve().then(() => (wf(),Cf)),{getSolanaAddressValidator:f}=await Promise.resolve().then(() => (F0(),A0)),{getSuiAddressValidator:G}=await Promise.resolve().then(() => (Kf(),kf)),{getTONAddressValidator:L}=await Promise.resolve().then(() => (Df(),Ef)),{getTronAddressValidator:X}=await Promise.resolve().then(() => (o0(),j0)),{getUTXOAddressValidator:_}=await Promise.resolve().then(() => (f5(),T5)),{getValidateNearAddress:Z}=await Promise.resolve().then(() => (H5(),W5)),{radixValidateAddress:q}=await Promise.resolve().then(() => (R5(),I5)),{rippleValidateAddress:z}=await Promise.resolve().then(() => (k5(),O5)),{substrateValidateAddress:J}=await Promise.resolve().then(() => (l5(),v5)),Q=await N(),B=await Z(),W=await f(),M=await G(),I=await L(),O=await X(),U=await _();return function({address:l,chain:b}){return T(b).with(...A5,()=>x({address:l})).with(...Zx,()=>U({address:l,chain:b})).with(A.Cosmos,A.Kujira,A.Noble,A.Maya,A.THORChain,(xy)=>{return y(xy)(l)}).with(A.Chainflip,A.Polkadot,()=>J({address:l,chain:b})).with(A.Radix,()=>q(l)).with(A.Near,()=>B(l)).with(A.Ripple,()=>z(l)).with(A.Solana,()=>W(l)).with(A.Sui,()=>M(l)).with(A.Ton,()=>I(l)).with(A.Tron,()=>O(l)).with(A.Cardano,()=>Q(l)).otherwise(()=>!1)}}function F4(T){return async function(N){let{match:y}=await import("ts-pattern");return y(T).returnType().with(...A5,async(f)=>{let G=await Xx(f),L=await G.createTransaction(N);return G.estimateTransactionFee({...L,chain:f,feeOption:N.feeOptionKey||kX.Fast})}).with(A.Bitcoin,A.BitcoinCash,A.Dogecoin,A.Dash,A.Litecoin,A.Polkadot,A.Solana,A.Ripple,A.Tron,A.Near,A.Cardano,async(f)=>{return(await Xx(f)).estimateTransactionFee(N)}).with(A.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (Kf(),kf));return(await f()).estimateTransactionFee(N)}).with(A.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (Df(),Ef));return(await f()).estimateTransactionFee()}).with(..._x,async()=>{let{estimateTransactionFee:f}=await Promise.resolve().then(() => (wf(),Cf));return f(N)}).otherwise(async()=>OX.from({chain:T}))}}async function Xx(T,x){let{match:N}=await import("ts-pattern");return N(T).returnType().with(...A5,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (x0(),x1));return await y(T,x)}).with(...Zx,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (f5(),T5));return await y(T,x)}).with(..._x,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (wf(),Cf));return await y(T,x)}).with(...KX,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (l5(),v5));return await y(T,x)}).with(A.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (R5(),I5));return await y(x)}).with(A.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (k5(),O5));return await y(x)}).with(A.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (F0(),A0));return await y(x)}).with(A.Sui,async()=>{let{getSuiToolbox:y}=await Promise.resolve().then(() => (Kf(),kf));return await y(x)}).with(A.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (o0(),j0));return await y(x)}).with(A.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (H5(),W5));return await y(x)}).with(A.Cardano,async()=>{let{getCardanoToolbox:y}=await Promise.resolve().then(() => (L0(),N0));return await y(x)}).with(A.Ton,async()=>{let{getTONToolbox:y}=await Promise.resolve().then(() => (Df(),Ef));return await y(x)}).otherwise(()=>{throw new EX("toolbox_not_supported",{chain:T})})}export{Xx as getToolbox,F4 as getFeeEstimator,A4 as getAddressValidator};
3
+
4
+ //# debugId=E3A3BE3FB6BE38A864756E2164756E21
5
+ //# sourceMappingURL=index.js.map