@uswap/toolboxes 4.3.7 → 4.3.9

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 (149) hide show
  1. package/dist/src/cardano/index.cjs +2 -2
  2. package/dist/src/cardano/index.cjs.map +3 -3
  3. package/dist/src/cardano/index.js +2 -2
  4. package/dist/src/cardano/index.js.map +3 -3
  5. package/dist/src/cosmos/index.cjs +2 -2
  6. package/dist/src/cosmos/index.cjs.map +8 -8
  7. package/dist/src/cosmos/index.js +2 -2
  8. package/dist/src/cosmos/index.js.map +8 -8
  9. package/dist/src/evm/index.cjs +2 -2
  10. package/dist/src/evm/index.cjs.map +7 -7
  11. package/dist/src/evm/index.js +2 -2
  12. package/dist/src/evm/index.js.map +7 -7
  13. package/dist/src/index.cjs +3 -3
  14. package/dist/src/index.cjs.map +34 -34
  15. package/dist/src/index.js +3 -3
  16. package/dist/src/index.js.map +34 -34
  17. package/dist/src/near/index.cjs +2 -2
  18. package/dist/src/near/index.cjs.map +5 -5
  19. package/dist/src/near/index.js +2 -2
  20. package/dist/src/near/index.js.map +5 -5
  21. package/dist/src/radix/index.cjs +2 -2
  22. package/dist/src/radix/index.cjs.map +3 -3
  23. package/dist/src/radix/index.js +2 -2
  24. package/dist/src/radix/index.js.map +3 -3
  25. package/dist/src/ripple/index.cjs +2 -2
  26. package/dist/src/ripple/index.cjs.map +3 -3
  27. package/dist/src/ripple/index.js +2 -2
  28. package/dist/src/ripple/index.js.map +3 -3
  29. package/dist/src/solana/index.cjs +2 -2
  30. package/dist/src/solana/index.cjs.map +3 -3
  31. package/dist/src/solana/index.js +2 -2
  32. package/dist/src/solana/index.js.map +3 -3
  33. package/dist/src/substrate/index.cjs +2 -2
  34. package/dist/src/substrate/index.cjs.map +4 -4
  35. package/dist/src/substrate/index.js +2 -2
  36. package/dist/src/substrate/index.js.map +4 -4
  37. package/dist/src/sui/index.cjs +2 -2
  38. package/dist/src/sui/index.cjs.map +3 -3
  39. package/dist/src/sui/index.js +2 -2
  40. package/dist/src/sui/index.js.map +3 -3
  41. package/dist/src/ton/index.cjs +2 -2
  42. package/dist/src/ton/index.cjs.map +3 -3
  43. package/dist/src/ton/index.js +2 -2
  44. package/dist/src/ton/index.js.map +3 -3
  45. package/dist/src/tron/index.cjs +2 -2
  46. package/dist/src/tron/index.cjs.map +4 -4
  47. package/dist/src/tron/index.js +2 -2
  48. package/dist/src/tron/index.js.map +4 -4
  49. package/dist/src/utxo/index.cjs +3 -3
  50. package/dist/src/utxo/index.cjs.map +11 -11
  51. package/dist/src/utxo/index.js +3 -3
  52. package/dist/src/utxo/index.js.map +11 -11
  53. package/dist/types/cardano/toolbox.d.ts +5 -0
  54. package/dist/types/cardano/toolbox.d.ts.map +1 -1
  55. package/dist/types/cosmos/thorchainUtils/addressFormat.d.ts +5 -0
  56. package/dist/types/cosmos/thorchainUtils/addressFormat.d.ts.map +1 -1
  57. package/dist/types/cosmos/thorchainUtils/messages.d.ts +5 -0
  58. package/dist/types/cosmos/thorchainUtils/messages.d.ts.map +1 -1
  59. package/dist/types/cosmos/toolbox/cosmos.d.ts +5 -0
  60. package/dist/types/cosmos/toolbox/cosmos.d.ts.map +1 -1
  61. package/dist/types/cosmos/toolbox/index.d.ts +5 -0
  62. package/dist/types/cosmos/toolbox/index.d.ts.map +1 -1
  63. package/dist/types/cosmos/toolbox/thorchain.d.ts +5 -0
  64. package/dist/types/cosmos/toolbox/thorchain.d.ts.map +1 -1
  65. package/dist/types/cosmos/util.d.ts +5 -0
  66. package/dist/types/cosmos/util.d.ts.map +1 -1
  67. package/dist/types/evm/helpers.d.ts +1 -1
  68. package/dist/types/evm/helpers.d.ts.map +1 -1
  69. package/dist/types/evm/toolbox/baseEVMToolbox.d.ts +7 -0
  70. package/dist/types/evm/toolbox/baseEVMToolbox.d.ts.map +1 -1
  71. package/dist/types/evm/toolbox/evm.d.ts +38 -38
  72. package/dist/types/evm/toolbox/evm.d.ts.map +1 -1
  73. package/dist/types/evm/toolbox/op.d.ts +7 -14
  74. package/dist/types/evm/toolbox/op.d.ts.map +1 -1
  75. package/dist/types/index.d.ts +5 -0
  76. package/dist/types/index.d.ts.map +1 -1
  77. package/dist/types/near/helpers/core.d.ts +5 -0
  78. package/dist/types/near/helpers/core.d.ts.map +1 -1
  79. package/dist/types/near/toolbox.d.ts +5 -0
  80. package/dist/types/near/toolbox.d.ts.map +1 -1
  81. package/dist/types/radix/index.d.ts +5 -0
  82. package/dist/types/radix/index.d.ts.map +1 -1
  83. package/dist/types/ripple/index.d.ts +5 -0
  84. package/dist/types/ripple/index.d.ts.map +1 -1
  85. package/dist/types/solana/toolbox.d.ts +5 -0
  86. package/dist/types/solana/toolbox.d.ts.map +1 -1
  87. package/dist/types/substrate/substrate.d.ts +5 -0
  88. package/dist/types/substrate/substrate.d.ts.map +1 -1
  89. package/dist/types/sui/toolbox.d.ts +5 -0
  90. package/dist/types/sui/toolbox.d.ts.map +1 -1
  91. package/dist/types/ton/toolbox.d.ts +5 -0
  92. package/dist/types/ton/toolbox.d.ts.map +1 -1
  93. package/dist/types/tron/helpers/trongrid.d.ts +5 -0
  94. package/dist/types/tron/helpers/trongrid.d.ts.map +1 -1
  95. package/dist/types/tron/toolbox.d.ts +5 -0
  96. package/dist/types/tron/toolbox.d.ts.map +1 -1
  97. package/dist/types/utils.d.ts.map +1 -1
  98. package/dist/types/utxo/helpers/api.d.ts +5 -0
  99. package/dist/types/utxo/helpers/api.d.ts.map +1 -1
  100. package/dist/types/utxo/helpers/bchaddrjs.d.ts +5 -0
  101. package/dist/types/utxo/helpers/bchaddrjs.d.ts.map +1 -1
  102. package/dist/types/utxo/helpers/coinselect.d.ts +5 -0
  103. package/dist/types/utxo/helpers/coinselect.d.ts.map +1 -1
  104. package/dist/types/utxo/helpers/txSize.d.ts +5 -0
  105. package/dist/types/utxo/helpers/txSize.d.ts.map +1 -1
  106. package/dist/types/utxo/toolbox/bitcoinCash.d.ts +5 -0
  107. package/dist/types/utxo/toolbox/bitcoinCash.d.ts.map +1 -1
  108. package/dist/types/utxo/toolbox/index.d.ts +5 -0
  109. package/dist/types/utxo/toolbox/index.d.ts.map +1 -1
  110. package/dist/types/utxo/toolbox/utxo.d.ts +5 -0
  111. package/dist/types/utxo/toolbox/utxo.d.ts.map +1 -1
  112. package/dist/types/utxo/toolbox/zcash.d.ts +6 -1
  113. package/dist/types/utxo/toolbox/zcash.d.ts.map +1 -1
  114. package/package.json +4 -4
  115. package/src/cardano/toolbox.ts +12 -6
  116. package/src/cosmos/__tests__/toolbox.test.ts +8 -4
  117. package/src/cosmos/thorchainUtils/addressFormat.ts +8 -2
  118. package/src/cosmos/thorchainUtils/messages.ts +8 -2
  119. package/src/cosmos/toolbox/cosmos.ts +11 -5
  120. package/src/cosmos/toolbox/index.ts +8 -2
  121. package/src/cosmos/toolbox/thorchain.ts +9 -3
  122. package/src/cosmos/util.ts +9 -3
  123. package/src/evm/helpers.ts +7 -9
  124. package/src/evm/toolbox/baseEVMToolbox.ts +34 -26
  125. package/src/evm/toolbox/evm.ts +2 -3
  126. package/src/evm/toolbox/op.ts +10 -17
  127. package/src/index.ts +8 -2
  128. package/src/near/helpers/core.ts +8 -2
  129. package/src/near/toolbox.ts +21 -15
  130. package/src/radix/index.ts +15 -3
  131. package/src/ripple/index.ts +15 -12
  132. package/src/solana/toolbox.ts +16 -16
  133. package/src/substrate/balance.ts +2 -2
  134. package/src/substrate/substrate.ts +17 -11
  135. package/src/sui/__tests__/toolbox.test.ts +9 -5
  136. package/src/sui/toolbox.ts +18 -11
  137. package/src/ton/__tests__/toolbox.test.ts +9 -5
  138. package/src/ton/toolbox.ts +14 -8
  139. package/src/tron/helpers/trongrid.ts +8 -2
  140. package/src/tron/toolbox.ts +21 -15
  141. package/src/utils.ts +8 -1
  142. package/src/utxo/helpers/api.ts +15 -9
  143. package/src/utxo/helpers/bchaddrjs.ts +9 -3
  144. package/src/utxo/helpers/coinselect.ts +8 -2
  145. package/src/utxo/helpers/txSize.ts +8 -2
  146. package/src/utxo/toolbox/bitcoinCash.ts +13 -7
  147. package/src/utxo/toolbox/index.ts +8 -2
  148. package/src/utxo/toolbox/utxo.ts +16 -10
  149. package/src/utxo/toolbox/zcash.ts +24 -21
package/dist/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
- var Z2=Object.create;var{getPrototypeOf:J2,defineProperty:cf,getOwnPropertyNames:q2}=Object;var Q2=Object.prototype.hasOwnProperty;var H=(T,x,N)=>{N=T!=null?Z2(J2(T)):{};let y=x||!T||!T.__esModule?cf(N,"default",{value:T,enumerable:!0}):N;for(let f of q2(T))if(!Q2.call(y,f))cf(y,f,{get:()=>T[f],enumerable:!0});return y};var yy=(T,x)=>{for(var N in x)cf(T,N,{get:x[N],enumerable:!0,configurable:!0,set:(y)=>x[N]=()=>y})};var E=(T,x)=>()=>(T&&(x=T(T=0)),x);var U=((T)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(T,{get:(x,N)=>(typeof require<"u"?require:x)[N]}):T)(function(T){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+T+'" is not supported')});import{AssetValue as B2,getChainConfig as Y2}from"@uswap/helpers";import{SwapKitApi as z2}from"@uswap/helpers/api";function V1(){function T(){let x=Date.now(),N=tf||x;return tf=N,x>tf?x:N+1}return W2+T().toString(36)}function ry(T){return async function(N,y=!0){let f=await z2.getChainBalance({address:N,chain:T,scamFilter:y}),{baseDecimal:G}=Y2(T);return f.map(({identifier:L,value:X,decimal:_})=>{return new B2({decimal:_||G,identifier:L,value:X})})}}var W2,tf=0;var HT=E(()=>{W2=typeof process<"u"&&process.pid?process.pid.toString(36):""});function UT(T){return{getBalance:ry(T)}}function H2(T){return T}var cT=E(()=>{HT()});import{Chain as p,getChainConfig as $1,getRPCUrl as U2}from"@uswap/helpers";import{match as M2}from"ts-pattern";async function uy(T,x){let{JsonRpcProvider:N}=await import("ethers");return new N(x||await U2(T))}function MT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function gf(T){let{explorerUrl:x,chainIdHex:N,rpcUrls:y}=$1(T);return()=>T===p.Ethereum?void 0:{...I2({chain:T}),blockExplorerUrls:[x],chainId:N,rpcUrls:y}}function df(T){return![p.Arbitrum,p.BinanceSmartChain].includes(T)}function I2({chain:T}){let{name:x,nativeCurrency:N,baseDecimal:y}=$1(T);return M2(T).with(p.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:y,name:"Avalanche",symbol:T}})).with(p.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:y,name:"Berachain",symbol:"BERA"}})).with(p.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:y,name:"OKB",symbol:"OKB"}})).with(p.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:y,name:"Binance Coin",symbol:"BNB"}})).with(p.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:y,name:"xDAI",symbol:"XDAI"}})).with(p.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:y,name:"Polygon",symbol:p.Polygon}})).otherwise(()=>({chainName:x,nativeCurrency:{decimals:y,name:N,symbol:N}}))}var ay=()=>{};var K1;var n1=E(()=>{K1=[{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 R2,applyFeeMultiplierToBigInt as _y,Chain as qy,EVMChains as w2,FeeOption as b,isGasAsset as C2,SwapKitError as o,SwapKitNumber as tT}from"@uswap/helpers";import{erc20ABI as IT}from"@uswap/helpers/contracts";import{BrowserProvider as O2,Contract as u1,getAddress as gT,Interface as b1}from"ethers";import{match as k2}from"ts-pattern";function sy({chain:T=qy.Ethereum,provider:x,signer:N,isEIP1559Compatible:y=!0}){return{approve:l2({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),approvedAmount:o1({chain:T,provider:x}),broadcastTransaction:x.broadcastTransaction,call:T0({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),createApprovalTx:V2({chain:T,provider:x,signer:N}),createContract:sf({chain:T,provider:x}),createContractTxObject:by({chain:T,provider:x}),createTransaction:rf({chain:T,provider:x,signer:N}),createTransferTx:rf({chain:T,provider:x,signer:N}),EIP1193SendTransaction:yT(x),estimateCall:p1({provider:x,signer:N}),estimateGasLimit:A2({chain:T,provider:x,signer:N}),estimateGasPrices:jy({chain:T,isEIP1559Compatible:y,provider:x}),estimateTransactionFee:$2({chain:T,isEIP1559Compatible:y,provider:x}),getAddress:()=>{return N?N.getAddress():void 0},isApproved:S2({chain:T,provider:x}),sendTransaction:m1({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),signMessage:N?(f)=>N.signMessage(f):void 0,transfer:v2({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),validateAddress:(f)=>af({address:f})}}function af({address:T}){try{return gT(T),!0}catch{return!1}}function ey(T){return T instanceof O2}function wT(T,x,N){return new u1(T,b1.from(x),N)}function sf({provider:T}){return function(N,y){return new u1(N,b1.from(y),T)}}function ef({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&&E2.includes(N.stateMutability)}function j1(T){return gT(T)}function yT(T){return function({value:N,...y}){if(!ey(T))throw new o("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:f,gasPrice:G,maxFeePerGas:L,maxPriorityFeePerGas:X,..._}=y;return T.send("eth_sendTransaction",[{..._,value:MT(BigInt(N||0))}])}}function h1(T,x){let N=TT(T,x);if(N)return gT(N.toLowerCase());throw new o("toolbox_evm_invalid_gas_asset_address")}function TT({chain:T,symbol:x,ticker:N},y){try{let f=T===qy.BinanceSmartChain&&x==="BNB"&&N==="BNB",G=T===y&&x===y&&N===y,L=P2.includes(T)&&x==="ETH"&&N==="ETH";if(G||f||L)return y0[y];return gT(x.slice(N.length+1).replace(/^0X/,""))}catch{return null}}function by({provider:T}){return async({contractAddress:x,abi:N,funcName:y,funcParams:f=[],txOverrides:G})=>wT(x,N,T).getFunction(y).populateTransaction(...f.concat(G).filter((L)=>typeof L<"u"))}function jy({chain:T,provider:x,isEIP1559Compatible:N=!0}){return k2(T).with(qy.Gnosis,()=>{return async function(){try{let{gasPrice:f,maxPriorityFeePerGas:G}=await x.getFeeData();if(!f||G===null)throw new o("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:_y(f,b.Average),maxPriorityFeePerGas:_y(G,b.Average)},[b.Fast]:{maxFeePerGas:_y(f,b.Fast),maxPriorityFeePerGas:_y(G,b.Fast)},[b.Fastest]:{maxFeePerGas:_y(f,b.Fastest),maxPriorityFeePerGas:_y(G,b.Fastest)}}}catch(f){throw new o("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).with(qy.Arbitrum,()=>{return async function(){try{let{gasPrice:f}=await x.getFeeData();if(!f)throw new o("toolbox_evm_no_fee_data");return{[b.Average]:{gasPrice:f},[b.Fast]:{gasPrice:f},[b.Fastest]:{gasPrice:f}}}catch(f){throw new o("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:f,maxPriorityFeePerGas:G,gasPrice:L}=await x.getFeeData();if(N){if(f===null||G===null)throw new o("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:f,maxPriorityFeePerGas:G},[b.Fast]:{maxFeePerGas:_y(f,b.Fast),maxPriorityFeePerGas:_y(G,b.Fast)},[b.Fastest]:{maxFeePerGas:_y(f,b.Fastest),maxPriorityFeePerGas:_y(G,b.Fastest)}}}if(!L)throw new o("toolbox_evm_no_gas_price");return{[b.Average]:{gasPrice:L},[b.Fast]:{gasPrice:_y(L,b.Fast)},[b.Fastest]:{gasPrice:_y(L,b.Fastest)}}}catch(f){throw new o("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}})}function T0({provider:T,isEIP1559Compatible:x,signer:N,chain:y}){return async function({callProvider:G,contractAddress:L,abi:X,funcName:_,funcParams:Z=[],txOverrides:q={},feeOption:Q=b.Fast}){let J=G||T;if(!L)throw new o("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let B=ef({abi:X,funcName:_});if(B&&ey(J)&&N){let W=by({chain:y,provider:J}),I=q?.from||await N?.getAddress(),O=await W({abi:X,contractAddress:L,funcName:_,funcParams:Z,txOverrides:{...q,from:I}});return yT(J)(O)}let Y=wT(L,X,J);if(B){if(!N)throw new o("toolbox_evm_no_signer");let W=q?.from||await N.getAddress();if(!W)throw new o("toolbox_evm_no_signer_address");let I=Y.connect(N),O=jy({chain:y,isEIP1559Compatible:x,provider:T}),{maxFeePerGas:v,maxPriorityFeePerGas:S,gasPrice:F}=(await O())[Q],j=await Y.getFunction(_).estimateGas(...Z,q),i=await I[_](...Z,{...q,gasLimit:j,gasPrice:F,maxFeePerGas:v,maxPriorityFeePerGas:S,nonce:q?.nonce||await J.getTransactionCount(W)});return typeof i?.hash==="string"?i?.hash:i}let M=await Y[_]?.(...Z);return typeof M?.hash==="string"?M?.hash:M}}function o1({provider:T,chain:x}){return function({assetAddress:y,spenderAddress:f,from:G}){return T0({chain:x,isEIP1559Compatible:!0,provider:T})({abi:IT,contractAddress:y,funcName:"allowance",funcParams:[G,f]})}}function S2({provider:T,chain:x}){return async function({assetAddress:y,spenderAddress:f,from:G,amount:L=RT}){let X=await o1({chain:x,provider:T})({assetAddress:y,from:G,spenderAddress:f});return tT.fromBigInt(X).gte(tT.fromBigInt(BigInt(L)))}}function l2({signer:T,isEIP1559Compatible:x=!0,provider:N,chain:y}){return async function({assetAddress:G,spenderAddress:L,feeOptionKey:X=b.Fast,amount:_,gasLimitFallback:Z,from:q,nonce:Q}){let J=[L,BigInt(_||RT)],B=await T?.getAddress()||q,Y={abi:IT,contractAddress:G,funcName:"approve",funcParams:J,signer:T,txOverrides:{from:B}};if(ey(N)){let W=by({chain:y,provider:N}),I=yT(N),O=await W(Y);return I(O)}return T0({chain:y,isEIP1559Compatible:x,provider:N,signer:T})({...Y,feeOption:X,funcParams:J,txOverrides:{from:B,gasLimit:Z?BigInt(Z.toString()):void 0,nonce:Q}})}}function v2({signer:T,isEIP1559Compatible:x=!0,provider:N}){return async function({assetValue:f,memo:G,recipient:L,feeOptionKey:X=b.Fast,sender:_,...Z}){let{hexlify:q,toUtf8Bytes:Q}=await import("ethers"),J=f.getBaseValue("bigint"),B=f.chain,Y=_||await T?.getAddress(),M=m1({chain:B,isEIP1559Compatible:x,provider:N,signer:T});if(!Y)throw new o("toolbox_evm_no_from_address");if(f.isGasAsset){let F={...Z,data:q(Q(G||"")),feeOptionKey:X,from:Y,to:L,value:J};return M(F)}if(!TT(f,B))throw new o("toolbox_evm_no_contract_address");let{maxFeePerGas:I,maxPriorityFeePerGas:O,gasPrice:v}=(await jy({chain:B,isEIP1559Compatible:x,provider:N})())[X],S=await rf({chain:B,provider:N,signer:T})({assetValue:f,data:q(Q(G||"")),gasPrice:v,maxFeePerGas:I,maxPriorityFeePerGas:O,memo:G,recipient:L,sender:Y});return M(S)}}function p1({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 _=wT(y,f,T);return x?_.connect(x).getFunction(G).estimateGas(...L,X):_.getFunction(G).estimateGas(...L,X)}}function A2({provider:T,signer:x}){return async function({assetValue:y,recipient:f,memo:G,data:L,sender:X,funcName:_,funcParams:Z,txOverrides:q}){let Q=y.bigIntValue,J=y.isGasAsset?null:TT(y,y.chain);if(J&&_)return p1({provider:T,signer:x})({abi:IT,contractAddress:J,funcName:_,funcParams:Z,txOverrides:q});let{hexlify:B,toUtf8Bytes:Y}=await import("ethers");return T.estimateGas({data:L?L:G?B(Y(G)):void 0,from:X,to:f,value:Q})}}function m1({provider:T,signer:x,isEIP1559Compatible:N=!0,chain:y}){return async function({feeOptionKey:G=b.Fast,...L}){let{from:X,to:_,data:Z,value:q,...Q}=L;if(!x)throw new o("toolbox_evm_no_signer");if(!_)throw new o("toolbox_evm_no_to_address");let J={...Q,data:Z||"0x",from:X,to:_,value:BigInt(q||0)};if(ey(T))return yT(T)(J);let B=X||await x.getAddress(),Y=L.nonce||await T.getTransactionCount(B),M=(await T.getNetwork()).chainId,W=F2(J)||N,I=jy({chain:y,isEIP1559Compatible:N,provider:T}),O=W&&!(J.maxFeePerGas&&J.maxPriorityFeePerGas)||!J.gasPrice?Object.entries((await I())[G]).reduce((S,[F,j])=>({...S,[F]:MT(BigInt(j))}),{}):{},v;try{v=MT(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:M,gasLimit:v,nonce:Y,type:W?2:0,...O};try{return(await x.sendTransaction(S)).hash}catch{let F=await x.signTransaction({...S,from:B});return(await T.broadcastTransaction(F)).hash}}catch(S){throw new o("toolbox_evm_error_sending_transaction",{error:S})}}}function rf({provider:T,signer:x}){return async function({assetValue:y,memo:f,recipient:G,data:L,sender:X,maxFeePerGas:_,maxPriorityFeePerGas:Z,gasPrice:q,...Q}){let J=y.getBaseValue("bigint"),B=y.chain,Y=X||await x?.getAddress();if(!Y)throw new o("toolbox_evm_no_from_address");if(C2(y)){let{hexlify:I,toUtf8Bytes:O}=await import("ethers");return{...Q,data:L||I(O(f||"")),from:Y,to:G,value:J}}let M=TT(y,B);if(!M)throw new o("toolbox_evm_no_contract_address");return by({chain:y.chain,provider:T})({abi:IT,contractAddress:M,funcName:"transfer",funcParams:[G,J],txOverrides:{from:Y,gasPrice:q,maxFeePerGas:_,maxPriorityFeePerGas:Z}})}}function V2({provider:T,signer:x,chain:N}){return async function({assetAddress:f,spenderAddress:G,amount:L,from:X}){let _=await x?.getAddress()||X,Z=by({chain:N,provider:T}),q=["bigint","number"].includes(typeof L)?L:L||RT;return await Z({abi:IT,contractAddress:f,funcName:"approve",funcParams:[G,BigInt(q)],txOverrides:{from:_}})}}function $2({provider:T,isEIP1559Compatible:x=!0}){return async function({feeOption:y=b.Fast,chain:f,...G}){let X=await jy({chain:f,isEIP1559Compatible:x,provider:T})(),_=await T.estimateGas(G),Z=R2.from({chain:f}),{gasPrice:q,maxFeePerGas:Q,maxPriorityFeePerGas:J}=X[y];if(!x&&q)return Z.set(tT.fromBigInt(q*_,Z.decimal));if(Q&&J){let B=(Q+J)*_;return Z.set(tT.fromBigInt(B,Z.decimal))}throw new o("toolbox_evm_no_gas_price")}}var RT,E2,D2,y0,P2,F2=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var iT=E(()=>{ay();RT=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");E2=["payable","nonpayable"];D2=w2.reduce((T,x)=>{return T[x]="0x0000000000000000000000000000000000000000",T},{}),y0={...D2,[qy.Optimism]:"0x4200000000000000000000000000000000000042",[qy.Polygon]:"0x0000000000000000000000000000000000001010"},P2=[qy.Arbitrum,qy.Aurora,qy.Base,qy.Optimism]});import{Chain as c,FeeOption as K2,getRPCUrl as n2}from"@uswap/helpers";import{match as u2,P as c1}from"ts-pattern";async function dT({provider:T,...x}){let N=await t(c.Ethereum)({provider:T,...x});async function y(f,G="0x5ba1e12693dc8f9c48aad8770482f4739beed696",L="aggregate",X=K2.Fast){let _=await N.createContractTxObject({abi:K1,contractAddress:G,funcName:L,funcParams:[f]});return N.sendTransaction({..._,feeOptionKey:X})}return{...N,multicall:y}}function t(T){return async function({provider:N,...y}){let{HDNodeWallet:f}=await import("ethers"),G=await n2(T),L=N||await uy(T,G),X=df(T),_=u2(y).with({phrase:c1.string},({phrase:q})=>f.fromPhrase(q).connect(L)).with({signer:c1.any},({signer:q})=>q).otherwise(()=>{return});return{...sy({chain:T,isEIP1559Compatible:X,provider:L,signer:_}),getBalance:UT(T).getBalance,getNetworkParams:gf(T)}}}var rT,aT,sT,eT,yf,Tf,t1,ff,xf,Gf,Nf,Lf,Xf,CT,_f,Zf,Jf,qf;var f0=E(()=>{cT();n1();ay();iT();rT=t(c.Arbitrum),aT=t(c.Aurora),sT=t(c.Avalanche),eT=t(c.Base),yf=t(c.Berachain),Tf=t(c.BinanceSmartChain),t1=t(c.Botanix),ff=t(c.Core),xf=t(c.Corn),Gf=t(c.Cronos),Nf=t(c.Gnosis),Lf=t(c.Hyperevm),Xf=t(c.Polygon),CT=t(c.Sonic),_f=t(c.Unichain),Zf=t(c.XLayer),Jf=t(c.Monad),qf=t(c.MegaETH)});var g1;var i1=E(()=>{g1=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as fT,Chain as Qf,FeeOption as Uy,getChainConfig as j2,getRPCUrl as h2,SwapKitError as x0}from"@uswap/helpers";import{Contract as o2,HDNodeWallet as p2}from"ethers";import{match as m2,P as d1}from"ts-pattern";function G0(T){return new o2(c2,g1,T)}function r1(T){return async function(){let N=G0(T);if(N&&"l1BaseFee"in N)return await N?.l1BaseFee();return}}function a1(T){return async function({from:N,to:y,nonce:f,...G}){let{Transaction:L}=await import("ethers");if(!y)throw new x0("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 s1(T){return async function(N){let y=G0(T),f=await a1(T)(N);if(y&&"getL1Fee"in y)return y.getL1Fee(f)}}function e1(T){return async function(N){let y=await T.send("eth_gasPrice",[]),f=await T.estimateGas(N);return y.mul(f)}}function t2(T){return async function(N){let y=await s1(T)(N),f=await e1(T)(N);return y.add(f)}}function g2(T){return async function(N){let y=G0(T),f=await a1(T)(N);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(f)}}function i2(){let{baseDecimal:T,chainId:x,explorerUrl:N,name:y,rpcUrls:f}=j2(Qf.Optimism);return{blockExplorerUrls:[N],chainId:x,chainName:y,nativeCurrency:{decimals:T,name:"Ethereum",symbol:Qf.Ethereum},rpcUrls:f}}async function d2(T){try{let{maxFeePerGas:x,maxPriorityFeePerGas:N,gasPrice:y}=await T.getFeeData(),f=await r1(T)(),G=y;if(!(x&&N))throw new x0("toolbox_evm_no_fee_data");return{[Uy.Average]:{gasPrice:G,l1GasPrice:f,maxFeePerGas:x,maxPriorityFeePerGas:N},[Uy.Fast]:{gasPrice:fT(G,Uy.Fast),l1GasPrice:fT(f||0n,Uy.Fast),maxFeePerGas:x,maxPriorityFeePerGas:fT(N,Uy.Fast)},[Uy.Fastest]:{gasPrice:fT(G,Uy.Fastest),l1GasPrice:fT(f||0n,Uy.Fastest),maxFeePerGas:x,maxPriorityFeePerGas:fT(N,Uy.Fastest)}}}catch(x){throw new x0("toolbox_evm_gas_estimation_error",{error:x.msg??x.toString()})}}async function Bf({provider:T,...x}){let N=Qf.Optimism,y=await h2(N),f=T||await uy(N,y),G=m2(x).with({phrase:d1.string},({phrase:_})=>p2.fromPhrase(_).connect(f)).with({signer:d1.any},({signer:_})=>_).otherwise(()=>{return}),L=sy({provider:f,signer:G}),X=r1(f);return{...L,estimateGasPrices:d2(f),estimateL1Gas:g2(f),estimateL1GasCost:s1(f),estimateL2GasCost:e1(f),estimateTotalGasCost:t2(f),getBalance:UT(Qf.Optimism).getBalance,getL1GasPrice:X,getNetworkParams:i2}}var c2="0x420000000000000000000000000000000000000f";var N0=E(()=>{cT();i1();ay();iT()});var T5={};yy(T5,{toChecksumAddress:()=>j1,isStateChangingCall:()=>ef,isBrowserProvider:()=>ey,getTokenAddress:()=>TT,getEvmToolbox:()=>y5,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>yT,getCreateContractTxObject:()=>by,getCreateContract:()=>sf,getChecksumAddressFromAsset:()=>h1,evmValidateAddress:()=>af,createContract:()=>wT,XLayerToolbox:()=>Zf,UNIToolbox:()=>_f,SONICToolbox:()=>CT,OPToolbox:()=>Bf,MONADToolbox:()=>Jf,MEGAETHToolbox:()=>qf,MAX_APPROVAL:()=>RT,MATICToolbox:()=>Xf,HYPEREVMToolbox:()=>Lf,GNOToolbox:()=>Nf,ETHToolbox:()=>dT,ContractAddress:()=>y0,CROToolbox:()=>Gf,CORNToolbox:()=>xf,COREToolbox:()=>ff,BotanixToolbox:()=>t1,BaseEVMToolbox:()=>sy,BSCToolbox:()=>Tf,BERAToolbox:()=>yf,BASEToolbox:()=>eT,AVAXToolbox:()=>sT,AURORAToolbox:()=>aT,ARBToolbox:()=>rT});import{Chain as m}from"@uswap/helpers";import{match as r2}from"ts-pattern";async function y5(T,x){let N={...x,provider:x?.provider||await uy(T)};return r2(T).returnType().with(m.Arbitrum,()=>rT(N)).with(m.Aurora,()=>aT(N)).with(m.Avalanche,()=>sT(N)).with(m.Base,()=>eT(N)).with(m.Berachain,()=>yf(N)).with(m.BinanceSmartChain,()=>Tf(N)).with(m.Botanix,()=>CT(N)).with(m.Core,()=>ff(N)).with(m.Corn,()=>xf(N)).with(m.Cronos,()=>Gf(N)).with(m.Ethereum,()=>dT(N)).with(m.Gnosis,()=>Nf(N)).with(m.Hyperevm,()=>Lf(N)).with(m.Optimism,()=>Bf(N)).with(m.Polygon,()=>Xf(N)).with(m.Sonic,()=>CT(N)).with(m.Unichain,()=>_f(N)).with(m.XLayer,()=>Zf(N)).with(m.Monad,()=>Jf(N)).with(m.MegaETH,()=>qf(N)).exhaustive()}var L0=E(()=>{ay();f0();N0();iT();f0();N0()});var f5;var x5=E(()=>{((N)=>{N.Test="goerli";N.Main="homestead"})(f5||={})});var G5={};yy(G5,{toHexString:()=>MT,toChecksumAddress:()=>j1,isStateChangingCall:()=>ef,isBrowserProvider:()=>ey,getTokenAddress:()=>TT,getProvider:()=>uy,getNetworkParams:()=>gf,getIsEIP1559Compatible:()=>df,getEvmToolbox:()=>y5,getEvmApi:()=>UT,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>yT,getCreateContractTxObject:()=>by,getCreateContract:()=>sf,getChecksumAddressFromAsset:()=>h1,evmValidateAddress:()=>af,createCustomEvmApi:()=>H2,createContract:()=>wT,XLayerToolbox:()=>Zf,UNIToolbox:()=>_f,SONICToolbox:()=>CT,OPToolbox:()=>Bf,MONADToolbox:()=>Jf,MEGAETHToolbox:()=>qf,MAX_APPROVAL:()=>RT,MATICToolbox:()=>Xf,HYPEREVMToolbox:()=>Lf,GNOToolbox:()=>Nf,EthNetwork:()=>f5,ETHToolbox:()=>dT,ContractAddress:()=>y0,CROToolbox:()=>Gf,CORNToolbox:()=>xf,COREToolbox:()=>ff,BotanixToolbox:()=>t1,BaseEVMToolbox:()=>sy,BSCToolbox:()=>Tf,BERAToolbox:()=>yf,BASEToolbox:()=>eT,AVAXToolbox:()=>sT,AURORAToolbox:()=>aT,ARBToolbox:()=>rT});var N5=E(()=>{cT();ay();L0();x5()});import{AssetValue as kT,Chain as xT,getChainConfig as a2,SwapKitError as OT}from"@uswap/helpers";import{match as s2,P as L5}from"ts-pattern";async function X0(){let{BlockfrostProvider:T}=await import("@meshsdk/core"),x="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS";return new T("mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS")}async function yG(T){try{let{MeshWallet:x}=await import("@meshsdk/core"),N=await X0(),y=new x({fetcher:N,key:{address:T,type:"address"},networkId:1});await y.init();let f=await y.getBalance(),G=[];for(let L of f)if(L.unit===e2){let{baseDecimal:X}=a2(xT.Cardano);G.push(kT.from({chain:xT.Cardano,fromBaseDecimal:X,value:L.quantity}))}else G.push(kT.from({asset:`${xT.Cardano}.${L.unit}`,value:L.quantity}));if(G.length===0)return[kT.from({chain:xT.Cardano})];return G}catch(x){let N=x instanceof Error?x.message:String(x);return console.error(`Cardano balance fetch error: ${N}`),[kT.from({chain:xT.Cardano})]}}async function X5(){let{deserializeAddress:T}=await import("@meshsdk/core");return(x)=>{try{return T(x),!0}catch{return!1}}}async function TG(T){let x=await X5(),N=await s2(T).with({phrase:L5.string},async({phrase:q})=>{let{MeshWallet:Q}=await import("@meshsdk/core"),J=await X0(),B=new Q({fetcher:J,key:{type:"mnemonic",words:q.split(" ")},networkId:1,submitter:J});return await B.init(),B}).with({signer:L5.any},({signer:q})=>q).otherwise(()=>{return}),y=N&&"getChangeAddress"in N?await N.getChangeAddress():"";function f(){return y||""}function G(q){let Q=q||f();if(!Q)throw new OT("core_wallet_connection_not_found");return yG(Q)}function L(){return Promise.resolve(kT.from({chain:xT.Cardano,value:"0.01"}))}async function X({recipient:q,assetValue:Q,memo:J}){if(!N||!("getChangeAddress"in N))throw new OT("core_wallet_connection_not_found");let{Transaction:B}=await import("@meshsdk/core"),[,Y]=Q.symbol.split("-");if(!Q.isGasAsset&&!Y)throw new OT("core_wallet_connection_not_found");let M=new B({initiator:N});if(M.sendAssets({address:q},[{quantity:Q.getBaseValue("string"),unit:Q.isGasAsset?"lovelace":Q.symbol}]),J)M.setMetadata(0,J);let W=await M.build();return{tx:M,unsignedTx:W}}function _(q){if(!N||!("getChangeAddress"in N))throw new OT("core_wallet_connection_not_found");return N.signTx(q)}async function Z({recipient:q,assetValue:Q,memo:J}){if(!N||!("getChangeAddress"in N))throw new OT("core_wallet_connection_not_found");let{unsignedTx:B}=await X({assetValue:Q,memo:J,recipient:q}),Y=await _(B);return await(await X0()).submitTx(Y)}return{createTransaction:X,estimateTransactionFee:L,getAddress:f,getBalance:G,signTransaction:_,transfer:Z,validateAddress:x}}var e2="lovelace";var _5=()=>{};var _0={};yy(_0,{getCardanoToolbox:()=>TG,getCardanoAddressValidator:()=>X5});var Z0=E(()=>{_5()});import{base64 as Z5,bech32 as Yf}from"@scure/base";import{SwapKitError as fG}from"@uswap/helpers";import{fromByteArray as xG,toByteArray as GG}from"base64-js";function ET(T){return Z5.encode(Uint8Array.from(Yf.fromWords(Yf.decode(T).words)))}function DT(T,x="thor"){return Yf.encode(x,Yf.toWords(Z5.decode(T)))}function NG(T){return xG(T)}function LG(T){if(!T.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new fG("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return GG(T)}var J0=()=>{};import{AssetValue as q0,Chain as K,getChainConfig as Qy,getRPCUrl as XG,SwapKitError as J5}from"@uswap/helpers";function Iy(T){switch(T){case K.Maya:return{amount:[],gas:"10000000000"};case K.THORChain:return{amount:[],gas:"500000000"};case K.Kujira:return B5;case K.Noble:return Y5;default:return Q5}}async function Ry(T){let x=await import("@cosmjs/stargate"),N=x.StargateClient??x.default?.StargateClient,y=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return N.connect({headers:y,url:T})}async function NT(T,x,N={}){let y=await import("@cosmjs/stargate"),f=y.SigningStargateClient??y.default?.SigningStargateClient,G=y.GasPrice??y.default?.GasPrice,L=typeof N==="string"?N:"0.0003uatom",X=typeof N==="string"?{}:N;return f.connectWithSigner(T,x,{gasPrice:G.fromString(L),...X})}async function B0(T,x){let N=await import("@cosmjs/stargate");return(N.SigningStargateClient??N.default?.SigningStargateClient).offline(T,x)}async function Y0({sender:T,recipient:x,assetValue:N,memo:y="",feeRate:f,sequence:G,accountNumber:L}){let{chain:X,chainId:_}=N,Z=await XG(X),Q=await(await Ry(Z)).getAccount(T);if(!Q)throw new J5("toolbox_cosmos_account_not_found",{sender:T});let J=q0.from({chain:X}),B=My(J.symbol),Y=Iy(X),M=B&&f?{amount:[{amount:f.toString(),denom:B}],gas:Y.gas}:Y,W={amount:[{amount:N.getBaseValue("string"),denom:My(N.symbol)}],fromAddress:T,toAddress:x};return{accountNumber:L??Q.accountNumber,chainId:_,fee:M,memo:y,msgs:[{typeUrl:_G(X),value:W}],sequence:G??Q.sequence}}var Q0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",q5="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",Q5,B5,Y5,My=(T,x=!1)=>{if(x)return T.toLowerCase();switch(T){case"uUSK":case"USK":return Q0;case"uYUM":case"YUM":return q5;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return T}},GT=({symbol:T,chain:x})=>{if(x===K.Maya)return(T.toUpperCase()!=="CACAO"?T:`${K.Maya}.${T}`).toUpperCase();if(x===K.THORChain)return(["RUNE","TCY","RUJI"].includes(T.toUpperCase())?`${K.THORChain}.${T}`:T).toUpperCase();return My(T,!1)},_G=(T)=>{switch(T){case K.Maya:case K.THORChain:return"/types.MsgSend";case K.Cosmos:case K.Kujira:case K.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new J5("toolbox_cosmos_not_supported",{chain:T})}},ZG,z0=(T,x)=>{let N=ZG[T.toLowerCase()];if(!N)return q0.from({asset:T,fromBaseDecimal:8,value:x});let{chain:y,asset:f,decimals:G}=N,L=y?{chain:y}:{asset:f};return q0.from({...L,fromBaseDecimal:G,value:x})};var PT=E(()=>{Q5={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},B5={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},Y5={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};ZG={atom:{chain:K.Cosmos,decimals:Qy(K.Cosmos).baseDecimal},cacao:{chain:K.Maya,decimals:10},kuji:{chain:K.Kujira,decimals:Qy(K.Kujira).baseDecimal},maya:{asset:`${K.Maya}.${K.Maya}`,decimals:4},rune:{chain:K.THORChain,decimals:Qy(K.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Qy(K.THORChain).baseDecimal},uatom:{chain:K.Cosmos,decimals:Qy(K.Cosmos).baseDecimal},ukuji:{chain:K.Kujira,decimals:Qy(K.Kujira).baseDecimal},usdc:{chain:K.Noble,decimals:Qy(K.Noble).baseDecimal},uusdc:{chain:K.Noble,decimals:Qy(K.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Qy(K.THORChain).baseDecimal},[Q0.toLowerCase()]:{asset:`${K.Kujira}.USK`,decimals:Qy(K.Kujira).baseDecimal}}});var z5={};yy(z5,{$root:()=>w});import r from"protobufjs/minimal.js";var P,Zy,k,w;var W5=E(()=>{P=r.Reader,Zy=r.Writer,k=r.util,w=r.roots.default||(r.roots.default={});w.common=(()=>{let T={};return T.Asset=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.chain="",x.prototype.symbol="",x.prototype.ticker="",x.prototype.synth=!1,x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))f.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))f.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))f.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))f.uint32(32).bool(y.synth);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Asset;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.chain=y.string();break;case 2:L.symbol=y.string();break;case 3:L.ticker=y.string();break;case 4:L.synth=y.bool();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.chain!=null&&y.hasOwnProperty("chain")){if(!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 w.common.Asset)return y;let f=new w.common.Asset;if(y.chain!=null)f.chain=String(y.chain);if(y.symbol!=null)f.symbol=String(y.symbol);if(y.ticker!=null)f.ticker=String(y.ticker);if(y.synth!=null)f.synth=Boolean(y.synth);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.defaults)G.chain="",G.symbol="",G.ticker="",G.synth=!1;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.symbol!=null&&y.hasOwnProperty("symbol"))G.symbol=y.symbol;if(y.ticker!=null&&y.hasOwnProperty("ticker"))G.ticker=y.ticker;if(y.synth!=null&&y.hasOwnProperty("synth"))G.synth=y.synth;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.Coin=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.asset=null,x.prototype.amount="",x.prototype.decimals=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=Zy.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))w.common.Asset.encode(y.asset,f.uint32(10).fork()).ldelim();if(y.amount!=null&&Object.hasOwnProperty.call(y,"amount"))f.uint32(18).string(y.amount);if(y.decimals!=null&&Object.hasOwnProperty.call(y,"decimals"))f.uint32(24).int64(y.decimals);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Coin;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.asset=w.common.Asset.decode(y,y.uint32());break;case 2:L.amount=y.string();break;case 3:L.decimals=y.int64();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.asset!=null&&y.hasOwnProperty("asset")){let f=w.common.Asset.verify(y.asset);if(f)return"asset."+f}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!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 w.common.Coin)return y;let f=new w.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");f.asset=w.common.Asset.fromObject(y.asset)}if(y.amount!=null)f.amount=String(y.amount);if(y.decimals!=null){if(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=w.common.Asset.toObject(y.asset,f);if(y.amount!=null&&y.hasOwnProperty("amount"))G.amount=y.amount;if(y.decimals!=null&&y.hasOwnProperty("decimals"))if(typeof y.decimals==="number")G.decimals=f.longs===String?String(y.decimals):y.decimals;else G.decimals=f.longs===String?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,r.util.toJSONOptions)},x})(),T.PubKeySet=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.secp256k1="",x.prototype.ed25519="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))f.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))f.uint32(18).string(y.ed25519);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.PubKeySet;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.secp256k1=y.string();break;case 2:L.ed25519=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1")){if(!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 w.common.PubKeySet)return y;let f=new w.common.PubKeySet;if(y.secp256k1!=null)f.secp256k1=String(y.secp256k1);if(y.ed25519!=null)f.ed25519=String(y.ed25519);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.defaults)G.secp256k1="",G.ed25519="";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1"))G.secp256k1=y.secp256k1;if(y.ed25519!=null&&y.hasOwnProperty("ed25519"))G.ed25519=y.ed25519;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.Tx=(()=>{function x(N){if(this.coins=[],this.gas=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.id="",x.prototype.chain="",x.prototype.fromAddress="",x.prototype.toAddress="",x.prototype.coins=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=Zy.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))f.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))f.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))f.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))f.uint32(34).string(y.toAddress);if(y.coins?.length)for(let G=0;G<y.coins.length;++G)w.common.Coin.encode(y.coins[G],f.uint32(42).fork()).ldelim();if(y.gas?.length)for(let G=0;G<y.gas.length;++G)w.common.Coin.encode(y.gas[G],f.uint32(50).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))f.uint32(58).string(y.memo);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Tx;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.id=y.string();break;case 2:L.chain=y.string();break;case 3:L.fromAddress=y.string();break;case 4:L.toAddress=y.string();break;case 5:if(!L.coins?.length)L.coins=[];L.coins.push(w.common.Coin.decode(y,y.uint32()));break;case 6:if(!L.gas?.length)L.gas=[];L.gas.push(w.common.Coin.decode(y,y.uint32()));break;case 7:L.memo=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.id!=null&&y.hasOwnProperty("id")){if(!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=w.common.Coin.verify(y.coins[f]);if(G)return"coins."+G}}if(y.gas!=null&&y.hasOwnProperty("gas")){if(!Array.isArray(y.gas))return"gas: array expected";for(let f=0;f<y.gas.length;++f){let G=w.common.Coin.verify(y.gas[f]);if(G)return"gas."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!k.isString(y.memo))return"memo: string expected"}return null},x.fromObject=function(y){if(y instanceof w.common.Tx)return y;let f=new w.common.Tx;if(y.id!=null)f.id=String(y.id);if(y.chain!=null)f.chain=String(y.chain);if(y.fromAddress!=null)f.fromAddress=String(y.fromAddress);if(y.toAddress!=null)f.toAddress=String(y.toAddress);if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Tx.coins: array expected");f.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Tx.coins: object expected");f.coins[G]=w.common.Coin.fromObject(y.coins[G])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");f.gas=[];for(let G=0;G<y.gas.length;++G){if(typeof y.gas[G]!=="object")throw TypeError(".common.Tx.gas: object expected");f.gas[G]=w.common.Coin.fromObject(y.gas[G])}}if(y.memo!=null)f.memo=String(y.memo);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.arrays||f.defaults)G.coins=[],G.gas=[];if(f.defaults)G.id="",G.chain="",G.fromAddress="",G.toAddress="",G.memo="";if(y.id!=null&&y.hasOwnProperty("id"))G.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=y.toAddress;if(y.coins?.length){G.coins=[];for(let L=0;L<y.coins.length;++L)G.coins[L]=w.common.Coin.toObject(y.coins[L],f)}if(y.gas?.length){G.gas=[];for(let L=0;L<y.gas.length;++L)G.gas[L]=w.common.Coin.toObject(y.gas[L],f)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.Fee=(()=>{function x(N){if(this.coins=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.coins=k.emptyArray,x.prototype.poolDeduct="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)w.common.Coin.encode(y.coins[G],f.uint32(10).fork()).ldelim();if(y.poolDeduct!=null&&Object.hasOwnProperty.call(y,"poolDeduct"))f.uint32(18).string(y.poolDeduct);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Fee;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:if(!L.coins?.length)L.coins=[];L.coins.push(w.common.Coin.decode(y,y.uint32()));break;case 2:L.poolDeduct=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let f=0;f<y.coins.length;++f){let G=w.common.Coin.verify(y.coins[f]);if(G)return"coins."+G}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!k.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},x.fromObject=function(y){if(y instanceof w.common.Fee)return y;let f=new w.common.Fee;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Fee.coins: array expected");f.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Fee.coins: object expected");f.coins[G]=w.common.Coin.fromObject(y.coins[G])}}if(y.poolDeduct!=null)f.poolDeduct=String(y.poolDeduct);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.arrays||f.defaults)G.coins=[];if(f.defaults)G.poolDeduct="";if(y.coins?.length){G.coins=[];for(let L=0;L<y.coins.length;++L)G.coins[L]=w.common.Coin.toObject(y.coins[L],f)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))G.poolDeduct=y.poolDeduct;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.ProtoUint=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.value="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))f.uint32(10).string(y.value);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.ProtoUint;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.value=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.value!=null&&y.hasOwnProperty("value")){if(!k.isString(y.value))return"value: string expected"}return null},x.fromObject=function(y){if(y instanceof w.common.ProtoUint)return y;let f=new w.common.ProtoUint;if(y.value!=null)f.value=String(y.value);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.defaults)G.value="";if(y.value!=null&&y.hasOwnProperty("value"))G.value=y.value;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T})();w.types=(()=>{let T={};return T.MsgDeposit=(()=>{function x(N){if(this.coins=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.coins=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=Zy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)w.common.Coin.encode(y.coins[G],f.uint32(10).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))f.uint32(18).string(y.memo);if(y.signer!=null&&Object.hasOwnProperty.call(y,"signer"))f.uint32(26).bytes(y.signer);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.types.MsgDeposit;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:if(!L.coins?.length)L.coins=[];L.coins.push(w.common.Coin.decode(y,y.uint32()));break;case 2:L.memo=y.string();break;case 3:L.signer=y.bytes();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let f=0;f<y.coins.length;++f){let G=w.common.Coin.verify(y.coins[f]);if(G)return"coins."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!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 w.types.MsgDeposit)return y;let f=new w.types.MsgDeposit;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".types.MsgDeposit.coins: array expected");f.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");f.coins[G]=w.common.Coin.fromObject(y.coins[G])}}if(y.memo!=null)f.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")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]=w.common.Coin.toObject(y.coins[L],f)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))G.signer=f.bytes===String?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,r.util.toJSONOptions)},x})(),T.MsgSend=(()=>{function x(N){if(this.amount=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.fromAddress=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=Zy.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))f.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))f.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let G=0;G<y.amount.length;++G)w.cosmos.base.v1beta1.Coin.encode(y.amount[G],f.uint32(26).fork()).ldelim();return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.types.MsgSend;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.fromAddress=y.bytes();break;case 2:L.toAddress=y.bytes();break;case 3:if(!L.amount?.length)L.amount=[];L.amount.push(w.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!(y.fromAddress&&typeof y.fromAddress.length==="number"||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=w.cosmos.base.v1beta1.Coin.verify(y.amount[f]);if(G)return"amount."+G}}return null},x.fromObject=function(y){if(y instanceof w.types.MsgSend)return y;let f=new w.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")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]=w.cosmos.base.v1beta1.Coin.fromObject(y.amount[G])}}return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.arrays||f.defaults)G.amount=[];if(f.defaults){if(f.bytes===String)G.fromAddress="";else if(G.fromAddress=[],f.bytes!==Array)G.fromAddress=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]=w.cosmos.base.v1beta1.Coin.toObject(y.amount[L],f)}return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T})();w.cosmos=(()=>{let T={};return T.base=(()=>{let x={};return x.v1beta1=(()=>{let N={};return N.Coin=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))L.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))L.uint32(18).string(G.amount);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.Coin;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.denom=G.string();break;case 2:_.amount=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!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 w.cosmos.base.v1beta1.Coin)return G;let L=new w.cosmos.base.v1beta1.Coin;if(G.denom!=null)L.denom=String(G.denom);if(G.amount!=null)L.amount=String(G.amount);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.denom="",X.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))X.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))X.amount=G.amount;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N.DecCoin=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))L.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))L.uint32(18).string(G.amount);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.DecCoin;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.denom=G.string();break;case 2:_.amount=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!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 w.cosmos.base.v1beta1.DecCoin)return G;let L=new w.cosmos.base.v1beta1.DecCoin;if(G.denom!=null)L.denom=String(G.denom);if(G.amount!=null)L.amount=String(G.amount);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.denom="",X.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))X.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))X.amount=G.amount;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N.IntProto=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.int="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.int!=null&&Object.hasOwnProperty.call(G,"int"))L.uint32(10).string(G.int);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.IntProto;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.int=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.int!=null&&G.hasOwnProperty("int")){if(!k.isString(G.int))return"int: string expected"}return null},y.fromObject=function(G){if(G instanceof w.cosmos.base.v1beta1.IntProto)return G;let L=new w.cosmos.base.v1beta1.IntProto;if(G.int!=null)L.int=String(G.int);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.int="";if(G.int!=null&&G.hasOwnProperty("int"))X.int=G.int;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N.DecProto=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.dec="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.dec!=null&&Object.hasOwnProperty.call(G,"dec"))L.uint32(10).string(G.dec);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.DecProto;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.dec=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.dec!=null&&G.hasOwnProperty("dec")){if(!k.isString(G.dec))return"dec: string expected"}return null},y.fromObject=function(G){if(G instanceof w.cosmos.base.v1beta1.DecProto)return G;let L=new w.cosmos.base.v1beta1.DecProto;if(G.dec!=null)L.dec=String(G.dec);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.dec="";if(G.dec!=null&&G.hasOwnProperty("dec"))X.dec=G.dec;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N})(),x})(),T})()});import{Chain as JG}from"@uswap/helpers";async function hy(){let{$root:T}=await Promise.resolve().then(() => (W5(),z5)),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 Ey(T){let x=await import("@cosmjs/stargate"),N=x.AminoTypes??x.default?.AminoTypes,y=T===JG.THORChain?"thorchain":"mayachain";return new N({"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,fromAmino:({signer:f,...G})=>({...G,signer:ET(f)}),toAmino:({signer:f,...G})=>({...G,signer:DT(f)})},"/types.MsgSend":{aminoType:`${y}/MsgSend`,fromAmino:({from_address:f,to_address:G,...L})=>({...L,fromAddress:ET(f),toAddress:ET(G)}),toAmino:({fromAddress:f,toAddress:G,...L})=>({...L,from_address:DT(f),to_address:DT(G)})}})}var W0=E(()=>{J0()});import{AssetValue as qG,Chain as zf,getChainConfig as H5,SwapKitError as QG}from"@uswap/helpers";function M0(T){return function(N){let{assetValue:y,recipient:f,memo:G,sender:L,asSignable:X,asAminoMessage:_}=N;if(f)return M5(T)({asAminoMessage:_,asSignable:X,assetValue:y,memo:G,recipient:f,sender:L});return I5(T)({asAminoMessage:_,asSignable:X,assetValue:y,memo:G,sender:L})}}function Py(T){if(T.type==="thorchain/MsgSend"||T.type==="mayachain/MsgSend")return T;return{...T,value:{...T.value,coins:T.value.coins.map((x)=>{let N=qG.from({asset:x.asset}),y=(N.isSynthetic?N.symbol.split("/")?.[1]:N.symbol)?.toUpperCase(),f=(N.isSynthetic?N.symbol.split("/")?.[0]:N.chain)?.toUpperCase();return{...x,asset:{chain:f,symbol:y,synth:N.isSynthetic,ticker:N.ticker}}})}}}async function ST({chain:T,memo:x,msgs:N}){let y=await hy(),f=await Ey(T),G={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:x,messages:N.map((L)=>f.fromAmino(L))}};return y.encode(G)}var BG,YG,H0=({sender:T,recipient:x,assetValue:N})=>{return{type:`${N.chain===zf.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:N.getBaseValue("string"),denom:My(N.symbol,!0)}],from_address:T,to_address:x}}},U0=({sender:T,assetValue:x,memo:N=""})=>{return{type:`${x.chain===zf.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:x.getBaseValue("string"),asset:GT(x)}],memo:N,signer:T}}},Wf=({sender:T,recipient:x,assetValue:N,memo:y})=>{return!x?U0({assetValue:N,memo:y,sender:T}):H0({assetValue:N,recipient:x,sender:T})},Dy=async(T,x)=>{return(await Ey(x)).fromAmino(T)},U5=async({rpcUrl:T,sender:x})=>{let y=await(await Ry(T)).getAccount(x);if(!y)throw new QG("toolbox_cosmos_account_not_found",{sender:x});return y},M5=(T)=>async({sender:x,recipient:N,assetValue:y,memo:f="",asSignable:G=!0,asAminoMessage:L=!1,sequence:X,accountNumber:_})=>{let Z=await U5({rpcUrl:T,sender:x}),q=y.chain,{chainId:Q}=H5(q),J=H0({assetValue:y,recipient:N,sender:x}),B=G?await Dy(L?J:Py(J),q):J;return{accountNumber:_||Z.accountNumber,chainId:Q,fee:Iy(q),memo:f,msgs:[B],sequence:X||Z.sequence}},I5=(T)=>async({sender:x,assetValue:N,memo:y="",asSignable:f=!0,asAminoMessage:G=!1,sequence:L,accountNumber:X})=>{let _=await U5({rpcUrl:T,sender:x}),Z=N.chain,{chainId:q}=H5(Z),Q=U0({assetValue:N,memo:y,sender:x}),J=f?await Dy(G?Q:Py(Q),Z):Q;return{accountNumber:X||_.accountNumber,chainId:q,fee:Iy(Z),memo:y,msgs:[J],sequence:L||_.sequence}};var R5=E(()=>{PT();W0();BG=Iy(zf.THORChain).gas,YG=Iy(zf.Maya).gas});var w5=()=>{};var C5=E(()=>{w5()});var I0=E(()=>{J0();R5();W0();C5()});import{base64 as k0,bech32 as R0}from"@scure/base";import{AssetValue as Hf,applyFeeMultiplier as O5,Chain as Ty,CosmosChainPrefixes as S5,DerivationPath as zG,derivationPathToString as k5,FeeOption as Mf,getChainConfig as WG,getRPCUrl as HG,NetworkDerivationPath as UG,SwapKitError as Uf,SwapKitNumber as w0,updateDerivationPath as MG}from"@uswap/helpers";import{SwapKitApi as l5}from"@uswap/helpers/api";import{match as IG,P as E5}from"ts-pattern";async function D0(T,x){try{let y=(await l5.getGasRate()).find((f)=>f.chainId===T)?.value;return y?Number.parseFloat(y):x}catch{return x}}async function E0({phrase:T,prefix:x,...N}){let y=await import("@cosmjs/proto-signing"),f=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,G=await import("@cosmjs/crypto"),L=G.stringToPath??G.default?.stringToPath,X="derivationPath"in N?N.derivationPath:`${zG[N.chain]}/${N.index}`;return f.fromMnemonic(T,{hdPaths:[L(X)],prefix:x})}async function RG({privateKey:T,prefix:x}){let N=await import("@cosmjs/proto-signing");return(N.DirectSecp256k1Wallet??N.default?.DirectSecp256k1Wallet).fromKey(T,x)}function v5(T){return async function({signature:N,message:y,address:f}){let G=await T(f);if(!G?.pubkey)throw new Uf("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(k0.decode(N));return _.verifySignature(Z,k0.decode(y),G.pubkey.value)}}async function lT({chain:T,...x}){let N=await HG(T),y=S5[T],f="index"in x?x.index||0:0,G=k5("derivationPath"in x&&x.derivationPath?x.derivationPath:MG(UG[T],{index:f})),L=await IG(x).with({phrase:E5.string},({phrase:J})=>E0({derivationPath:G,phrase:J,prefix:y})).with({signer:E5.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 Uf("toolbox_cosmos_signer_not_defined");return k0.encode(J?.pubkey)}async function q({recipient:J,assetValue:B,memo:Y="",feeRate:M,feeOptionKey:W=Mf.Fast}){let I=await _();if(!(L&&I))throw new Uf("toolbox_cosmos_signer_not_defined");let O=Hf.from({chain:T}),v=GT(O),S=M||D5((await O0(T,C0[T]))[W],v),F=await NT(N,L),j=My(B.symbol),i=B.getBaseValue("string"),{TxRaw:Gy}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),D={amount:[{amount:i,denom:j}],fromAddress:I,toAddress:J},l=await F.sign(I,[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:D}],S,Y),z=Gy.encode(l).finish();return Buffer.from(z).toString("hex")}async function Q({recipient:J,assetValue:B,memo:Y="",feeRate:M,feeOptionKey:W=Mf.Fast,dryRun:I=!1}){if(I)return q({assetValue:B,feeOptionKey:W,feeRate:M,memo:Y,recipient:J});let O=await _();if(!(L&&O))throw new Uf("toolbox_cosmos_signer_not_defined");let v=Hf.from({chain:T}),S=GT(v),F=M||D5((await O0(T,C0[T]))[W],S),j=await NT(N,L),i=My(B.symbol),Gy=[{amount:B.getBaseValue("string"),denom:i}],{transactionHash:D}=await j.sendTokens(O,J,Gy,F,Y);return D}return{createPrivateKeyFromPhrase:kG(G),createTransaction:Y0,fetchFeeRateFromSwapKit:D0,getAccount:X,getAddress:_,getBalance:async(J,B)=>{let Y=await P5(N)(J),M=await Promise.all(Y.filter(({denom:W})=>W&&!W.includes("IBC/")).map(({denom:W,amount:I})=>{let O=[Ty.THORChain,Ty.Maya].includes(T)&&(W.includes("/")||W.includes("˜"))?`${T}.${W}`:W;return z0(O,I)}));if(M.length===0)return[Hf.from({chain:T})];return M},getBalanceAsDenoms:P5(N),getFees:()=>O0(T,C0[T]),getPubKey:Z,getSignerFromPhrase:async({phrase:J,derivationPath:B})=>E0({derivationPath:k5(B),index:f,phrase:J,prefix:y}),getSignerFromPrivateKey:async(J)=>{let B=await import("@cosmjs/proto-signing");return(B.DirectSecp256k1Wallet??B.default?.DirectSecp256k1Wallet).fromKey(J,y)},signTransaction:q,transfer:Q,validateAddress:A5(T),verifySignature:v5(X)}}async function wG(T,x){try{let y=(await l5.getGasRate()).find((f)=>f.chainId===T)?.value;return y?Number.parseFloat(y):x}catch{return x}}function CG({assetValue:{chain:T}}){return Hf.from({chain:T,value:OG(T)})}async function O0(T,x){let{chainId:N,baseDecimal:y}=WG(T),f=await D0(N,x);return{average:w0.fromBigInt(BigInt(f),y),fast:w0.fromBigInt(BigInt(O5(f,Mf.Fast,!0)),y),fastest:w0.fromBigInt(BigInt(O5(f,Mf.Fastest,!0)),y)}}function D5(T,x){return{amount:[{amount:T.getBaseValue("string"),denom:x}],gas:"200000"}}function OG(T){return{[Ty.Cosmos]:0.007,[Ty.Kujira]:0.02,[Ty.Noble]:0.01,[Ty.THORChain]:0.02,[Ty.Maya]:0.02,[Ty.Harbor]:0.02}[T]||0}function A5(T){let x=S5[T];return function(y){if(!y.startsWith(x))return!1;try{let{prefix:f,words:G}=R0.decode(y);return R0.encode(f,G)===y.toLocaleLowerCase()}catch{return!1}}}function P5(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 kG(T){return async function(N){let y=await import("@cosmjs/crypto"),f=y.stringToPath??y.default?.stringToPath,G=y.Slip10Curve??y.default?.Slip10Curve,L=y.Slip10??y.default?.Slip10,X=y.EnglishMnemonic??y.default?.EnglishMnemonic,_=y.Bip39??y.default?.Bip39,Z=new X(N),q=await _.mnemonicToSeed(Z),{privkey:Q}=L.derivePath(G.Secp256k1,q,f(T));return Q}}var C0;var If=E(()=>{PT();C0={[Ty.Cosmos]:1000,[Ty.Kujira]:1000,[Ty.Noble]:1000,[Ty.THORChain]:5000000,[Ty.Maya]:5000000,[Ty.Harbor]:5000000}});import{base64 as oy}from"@scure/base";import{Chain as EG,CosmosChainPrefixes as DG,derivationPathToString as PG,FeeOption as P0,getChainConfig as F5,getRPCUrl as SG,NetworkDerivationPath as lG,RequestClient as vG,SKConfig as AG,SwapKitError as V5,SwapKitNumber as $5,updateDerivationPath as FG}from"@uswap/helpers";import{match as VG,P as K5}from"ts-pattern";function $G({prefix:T,derivationPath:x}){return async function(y,f=0){let G=await import("@cosmjs/amino"),L=G.Secp256k1HdWallet??G.default?.Secp256k1HdWallet,X=await import("@cosmjs/crypto"),_=X.stringToPath??X.default?.stringToPath;return L.fromMnemonic(y,{hdPaths:[_(`${x}/${f}`)],prefix:T})}}function KG(T){return oy.encode(T)}function nG(T){return async function({wallet:N,tx:y}){let{msgs:f,accountNumber:G,sequence:L,chainId:X,fee:_,memo:Z}=typeof y==="string"?JSON.parse(y):y,q=(await N.getAccounts())?.[0]?.address||"",Q=await Ey(T),J=await hy(),B=await B0(N,{aminoTypes:Q,registry:J}),Y=[];for(let I of f){let O=await Dy(I,T);Y.push(O)}let{signatures:[M]}=await B.sign(q,Y,_,Z,{accountNumber:G,chainId:X,sequence:L});return{bodyBytes:await ST({chain:T,memo:Z,msgs:f.map(Py)}),signature:KG(M)}}}function uG({prefix:T,rpcUrl:x}){return async function(y,f,G,L,X){let{encodeSecp256k1Pubkey:_,pubkeyToAddress:Z}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:q}=(await import("@cosmjs/stargate")).default,{sequence:Q,fee:J}=JSON.parse(y),B=await n5(G,L),Y=f.map((I)=>[Z(_(oy.decode(I.pubKey)),T),oy.decode(I.signature)]),M=await Ry(x),{transactionHash:W}=await M.broadcastTx(q(B,Q,J,X,new Map(Y)));return W}}async function n5(T,x,N=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:f}=(await import("@cosmjs/amino")).default;return y(T.map((G)=>f(oy.decode(G))),x,N)}function bG(T){return oy.decode(T)}async function jG({privateKey:T,message:x}){let{Secp256k1:N}=(await import("@cosmjs/crypto")).default,y=await N.createSignature(oy.decode(x),T);return oy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function S0({chain:T,...x}){let N=await SG(T),{nodeUrl:y}=F5(T),{isStagenet:f}=AG.get("envs"),G=T===EG.THORChain,L=`${f?"s":""}${DG[T]}`,X="index"in x?x.index||0:0,_="derivationPath"in x&&x.derivationPath?x.derivationPath:FG(lG[T],{index:X}),Z=await lT({chain:T,...x}),q=await VG(x).with({phrase:K5.string},({phrase:Y})=>Z.getSignerFromPhrase({derivationPath:_,phrase:Y})).with({signer:K5.any},({signer:Y})=>Y).otherwise(()=>{return}),Q=Iy(T);async function J(){let Y,M=`${y}/${G?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:W}}=await vG.get(M);if(!W||Number.isNaN(W)||W<0)throw new V5("toolbox_cosmos_invalid_fee",{nativeFee:W.toString()});Y=new $5(W)}catch{Y=new $5({decimal:F5(T).baseDecimal,value:G?0.02:1})}return{[P0.Average]:Y,[P0.Fast]:Y,[P0.Fastest]:Y}}async function B({assetValue:Y,memo:M="",recipient:W}){let{TxRaw:I}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),O=(await q?.getAccounts())?.[0]?.address;if(!(O&&q))throw new V5("toolbox_cosmos_no_signer");let v="signAmino"in q,S=await hy(),F=await Ey(T),j=await NT(N,q,{aminoTypes:F,registry:S}),i=Wf({assetValue:Y,memo:M,recipient:W,sender:O});if(v){let z=await Dy(i,T),{signatures:R,authInfoBytes:C}=await j.sign(O,[z],Q,M),A=I.encode({authInfoBytes:C,bodyBytes:await ST({chain:T,memo:M,msgs:[i].map(Py)}),signatures:R}).finish();return(await j.broadcastTx(A)).transactionHash}let Gy=Py(i),D=await Dy(Gy,T);return(await j.signAndBroadcast(O,[D],Q,M)).transactionHash}return{...Z,broadcastMultisigTx:uG({prefix:L,rpcUrl:N}),buildAminoMsg:Wf,buildEncodedTxBody:ST,convertToSignable:Dy,createDefaultAminoTypes:()=>Ey(T),createDefaultRegistry:hy,createMultisig:n5,createTransaction:M0(N),deposit:B,getFees:J,importSignature:bG,parseAminoMessageForDirectSigning:Py,pubkeyToAddress:async(Y)=>{let{pubkeyToAddress:M}=(await import("@cosmjs/amino")).default;return M(Y,L)},secp256k1HdWalletFromMnemonic:$G({derivationPath:PG(_),prefix:L}),signMultisigTx:nG(T),signWithPrivateKey:jG,transfer:B}}var l0=E(()=>{I0();PT();If()});import{Chain as vT,SwapKitError as hG}from"@uswap/helpers";var oG=(T,x)=>{switch(T){case vT.Cosmos:case vT.Kujira:case vT.Noble:return lT({chain:T,...x});case vT.Maya:case vT.THORChain:return S0({chain:T,...x});default:throw new hG("toolbox_cosmos_not_supported",{chain:T})}};var u5=E(()=>{If();l0();If();l0()});var Rf={};yy(Rf,{verifySignature:()=>v5,transferMsgAmino:()=>H0,toBase64:()=>NG,parseAminoMessageForDirectSigning:()=>Py,getSignerFromPrivateKey:()=>RG,getSignerFromPhrase:()=>E0,getMsgSendDenom:()=>My,getFeeRateFromSwapKit:()=>wG,getDenomWithChain:()=>GT,getDefaultChainFee:()=>Iy,getCreateTransaction:()=>M0,getCosmosValidateAddress:()=>A5,getCosmosToolbox:()=>oG,getAssetFromDenom:()=>z0,fromBase64:()=>LG,fetchFeeRateFromSwapKit:()=>D0,estimateTransactionFee:()=>CG,depositMsgAmino:()=>U0,createThorchainToolbox:()=>S0,createStargateClient:()=>Ry,createSigningStargateClient:()=>NT,createOfflineStargateClient:()=>B0,createDefaultRegistry:()=>hy,createDefaultAminoTypes:()=>Ey,createCosmosToolbox:()=>lT,cosmosCreateTransaction:()=>Y0,convertToSignable:()=>Dy,buildTransferTx:()=>M5,buildEncodedTxBody:()=>ST,buildDepositTx:()=>I5,buildAminoMsg:()=>Wf,bech32ToBase64:()=>ET,base64ToBech32:()=>DT,YUM_KUJIRA_FACTORY_DENOM:()=>q5,USK_KUJIRA_FACTORY_DENOM:()=>Q0,THORCHAIN_GAS_VALUE:()=>BG,MAYA_GAS_VALUE:()=>YG,DEFAULT_NOBLE_FEE_MAINNET:()=>Y5,DEFAULT_KUJI_FEE_MAINNET:()=>B5,DEFAULT_COSMOS_FEE_MAINNET:()=>Q5});var wf=E(()=>{I0();u5();PT()});import{AssetValue as Cf,Chain as Sy,DerivationPath as pG,derivationPathToString as mG,getChainConfig as h5,getRPCUrl as cG,NetworkDerivationPath as tG,SwapKitError as my,updateDerivationPath as gG}from"@uswap/helpers";import{match as iG,P as b5}from"ts-pattern";async function o5(T){let x=Cf.from({address:T,chain:Sy.Solana});if(x.symbol!=="UNKNOWN")return{decimals:x.decimal||0,id:T,logoURI:x.getIconUrl(),name:x.symbol,symbol:x.ticker};let N=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(T)}`;try{let y=await fetch(N);if(!y.ok)return null;let f=await y.json();if(!Array.isArray(f)||f.length===0)return null;return f.find((L)=>L.id===T)||null}catch{return null}}async function dG(T){let x=await py(),{PublicKey:N}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),f=new N(T),G=[],L=await x.getBalance(f);if(L>0){let{baseDecimal:_}=h5(Sy.Solana);G.push(Cf.from({chain:Sy.Solana,fromBaseDecimal:_,value:L}))}let X=await x.getParsedTokenAccountsByOwner(f,{programId:y});for(let{account:_}of X.value){let Z=_.data.parsed.info,q=Z.mint,Q=Z.tokenAmount.amount;if(Number(Q)===0)continue;let J=await o5(q),B=J?.symbol||"UNKNOWN",Y=J?.decimals||Z.tokenAmount.decimals;G.push(Cf.from({asset:`${Sy.Solana}.${B}-${q}`,fromBaseDecimal:Y,value:Q}))}return G}async function F0(){let{PublicKey:T}=await import("@solana/web3.js");return(x)=>{try{let N=new T(x);return T.isOnCurve(N.toBytes())}catch{return!1}}}async function rG(T){let x=T&&"index"in T?T.index||0:0,N=mG(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:gG(tG[Sy.Solana],{index:x})),y=await iG(T).with({phrase:b5.string},({phrase:L})=>A0({derivationPath:N,phrase:L})).with({signer:b5.any},({signer:L})=>L).otherwise(()=>{return});function f(){return y?.publicKey?j5(y.publicKey):""}function G(L){let X=L||f();if(!X)throw new my("core_wallet_connection_not_found");return dG(X)}return{broadcastTransaction:v0(py),createKeysForPath:A0,createTransaction:V0(py),createTransactionFromInstructions:yN,estimateTransactionFee:aG(py),getAddress:f,getAddressFromPubKey:j5,getAddressValidator:F0,getBalance:G,getConnection:py,getPubkeyFromAddress:$0,signTransaction:fN(py,y),transfer:TN(py,y)}}function aG(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 my("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:q}=h5(Sy.Solana);return Cf.from({chain:Sy.Solana,fromBaseDecimal:q,value:Z.value})}}async function py(){let{Connection:T}=await import("@solana/web3.js"),x=await cG(Sy.Solana);return new T(x,"confirmed")}function sG(T){return async({assetValue:x,recipient:N,sender:y,isProgramDerivedAddress:f})=>{let G=await T(),L=await $0(y);if(x.isGasAsset){let{Transaction:X,SystemProgram:_,PublicKey:Z}=await import("@solana/web3.js");return new X().add(_.transfer({fromPubkey:L,lamports:x.getBaseValue("number"),toPubkey:new Z(N)}))}if(x.address)return eG({amount:x.getBaseValue("number"),connection:G,decimals:x.decimal,from:L,isProgramDerivedAddress:f,recipient:N,tokenAddress:x.address});return}}async function eG({tokenAddress:T,recipient:x,from:N,connection:y,amount:f,decimals:G,isProgramDerivedAddress:L}){let{getAssociatedTokenAddress:X,getAccount:_,createAssociatedTokenAccountInstruction:Z,createTransferCheckedInstruction:q}=await import("@solana/spl-token"),{Transaction:Q,PublicKey:J}=await import("@solana/web3.js"),B=new Q,Y=new J(T),M=await X(Y,N),W=new J(x),I=await X(Y,W,L),O=!1;try{await _(y,I),O=!0}catch{}if(!O)B.add(Z(N,I,W,Y));return B.add(q(M,Y,I,N,f,G)),B}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 $0(G),_=await F0();if(!(f||_(x)))throw new my("core_transaction_invalid_recipient_address");let Z=await T(),q=await sG(T)({assetValue:N,isProgramDerivedAddress:f,recipient:x,sender:G});if(!q)throw new my("core_transaction_invalid_sender_address");if(y)q.add(L(y));let Q=await Z.getLatestBlockhash();return q.recentBlockhash=Q.blockhash,q.feePayer=X,q}}async function yN({instructions:T}){let{Transaction:x}=await import("@solana/web3.js"),N=new x().add(...T);if(!N)throw new my("core_transaction_invalid_sender_address");return N}function TN(T,x){return async({recipient:N,assetValue:y,memo:f,isProgramDerivedAddress:G})=>{if(!x)throw new my("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 v0(T)(_)}return X.sign(x),v0(T)(X)}}function v0(T){return async(x)=>{return(await T()).sendRawTransaction(x.serialize())}}function fN(T,x){return async(N)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!x)throw new my("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 A0({phrase:T,derivationPath:x=pG.SOL}){let{HDKey:N}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:y}=await import("@scure/bip39"),{Keypair:f}=await import("@solana/web3.js"),G=y(T),L=N.fromMasterSeed(G);return f.fromSeed(L.derive(x,!0).privateKey)}function j5(T){return T.toString()}async function $0(T){let{PublicKey:x}=await import("@solana/web3.js");return new x(T)}var p5=()=>{};var K0={};yy(K0,{getSolanaToolbox:()=>rG,getSolanaAddressValidator:()=>F0,fetchTokenMetaData:()=>o5,createKeysForPath:()=>A0});var n0=E(()=>{p5()});import{AssetValue as Of,Chain as u0,getChainConfig as xN,SwapKitError as ly}from"@uswap/helpers";import{match as GN,P as m5}from"ts-pattern";async function c5(){let{isValidSuiAddress:T}=await import("@mysten/sui/utils");return function(N){try{return T(N)}catch{return!1}}}async function NN({provider:T,...x}={}){let N=await c5(),y=await GN(x).with({phrase:m5.string},async({phrase:Q})=>{let{Ed25519Keypair:J}=await import("@mysten/sui/keypairs/ed25519");return J.deriveKeypair(Q)}).with({signer:m5.any},({signer:Q})=>Q).otherwise(()=>{return});async function f(Q=T){let{SuiClient:J,getFullnodeUrl:B}=await import("@mysten/sui/client");return new J({url:Q||B("mainnet")})}function G(){return y?.toSuiAddress()||""}async function L(Q){let J=Q||G();if(!J)throw new ly("toolbox_sui_address_required");try{let B=await f(),{totalBalance:Y}=await B.getBalance({owner:J}),{baseDecimal:M,chain:W}=xN(u0.Sui),I=[Of.from({chain:W,fromBaseDecimal:M,value:Y})],O=await B.getAllBalances({owner:J});for(let{coinType:v,totalBalance:S}of O){if(v==="0x2::sui::SUI")continue;if(Number(S)>0){let F=v.split("::").pop()?.toUpperCase()||"UNKNOWN",j=`${W}.${F}-${v}`;I.push(Of.from({asset:j,fromBaseDecimal:M,value:S}))}}return I}catch(B){throw new ly("toolbox_sui_balance_error",{error:B})}}async function X(Q){let J=Of.from({chain:u0.Sui,value:"0.01"});if(!Q)return J;try{let B=await f(),{txBytes:Y}=await _(Q),{effects:{status:M,gasUsed:W}}=await B.dryRunTransactionBlock({transactionBlock:Y});if(M.status!=="success")return J;let I=Number(W.computationCost)+Number(W.storageCost)-Number(W.storageRebate);return Of.from({chain:u0.Sui,value:I.toString()})}catch{return J}}async function _({recipient:Q,assetValue:J,gasBudget:B,sender:Y}){let{Transaction:M}=await import("@mysten/sui/transactions"),W=Y||G();if(!W)throw new ly("toolbox_sui_no_sender");try{let I=new M;if(I.setSender(W),J.isGasAsset||J.symbol==="SUI"){let[S]=I.splitCoins(I.gas,[J.getBaseValue("string")]);I.transferObjects([S],Q)}else throw new ly("toolbox_sui_custom_token_transfer_not_implemented");if(B)I.setGasBudget(B);let O=await f(),v=await I.build({client:O});return{tx:I,txBytes:v}}catch(I){throw new ly("toolbox_sui_transaction_creation_error",{error:I})}}async function Z(Q){if(!y)throw new ly("toolbox_sui_no_signer");if(Q instanceof Uint8Array)return y.signTransaction(Q);let{txBytes:J}="tx"in Q?Q:await _(Q);return y.signTransaction(J)}async function q({assetValue:Q,gasBudget:J,recipient:B}){if(!y)throw new ly("toolbox_sui_no_signer");let Y=y.toSuiAddress()||G();if(!Y)throw new ly("toolbox_sui_no_sender");let{txBytes:M}=await _({assetValue:Q,gasBudget:J,recipient:B,sender:Y}),W=await f(),{digest:I}=await W.signAndExecuteTransaction({signer:y,transaction:M});return I}return{createTransaction:_,estimateTransactionFee:X,getAddress:G,getBalance:L,signTransaction:Z,transfer:q,validateAddress:N}}var t5=()=>{};var kf={};yy(kf,{getSuiToolbox:()=>NN,getSuiAddressValidator:()=>c5});var Ef=E(()=>{t5()});import{AssetValue as g5,Chain as Df,getChainConfig as i5,SwapKitError as LT,SwapKitNumber as LN}from"@uswap/helpers";import{match as XN,P as d5}from"ts-pattern";async function _N(T={}){let{mnemonicToWalletKey:x}=await import("@ton/crypto"),{Address:N,TonClient:y,WalletContractV4:f}=await import("@ton/ton"),G=await r5(),L,X,_=await XN(T).with({phrase:d5.string},async({phrase:I})=>x(I.split(" "))).with({signer:d5.any},({signer:I})=>I).otherwise(()=>{return});function Z(){let{rpcUrls:I}=i5(Df.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(),v=I||_;if(!v)throw new LT("core_wallet_connection_not_found");let S=f.create({publicKey:v.publicKey,workchain:0});X=O.open(S)}return X}async function Q(I){let O=Z(),{baseDecimal:v}=i5(Df.Ton);try{let S=await O.getBalance(N.parse(I));return[g5.from({chain:Df.Ton,value:LN.fromBigInt(S,v)})]}catch(S){throw new LT("core_wallet_connection_not_found",{error:S})}}async function J({assetValue:I,recipient:O,memo:v}){let S=q();if(!S||!_)throw new LT("core_wallet_connection_not_found");let{toNano:F,comment:j,internal:i}=await import("@ton/ton"),Gy=await S.getSeqno(),D=F(I.getValue("string")),l=v?j(v):void 0;return S.createTransfer({messages:[i({body:l,to:O,value:D})],secretKey:_.secretKey,seqno:Gy})}async function B({assetValue:I,recipient:O,memo:v}){let S=q();if(!S||!_)throw new LT("core_wallet_connection_not_found");let F=await J({assetValue:I,memo:v,recipient:O});return await S.send(F),F.hash().toString()}async function Y(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(v){throw new LT("core_wallet_connection_not_found",{error:v})}}function M(){return q().address.toString()}function W(){return Promise.resolve(g5.from({chain:Df.Ton,value:"0.0001"}))}return{createTransaction:J,estimateTransactionFee:W,getAddress:M,getBalance:Q,sendTransaction:Y,transfer:B,validateAddress:G}}async function r5(){let{Address:T}=await import("@ton/ton");return function(N){try{return T.parse(N),!0}catch{return!1}}}var a5=()=>{};var Pf={};yy(Pf,{getTONToolbox:()=>_N,getTONAddressValidator:()=>r5});var Sf=E(()=>{a5()});var XT;var b0=E(()=>{XT=[{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}]});import{SwapKitError as ZN}from"@uswap/helpers";async function s5(T){let x=await import("tronweb"),N=x.TronWeb??x.default?.TronWeb;try{let y=await fetch(`${JN}/v1/accounts/${T}`);if(!y.ok)throw Error(`TronGrid API error: ${y.status} ${y.statusText}`);let f=await y.json();if(!(f.success&&f.data)||f.data.length===0)throw Error("Invalid response from TronGrid API");let G;try{G=N.address.toHex(T).toLowerCase()}catch{G=T.toLowerCase()}let L=f.data.find((X)=>{return X.address.toLowerCase()===G});if(!L)return;return{balance:L.balance,trc20:L.trc20||[]}}catch(y){throw new ZN("toolbox_tron_trongrid_api_error",{address:T,message:y instanceof Error?y.message:"Unknown error"})}}var JN="https://api.trongrid.io";var e5=()=>{};import{AssetValue as wy,BaseDecimal as yx,Chain as By,derivationPathToString as xx,getRPCUrl as qN,NetworkDerivationPath as Gx,SwapKitError as fy,updateDerivationPath as Nx,warnOnce as j0}from"@uswap/helpers";import{match as QN,P as Tx}from"ts-pattern";async function h0(){let T=await import("tronweb"),x=T.TronWeb??T.default?.TronWeb;return(N)=>{return x.isAddress(N)}}async function Lx({phrase:T,derivationPath:x,index:N}){let y=x||xx(Nx(Gx[By.Tron],{index:N||0})),{HDKey:f}=await import("@scure/bip32"),{mnemonicToSeedSync:G}=await import("@scure/bip39"),L=G(T),_=f.fromMasterSeed(L).derive(y);if(!_.privateKey)throw new fy("toolbox_tron_no_signer");return Buffer.from(_.privateKey).toString("hex")}async function HN({phrase:T,derivationPath:x,tronWeb:N}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),G=f(T),X=y.fromMasterSeed(G).derive(x);if(!X.privateKey)throw new fy("toolbox_tron_no_signer");let _=Buffer.from(X.privateKey).toString("hex");N.setPrivateKey(_);let Z=N?.address.fromPrivateKey(_);return{getAddress:()=>Promise.resolve(typeof Z==="string"?Z:""),signTransaction:async(q)=>{return await N.trx.sign(q,_)}}}var BN=268,YN=13000,zN=345,fx="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",WN="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",Xx=async(T={})=>{let x=await import("tronweb"),N=x.TronWeb??x.default?.TronWeb,y=await qN(By.Tron),f=void 0,G=new N({fullHost:y,headers:void 0}),L="index"in T?T.index||0:0,X=xx("derivationPath"in T&&T.derivationPath?T.derivationPath:Nx(Gx[By.Tron],{index:L})),_=await QN(T).with({phrase:Tx.string},async({phrase:D})=>HN({derivationPath:X,phrase:D,tronWeb:G})).with({signer:Tx.any},({signer:D})=>Promise.resolve(D)).otherwise(()=>Promise.resolve(void 0)),Z=async()=>{if(!_)throw new fy("toolbox_tron_no_signer");return await _.getAddress()},q=()=>{return 1e8},Q=async()=>{try{let D=await G.trx.getChainParameters(),l={};for(let z of D)l[z.key]=z.value;return{bandwidthFee:l.getTransactionFee||1000,createAccountFee:l.getCreateAccountFee||1e5,energyFee:l.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},J=async(D)=>{try{let l=await G.trx.getAccount(D);return l&&Object.keys(l).length>0}catch{return!1}},B=async(D)=>{try{let l=await G.trx.getAccountResources(D);return{bandwidth:{free:l.freeNetLimit-l.freeNetUsed,total:l.NetLimit||0,used:l.NetUsed||0},energy:{total:l.EnergyLimit||0,used:l.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},Y=async(D,l)=>{try{let z=G.contract(XT,l);if(!z.methods?.balanceOf)return 0n;let[R]=await z.methods.balanceOf(D).call();return R?typeof R==="bigint"?R:BigInt(R):0n}catch(z){let R=z instanceof Error?z.message:String(z);return console.warn(`balanceOf() failed for ${l}: ${R}`),0n}},M=async(D,l)=>{try{G.setAddress(l);let z=G.contract(XT,D),[R,C]=await Promise.all([z.symbol().call().catch(()=>"UNKNOWN"),z.decimals().call().catch(()=>"18")]);return{decimals:Number(C??18),symbol:R??"UNKNOWN"}}catch(z){return j0({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${D}: ${z instanceof Error?z.message:z}`}),null}},W=async(D,l=!0)=>{let z=[wy.from({chain:By.Tron})];try{let R=await s5(D);if(R){let C=[];C.push(wy.from({chain:By.Tron,fromBaseDecimal:6,value:R.balance}));for(let A of R.trc20){let[u,n]=Object.entries(A)[0]||[];if(!(u&&n))continue;let $=await M(u,D);if(!$)continue;C.push(wy.from({asset:`TRON.${$.symbol}-${u}`,fromBaseDecimal:$.decimals,value:BigInt(n||0)}))}return C}return z}catch(R){j0({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${R instanceof Error?R.message:R}`});try{let C=[],A=await G.trx.getBalance(D);if(A&&Number(A)>0)C.push(wy.from({chain:By.Tron,fromBaseDecimal:6,value:A}));let u=await Y(D,fx);if(u)C.push(wy.from({asset:`TRON.USDT-${fx}`,fromBaseDecimal:6,value:u}));if(C.length===0)return z;return C}catch(C){let A=C instanceof Error?C.message:String(C);return console.error(`Tron balance fetch failed: ${A}`),z}}},I=async({recipient:D,assetValue:l,memo:z,expiration:R})=>{if(!_)throw new fy("toolbox_tron_no_signer");let C=await Z();G.setAddress(C);let A=await v({assetValue:l,expiration:R,memo:z,recipient:D,sender:C}),u=await _.signTransaction(A),{txid:n}=await G.trx.sendRawTransaction(u);if(!n)throw new fy("toolbox_tron_token_transfer_failed");return n},O=async({assetValue:D,recipient:l,sender:z})=>{let R=D.isGasAsset;try{let C=z?z:_?await Z():void 0;if(!C)return R?wy.from({chain:By.Tron,fromBaseDecimal:0,value:0.1}):wy.from({chain:By.Tron,fromBaseDecimal:0,value:15});let A=await Q(),n=await J(l)?0:A.createAccountFee,$=await B(C);if(R){let ny=BN,oT=$.bandwidth.free+($.bandwidth.total-$.bandwidth.used),pT=0;if(ny>oT)pT=(ny-oT)*A.bandwidthFee;let mT=n+pT;return wy.from({chain:By.Tron,fromBaseDecimal:yx.TRON,value:mT})}let h=zN,d=YN,e=$.bandwidth.free+($.bandwidth.total-$.bandwidth.used),Ny=$.energy.total-$.energy.used,Ky=0;if(h>e)Ky=(h-e)*A.bandwidthFee;let hT=0;if(d>Ny)hT=(d-Ny)*A.energyFee;let mf=n+Ky+hT;return wy.from({chain:By.Tron,fromBaseDecimal:yx.TRON,value:mf})}catch(C){throw j0({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${C instanceof Error?C.message:C}`}),new fy("toolbox_tron_fee_estimation_failed",{error:C})}},v=async(D)=>{let{recipient:l,assetValue:z,memo:R,sender:C,expiration:A}=D,u=z.isGasAsset,n=async({transaction:h,memo:d,expiration:e})=>{let Ny=d?await G.transactionBuilder.addUpdateData(h,d,"utf8"):h;return e?await G.transactionBuilder.extendExpiration(Ny,e):Ny};if(u){let h=await G.transactionBuilder.sendTrx(l,z.getBaseValue("number"),C);return n({expiration:A,memo:R,transaction:h})}G.setAddress(C);let $=z.address;if(!$)throw new fy("toolbox_tron_invalid_token_identifier",{identifier:z.toString()});try{let d=[{type:"address",value:l},{type:"uint256",value:z.getBaseValue("string")}],e={callValue:0,feeLimit:q()},{transaction:Ny}=await G.transactionBuilder.triggerSmartContract($,"transfer(address,uint256)",e,d,C);return n({expiration:A,memo:R,transaction:Ny})}catch(h){throw new fy("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction.",originalError:h instanceof Error?h.message:String(h)})}},S=async(D)=>{if(!_)throw new fy("toolbox_tron_no_signer");return await _.signTransaction(D)},F=async(D)=>{let{txid:l}=await G.trx.sendRawTransaction(D);return l},j=async({assetAddress:D,spenderAddress:l,from:z})=>{try{let R=G.contract(XT,D);if(!R.methods?.allowance)throw new fy("toolbox_tron_invalid_token_contract");let[C]=await R.methods.allowance(z,l).call();return C?typeof C==="bigint"?C:BigInt(C):0n}catch(R){throw new fy("toolbox_tron_allowance_check_failed",{error:R})}};return{approve:async({assetAddress:D,spenderAddress:l,amount:z,from:R})=>{if(!_)throw new fy("toolbox_tron_no_signer");let C=R||await Z(),A=z!==void 0?BigInt(z).toString():WN,u="approve(address,uint256)",n=[{type:"address",value:l},{type:"uint256",value:A}],h={callValue:0,feeLimit:q()};try{let{transaction:d}=await G.transactionBuilder.triggerSmartContract(D,u,h,n,C),e=await _.signTransaction(d),{txid:Ny}=await G.trx.sendRawTransaction(e);if(!Ny)throw new fy("toolbox_tron_approve_failed");return Ny}catch(d){throw new fy("toolbox_tron_approve_failed",{error:d})}},broadcastTransaction:F,createTransaction:v,estimateTransactionFee:O,getAddress:Z,getApprovedAmount:j,getBalance:W,isApproved:async({assetAddress:D,spenderAddress:l,from:z,amount:R})=>{let C=await j({assetAddress:D,from:z,spenderAddress:l});if(!R)return C>0n;let A=BigInt(R);return C>=A},signTransaction:S,transfer:I,tronWeb:G,validateAddress:await h0()}};var _x=E(()=>{b0();e5()});var o0={};yy(o0,{trc20ABI:()=>XT,getTronPrivateKeyFromMnemonic:()=>Lx,getTronAddressValidator:()=>h0,createTronToolbox:()=>Xx});var p0=E(()=>{b0();_x()});import{networks as UN}from"@bitgo/utxo-lib";import{Chain as a,getRPCUrl as MN,RequestClient as lf,SKConfig as IN,SwapKitError as vy,warnOnce as RN}from"@uswap/helpers";import{networks as wN}from"bitcoinjs-lib";import AT from"coininfo";async function CN({chain:T,txHash:x}){let N=`${vf(T)}/push/transaction`,y=JSON.stringify({data:x});try{let f=await lf.post(N,{body:y,headers:{"Content-Type":"application/json"}});if(f.context.code!==200)throw new vy("toolbox_utxo_broadcast_failed",{error:f.context.error||"Transaction broadcast failed"});return f.data?.transaction_hash||x}catch(f){let G=await MN(T);if(G){let L=JSON.stringify({id:V1(),jsonrpc:"2.0",method:"sendrawtransaction",params:[x]}),X=await lf.post(G,{body:L,headers:{"Content-Type":"application/json"}});if(X.error)throw new vy("toolbox_utxo_broadcast_failed",{error:X.error?.message});if(X.result.includes('"code":-26'))throw new vy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return X.result}throw f}}function vf(T){return`https://api.blockchair.com/${ON(T)}`}function Zx(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 ON(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 kN(T){try{let{feePerKb:x}=await lf.get(`https://app.bitgo.com/api/v2/${T.toLowerCase()}/tx/fee`),N=x/1000;return Math.max(N,Zx(T))}catch{return Zx(T)}}async function m0(T,x){let N=await lf.get(`${T}${x?`${T.includes("?")?"&":"?"}key=${x}`:""}`);if(!N||N.context.code!==200)throw new vy("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return N.data}async function qx({address:T,chain:x,apiKey:N}){if(!T)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await m0(`${vf(x)}/dashboards/address/${T}?transaction_details=true`,N))[T]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function EN({address:T,chain:x,apiKey:N}){return(await qx({address:T,apiKey:N,chain:x}))?.address.balance||0}async function Qx({chain:T,apiKey:x,txHash:N}){if(!N)throw new vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await m0(`${vf(T)}/raw/transaction/${N}`,x))?.[N]?.raw_transaction||""}catch(y){let f=y instanceof Error?y.message:String(y);return console.error(`Failed to fetch raw transaction: ${f}`),""}}async function DN({chain:T,address:x,apiKey:N,offset:y=0,limit:f=30}){return(await m0(`${vf(T)}/outputs?q=recipient(${x}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${f}&offset=${y}`,N)).map(({is_spent:_,script_hex:Z,block_id:q,transaction_hash:Q,index:J,value:B,spending_signature_hex:Y})=>({hash:Q,index:J,is_confirmed:q!==-1,is_spent:_,script_hex:Z,txHex:Y,value:B}))}function PN(T){return T.reduce((x,N)=>x+N.value,0)}function Jx(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 Bx({chain:T,address:x,apiKey:N,targetValue:y,accumulativeValue:f=0,offset:G=0,limit:L=30}){if(!x)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let X=await DN({address:x,apiKey:N,chain:T,limit:L,offset:G,targetValue:y}),Z=X.length<L,q=X.filter(({is_spent:W})=>!W),Q=PN(q),J=f+Q,B=y&&J>=y;if(Z||B)return Jx(q,y);let Y=await Bx({accumulativeValue:J,address:x,apiKey:N,chain:T,limit:L,offset:G+L,targetValue:y}),M=[...q,...Y];return Jx(M,y)}catch(X){let _=X instanceof Error?X.message:String(X);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function SN({address:T,chain:x,apiKey:N,fetchTxHex:y=!0,targetValue:f}){let G=await Bx({address:T,apiKey:N,chain:x,targetValue:f}),L=[];for(let{hash:X,index:_,script_hex:Z,value:q}of G){let Q;if(y)Q=await Qx({apiKey:N,chain:x,txHash:X});L.push({address:T,hash:X,index:_,txHex:Q,value:q,witnessUtxo:{script:Buffer.from(Z,"hex"),value:q}})}return L}function Ly(T){let x=IN.get("apiKeys").blockchair||"";return RN({condition:!x,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(N)=>CN({chain:T,txHash:N}),getAddressData:(N)=>qx({address:N,apiKey:x,chain:T}),getBalance:(N)=>EN({address:N,apiKey:x,chain:T}),getRawTx:(N)=>Qx({apiKey:x,chain:T,txHash:N}),getSuggestedTxFee:()=>kN(T),getUtxos:(N)=>SN({...N,apiKey:x,chain:T})}}function lN(T){return T}function Yy(){return function(x){switch(x){case a.Bitcoin:return wN.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 UN.zcash;default:throw new vy("toolbox_utxo_not_supported",{chain:x})}}}var Yx=E(()=>{HT()});import{SwapKitError as Wx}from"@uswap/helpers";import Hx from"bs58check";import Ux from"cashaddrjs";function t0(T){try{return Af(T),!0}catch{return!1}}function g0(T){return Af(T)?.network}function _T(T){let x=Af(T);if(x?.format==="legacy")return T;return FN(x)}function FT(T){let x=Af(T);return VN(x)}function Af(T){try{let x=vN(T);if(x)return x}catch{}try{let x=AN(T);if(x)return x}catch{}throw new Wx("toolbox_utxo_invalid_address",{address:T})}function vN(T){try{let x=Hx.decode(T);if(x.length!==21)throw new Wx("toolbox_utxo_invalid_address",{address:T});let N=x[0],y=Array.prototype.slice.call(x,1);switch(N){case cy.legacy.mainnet.p2pkh:return{format:"legacy",hash:y,network:"mainnet",type:"p2pkh"};case cy.legacy.mainnet.p2sh:return{format:"legacy",hash:y,network:"mainnet",type:"p2sh"};case cy.legacy.testnet.p2pkh:return{format:"legacy",hash:y,network:"testnet",type:"p2pkh"};case cy.legacy.testnet.p2sh:return{format:"legacy",hash:y,network:"testnet",type:"p2sh"};case cy.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2pkh"};case cy.bitpay.mainnet.p2sh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function AN(T){if(T.indexOf(":")!==-1)try{return zx(T)}catch{}else{let x=["bitcoincash","bchtest","bchreg"];for(let N of x)try{return zx(`${N}:${T}`)}catch{}}return}function zx(T){try{let{hash:x,prefix:N,type:y}=Ux.decode(T);return{format:"cashaddr",hash:Array.prototype.slice.call(x,0),network:N==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function FN(T){let x=cy.legacy[T.network][T.type],N=Buffer.alloc(1+T.hash.length);return N[0]=x,N.set(T.hash,1),Hx.encode(N)}function VN(T){let x=T.network==="mainnet"?"bitcoincash":"bchtest",N=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return Ux.encode(x,N,y)}var c0,cy;var Mx=E(()=>{((N)=>{N.Mainnet="mainnet";N.Testnet="testnet"})(c0||={});cy={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as $N}from"@uswap/helpers";import{opcodes as KN,script as nN}from"bitcoinjs-lib";function zy(T){let x=Buffer.from(T,"utf8");return nN.compile([KN.OP_RETURN,x])}var uN=1000,$f=10,Ix=10,bN=41,jN=107,Kf,Ff,Vf,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 $N("toolbox_utxo_invalid_address",{address:T})},ZT=({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>=Ff["type"in L?L.type:"P2PKH"]*Math.ceil(N)).reduce((L,X)=>L+Ay(X),0),G=x?.reduce((L,X)=>L+$T(X),0)||Vf[y];return $f+f+G},Ay=(T)=>{if("type"in T)return Ff[T.type];if("address"in T&&T.address)return Ff[VT(T.address)];return bN+jN},$T=(T,x)=>{if(T?.script)return Ix+T.script.length+(T.script.length>=74?2:1);if(x)return Vf[x];return Vf.P2PKH};var i0=E(()=>{((N)=>{N.P2PKH="P2PKH";N.P2WPKH="P2WPKH"})(Kf||={});Ff={["P2PKH"]:148,["P2WPKH"]:68},Vf={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as ty,SwapKitError as hN}from"@uswap/helpers";function nf(T){switch(T){case ty.Bitcoin:case ty.BitcoinCash:return 550;case ty.Dash:case ty.Litecoin:return 5500;case ty.Dogecoin:return 1e5;case ty.Zcash:return 546;default:throw new hN("toolbox_utxo_not_supported",{chain:T})}}function Wy({inputs:T,outputs:x,feeRate:N=1,chain:y=ty.Bitcoin,changeAddress:f=""}){let G=Math.ceil(N),L=T[0]&&"address"in T[0]&&T[0].address?VT(T[0].address):"P2PKH",X=T.filter((B)=>Ay(B)*G<=B.value),_=$f+x.reduce((B,Y)=>B+$T(Y,L),0),Z=x.reduce((B,Y)=>B+Y.value,0),q=_*G,Q=0,J=[];for(let B of X){let Y=Ay(B),M=G*Y;q+=M,Q+=B.value,J.push(B);let W=q+Z;if(Q<W)continue;let I=Q-W,O=G*$T({address:"",value:0},L);if(I>O){let v=O+q,S=Q-(Z+v);if(S>Math.max(Ay({})*G,nf(y)))return{fee:v,inputs:J,outputs:x.concat({address:f,value:S})}}return{fee:q,inputs:J,outputs:x}}return{fee:G*ZT({feeRate:G,inputs:T,outputs:x})}}var Rx=E(()=>{i0()});var JT=E(()=>{Yx();Mx();Rx();i0()});import{networks as oN,address as pN}from"@bitgo/utxo-lib";import mN from"bs58check";function gy(T){return T.replace(/(bchtest:|bitcoincash:)/,"")}function Fy(T){let x=gy(T);return t0(x)&&g0(x)==="mainnet"}function qT(T){try{if(T.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let x=oN.zcash;try{return pN.toOutputScript(T,x),!0}catch{let N=mN.decode(T);if(N.length<21)return!1;let y=N[0];return y===x.pubKeyHash||y===x.scriptHash}}catch{return!1}}var KT=E(()=>{JT()});import r0 from"@bitcoinerlab/secp256k1";import{ECPair as cN,HDNode as tN}from"@psf/bitcoincashjs-lib";import{HDKey as gN}from"@scure/bip32";import{mnemonicToSeedSync as wx}from"@scure/bip39";import{AssetValue as d0,applyFeeMultiplier as Cx,Chain as Xy,DerivationPath as iN,derivationPathToString as dN,FeeOption as Cy,NetworkDerivationPath as rN,SwapKitError as Oy,SwapKitNumber as aN,updateDerivationPath as sN}from"@uswap/helpers";import{address as eN,initEccLib as kx,Psbt as yL,payments as Ox}from"bitcoinjs-lib";import{ECPairFactory as TL}from"ecpair";function Ex({inputs:T,outputs:x,chain:N,psbt:y,sender:f,compiledMemo:G}){for(let L of T){let X=!!L.witnessUtxo&&!nT.includes(N)&&{witnessUtxo:L.witnessUtxo},_=nT.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};kx(r0),y.addOutput(Z)}return{inputs:T,psbt:y}}async function Dx({assetValue:T,recipient:x,memo:N,feeRate:y,sender:f,fetchTxHex:G=!1}){let L=T.chain,X=N?await zy(N):null,_=await lx({assetValue:T,fetchTxHex:G,memo:N,recipient:x,sender:f}),{inputs:Z,outputs:q}=Wy({..._,chain:L,feeRate:y});if(!(Z&&q))throw new Oy("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let Q=await Yy(),J=new yL({network:Q(L)});if(L===Xy.Dogecoin)J.setMaximumFeeRate(650000000);let{psbt:B,inputs:Y}=await Ex({chain:L,compiledMemo:X,inputs:Z,outputs:q,psbt:J,sender:f});return{inputs:Y,psbt:B,utxos:_.inputs}}async function Px(){let T=await Yy();return function({address:N,chain:y}){if(y===Xy.BitcoinCash)return Fy(N);if(y===Xy.Zcash)return qT(N);try{return kx(r0),eN.toOutputScript(N,T(y)),!0}catch{return!1}}}async function fL({chain:T,phrase:x,derivationPath:N}){let y=(await uT(T))({derivationPath:N,phrase:x});async function f(L){return await L.signAllInputs(y),L}function G(){return a0(T)(y)}return{getAddress:G,signTransaction:f}}async function iy({chain:T,...x}){let N="phrase"in x?x.phrase:void 0,y="index"in x?x.index||0:0,f=dN("derivationPath"in x&&x.derivationPath?x.derivationPath:sN(rN[T],{index:y})),G=N?await fL({chain:T,derivationPath:f,phrase:N}):("signer"in x)?x.signer:void 0;function L(){return Promise.resolve(G?.getAddress())}let X=await Px(),_=await uT(T);return{accumulative:Wy,broadcastTx:(Z)=>Ly(T).broadcastTx(Z),calculateTxSize:ZT,createKeysForPath:_,createTransaction:Dx,estimateMaxSendableAmount:xL(T),estimateTransactionFee:GL(T),getAddress:L,getAddressFromKeys:a0(T),getBalance:ry(T),getFeeRates:()=>bT(T),getInputsOutputsFee:Sx,getPrivateKeyFromMnemonic:(Z)=>{return _(Z).toWIF()},transfer:NL(G),validateAddress:(Z)=>X({address:Z,chain:T})}}async function Sx({assetValue:T,feeOptionKey:x=Cy.Fast,feeRate:N,memo:y,sender:f,recipient:G}){let L=T.chain,X=await lx({assetValue:T,memo:y,recipient:G,sender:f}),_=N?Math.floor(N):(await bT(L))[x];return Wy({...X,chain:L,feeRate:_})}function xL(T){return async function({from:N,memo:y,feeRate:f,feeOptionKey:G=Cy.Fast,recipients:L=1}){let X=await Ly(T).getAddressData(N),_=f?Math.ceil(f):(await bT(T))[G],Z=X?.utxo.map((Y)=>({...Y,hash:"",type:"P2PKH"})).filter((Y)=>Y.value>Math.max(nf(T),Ay(Y)*_));if(!Z?.length)return d0.from({chain:T});let q=d0.from({chain:T,value:Z.reduce((Y,M)=>Y+M.value,0)}),Q=typeof L==="number"?Array.from({length:L},()=>({address:N,value:0})):L;if(y){let Y=await zy(y);Q.push({address:N,script:Y,value:0})}let B=ZT({feeRate:_,inputs:Z,outputs:Q})*_;return q.sub(B)}}function GL(T){return async(x)=>{let N=await Sx(x);return d0.from({chain:T,value:aN.fromBigInt(BigInt(N.fee),8).getValue("string")})}}async function uT(T){let x=await Yy();switch(T){case Xy.BitcoinCash:return function({phrase:y,derivationPath:f=`${iN.BCH}/0`,wif:G}){let L=x(T);if(G)return cN.fromWIF(G,L);if(!y)throw new Oy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return tN.fromSeedBuffer(Buffer.from(wx(y)),L).derivePath(f).keyPair};case Xy.Bitcoin:case Xy.Dogecoin:case Xy.Litecoin:case Xy.Zcash:case Xy.Dash:return function({phrase:y,wif:f,derivationPath:G}){if(!(f||y))throw new Oy("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let L=TL(r0),X=x(T);if(f)return L.fromWIF(f,X);let _=wx(y),Z=gN.fromMasterSeed(_,X).derive(G);if(!Z.privateKey)throw new Oy("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return L.fromPrivateKey(Buffer.from(Z.privateKey),{network:X})};default:throw new Oy("toolbox_utxo_not_supported",{chain:T})}}function a0(T){let x=Yy();return function(y){if(!y)throw new Oy("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let f=nT.includes(T)?Ox.p2pkh:Ox.p2wpkh,{address:G}=f({network:x(T),pubkey:y.publicKey});if(!G)throw new Oy("toolbox_utxo_invalid_address",{error:"Address not defined"});return G}}function NL(T){return async function({memo:N,recipient:y,feeOptionKey:f,feeRate:G,assetValue:L}){let X=await T?.getAddress(),_=L.chain;if(!(T&&X))throw new Oy("toolbox_utxo_no_signer");if(!y)throw new Oy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Z=G||(await bT(_))[f||Cy.Fast],{psbt:q}=await Dx({assetValue:L,feeRate:Z,memo:N,recipient:y,sender:X}),Q=await T.signTransaction(q);return Q.finalizeAllInputs(),Ly(_).broadcastTx(Q.extractTransaction().toHex())}}async function bT(T){let x=await Ly(T).getSuggestedTxFee();return{[Cy.Average]:x,[Cy.Fast]:Cx(x,Cy.Fast),[Cy.Fastest]:Cx(x,Cy.Fastest)}}async function lx({assetValue:T,recipient:x,memo:N,sender:y,fetchTxHex:f=!1}){let G=T.chain,L=(await bT(G))[Cy.Fastest],X=f||nT.includes(G),_=T.getBaseValue("number"),Z=Math.ceil(_+L*5000);return{inputs:await Ly(G).getUtxos({address:y,fetchTxHex:X,targetValue:Z}),outputs:[{address:x,value:_},...N?[{address:"",script:await zy(N),value:0}]:[]]}}var nT;var jT=E(()=>{HT();JT();KT();nT=[Xy.Dash,Xy.Dogecoin,Xy.Zcash,Xy.BitcoinCash]});import{address as LL,Transaction as XL,TransactionBuilder as _L}from"@psf/bitcoincashjs-lib";import{Chain as ZL,derivationPathToString as JL,FeeOption as qL,NetworkDerivationPath as QL,SwapKitError as QT,updateDerivationPath as BL}from"@uswap/helpers";import{Psbt as YL}from"bitcoinjs-lib";function dy(T){return gy(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(dy(y))},signTransaction:x}}async function s0(T){let x="phrase"in T?T.phrase:void 0,N="index"in T?T.index||0:0,y=JL("derivationPath"in T&&T.derivationPath?T.derivationPath:BL(QL[Jy],{index:N})),f=x?(await uT(Jy))({derivationPath:y,phrase:x}):void 0,G=f?zL(f):("signer"in T)?T.signer:void 0;function L(){return Promise.resolve(G?.getAddress())}let{getBalance:X,getFeeRates:_,broadcastTx:Z,...q}=await iy({chain:Jy});function Q(J,B=!0){return X(gy(FT(J)))}return{...q,broadcastTx:Z,buildTx:HL,createTransaction:vx,getAddress:L,getAddressFromKeys:UL,getBalance:Q,getFeeRates:_,stripPrefix:gy,stripToCashAddress:dy,transfer:WL({broadcastTx:Z,getFeeRates:_,signer:G}),validateAddress:Fy}}async function vx({assetValue:T,recipient:x,memo:N,feeRate:y,sender:f}){if(!Fy(x))throw new QT("toolbox_utxo_invalid_address",{address:x});let G=Math.ceil(T.getBaseValue("number")+y*7500),L=await Ly(Jy).getUtxos({address:dy(f),fetchTxHex:!0,targetValue:G}),X=N?await zy(N):null,_=[];_.push({address:x,value:T.getBaseValue("number")});let{inputs:Z,outputs:q}=Wy({chain:Jy,feeRate:y,inputs:L,outputs:_});if(!(Z&&q))throw new QT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let Q=await Yy(),J=new _L(Q(Jy));await Promise.all(Z.map(async(B)=>{let Y=await Ly(Jy).getRawTx(B.hash);J.addInput(XL.fromBuffer(Buffer.from(Y,"hex")),B.index)}));for(let B of q){let Y="address"in B&&B.address?B.address:_T(f),M=await Yy(),W=LL.toOutputScript(_T(Y),M(Jy));J.addOutput(W,B.value)}if(X)J.addOutput(X,0);return{builder:J,utxos:Z}}function WL({broadcastTx:T,getFeeRates:x,signer:N}){return async function({recipient:f,assetValue:G,feeOptionKey:L=qL.Fast,...X}){let _=await N?.getAddress();if(!(N&&_))throw new QT("toolbox_utxo_no_signer");if(!f)throw new QT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Z=X.feeRate||(await x())[L],{builder:q,utxos:Q}=await vx({...X,assetValue:G,feeRate:Z,recipient:f,sender:_}),B=(await N.signTransaction({builder:q,utxos:Q})).toHex();return T(B)}}async function HL({assetValue:T,recipient:x,memo:N,feeRate:y,sender:f,setSigHashType:G}){let L=FT(x);if(!Fy(L))throw new QT("toolbox_utxo_invalid_address",{address:L});let X=Math.ceil(T.getBaseValue("number")+y*7500),_=await Ly(Jy).getUtxos({address:dy(f),fetchTxHex:!1,targetValue:X}),Z=Number(y.toFixed(0)),q=N?await zy(N):null,Q=[];if(Q.push({address:_T(x),value:T.getBaseValue("number")}),q)Q.push({script:q,value:0});let{inputs:J,outputs:B}=Wy({chain:Jy,feeRate:Z,inputs:_,outputs:Q});if(!(J&&B))throw new QT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let Y=await Yy(),M=new YL({network:Y(Jy)});for(let{hash:W,index:I,witnessUtxo:O}of J)M.addInput({hash:W,index:I,sighashType:G?65:void 0,witnessUtxo:O});for(let W of B){let I="address"in W&&W.address?W.address:_T(f),O=W.script?q?{script:q,value:0}:void 0:{address:I,value:W.value};if(O)M.addOutput(O)}return{inputs:J,psbt:M,utxos:_}}function UL(T){let x=T.getAddress(0);return dy(x)}var Jy;var uf=E(()=>{JT();jT();KT();Jy=ZL.BitcoinCash});import{bitgo as ML,crypto as IL,ECPair as Fx,networks as RL,address as wL}from"@bitgo/utxo-lib";import{HDKey as Vx}from"@scure/bip32";import{mnemonicToSeedSync as $x}from"@scure/bip39";import{Chain as bf,derivationPathToString as CL,FeeOption as OL,NetworkDerivationPath as kL,SKConfig as EL,SwapKitError as jf,updateDerivationPath as DL}from"@uswap/helpers";import PL from"bs58check";import{match as SL,P as e0}from"ts-pattern";function Kx(){return RL.zcash}function nx(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
- `,pubKeyHash:28,scriptHash:28,wif:128}}function lL({phrase:T,derivationPath:x}){let N=$x(T),f=Vx.fromMasterSeed(N).derive(x);if(!f.privateKey)throw new jf("toolbox_utxo_invalid_params");let G=nx(),L=Fx.fromPrivateKey(Buffer.from(f.privateKey),{network:G}),X=IL.hash160(L.publicKey),{isStagenet:_}=EL.get("envs"),Z=_?Buffer.from([29,37]):Buffer.from([28,184]),q=Buffer.concat([Z,X]),Q=PL.encode(q);return{getAddress:()=>Promise.resolve(Q),signTransaction:(J)=>{let B=J.signAllInputs(L);return Promise.resolve(B)}}}function vL({inputs:T,outputs:x,psbt:N,sender:y,compiledMemo:f}){for(let G of T){let L=!!G.witnessUtxo&&{witnessUtxo:{...G.witnessUtxo,value:BigInt(G.value)}},X=!G.witnessUtxo&&{nonWitnessUtxo:G.txHex?Buffer.from(G.txHex,"hex"):void 0};N.addInput({hash:G.hash,index:G.index,...L,...X})}for(let G of x){let L="address"in G&&G.address?G.address:y,X=G.script;if(X&&!f)continue;let _=X?{script:f,value:0n}:{script:wL.toOutputScript(L,Kx()),value:BigInt(G.value)};N.addOutput(_)}return{inputs:T,psbt:N}}async function Ax(T){let{assetValue:x,recipient:N,memo:y,feeRate:f,sender:G,fetchTxHex:L}=T,X=y?zy(y):null,_=await Ly(bf.Zcash).getUtxos({address:G,fetchTxHex:L!==!1}),Z=[{address:N,value:Number(x.getBaseValue("string"))},...X?[{script:X,value:0}]:[]],{inputs:q,outputs:Q}=Wy({chain:bf.Zcash,changeAddress:G,feeRate:f,inputs:_,outputs:Z});if(!(q&&Q))throw new jf("toolbox_utxo_insufficient_balance",{assetValue:x,sender:G});let J=ML.createPsbtForNetwork({network:Kx()},{version:455}),Y=3268858036,M=Buffer.concat([Buffer.of(252),Buffer.of(5),Buffer.from("BITGO"),Buffer.of(0)]),W=Buffer.allocUnsafe(4);W.writeUInt32LE(Y>>>0,0),J.addUnknownKeyValToGlobal({key:M,value:W});let{psbt:I,inputs:O}=await vL({compiledMemo:X,inputs:q,outputs:Q,psbt:J,sender:G});return{inputs:O,outputs:Q,psbt:I}}async function y1(T){let x=await SL(T).with({signer:e0.not(e0.nullish)},({signer:L})=>Promise.resolve(L)).with({phrase:e0.string},({phrase:L,derivationPath:X,index:_=0})=>{let Z=X||kL[bf.Zcash]||[44,133,0,0,0],q=DL(Z,{index:_}),Q=CL(q);return lL({derivationPath:Q,phrase:L})}).otherwise(()=>Promise.resolve(void 0)),N=await iy({chain:bf.Zcash,signer:x});async function y({recipient:L,assetValue:X,feeOptionKey:_=OL.Fast,...Z}){let q=await x?.getAddress();if(!(x&&q))throw new jf("toolbox_utxo_no_signer");let Q=Z.feeRate||(await N.getFeeRates())[_],{psbt:J}=await Ax({...Z,assetValue:X,feeRate:Q,recipient:L,sender:q}),B=await x.signTransaction(J);return B.finalizeAllInputs(),N.broadcastTx(B.extractTransaction().toHex())}function f({phrase:L,derivationPath:X="m/44'/133'/0'/0/0"}){let _=$x(L),q=Vx.fromMasterSeed(_).derive(X);if(!q.privateKey)throw new jf("toolbox_utxo_invalid_params");let Q=nx();return Fx.fromPrivateKey(Buffer.from(q.privateKey),{network:Q})}function G({phrase:L,derivationPath:X="m/44'/133'/0'/0/0"}){return f({derivationPath:X,phrase:L}).toWIF()}return{...N,createKeysForPath:f,createTransaction:Ax,getPrivateKeyFromMnemonic:G,transfer:y,validateAddress:qT}}var T1=E(()=>{JT();jT();KT()});import{Chain as BT,SwapKitError as AL}from"@uswap/helpers";async function FL(T,x){switch(T){case BT.BitcoinCash:return await s0(x||{});case BT.Zcash:return await y1(x);case BT.Bitcoin:case BT.Dogecoin:case BT.Litecoin:case BT.Dash:return await iy({chain:T,...x});default:throw new AL("toolbox_utxo_not_supported",{chain:T})}}var ux=E(()=>{uf();jT();T1();uf();KT()});var f1={};yy(f1,{validateZcashAddress:()=>qT,toLegacyAddress:()=>_T,toCashAddress:()=>FT,stripToCashAddress:()=>dy,stripPrefix:()=>gy,nonSegwitChains:()=>nT,isValidAddress:()=>t0,getUtxoToolbox:()=>FL,getUtxoNetwork:()=>Yy,getUtxoApi:()=>Ly,getUTXOAddressValidator:()=>Px,getScriptTypeForAddress:()=>VT,getOutputSize:()=>$T,getInputSize:()=>Ay,getDustThreshold:()=>nf,getCreateKeysForPath:()=>uT,detectAddressNetwork:()=>g0,createZcashToolbox:()=>y1,createUTXOToolbox:()=>iy,createCustomUtxoApi:()=>lN,createBCHToolbox:()=>s0,compileMemo:()=>zy,calculateTxSize:()=>ZT,bchValidateAddress:()=>Fy,addressFromKeysGetter:()=>a0,addInputsAndOutputs:()=>Ex,accumulative:()=>Wy,UtxoNetwork:()=>c0,UTXOScriptType:()=>Kf,TX_OVERHEAD:()=>$f,OutputSizes:()=>Vf,OP_RETURN_OVERHEAD:()=>Ix,MIN_TX_FEE:()=>uN,InputSizes:()=>Ff});var x1=E(()=>{JT();ux();uf();jT();T1()});import{KeyPairSigner as VL}from"@near-js/signers";import{derivationPathToString as $L,SwapKitError as KL}from"@uswap/helpers";async function hf(){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 of(T){let{parseSeedPhrase:x}=await import("near-seed-phrase"),{KeyPair:N}=await import("@near-js/crypto"),y=T.index||0,f=T.derivationPath?$L(T.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:G}=x(T.phrase,f),L=N.fromString(G);return jx(L)}async function G1(T){let{KeyPair:x}=await import("@near-js/crypto"),N=x.fromString(T);return jx(N)}function jx(T){return new bx(T)}async function pf(T,x){let y=(await T.query({account_id:x,finality:"final",request_type:"view_access_key_list"})).keys.find((X)=>X.access_key.permission==="FullAccess");if(!y)throw new KL("toolbox_near_no_public_key_found");let{PublicKey:f}=await import("@near-js/crypto"),G=f.fromString(y.public_key);return{nonce:y.access_key.nonce||0,publicKey:G}}var bx;var N1=E(()=>{bx=class bx 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 L1(T){return"recipient"in T&&"amount"in T&&!("contractId"in T)}function X1(T){return"contractId"in T&&"methodName"in T}function _1(T){return"actions"in T}function Z1(T){return"newAccountId"in T}function J1(T){return"contractCode"in T}function q1(T){return"customEstimator"in T}function Q1(T){let x=0;for(let N of T)switch(N.enum){case"transfer":x+=Number(s.SIMPLE_TRANSFER);break;case"functionCall":x+=Number(s.CONTRACT_CALL);break;case"createAccount":x+=Number(s.ACCOUNT_CREATION);break;case"deployContract":x+=Number(s.CONTRACT_DEPLOYMENT);break;case"addKey":x+=Number(s.ACCESS_KEY_ADDITION);break;case"deleteKey":x+=Number(s.ACCESS_KEY_DELETION);break;case"stake":x+=Number(s.STAKE);break;default:x+=Number(s.CONTRACT_CALL)}return x.toString()}function B1(T){if(T==="ft_transfer"||T==="ft_transfer_call")return s.TOKEN_TRANSFER;if(T==="storage_deposit")return s.STORAGE_DEPOSIT;return s.CONTRACT_CALL}function nL(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function uL(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var s;var Y1=E(()=>{s={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function z1({account:T,contractId:x,viewMethods:N,changeMethods:y}){let{Contract:f}=await import("@near-js/accounts");return new f(T,x,{changeMethods:y,useLocalViewExecution:!0,viewMethods:N})}import{AssetValue as hx,Chain as YT,getChainConfig as ox,getRPCUrl as bL,SwapKitError as xy}from"@uswap/helpers";async function jL(T){let{P:x,match:N}=await import("ts-pattern"),{JsonRpcProvider:y}=await import("@near-js/providers"),f=await N(T).with({phrase:x.string},async(z)=>{return await of(z)}).with({signer:x.any},({signer:z})=>z).otherwise(()=>{return}),G=await bL(YT.Near),L=new y({url:G});async function X(z){let{Account:R}=await import("@near-js/accounts"),C=z||await _();return new R(C,L,f)}async function _(){if(!f)throw new xy("toolbox_near_no_signer");return await f.getAddress()}async function Z(z){return(await i({changeMethods:[],contractId:z.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:z.accountId})}async function q(z){let C=[await M({args:{account_id:z.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await M({args:{amount:z.assetValue.getBaseValue("string"),memo:z.memo||null,receiver_id:z.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return Gy({actions:C,receiverId:z.contractId})}async function Q(z){if(!f)throw new xy("toolbox_near_no_signer");let{assetValue:R,recipient:C,memo:A}=z,u=await _();if(!R.isGasAsset&&R.address){if(!await Z({accountId:C,contractId:R.address}))return q({assetValue:R,contractId:R.address,memo:A,recipient:C})}let n=await J({...z,sender:u});return O(n)}async function J(z){let{recipient:R,assetValue:C,memo:A,attachedDeposit:u,sender:n,functionCall:$}=z,h=await hf();if(!h(R))throw new xy("toolbox_near_invalid_address",{recipient:R});if(!h(n))throw new xy("toolbox_near_invalid_address",{signerId:n});if($)return Y({...$,sender:n});if(!C.isGasAsset){let mT=C.address;if(!mT)throw new xy("toolbox_near_missing_contract_address");return Y({args:{amount:C.getBaseValue("string"),memo:A||null,receiver_id:R},attachedDeposit:u||"1",contractId:mT,gas:"250000000000000",methodName:"ft_transfer",sender:n})}let{publicKey:d,nonce:e}=await pf(L,n),Ny=C.getBaseValue("bigint"),{actionCreators:Ky,createTransaction:hT}=await import("@near-js/transactions"),{baseDecode:mf}=await import("@near-js/utils"),ny=[Ky.transfer(Ny)];if(A&&u)ny.push(Ky.functionCall("memo",{memo:A},BigInt("250000000000000"),BigInt(u)));let oT=await L.block({finality:"final"}),pT=mf(oT.header.hash);return hT(n,d,R,e+1,ny,pT)}function B(z){let R=z.encode();return Buffer.from(R).toString("base64")}async function Y(z){let{sender:R}=z,{publicKey:C,nonce:A}=await pf(L,R),{createTransaction:u,actionCreators:n}=await import("@near-js/transactions"),{baseDecode:$}=await import("@near-js/utils"),h=await L.block({finality:"final"}),d=$(h.header.hash),e=[n.functionCall(z.methodName,Buffer.from(JSON.stringify(z.args)),BigInt(z.gas),BigInt(z.attachedDeposit))];return u(R,C,z.contractId,A+1,e,d)}async function M(z){let{actionCreators:R}=await import("@near-js/transactions");return R.functionCall(z.methodName,Buffer.from(JSON.stringify(z.args)),BigInt(z.gas),BigInt(z.attachedDeposit))}async function W(z){if(!f)throw new xy("toolbox_near_no_signer");let[R,C]=await f.signTransaction(z);return C}async function I(z){return(await L.sendTransaction(z)).transaction.hash}async function O(z){if(!f)throw new xy("toolbox_near_no_signer");try{let R=await W(z);return await I(R)}catch{return f.signAndSendTransactions?.({transactions:[z]})}}async function v(z){if("assetValue"in z){let u=BigInt("115123062500")+BigInt("108059500000"),n=await S(),$=u*BigInt(n.toString()),{baseDecimal:h}=ox(YT.Near);return hx.from({chain:YT.Near,fromBaseDecimal:h,value:$.toString()})}let R=f?await X():void 0;return D(z,R)}async function S(){try{return await L.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function F(z,R,C){if(!f)throw new xy("toolbox_near_no_signer");let A=await X(),{formatNearAmount:u}=await import("@near-js/utils"),{PublicKey:n}=await import("@near-js/crypto"),$=u(C)||"0";return(await A.createAccount(z,n.fromString(R),BigInt($))).transaction.hash}async function j(z){try{if(!f)throw new xy("toolbox_near_no_signer");let{actionCreators:R}=await import("@near-js/transactions"),{contractId:C,methodName:A,args:u,deposit:n}=z,$=await X(),h=await D({args:u||{},contractId:C,methodName:A}),d=R.functionCall(A,u||{},h.getBaseValue("bigint"),BigInt(n||"1"));return(await $.signAndSendTransaction({actions:[d],receiverId:C})).transaction_outcome.id}catch(R){throw new xy("toolbox_near_transfer_failed",{error:R})}}async function i(z){let R=await X();return z1({account:R,changeMethods:z.changeMethods,contractId:z.contractId,viewMethods:z.viewMethods})}async function Gy(z){if(!f)throw new xy("toolbox_near_no_signer");if(z.actions.length===0)throw new xy("toolbox_near_empty_batch");return(await(await X()).signAndSendTransaction({actions:z.actions,receiverId:z.receiverId})).transaction.hash}async function D(z,R){let{baseDecimal:C}=ox(YT.Near),A=await N(z).when(L1,()=>s.SIMPLE_TRANSFER).when(X1,($)=>B1($.methodName)).when(_1,($)=>Q1($.actions)).when(Z1,()=>s.ACCOUNT_CREATION).when(J1,()=>s.CONTRACT_DEPLOYMENT).when(q1,($)=>{if(!R)throw new xy("toolbox_near_no_account");return $.customEstimator(R)}).otherwise(()=>{throw new xy("toolbox_near_invalid_gas_params")}),n=BigInt(A)*BigInt(1000000000000);return hx.from({chain:YT.Near,fromBaseDecimal:C,value:n})}async function l(){try{return(await L.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:I,callFunction:j,createAction:M,createContract:i,createContractFunctionCall:Y,createSubAccount:F,createTransaction:J,estimateGas:D,estimateTransactionFee:v,executeBatchTransaction:Gy,getAddress:_,getBalance:ry(YT.Near),getGasPrice:l,getPublicKey:async()=>f?(await f.getPublicKey()).toString():"",getSignerFromPhrase:(z)=>of(z),getSignerFromPrivateKey:G1,provider:L,serializeTransaction:B,signAndSendTransaction:O,signTransaction:W,transfer:Q,validateAddress:await hf()}}var W1=E(()=>{HT();N1();Y1()});var px=E(()=>{W1()});var H1={};yy(H1,{tgasToGas:()=>nL,isSimpleTransfer:()=>L1,isCustomEstimator:()=>q1,isContractDeployment:()=>J1,isContractCall:()=>X1,isBatchTransaction:()=>_1,isAccountCreation:()=>Z1,getValidateNearAddress:()=>hf,getNearToolbox:()=>jL,getNearSignerFromPrivateKey:()=>G1,getNearSignerFromPhrase:()=>of,getFullAccessPublicKey:()=>pf,getContractMethodGas:()=>B1,gasToTGas:()=>uL,estimateBatchGas:()=>Q1,createNearContract:()=>z1,GAS_COSTS:()=>s});var U1=E(()=>{N1();Y1();W1();px()});var M1={};yy(M1,{radixValidateAddress:()=>cx,RadixToolbox:()=>iL});import{AssetValue as hL,Chain as mx,SKConfig as oL,SwapKitError as pL}from"@uswap/helpers";function cx(T){return T.startsWith("account_rdx1")&&T.length===66}function mL({networkApi:T}){return async function(N){let y=await cL({address:N,networkApi:T});return tL({networkApi:T,resources:y})}}async function cL({address:T,networkApi:x}){let N=!0,y,f=[],G=await gL(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 tL({resources:T,networkApi:x}){let N=[],y=50,f=[];for(let G=0;G<T.length;G+=50)f.push(T.slice(G,G+50));for(let G of f){let L=G.map((Z)=>Z.resource_address),X=await x.state.getEntityDetailsVaultAggregated(L),_=new Map;for(let Z of X)if(Z.details!==void 0){let q=Z.metadata?.items.find((J)=>J.key==="symbol"),Q=q?.value.typed.type==="String"?q.value.typed.value:"?";if(Z.details.type==="FungibleResource")_.set(Z.address,{decimals:Z.details.divisibility,symbol:Q})}for(let Z of G)if(Z.aggregation_level==="Global"){let q=_.get(Z.resource_address)||{decimals:0,symbol:"?"},Q=hL.from({asset:q.symbol!==mx.Radix?`${mx.Radix}.${q.symbol}-${Z.resource_address}`:"XRD.XRD",value:Z.amount});N.push(Q)}}return N}function gL(T){return T.status.getCurrent().then((x)=>x.ledger_state.state_version)}var iL=async({dappConfig:T}={})=>{let{RadixDappToolkit:x}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:N}=await import("@radixdlt/babylon-gateway-api-sdk"),y=T||oL.get("integrations").radix,f=x({...y,networkId:y.network?.networkId||1}),G=N.initialize(f.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:mL({networkApi:G}),networkApi:G,signAndBroadcast:()=>{throw new pL("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:cx}};var I1=()=>{};var C1={};yy(C1,{rippleValidateAddress:()=>w1,hashes:()=>xX,getRippleToolbox:()=>fX});import{AssetValue as R1,Chain as ky,getChainConfig as tx,getRPCUrl as dL,SwapKitError as Vy,SwapKitNumber as rL}from"@uswap/helpers";import{Client as aL,isValidAddress as sL,Wallet as eL,xrpToDrops as yX}from"xrpl";import{hashes as xX}from"xrpl";function gx(T){let x=eL.fromMnemonic(T);return{getAddress:()=>Promise.resolve(x.address),signTransaction:(N)=>Promise.resolve(x.sign(N))}}function w1(T){return sL(T)}var TX,fX=async(T={})=>{let x="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?gx(T.phrase):void 0,N=await dL(ky.Ripple);if(!N)throw new Vy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:ky.Ripple}});let y=new aL(N);await y.connect();let f=()=>{if(!x)throw new Vy({errorKey:"toolbox_ripple_signer_not_found"});return x.getAddress()},G=async(J)=>{let B=J||await f(),{baseDecimal:Y}=tx(ky.Ripple);try{let W=(await y.request({account:B,command:"account_info"})).result.account_data.Balance;return[R1.from({chain:ky.Ripple,fromBaseDecimal:Y,value:W})]}catch(M){if(M.data.error_code===TX.ACCOUNT_NOT_FOUND)return[R1.from({chain:ky.Ripple,value:0})];throw new Vy("toolbox_ripple_get_balance_error",{info:{address:B,error:M}})}},L=async()=>{let B=(await y.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:Y}=tx(ky.Ripple);return R1.from({chain:ky.Ripple,fromBaseDecimal:Y,value:rL.fromBigInt(BigInt(B),Y)})},X=async({assetValue:J,recipient:B,memo:Y,sender:M})=>{if(!w1(B))throw new Vy({errorKey:"core_transaction_invalid_recipient_address"});let W=M||await f();if(!J.isGasAsset||J.chain!==ky.Ripple)throw new Vy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:J.toString()}});let I={Account:W,Amount:yX(J.getValue("string")),Destination:B,TransactionType:"Payment"};if(Y)I.Memos=[{Memo:{MemoData:Buffer.from(Y).toString("hex")}}];return await y.autofill(I)},_=(J)=>{if(!x)throw new Vy({errorKey:"toolbox_ripple_signer_not_found"});return x.signTransaction(J)},Z=async(J)=>{let Y=(await y.submitAndWait(J)).result;if(Y.validated)return Y.hash;throw new Vy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:ky.Ripple}})};return{broadcastTransaction:Z,createSigner:gx,createTransaction:X,disconnect:()=>y.disconnect(),estimateTransactionFee:L,getAddress:f,getBalance:G,signer:x,signTransaction:_,transfer:async(J)=>{if(!x)throw new Vy({errorKey:"toolbox_ripple_signer_not_found"});let B=await x.getAddress(),Y=await X({...J,sender:B}),M=await _(Y);return Z(M.tx_blob)},validateAddress:w1}};var O1=E(()=>{TX={ACCOUNT_NOT_FOUND:19}});import{AssetValue as GX,Chain as NX,SwapKitNumber as ix}from"@uswap/helpers";async function LX(T,x,N){try{let y=await T.query.system?.account?.(N);if(!y)return[x.set(0)];let{data:{free:f}}=y,G=ix.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}`),[]}}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=ix.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}`),[]}}function dx(T,x){return function(y){let f=GX.from({chain:T});switch(T){case NX.Chainflip:return XX(x,f,y);default:return LX(x,f,y)}}}var rx=()=>{};var _X,ZX,JX,$y;var k1=E(()=>{_X={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},ZX={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},JX={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},$y={DOT:_X,FLIP:ZX,GENERIC:JX}});import{hexToU8a as qX,isHex as QX,u8aToHex as BX}from"@polkadot/util";import{decodeAddress as sx,encodeAddress as ex}from"@polkadot/util-crypto";import{AssetValue as YX,Chain as WT,getRPCUrl as zX,SwapKitError as Hy,SwapKitNumber as WX}from"@uswap/helpers";import{match as HX,P as ax}from"ts-pattern";function UX(T,x){switch(T){case WT.Chainflip:return T2(x);case WT.Polkadot:return y2(x);default:throw new Hy("toolbox_substrate_not_supported",{chain:T})}}function zT(T){return"address"in T}async function D1(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 kX(T,x){let N=sx(T);return ex(N,x)}function f2(T,x){return QX(T)?qX(T):sx(T,void 0,x)}function x2(T,x="ss58",N){if(x==="hex")return BX(T);return ex(T,N)}async function l1({generic:T,chain:x,...N}){let{ApiPromise:y,WsProvider:f}=await import("@polkadot/api"),G=await zX(x),L=new f(G),X=await y.create({noInitWarn:!0,provider:L}),_=YX.from({chain:x}),Z=T?$y.GENERIC:$y[x],q=await HX(N).with({phrase:ax.string},({phrase:Q})=>D1(Q,$y[x].prefix)).with({signer:ax.any},({signer:Q})=>Q).otherwise(()=>{return});return G2({api:X,chain:x,gasAsset:_,network:Z,signer:q})}var y2=({generic:T=!1,...x}={})=>{return l1({chain:WT.Polkadot,generic:T,...x})},T2=async({generic:T=!1,...x}={})=>{return{...await l1({chain:WT.Chainflip,generic:T,...x})}},P1=(T,x)=>T.rpc.system.accountNextIndex(x),E1=(T,x)=>{try{let N=f2(T,x);return x2(N,"ss58",x),!0}catch{return!1}},S1=(T,{recipient:x,assetValue:N})=>T.tx.balances?.transferAllowDeath?.(x,N.getBaseValue("number")),MX=async(T,x,{recipient:N,assetValue:y,sender:f})=>{let G=S1(T,{assetValue:y,recipient:N});if(!G)throw new Hy("toolbox_substrate_transfer_error");let L=zT(x),X=L?x.address:f;if(!X)throw new Hy("core_transaction_invalid_sender_address");let _=await P1(T,X);return(await G.signAndSend(L?x:X,{nonce:_,signer:L?void 0:x})).toString()},IX=async(T,x,N,{recipient:y,assetValue:f,sender:G})=>{let L=S1(T,{assetValue:f,recipient:y}),X=zT(x)?x.address:G;if(!X)return;let _=await L?.paymentInfo(X,{nonce:await P1(T,X)})||{partialFee:0};return N.set(WX.fromBigInt(BigInt(_.partialFee.toString()),N.decimal).getValue("string"))},RX=async(T,x)=>{if(x)return T.send(x);return(await T.send()).toString()},wX=async(T,x)=>{return await x.signAsync(T)},CX=(T,x,N)=>{if(N)return x.signAndSend(T,N);return x.signAndSend(T).toString()},OX=async({signer:T,address:x,tx:N,callback:y,api:f})=>{let G=await P1(f,x);if(y)N.signAndSend(x,{nonce:G,signer:T},y);return N.signAndSend(x,{nonce:G,signer:T}).toString()},G2=({api:T,network:x,gasAsset:N,signer:y,chain:f})=>({api:T,broadcast:RX,convertAddress:kX,createKeyring:(G)=>D1(G,x.prefix),createTransaction:(G)=>S1(T,G),decodeAddress:f2,encodeAddress:x2,estimateTransactionFee:(G)=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");return IX(T,y,N,G)},gasAsset:N,getAddress:(G)=>{let L=G||y;if(!L)throw new Hy("core_wallet_not_keypair_wallet");return zT(L)?L.address:void 0},getBalance:dx(f||WT.Polkadot,T),network:x,sign:(G)=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");if(zT(y))return wX(y,G);throw new Hy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:G,callback:L,address:X})=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");if(zT(y))return CX(y,G,L);if(X)return OX({address:X,api:T,callback:L,signer:y,tx:G});throw new Hy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(G)=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");return MX(T,y,G)},validateAddress:(G)=>E1(G,x.prefix)}),EX=({address:T,chain:x})=>{let{prefix:N}=x===WT.Polkadot?$y.DOT:$y.FLIP;return E1(T,N)||E1(T,$y.GENERIC.prefix)};var N2=E(()=>{rx();k1()});var v1={};yy(v1,{substrateValidateAddress:()=>EX,isKeyringPair:()=>zT,getSubstrateToolbox:()=>UX,createSubstrateToolbox:()=>l1,createKeyring:()=>D1,SubstrateNetwork:()=>$y,PolkadotToolbox:()=>y2,ChainflipToolbox:()=>T2,BaseSubstrateToolbox:()=>G2});var A1=E(()=>{N2();k1()});import{AssetValue as DX,Chain as V,CosmosChains as X2,EVMChains as F1,FeeOption as PX,SubstrateChains as SX,SwapKitError as lX,UTXOChains as _2}from"@uswap/helpers";async function K4(){let{match:T}=await import("ts-pattern"),{evmValidateAddress:x}=await Promise.resolve().then(() => (N5(),G5)),{getCardanoAddressValidator:N}=await Promise.resolve().then(() => (Z0(),_0)),{getCosmosValidateAddress:y}=await Promise.resolve().then(() => (wf(),Rf)),{getSolanaAddressValidator:f}=await Promise.resolve().then(() => (n0(),K0)),{getSuiAddressValidator:G}=await Promise.resolve().then(() => (Ef(),kf)),{getTONAddressValidator:L}=await Promise.resolve().then(() => (Sf(),Pf)),{getTronAddressValidator:X}=await Promise.resolve().then(() => (p0(),o0)),{getUTXOAddressValidator:_}=await Promise.resolve().then(() => (x1(),f1)),{getValidateNearAddress:Z}=await Promise.resolve().then(() => (U1(),H1)),{radixValidateAddress:q}=await Promise.resolve().then(() => (I1(),M1)),{rippleValidateAddress:Q}=await Promise.resolve().then(() => (O1(),C1)),{substrateValidateAddress:J}=await Promise.resolve().then(() => (A1(),v1)),B=await N(),Y=await Z(),M=await f(),W=await G(),I=await L(),O=await X(),v=await _();return function({address:F,chain:j}){return T(j).with(...F1,()=>x({address:F})).with(..._2,()=>v({address:F,chain:j})).with(V.Cosmos,V.Kujira,V.Noble,V.Maya,V.THORChain,(Gy)=>{return y(Gy)(F)}).with(V.Chainflip,V.Polkadot,()=>J({address:F,chain:j})).with(V.Radix,()=>q(F)).with(V.Near,()=>Y(F)).with(V.Ripple,()=>Q(F)).with(V.Solana,()=>M(F)).with(V.Sui,()=>W(F)).with(V.Ton,()=>I(F)).with(V.Tron,()=>O(F)).with(V.Cardano,()=>B(F)).otherwise(()=>!1)}}function n4(T){return async function(N){let{match:y}=await import("ts-pattern");return y(T).returnType().with(...F1,async(f)=>{let G=await L2(f),L=await G.createTransaction(N);return G.estimateTransactionFee({...L,chain:f,feeOption:N.feeOptionKey||PX.Fast})}).with(V.Bitcoin,V.BitcoinCash,V.Dogecoin,V.Dash,V.Litecoin,V.Polkadot,V.Solana,V.Ripple,V.Tron,V.Near,V.Cardano,async(f)=>{return(await L2(f)).estimateTransactionFee(N)}).with(V.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (Ef(),kf));return(await f()).estimateTransactionFee(N)}).with(V.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (Sf(),Pf));return(await f()).estimateTransactionFee()}).with(...X2,async()=>{let{estimateTransactionFee:f}=await Promise.resolve().then(() => (wf(),Rf));return f(N)}).otherwise(async()=>DX.from({chain:T}))}}async function L2(T,x){let{match:N}=await import("ts-pattern");return N(T).returnType().with(...F1,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (L0(),T5));return await y(T,x)}).with(..._2,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (x1(),f1));return await y(T,x)}).with(...X2,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (wf(),Rf));return await y(T,x)}).with(...SX,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (A1(),v1));return await y(T,x)}).with(V.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (I1(),M1));return await y(x)}).with(V.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (O1(),C1));return await y(x)}).with(V.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (n0(),K0));return await y(x)}).with(V.Sui,async()=>{let{getSuiToolbox:y}=await Promise.resolve().then(() => (Ef(),kf));return await y(x)}).with(V.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (p0(),o0));return await y(x)}).with(V.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (U1(),H1));return await y(x)}).with(V.Cardano,async()=>{let{getCardanoToolbox:y}=await Promise.resolve().then(() => (Z0(),_0));return await y(x)}).with(V.Ton,async()=>{let{getTONToolbox:y}=await Promise.resolve().then(() => (Sf(),Pf));return await y(x)}).otherwise(()=>{throw new lX("toolbox_not_supported",{chain:T})})}export{L2 as getToolbox,n4 as getFeeEstimator,K4 as getAddressValidator};
1
+ var qx=Object.create;var{getPrototypeOf:Qx,defineProperty:tf,getOwnPropertyNames:zx}=Object;var Yx=Object.prototype.hasOwnProperty;var H=(T,x,G)=>{G=T!=null?qx(Qx(T)):{};let y=x||!T||!T.__esModule?tf(G,"default",{value:T,enumerable:!0}):G;for(let f of zx(T))if(!Yx.call(y,f))tf(y,f,{get:()=>T[f],enumerable:!0});return y};var yy=(T,x)=>{for(var G in x)tf(T,G,{get:x[G],enumerable:!0,configurable:!0,set:(y)=>x[G]=()=>y})};var E=(T,x)=>()=>(T&&(x=T(T=0)),x);var M=((T)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(T,{get:(x,G)=>(typeof require<"u"?require:x)[G]}):T)(function(T){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+T+'" is not supported')});import{AssetValue as V5,getChainConfig as Wx}from"@uswap/helpers";import{SwapKitApi as Hx}from"@uswap/helpers/api";function $5(){function T(){let x=Date.now(),G=cf||x;return cf=G,x>cf?x:G+1}return Mx+T().toString(36)}function ry(T){return async function(G,y=!0){let f=await Hx.getChainBalance({address:G,chain:T,scamFilter:y}),{baseDecimal:L}=Wx(T),N=f.map(({identifier:_,value:Z,decimal:B})=>{return new V5({decimal:B||L,identifier:_,value:Z})});if(!N.some((_)=>_.isGasAsset))return[V5.from({chain:T}),...N];return N}}var Mx,cf=0;var WT=E(()=>{Mx=typeof process<"u"&&process.pid?process.pid.toString(36):""});function HT(T){return{getBalance:ry(T)}}function wx(T){return T}var iT=E(()=>{WT()});import{Chain as p,getChainConfig as u5,getRPCUrl as Ix}from"@uswap/helpers";import{match as Rx}from"ts-pattern";async function $y(T,x){let{JsonRpcProvider:G}=await import("ethers");return new G(x||await Ix(T))}function MT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function mf(T){let{explorerUrl:x,chainIdHex:G,rpcUrls:y}=u5(T);return function(){return T!==p.Ethereum?{...Cx({chain:T}),blockExplorerUrls:[x],chainId:G,rpcUrls:y}:void 0}}function gf(T){return![p.Arbitrum,p.BinanceSmartChain].includes(T)}function Cx({chain:T}){let{name:x,nativeCurrency:G,baseDecimal:y}=u5(T);return Rx(T).with(p.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:y,name:"Avalanche",symbol:T}})).with(p.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:y,name:"Berachain",symbol:"BERA"}})).with(p.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:y,name:"OKB",symbol:"OKB"}})).with(p.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:y,name:"Binance Coin",symbol:"BNB"}})).with(p.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:y,name:"xDAI",symbol:"XDAI"}})).with(p.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:y,name:"Polygon",symbol:p.Polygon}})).otherwise(()=>({chainName:x,nativeCurrency:{decimals:y,name:G,symbol:G}}))}var ay=()=>{};var b5;var j5=E(()=>{b5=[{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 Ox,applyFeeMultiplierToBigInt as _y,Chain as By,EVMChains as kx,FeeOption as b,isGasAsset as Kx,SwapKitNumber as gT,USwapError as h}from"@uswap/helpers";import{erc20ABI as wT}from"@uswap/helpers/contracts";import{BrowserProvider as Ex,Contract as o5,getAddress as dT,Interface as h5}from"ethers";import{match as Dx}from"ts-pattern";function sy({chain:T=By.Ethereum,provider:x,signer:G,isEIP1559Compatible:y=!0}){return{approve:vx({chain:T,isEIP1559Compatible:y,provider:x,signer:G}),approvedAmount:c5({chain:T,provider:x}),broadcastTransaction:x.broadcastTransaction,call:y0({chain:T,isEIP1559Compatible:y,provider:x,signer:G}),createApprovalTx:Vx({chain:T,provider:x,signer:G}),createContract:af({chain:T,provider:x}),createContractTxObject:uy({chain:T,provider:x}),createTransaction:df({chain:T,provider:x,signer:G}),createTransferTx:df({chain:T,provider:x,signer:G}),EIP1193SendTransaction:yT(x),estimateCall:m5({provider:x,signer:G}),estimateGasLimit:Fx({chain:T,provider:x,signer:G}),estimateGasPrices:by({chain:T,isEIP1559Compatible:y,provider:x}),estimateTransactionFee:$x({chain:T,isEIP1559Compatible:y,provider:x}),getAddress:()=>{return G?G.getAddress():void 0},getBalance:HT(T).getBalance,getNetworkParams:mf(T),isApproved:lx({chain:T,provider:x}),sendTransaction:i5({chain:T,isEIP1559Compatible:y,provider:x,signer:G}),signMessage:G?(f)=>G.signMessage(f):void 0,transfer:Ax({chain:T,isEIP1559Compatible:y,provider:x,signer:G}),validateAddress:(f)=>rf({address:f})}}function rf({address:T}){try{return dT(T),!0}catch{return!1}}function ey(T){return T instanceof Ex}function RT(T,x,G){return new o5(T,h5.from(x),G)}function af({provider:T}){return function(G,y){return new o5(G,h5.from(y),T)}}function sf({abi:T,funcName:x}){let G=T.find((y)=>y.name===x);if(!G)throw new h("toolbox_evm_no_abi_fragment",{funcName:x});return G.stateMutability&&Sx.includes(G.stateMutability)}function p5(T){return dT(T)}function yT(T){return function({value:G,...y}){if(!ey(T))throw new h("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:f,gasPrice:L,maxFeePerGas:N,maxPriorityFeePerGas:X,..._}=y;return T.send("eth_sendTransaction",[{..._,value:MT(BigInt(G||0))}])}}function t5(T,x){let G=TT(T,x);if(G)return dT(G.toLowerCase());throw new h("toolbox_evm_invalid_gas_asset_address")}function TT({chain:T,symbol:x,ticker:G},y){try{let f=T===By.BinanceSmartChain&&x==="BNB"&&G==="BNB",L=T===y&&x===y&&G===y,N=Px.includes(T)&&x==="ETH"&&G==="ETH";if(L||f||N)return ef[y];return dT(x.slice(G.length+1).replace(/^0X/,""))}catch{return null}}function uy({provider:T}){return async({contractAddress:x,abi:G,funcName:y,funcParams:f=[],txOverrides:L})=>RT(x,G,T).getFunction(y).populateTransaction(...f.concat(L).filter((N)=>typeof N<"u"))}function by({chain:T,provider:x,isEIP1559Compatible:G=!0}){return Dx(T).with(By.Gnosis,()=>{return async function(){try{let{gasPrice:f,maxPriorityFeePerGas:L}=await x.getFeeData();if(!f||L===null)throw new h("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:_y(f,b.Average),maxPriorityFeePerGas:_y(L,b.Average)},[b.Fast]:{maxFeePerGas:_y(f,b.Fast),maxPriorityFeePerGas:_y(L,b.Fast)},[b.Fastest]:{maxFeePerGas:_y(f,b.Fastest),maxPriorityFeePerGas:_y(L,b.Fastest)}}}catch(f){throw new h("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).with(By.Arbitrum,()=>{return async function(){try{let{gasPrice:f}=await x.getFeeData();if(!f)throw new h("toolbox_evm_no_fee_data");return{[b.Average]:{gasPrice:f},[b.Fast]:{gasPrice:f},[b.Fastest]:{gasPrice:f}}}catch(f){throw new h("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:f,maxPriorityFeePerGas:L,gasPrice:N}=await x.getFeeData();if(G){if(f===null||L===null)throw new h("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:f,maxPriorityFeePerGas:L},[b.Fast]:{maxFeePerGas:_y(f,b.Fast),maxPriorityFeePerGas:_y(L,b.Fast)},[b.Fastest]:{maxFeePerGas:_y(f,b.Fastest),maxPriorityFeePerGas:_y(L,b.Fastest)}}}if(!N)throw new h("toolbox_evm_no_gas_price");return{[b.Average]:{gasPrice:N},[b.Fast]:{gasPrice:_y(N,b.Fast)},[b.Fastest]:{gasPrice:_y(N,b.Fastest)}}}catch(f){throw new h("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}})}function y0({provider:T,isEIP1559Compatible:x,signer:G,chain:y}){return async function({callProvider:L,contractAddress:N,abi:X,funcName:_,funcParams:Z=[],txOverrides:B={},feeOption:q=b.Fast}){let J=L||T;if(!N)throw new h("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let Q=sf({abi:X,funcName:_});if(Q&&ey(J)&&G){let w=uy({chain:y,provider:J}),I=B?.from||await G?.getAddress(),k=await w({abi:X,contractAddress:N,funcName:_,funcParams:Z,txOverrides:{...B,from:I}});return yT(J)(k)}let z=RT(N,X,J);if(Q){if(!G)throw new h("toolbox_evm_no_signer");let w=B?.from||await G.getAddress();if(!w)throw new h("toolbox_evm_no_signer_address");let I=z.connect(G),k=by({chain:y,isEIP1559Compatible:x,provider:T}),{maxFeePerGas:l,maxPriorityFeePerGas:U,gasPrice:A}=(await k())[q],j=await z.getFunction(_).estimateGas(...Z,B),g=await I[_](...Z,{...B,gasLimit:j,gasPrice:A,maxFeePerGas:l,maxPriorityFeePerGas:U,nonce:B?.nonce||await J.getTransactionCount(w)});return typeof g?.hash==="string"?g?.hash:g}let W=await z[_]?.(...Z);return typeof W?.hash==="string"?W?.hash:W}}function c5({provider:T,chain:x}){return function({assetAddress:y,spenderAddress:f,from:L}){return y0({chain:x,isEIP1559Compatible:!0,provider:T})({abi:wT,contractAddress:y,funcName:"allowance",funcParams:[L,f]})}}function lx({provider:T,chain:x}){return async function({assetAddress:y,spenderAddress:f,from:L,amount:N=IT}){let X=await c5({chain:x,provider:T})({assetAddress:y,from:L,spenderAddress:f});return gT.fromBigInt(X).gte(gT.fromBigInt(BigInt(N)))}}function vx({signer:T,isEIP1559Compatible:x=!0,provider:G,chain:y}){return async function({assetAddress:L,spenderAddress:N,feeOptionKey:X=b.Fast,amount:_,gasLimitFallback:Z,from:B,nonce:q}){let J=[N,BigInt(_||IT)],Q=await T?.getAddress()||B,z={abi:wT,contractAddress:L,funcName:"approve",funcParams:J,signer:T,txOverrides:{from:Q}};if(ey(G)){let w=uy({chain:y,provider:G}),I=yT(G),k=await w(z);return I(k)}return y0({chain:y,isEIP1559Compatible:x,provider:G,signer:T})({...z,feeOption:X,funcParams:J,txOverrides:{from:Q,gasLimit:Z?BigInt(Z.toString()):void 0,nonce:q}})}}function Ax({signer:T,isEIP1559Compatible:x=!0,provider:G}){return async function({assetValue:f,memo:L,recipient:N,feeOptionKey:X=b.Fast,sender:_,...Z}){let{hexlify:B,toUtf8Bytes:q}=await import("ethers"),J=f.getBaseValue("bigint"),Q=f.chain,z=_||await T?.getAddress(),W=i5({chain:Q,isEIP1559Compatible:x,provider:G,signer:T});if(!z)throw new h("toolbox_evm_no_from_address");if(f.isGasAsset){let A={...Z,data:B(q(L||"")),feeOptionKey:X,from:z,to:N,value:J};return W(A)}if(!TT(f,Q))throw new h("toolbox_evm_no_contract_address");let{maxFeePerGas:I,maxPriorityFeePerGas:k,gasPrice:l}=(await by({chain:Q,isEIP1559Compatible:x,provider:G})())[X],U=await df({chain:Q,provider:G,signer:T})({assetValue:f,data:B(q(L||"")),gasPrice:l,maxFeePerGas:I,maxPriorityFeePerGas:k,memo:L,recipient:N,sender:z});return W(U)}}function m5({provider:T,signer:x}){return function({contractAddress:y,abi:f,funcName:L,funcParams:N=[],txOverrides:X}){if(!y)throw new h("toolbox_evm_no_contract_address");let _=RT(y,f,T);return x?_.connect(x).getFunction(L).estimateGas(...N,X):_.getFunction(L).estimateGas(...N,X)}}function Fx({provider:T,signer:x}){return async function({assetValue:y,recipient:f,memo:L,data:N,sender:X,funcName:_,funcParams:Z,txOverrides:B}){let q=y.bigIntValue,J=y.isGasAsset?null:TT(y,y.chain);if(J&&_)return m5({provider:T,signer:x})({abi:wT,contractAddress:J,funcName:_,funcParams:Z,txOverrides:B});let{hexlify:Q,toUtf8Bytes:z}=await import("ethers");return T.estimateGas({data:N?N:L?Q(z(L)):void 0,from:X,to:f,value:q})}}function i5({provider:T,signer:x,isEIP1559Compatible:G=!0,chain:y}){return async function({feeOptionKey:L=b.Fast,...N}){let{from:X,to:_,data:Z,value:B,...q}=N;if(!x)throw new h("toolbox_evm_no_signer");if(!_)throw new h("toolbox_evm_no_to_address");let J={...q,data:Z||"0x",from:X,to:_,value:BigInt(B||0)};if(ey(T))return yT(T)(J);let Q=X||await x.getAddress(),z=N.nonce||await T.getTransactionCount(Q),W=(await T.getNetwork()).chainId,w=nx(J)||G,I=by({chain:y,isEIP1559Compatible:G,provider:T}),k=w&&!(J.maxFeePerGas&&J.maxPriorityFeePerGas)||!J.gasPrice?Object.entries((await I())[L]).reduce((U,[A,j])=>({...U,[A]:MT(BigInt(j))}),{}):{},l;try{l=MT(J.gasLimit||await T.estimateGas(J)*11n/10n)}catch(U){throw new h("toolbox_evm_error_estimating_gas_limit",{error:U})}try{let U={...J,chainId:W,gasLimit:l,nonce:z,type:w?2:0,...k};try{return(await x.sendTransaction(U)).hash}catch{let A=await x.signTransaction({...U,from:Q});return(await T.broadcastTransaction(A)).hash}}catch(U){throw new h("toolbox_evm_error_sending_transaction",{error:U})}}}function df({provider:T,signer:x}){return async function({assetValue:y,memo:f,recipient:L,data:N,sender:X,maxFeePerGas:_,maxPriorityFeePerGas:Z,gasPrice:B,...q}){let J=y.getBaseValue("bigint"),Q=y.chain,z=X||await x?.getAddress();if(!z)throw new h("toolbox_evm_no_from_address");if(Kx(y)){let{hexlify:I,toUtf8Bytes:k}=await import("ethers");return{...q,data:N||I(k(f||"")),from:z,to:L,value:J}}let W=TT(y,Q);if(!W)throw new h("toolbox_evm_no_contract_address");return uy({chain:y.chain,provider:T})({abi:wT,contractAddress:W,funcName:"transfer",funcParams:[L,J],txOverrides:{from:z,gasPrice:B,maxFeePerGas:_,maxPriorityFeePerGas:Z}})}}function Vx({provider:T,signer:x,chain:G}){return async function({assetAddress:f,spenderAddress:L,amount:N,from:X}){let _=await x?.getAddress()||X,Z=uy({chain:G,provider:T}),B=["bigint","number"].includes(typeof N)?N:N||IT;return await Z({abi:wT,contractAddress:f,funcName:"approve",funcParams:[L,BigInt(B)],txOverrides:{from:_}})}}function $x({provider:T,isEIP1559Compatible:x=!0}){return async function({feeOption:y=b.Fast,chain:f,...L}){let X=await by({chain:f,isEIP1559Compatible:x,provider:T})(),_=await T.estimateGas(L),Z=Ox.from({chain:f}),{gasPrice:B,maxFeePerGas:q,maxPriorityFeePerGas:J}=X[y];if(!x&&B)return Z.set(gT.fromBigInt(B*_,Z.decimal));if(q&&J){let Q=(q+J)*_;return Z.set(gT.fromBigInt(Q,Z.decimal))}throw new h("toolbox_evm_no_gas_price")}}var IT,Sx,Ux,ef,Px,nx=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var rT=E(()=>{iT();ay();IT=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Sx=["payable","nonpayable"];Ux=kx.reduce((T,x)=>{return T[x]="0x0000000000000000000000000000000000000000",T},{}),ef={...Ux,[By.Optimism]:"0x4200000000000000000000000000000000000042",[By.Polygon]:"0x0000000000000000000000000000000000001010"},Px=[By.Arbitrum,By.Aurora,By.Base,By.Optimism]});import{Chain as c,FeeOption as ux,getRPCUrl as bx}from"@uswap/helpers";import{match as jx,P as g5}from"ts-pattern";async function aT({provider:T,...x}){let G=await m(c.Ethereum)({provider:T,...x});async function y(f,L="0x5ba1e12693dc8f9c48aad8770482f4739beed696",N="aggregate",X=ux.Fast){let _=await G.createContractTxObject({abi:b5,contractAddress:L,funcName:N,funcParams:[f]});return G.sendTransaction({..._,feeOptionKey:X})}return{...G,multicall:y}}function m(T){return async function({provider:G,...y}){let{HDNodeWallet:f}=await import("ethers"),L=await bx(T),N=G||await $y(T,L),X=gf(T),_=jx(y).with({phrase:g5.string},({phrase:B})=>f.fromPhrase(B).connect(N)).with({signer:g5.any},({signer:B})=>B).otherwise(()=>{return});return sy({chain:T,isEIP1559Compatible:X,provider:N,signer:_})}}var sT,eT,yf,Tf,ff,xf,d5,Lf,Gf,Nf,Xf,_f,Zf,CT,Jf,Bf,qf,Qf;var T0=E(()=>{j5();ay();rT();sT=m(c.Arbitrum),eT=m(c.Aurora),yf=m(c.Avalanche),Tf=m(c.Base),ff=m(c.Berachain),xf=m(c.BinanceSmartChain),d5=m(c.Botanix),Lf=m(c.Core),Gf=m(c.Corn),Nf=m(c.Cronos),Xf=m(c.Gnosis),_f=m(c.Hyperevm),Zf=m(c.Polygon),CT=m(c.Sonic),Jf=m(c.Unichain),Bf=m(c.XLayer),qf=m(c.Monad),Qf=m(c.MegaETH)});var r5;var a5=E(()=>{r5=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as fT,Chain as s5,FeeOption as My,getRPCUrl as hx,USwapError as f0}from"@uswap/helpers";import{Contract as px,HDNodeWallet as tx}from"ethers";import{match as cx,P as e5}from"ts-pattern";function x0(T){return new px(mx,r5,T)}function y1(T){return async function(){let G=x0(T);if(G&&"l1BaseFee"in G)return await G?.l1BaseFee();return}}function T1(T){return async function({from:G,to:y,nonce:f,...L}){let{Transaction:N}=await import("ethers");if(!y)throw new f0("toolbox_evm_invalid_transaction",{error:"Missing to address"});return N.from({...L,authorizationList:L.authorizationList,nonce:f?f:G?await T.getTransactionCount(G):0,to:y}).serialized}}function f1(T){return async function(G){let y=x0(T),f=await T1(T)(G);if(y&&"getL1Fee"in y)return y.getL1Fee(f)}}function x1(T){return async function(G){let y=await T.send("eth_gasPrice",[]),f=await T.estimateGas(G);return y.mul(f)}}function ix(T){return async function(G){let y=await f1(T)(G),f=await x1(T)(G);return y.add(f)}}function gx(T){return async function(G){let y=x0(T),f=await T1(T)(G);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(f)}}async function dx(T){try{let{maxFeePerGas:x,maxPriorityFeePerGas:G,gasPrice:y}=await T.getFeeData(),f=await y1(T)(),L=y;if(!(x&&G))throw new f0("toolbox_evm_no_fee_data");return{[My.Average]:{gasPrice:L,l1GasPrice:f,maxFeePerGas:x,maxPriorityFeePerGas:G},[My.Fast]:{gasPrice:fT(L,My.Fast),l1GasPrice:fT(f||0n,My.Fast),maxFeePerGas:x,maxPriorityFeePerGas:fT(G,My.Fast)},[My.Fastest]:{gasPrice:fT(L,My.Fastest),l1GasPrice:fT(f||0n,My.Fastest),maxFeePerGas:x,maxPriorityFeePerGas:fT(G,My.Fastest)}}}catch(x){throw new f0("toolbox_evm_gas_estimation_error",{error:x.msg??x.toString()})}}async function zf({provider:T,...x}){let G=s5.Optimism,y=await hx(G),f=T||await $y(G,y),L=cx(x).with({phrase:e5.string},({phrase:_})=>tx.fromPhrase(_).connect(f)).with({signer:e5.any},({signer:_})=>_).otherwise(()=>{return}),N=sy({provider:f,signer:L}),X=y1(f);return{...N,estimateGasPrices:dx(f),estimateL1Gas:gx(f),estimateL1GasCost:f1(f),estimateL2GasCost:x1(f),estimateTotalGasCost:ix(f),getBalance:HT(s5.Optimism).getBalance,getL1GasPrice:X}}var mx="0x420000000000000000000000000000000000000f";var L0=E(()=>{iT();a5();ay();rT()});var G1={};yy(G1,{toChecksumAddress:()=>p5,isStateChangingCall:()=>sf,isBrowserProvider:()=>ey,getTokenAddress:()=>TT,getEvmToolbox:()=>L1,getEstimateGasPrices:()=>by,getEIP1193SendTransaction:()=>yT,getCreateContractTxObject:()=>uy,getCreateContract:()=>af,getChecksumAddressFromAsset:()=>t5,evmValidateAddress:()=>rf,createContract:()=>RT,XLayerToolbox:()=>Bf,UNIToolbox:()=>Jf,SONICToolbox:()=>CT,OPToolbox:()=>zf,MONADToolbox:()=>qf,MEGAETHToolbox:()=>Qf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>Zf,HYPEREVMToolbox:()=>_f,GNOToolbox:()=>Xf,ETHToolbox:()=>aT,ContractAddress:()=>ef,CROToolbox:()=>Nf,CORNToolbox:()=>Gf,COREToolbox:()=>Lf,BotanixToolbox:()=>d5,BaseEVMToolbox:()=>sy,BSCToolbox:()=>xf,BERAToolbox:()=>ff,BASEToolbox:()=>Tf,AVAXToolbox:()=>yf,AURORAToolbox:()=>eT,ARBToolbox:()=>sT});import{Chain as t}from"@uswap/helpers";import{match as rx}from"ts-pattern";async function L1(T,x){let G={...x,provider:x?.provider||await $y(T)};return rx(T).returnType().with(t.Arbitrum,()=>sT(G)).with(t.Aurora,()=>eT(G)).with(t.Avalanche,()=>yf(G)).with(t.Base,()=>Tf(G)).with(t.Berachain,()=>ff(G)).with(t.BinanceSmartChain,()=>xf(G)).with(t.Botanix,()=>CT(G)).with(t.Core,()=>Lf(G)).with(t.Corn,()=>Gf(G)).with(t.Cronos,()=>Nf(G)).with(t.Ethereum,()=>aT(G)).with(t.Gnosis,()=>Xf(G)).with(t.Hyperevm,()=>_f(G)).with(t.Optimism,()=>zf(G)).with(t.Polygon,()=>Zf(G)).with(t.Sonic,()=>CT(G)).with(t.Unichain,()=>Jf(G)).with(t.XLayer,()=>Bf(G)).with(t.Monad,()=>qf(G)).with(t.MegaETH,()=>Qf(G)).exhaustive()}var G0=E(()=>{ay();T0();L0();rT();T0();L0()});var N1;var X1=E(()=>{((G)=>{G.Test="goerli";G.Main="homestead"})(N1||={})});var _1={};yy(_1,{toHexString:()=>MT,toChecksumAddress:()=>p5,isStateChangingCall:()=>sf,isBrowserProvider:()=>ey,getTokenAddress:()=>TT,getProvider:()=>$y,getNetworkParams:()=>mf,getIsEIP1559Compatible:()=>gf,getEvmToolbox:()=>L1,getEvmApi:()=>HT,getEstimateGasPrices:()=>by,getEIP1193SendTransaction:()=>yT,getCreateContractTxObject:()=>uy,getCreateContract:()=>af,getChecksumAddressFromAsset:()=>t5,evmValidateAddress:()=>rf,createCustomEvmApi:()=>wx,createContract:()=>RT,XLayerToolbox:()=>Bf,UNIToolbox:()=>Jf,SONICToolbox:()=>CT,OPToolbox:()=>zf,MONADToolbox:()=>qf,MEGAETHToolbox:()=>Qf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>Zf,HYPEREVMToolbox:()=>_f,GNOToolbox:()=>Xf,EthNetwork:()=>N1,ETHToolbox:()=>aT,ContractAddress:()=>ef,CROToolbox:()=>Nf,CORNToolbox:()=>Gf,COREToolbox:()=>Lf,BotanixToolbox:()=>d5,BaseEVMToolbox:()=>sy,BSCToolbox:()=>xf,BERAToolbox:()=>ff,BASEToolbox:()=>Tf,AVAXToolbox:()=>yf,AURORAToolbox:()=>eT,ARBToolbox:()=>sT});var Z1=E(()=>{iT();ay();G0();X1()});import{AssetValue as kT,Chain as xT,getChainConfig as ax,USwapError as OT}from"@uswap/helpers";import{match as sx,P as J1}from"ts-pattern";async function N0(){let{BlockfrostProvider:T}=await import("@meshsdk/core"),x="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS";return new T("mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS")}async function yL(T){try{let{MeshWallet:x}=await import("@meshsdk/core"),G=await N0(),y=new x({fetcher:G,key:{address:T,type:"address"},networkId:1});await y.init();let f=await y.getBalance(),L=[];for(let N of f)if(N.unit===ex){let{baseDecimal:X}=ax(xT.Cardano);L.push(kT.from({chain:xT.Cardano,fromBaseDecimal:X,value:N.quantity}))}else L.push(kT.from({asset:`${xT.Cardano}.${N.unit}`,value:N.quantity}));if(L.length===0)return[kT.from({chain:xT.Cardano})];return L}catch(x){let G=x instanceof Error?x.message:String(x);return console.error(`Cardano balance fetch error: ${G}`),[kT.from({chain:xT.Cardano})]}}async function B1(){let{deserializeAddress:T}=await import("@meshsdk/core");return(x)=>{try{return T(x),!0}catch{return!1}}}async function TL(T){let x=await B1(),G=await sx(T).with({phrase:J1.string},async({phrase:B})=>{let{MeshWallet:q}=await import("@meshsdk/core"),J=await N0(),Q=new q({fetcher:J,key:{type:"mnemonic",words:B.split(" ")},networkId:1,submitter:J});return await Q.init(),Q}).with({signer:J1.any},({signer:B})=>B).otherwise(()=>{return}),y=G&&"getChangeAddress"in G?await G.getChangeAddress():"";function f(){return y||""}function L(B){let q=B||f();if(!q)throw new OT("core_wallet_connection_not_found");return yL(q)}function N(){return Promise.resolve(kT.from({chain:xT.Cardano,value:"0.01"}))}async function X({recipient:B,assetValue:q,memo:J}){if(!G||!("getChangeAddress"in G))throw new OT("core_wallet_connection_not_found");let{Transaction:Q}=await import("@meshsdk/core"),[,z]=q.symbol.split("-");if(!q.isGasAsset&&!z)throw new OT("core_wallet_connection_not_found");let W=new Q({initiator:G});if(W.sendAssets({address:B},[{quantity:q.getBaseValue("string"),unit:q.isGasAsset?"lovelace":q.symbol}]),J)W.setMetadata(0,J);let w=await W.build();return{tx:W,unsignedTx:w}}function _(B){if(!G||!("getChangeAddress"in G))throw new OT("core_wallet_connection_not_found");return G.signTx(B)}async function Z({recipient:B,assetValue:q,memo:J}){if(!G||!("getChangeAddress"in G))throw new OT("core_wallet_connection_not_found");let{unsignedTx:Q}=await X({assetValue:q,memo:J,recipient:B}),z=await _(Q);return await(await N0()).submitTx(z)}return{createTransaction:X,estimateTransactionFee:N,getAddress:f,getBalance:L,signTransaction:_,transfer:Z,validateAddress:x}}var ex="lovelace";var q1=()=>{};var X0={};yy(X0,{getCardanoToolbox:()=>TL,getCardanoAddressValidator:()=>B1});var _0=E(()=>{q1()});import{base64 as Q1,bech32 as Yf}from"@scure/base";import{USwapError as fL}from"@uswap/helpers";import{fromByteArray as xL,toByteArray as LL}from"base64-js";function KT(T){return Q1.encode(Uint8Array.from(Yf.fromWords(Yf.decode(T).words)))}function ET(T,x="thor"){return Yf.encode(x,Yf.toWords(Q1.decode(T)))}function GL(T){return xL(T)}function NL(T){if(!T.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new fL("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return LL(T)}var Z0=()=>{};import{AssetValue as J0,Chain as V,getChainConfig as qy,getRPCUrl as XL,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 H1;case V.Noble:return M1;default:return W1}}async function Ry(T){let x=await import("@cosmjs/stargate"),G=x.StargateClient??x.default?.StargateClient,y=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return G.connect({headers:y,url:T})}async function GT(T,x,G={}){let y=await import("@cosmjs/stargate"),f=y.SigningStargateClient??y.default?.SigningStargateClient,L=y.GasPrice??y.default?.GasPrice,N=typeof G==="string"?G:"0.0003uatom",X=typeof G==="string"?{}:G;return f.connectWithSigner(T,x,{gasPrice:L.fromString(N),...X})}async function q0(T,x){let G=await import("@cosmjs/stargate");return(G.SigningStargateClient??G.default?.SigningStargateClient).offline(T,x)}async function Q0({sender:T,recipient:x,assetValue:G,memo:y="",feeRate:f,sequence:L,accountNumber:N}){let{chain:X,chainId:_}=G,Z=await XL(X),q=await(await Ry(Z)).getAccount(T);if(!q)throw new z1("toolbox_cosmos_account_not_found",{sender:T});let J=J0.from({chain:X}),Q=wy(J.symbol),z=Iy(X),W=Q&&f?{amount:[{amount:f.toString(),denom:Q}],gas:z.gas}:z,w={amount:[{amount:G.getBaseValue("string"),denom:wy(G.symbol)}],fromAddress:T,toAddress:x};return{accountNumber:N??q.accountNumber,chainId:_,fee:W,memo:y,msgs:[{typeUrl:_L(X),value:w}],sequence:L??q.sequence}}var B0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",Y1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",W1,H1,M1,wy=(T,x=!1)=>{if(x)return T.toLowerCase();switch(T){case"uUSK":case"USK":return B0;case"uYUM":case"YUM":return Y1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return T}},LT=({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 wy(T,!1)},_L=(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})}},ZL,z0=(T,x)=>{let G=ZL[T.toLowerCase()];if(!G)return J0.from({asset:T,fromBaseDecimal:8,value:x});let{chain:y,asset:f,decimals:L}=G,N=y?{chain:y}:{asset:f};return J0.from({...N,fromBaseDecimal:L,value:x})};var DT=E(()=>{W1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},H1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},M1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};ZL={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},[B0.toLowerCase()]:{asset:`${V.Kujira}.USK`,decimals:qy(V.Kujira).baseDecimal}}});var w1={};yy(w1,{$root:()=>C});import r from"protobufjs/minimal.js";var S,Zy,K,C;var I1=E(()=>{S=r.Reader,Zy=r.Writer,K=r.util,C=r.roots.default||(r.roots.default={});C.common=(()=>{let T={};return T.Asset=(()=>{function x(G){if(G){for(let y=Object.keys(G),f=0;f<y.length;++f)if(G[y[f]]!=null)this[y[f]]=G[y[f]]}}return x.prototype.chain="",x.prototype.symbol="",x.prototype.ticker="",x.prototype.synth=!1,x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))f.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))f.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))f.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))f.uint32(32).bool(y.synth);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof S))y=S.create(y);let L=f===void 0?y.len:y.pos+f,N=new C.common.Asset;while(y.pos<L){let X=y.uint32();switch(X>>>3){case 1:N.chain=y.string();break;case 2:N.symbol=y.string();break;case 3:N.ticker=y.string();break;case 4:N.synth=y.bool();break;default:y.skipType(X&7);break}}return N},x.decodeDelimited=function(y){if(!(y instanceof S))y=new S(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 L={};if(f.defaults)L.chain="",L.symbol="",L.ticker="",L.synth=!1;if(y.chain!=null&&y.hasOwnProperty("chain"))L.chain=y.chain;if(y.symbol!=null&&y.hasOwnProperty("symbol"))L.symbol=y.symbol;if(y.ticker!=null&&y.hasOwnProperty("ticker"))L.ticker=y.ticker;if(y.synth!=null&&y.hasOwnProperty("synth"))L.synth=y.synth;return L},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.Coin=(()=>{function x(G){if(G){for(let y=Object.keys(G),f=0;f<y.length;++f)if(G[y[f]]!=null)this[y[f]]=G[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=Zy.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 S))y=S.create(y);let L=f===void 0?y.len:y.pos+f,N=new C.common.Coin;while(y.pos<L){let X=y.uint32();switch(X>>>3){case 1:N.asset=C.common.Asset.decode(y,y.uint32());break;case 2:N.amount=y.string();break;case 3:N.decimals=y.int64();break;default:y.skipType(X&7);break}}return N},x.decodeDelimited=function(y){if(!(y instanceof S))y=new S(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 L={};if(f.defaults)if(L.asset=null,L.amount="",K.Long){let N=new K.Long(0,0,!1);L.decimals=f.longs===String?N.toString():f.longs===Number?N.toNumber():N}else L.decimals=f.longs===String?"0":0;if(y.asset!=null&&y.hasOwnProperty("asset"))L.asset=C.common.Asset.toObject(y.asset,f);if(y.amount!=null&&y.hasOwnProperty("amount"))L.amount=y.amount;if(y.decimals!=null&&y.hasOwnProperty("decimals"))if(typeof y.decimals==="number")L.decimals=f.longs===String?String(y.decimals):y.decimals;else L.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 L},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.PubKeySet=(()=>{function x(G){if(G){for(let y=Object.keys(G),f=0;f<y.length;++f)if(G[y[f]]!=null)this[y[f]]=G[y[f]]}}return x.prototype.secp256k1="",x.prototype.ed25519="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))f.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))f.uint32(18).string(y.ed25519);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof S))y=S.create(y);let L=f===void 0?y.len:y.pos+f,N=new C.common.PubKeySet;while(y.pos<L){let X=y.uint32();switch(X>>>3){case 1:N.secp256k1=y.string();break;case 2:N.ed25519=y.string();break;default:y.skipType(X&7);break}}return N},x.decodeDelimited=function(y){if(!(y instanceof S))y=new S(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 L={};if(f.defaults)L.secp256k1="",L.ed25519="";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1"))L.secp256k1=y.secp256k1;if(y.ed25519!=null&&y.hasOwnProperty("ed25519"))L.ed25519=y.ed25519;return L},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.Tx=(()=>{function x(G){if(this.coins=[],this.gas=[],G){for(let y=Object.keys(G),f=0;f<y.length;++f)if(G[y[f]]!=null)this[y[f]]=G[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=Zy.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))f.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))f.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))f.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))f.uint32(34).string(y.toAddress);if(y.coins?.length)for(let L=0;L<y.coins.length;++L)C.common.Coin.encode(y.coins[L],f.uint32(42).fork()).ldelim();if(y.gas?.length)for(let L=0;L<y.gas.length;++L)C.common.Coin.encode(y.gas[L],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 S))y=S.create(y);let L=f===void 0?y.len:y.pos+f,N=new C.common.Tx;while(y.pos<L){let X=y.uint32();switch(X>>>3){case 1:N.id=y.string();break;case 2:N.chain=y.string();break;case 3:N.fromAddress=y.string();break;case 4:N.toAddress=y.string();break;case 5:if(!N.coins?.length)N.coins=[];N.coins.push(C.common.Coin.decode(y,y.uint32()));break;case 6:if(!N.gas?.length)N.gas=[];N.gas.push(C.common.Coin.decode(y,y.uint32()));break;case 7:N.memo=y.string();break;default:y.skipType(X&7);break}}return N},x.decodeDelimited=function(y){if(!(y instanceof S))y=new S(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 L=C.common.Coin.verify(y.coins[f]);if(L)return"coins."+L}}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 L=C.common.Coin.verify(y.gas[f]);if(L)return"gas."+L}}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 L=0;L<y.coins.length;++L){if(typeof y.coins[L]!=="object")throw TypeError(".common.Tx.coins: object expected");f.coins[L]=C.common.Coin.fromObject(y.coins[L])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");f.gas=[];for(let L=0;L<y.gas.length;++L){if(typeof y.gas[L]!=="object")throw TypeError(".common.Tx.gas: object expected");f.gas[L]=C.common.Coin.fromObject(y.gas[L])}}if(y.memo!=null)f.memo=String(y.memo);return f},x.toObject=function(y,f){if(!f)f={};let L={};if(f.arrays||f.defaults)L.coins=[],L.gas=[];if(f.defaults)L.id="",L.chain="",L.fromAddress="",L.toAddress="",L.memo="";if(y.id!=null&&y.hasOwnProperty("id"))L.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))L.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))L.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))L.toAddress=y.toAddress;if(y.coins?.length){L.coins=[];for(let N=0;N<y.coins.length;++N)L.coins[N]=C.common.Coin.toObject(y.coins[N],f)}if(y.gas?.length){L.gas=[];for(let N=0;N<y.gas.length;++N)L.gas[N]=C.common.Coin.toObject(y.gas[N],f)}if(y.memo!=null&&y.hasOwnProperty("memo"))L.memo=y.memo;return L},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.Fee=(()=>{function x(G){if(this.coins=[],G){for(let y=Object.keys(G),f=0;f<y.length;++f)if(G[y[f]]!=null)this[y[f]]=G[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=Zy.create();if(y.coins?.length)for(let L=0;L<y.coins.length;++L)C.common.Coin.encode(y.coins[L],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 S))y=S.create(y);let L=f===void 0?y.len:y.pos+f,N=new C.common.Fee;while(y.pos<L){let X=y.uint32();switch(X>>>3){case 1:if(!N.coins?.length)N.coins=[];N.coins.push(C.common.Coin.decode(y,y.uint32()));break;case 2:N.poolDeduct=y.string();break;default:y.skipType(X&7);break}}return N},x.decodeDelimited=function(y){if(!(y instanceof S))y=new S(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 L=C.common.Coin.verify(y.coins[f]);if(L)return"coins."+L}}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 L=0;L<y.coins.length;++L){if(typeof y.coins[L]!=="object")throw TypeError(".common.Fee.coins: object expected");f.coins[L]=C.common.Coin.fromObject(y.coins[L])}}if(y.poolDeduct!=null)f.poolDeduct=String(y.poolDeduct);return f},x.toObject=function(y,f){if(!f)f={};let L={};if(f.arrays||f.defaults)L.coins=[];if(f.defaults)L.poolDeduct="";if(y.coins?.length){L.coins=[];for(let N=0;N<y.coins.length;++N)L.coins[N]=C.common.Coin.toObject(y.coins[N],f)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))L.poolDeduct=y.poolDeduct;return L},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.ProtoUint=(()=>{function x(G){if(G){for(let y=Object.keys(G),f=0;f<y.length;++f)if(G[y[f]]!=null)this[y[f]]=G[y[f]]}}return x.prototype.value="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))f.uint32(10).string(y.value);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof S))y=S.create(y);let L=f===void 0?y.len:y.pos+f,N=new C.common.ProtoUint;while(y.pos<L){let X=y.uint32();switch(X>>>3){case 1:N.value=y.string();break;default:y.skipType(X&7);break}}return N},x.decodeDelimited=function(y){if(!(y instanceof S))y=new S(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 L={};if(f.defaults)L.value="";if(y.value!=null&&y.hasOwnProperty("value"))L.value=y.value;return L},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T})();C.types=(()=>{let T={};return T.MsgDeposit=(()=>{function x(G){if(this.coins=[],G){for(let y=Object.keys(G),f=0;f<y.length;++f)if(G[y[f]]!=null)this[y[f]]=G[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=Zy.create();if(y.coins?.length)for(let L=0;L<y.coins.length;++L)C.common.Coin.encode(y.coins[L],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 S))y=S.create(y);let L=f===void 0?y.len:y.pos+f,N=new C.types.MsgDeposit;while(y.pos<L){let X=y.uint32();switch(X>>>3){case 1:if(!N.coins?.length)N.coins=[];N.coins.push(C.common.Coin.decode(y,y.uint32()));break;case 2:N.memo=y.string();break;case 3:N.signer=y.bytes();break;default:y.skipType(X&7);break}}return N},x.decodeDelimited=function(y){if(!(y instanceof S))y=new S(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 L=C.common.Coin.verify(y.coins[f]);if(L)return"coins."+L}}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 L=0;L<y.coins.length;++L){if(typeof y.coins[L]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");f.coins[L]=C.common.Coin.fromObject(y.coins[L])}}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 L={};if(f.arrays||f.defaults)L.coins=[];if(f.defaults){if(L.memo="",f.bytes===String)L.signer="";else if(L.signer=[],f.bytes!==Array)L.signer=K.newBuffer(L.signer)}if(y.coins?.length){L.coins=[];for(let N=0;N<y.coins.length;++N)L.coins[N]=C.common.Coin.toObject(y.coins[N],f)}if(y.memo!=null&&y.hasOwnProperty("memo"))L.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))L.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 L},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.MsgSend=(()=>{function x(G){if(this.amount=[],G){for(let y=Object.keys(G),f=0;f<y.length;++f)if(G[y[f]]!=null)this[y[f]]=G[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=Zy.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))f.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))f.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let L=0;L<y.amount.length;++L)C.cosmos.base.v1beta1.Coin.encode(y.amount[L],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 S))y=S.create(y);let L=f===void 0?y.len:y.pos+f,N=new C.types.MsgSend;while(y.pos<L){let X=y.uint32();switch(X>>>3){case 1:N.fromAddress=y.bytes();break;case 2:N.toAddress=y.bytes();break;case 3:if(!N.amount?.length)N.amount=[];N.amount.push(C.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(X&7);break}}return N},x.decodeDelimited=function(y){if(!(y instanceof S))y=new S(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 L=C.cosmos.base.v1beta1.Coin.verify(y.amount[f]);if(L)return"amount."+L}}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 L=0;L<y.amount.length;++L){if(typeof y.amount[L]!=="object")throw TypeError(".types.MsgSend.amount: object expected");f.amount[L]=C.cosmos.base.v1beta1.Coin.fromObject(y.amount[L])}}return f},x.toObject=function(y,f){if(!f)f={};let L={};if(f.arrays||f.defaults)L.amount=[];if(f.defaults){if(f.bytes===String)L.fromAddress="";else if(L.fromAddress=[],f.bytes!==Array)L.fromAddress=K.newBuffer(L.fromAddress);if(f.bytes===String)L.toAddress="";else if(L.toAddress=[],f.bytes!==Array)L.toAddress=K.newBuffer(L.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))L.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"))L.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){L.amount=[];for(let N=0;N<y.amount.length;++N)L.amount[N]=C.cosmos.base.v1beta1.Coin.toObject(y.amount[N],f)}return L},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T})();C.cosmos=(()=>{let T={};return T.base=(()=>{let x={};return x.v1beta1=(()=>{let G={};return G.Coin=(()=>{function y(f){if(f){for(let L=Object.keys(f),N=0;N<L.length;++N)if(f[L[N]]!=null)this[L[N]]=f[L[N]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(L){return new y(L)},y.encode=function(L,N){if(!N)N=Zy.create();if(L.denom!=null&&Object.hasOwnProperty.call(L,"denom"))N.uint32(10).string(L.denom);if(L.amount!=null&&Object.hasOwnProperty.call(L,"amount"))N.uint32(18).string(L.amount);return N},y.encodeDelimited=function(L,N){return this.encode(L,N).ldelim()},y.decode=function(L,N){if(!(L instanceof S))L=S.create(L);let X=N===void 0?L.len:L.pos+N,_=new C.cosmos.base.v1beta1.Coin;while(L.pos<X){let Z=L.uint32();switch(Z>>>3){case 1:_.denom=L.string();break;case 2:_.amount=L.string();break;default:L.skipType(Z&7);break}}return _},y.decodeDelimited=function(L){if(!(L instanceof S))L=new S(L);return this.decode(L,L.uint32())},y.verify=function(L){if(typeof L!=="object"||L===null)return"object expected";if(L.denom!=null&&L.hasOwnProperty("denom")){if(!K.isString(L.denom))return"denom: string expected"}if(L.amount!=null&&L.hasOwnProperty("amount")){if(!K.isString(L.amount))return"amount: string expected"}return null},y.fromObject=function(L){if(L instanceof C.cosmos.base.v1beta1.Coin)return L;let N=new C.cosmos.base.v1beta1.Coin;if(L.denom!=null)N.denom=String(L.denom);if(L.amount!=null)N.amount=String(L.amount);return N},y.toObject=function(L,N){if(!N)N={};let X={};if(N.defaults)X.denom="",X.amount="";if(L.denom!=null&&L.hasOwnProperty("denom"))X.denom=L.denom;if(L.amount!=null&&L.hasOwnProperty("amount"))X.amount=L.amount;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),G.DecCoin=(()=>{function y(f){if(f){for(let L=Object.keys(f),N=0;N<L.length;++N)if(f[L[N]]!=null)this[L[N]]=f[L[N]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(L){return new y(L)},y.encode=function(L,N){if(!N)N=Zy.create();if(L.denom!=null&&Object.hasOwnProperty.call(L,"denom"))N.uint32(10).string(L.denom);if(L.amount!=null&&Object.hasOwnProperty.call(L,"amount"))N.uint32(18).string(L.amount);return N},y.encodeDelimited=function(L,N){return this.encode(L,N).ldelim()},y.decode=function(L,N){if(!(L instanceof S))L=S.create(L);let X=N===void 0?L.len:L.pos+N,_=new C.cosmos.base.v1beta1.DecCoin;while(L.pos<X){let Z=L.uint32();switch(Z>>>3){case 1:_.denom=L.string();break;case 2:_.amount=L.string();break;default:L.skipType(Z&7);break}}return _},y.decodeDelimited=function(L){if(!(L instanceof S))L=new S(L);return this.decode(L,L.uint32())},y.verify=function(L){if(typeof L!=="object"||L===null)return"object expected";if(L.denom!=null&&L.hasOwnProperty("denom")){if(!K.isString(L.denom))return"denom: string expected"}if(L.amount!=null&&L.hasOwnProperty("amount")){if(!K.isString(L.amount))return"amount: string expected"}return null},y.fromObject=function(L){if(L instanceof C.cosmos.base.v1beta1.DecCoin)return L;let N=new C.cosmos.base.v1beta1.DecCoin;if(L.denom!=null)N.denom=String(L.denom);if(L.amount!=null)N.amount=String(L.amount);return N},y.toObject=function(L,N){if(!N)N={};let X={};if(N.defaults)X.denom="",X.amount="";if(L.denom!=null&&L.hasOwnProperty("denom"))X.denom=L.denom;if(L.amount!=null&&L.hasOwnProperty("amount"))X.amount=L.amount;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),G.IntProto=(()=>{function y(f){if(f){for(let L=Object.keys(f),N=0;N<L.length;++N)if(f[L[N]]!=null)this[L[N]]=f[L[N]]}}return y.prototype.int="",y.create=function(L){return new y(L)},y.encode=function(L,N){if(!N)N=Zy.create();if(L.int!=null&&Object.hasOwnProperty.call(L,"int"))N.uint32(10).string(L.int);return N},y.encodeDelimited=function(L,N){return this.encode(L,N).ldelim()},y.decode=function(L,N){if(!(L instanceof S))L=S.create(L);let X=N===void 0?L.len:L.pos+N,_=new C.cosmos.base.v1beta1.IntProto;while(L.pos<X){let Z=L.uint32();switch(Z>>>3){case 1:_.int=L.string();break;default:L.skipType(Z&7);break}}return _},y.decodeDelimited=function(L){if(!(L instanceof S))L=new S(L);return this.decode(L,L.uint32())},y.verify=function(L){if(typeof L!=="object"||L===null)return"object expected";if(L.int!=null&&L.hasOwnProperty("int")){if(!K.isString(L.int))return"int: string expected"}return null},y.fromObject=function(L){if(L instanceof C.cosmos.base.v1beta1.IntProto)return L;let N=new C.cosmos.base.v1beta1.IntProto;if(L.int!=null)N.int=String(L.int);return N},y.toObject=function(L,N){if(!N)N={};let X={};if(N.defaults)X.int="";if(L.int!=null&&L.hasOwnProperty("int"))X.int=L.int;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),G.DecProto=(()=>{function y(f){if(f){for(let L=Object.keys(f),N=0;N<L.length;++N)if(f[L[N]]!=null)this[L[N]]=f[L[N]]}}return y.prototype.dec="",y.create=function(L){return new y(L)},y.encode=function(L,N){if(!N)N=Zy.create();if(L.dec!=null&&Object.hasOwnProperty.call(L,"dec"))N.uint32(10).string(L.dec);return N},y.encodeDelimited=function(L,N){return this.encode(L,N).ldelim()},y.decode=function(L,N){if(!(L instanceof S))L=S.create(L);let X=N===void 0?L.len:L.pos+N,_=new C.cosmos.base.v1beta1.DecProto;while(L.pos<X){let Z=L.uint32();switch(Z>>>3){case 1:_.dec=L.string();break;default:L.skipType(Z&7);break}}return _},y.decodeDelimited=function(L){if(!(L instanceof S))L=new S(L);return this.decode(L,L.uint32())},y.verify=function(L){if(typeof L!=="object"||L===null)return"object expected";if(L.dec!=null&&L.hasOwnProperty("dec")){if(!K.isString(L.dec))return"dec: string expected"}return null},y.fromObject=function(L){if(L instanceof C.cosmos.base.v1beta1.DecProto)return L;let N=new C.cosmos.base.v1beta1.DecProto;if(L.dec!=null)N.dec=String(L.dec);return N},y.toObject=function(L,N){if(!N)N={};let X={};if(N.defaults)X.dec="";if(L.dec!=null&&L.hasOwnProperty("dec"))X.dec=L.dec;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),G})(),x})(),T})()});import{Chain as JL}from"@uswap/helpers";async function jy(){let{$root:T}=await Promise.resolve().then(() => (I1(),w1)),x=await import("@cosmjs/proto-signing"),G=x.Registry??x.default?.Registry,y=await import("@cosmjs/stargate"),f=y.defaultRegistryTypes??y.default?.defaultRegistryTypes;return new G([...f,["/types.MsgSend",T.types.MsgSend],["/types.MsgDeposit",T.types.MsgDeposit]])}async function Ey(T){let x=await import("@cosmjs/stargate"),G=x.AminoTypes??x.default?.AminoTypes,y=T===JL.THORChain?"thorchain":"mayachain";return new G({"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,fromAmino:({signer:f,...L})=>({...L,signer:KT(f)}),toAmino:({signer:f,...L})=>({...L,signer:ET(f)})},"/types.MsgSend":{aminoType:`${y}/MsgSend`,fromAmino:({from_address:f,to_address:L,...N})=>({...N,fromAddress:KT(f),toAddress:KT(L)}),toAmino:({fromAddress:f,toAddress:L,...N})=>({...N,from_address:ET(f),to_address:ET(L)})}})}var Y0=E(()=>{Z0()});import{AssetValue as BL,Chain as Wf,getChainConfig as R1,USwapError as qL}from"@uswap/helpers";function M0(T){return function(G){let{assetValue:y,recipient:f,memo:L,sender:N,asSignable:X,asAminoMessage:_}=G;if(f)return O1(T)({asAminoMessage:_,asSignable:X,assetValue:y,memo:L,recipient:f,sender:N});return k1(T)({asAminoMessage:_,asSignable:X,assetValue:y,memo:L,sender:N})}}function Sy(T){if(T.type==="thorchain/MsgSend"||T.type==="mayachain/MsgSend")return T;return{...T,value:{...T.value,coins:T.value.coins.map((x)=>{let G=BL.from({asset:x.asset}),y=(G.isSynthetic?G.symbol.split("/")?.[1]:G.symbol)?.toUpperCase(),f=(G.isSynthetic?G.symbol.split("/")?.[0]:G.chain)?.toUpperCase();return{...x,asset:{chain:f,symbol:y,synth:G.isSynthetic,ticker:G.ticker}}})}}}async function ST({chain:T,memo:x,msgs:G}){let y=await jy(),f=await Ey(T),L={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:x,messages:G.map((N)=>f.fromAmino(N))}};return y.encode(L)}var QL,zL,W0=({sender:T,recipient:x,assetValue:G})=>{return{type:`${G.chain===Wf.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:G.getBaseValue("string"),denom:wy(G.symbol,!0)}],from_address:T,to_address:x}}},H0=({sender:T,assetValue:x,memo:G=""})=>{return{type:`${x.chain===Wf.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:x.getBaseValue("string"),asset:LT(x)}],memo:G,signer:T}}},Hf=({sender:T,recipient:x,assetValue:G,memo:y})=>{return!x?H0({assetValue:G,memo:y,sender:T}):W0({assetValue:G,recipient:x,sender:T})},Dy=async(T,x)=>{return(await Ey(x)).fromAmino(T)},C1=async({rpcUrl:T,sender:x})=>{let y=await(await Ry(T)).getAccount(x);if(!y)throw new qL("toolbox_cosmos_account_not_found",{sender:x});return y},O1=(T)=>async({sender:x,recipient:G,assetValue:y,memo:f="",asSignable:L=!0,asAminoMessage:N=!1,sequence:X,accountNumber:_})=>{let Z=await C1({rpcUrl:T,sender:x}),B=y.chain,{chainId:q}=R1(B),J=W0({assetValue:y,recipient:G,sender:x}),Q=L?await Dy(N?J:Sy(J),B):J;return{accountNumber:_||Z.accountNumber,chainId:q,fee:Iy(B),memo:f,msgs:[Q],sequence:X||Z.sequence}},k1=(T)=>async({sender:x,assetValue:G,memo:y="",asSignable:f=!0,asAminoMessage:L=!1,sequence:N,accountNumber:X})=>{let _=await C1({rpcUrl:T,sender:x}),Z=G.chain,{chainId:B}=R1(Z),q=H0({assetValue:G,memo:y,sender:x}),J=f?await Dy(L?q:Sy(q),Z):q;return{accountNumber:X||_.accountNumber,chainId:B,fee:Iy(Z),memo:y,msgs:[J],sequence:N||_.sequence}};var K1=E(()=>{DT();Y0();QL=Iy(Wf.THORChain).gas,zL=Iy(Wf.Maya).gas});var E1=()=>{};var D1=E(()=>{E1()});var w0=E(()=>{Z0();K1();Y0();D1()});import{base64 as k0,bech32 as I0}from"@scure/base";import{AssetValue as Mf,applyFeeMultiplier as S1,Chain as Ty,CosmosChainPrefixes as A1,DerivationPath as YL,derivationPathToString as U1,FeeOption as If,getChainConfig as WL,getRPCUrl as HL,NetworkDerivationPath as ML,SwapKitNumber as R0,USwapError as wf,updateDerivationPath as wL}from"@uswap/helpers";import{SwapKitApi as F1}from"@uswap/helpers/api";import{match as IL,P as P1}from"ts-pattern";async function E0(T,x){try{let y=(await F1.getGasRate()).find((f)=>f.chainId===T)?.value;return y?Number.parseFloat(y):x}catch{return x}}async function K0({phrase:T,prefix:x,...G}){let y=await import("@cosmjs/proto-signing"),f=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,L=await import("@cosmjs/crypto"),N=L.stringToPath??L.default?.stringToPath,X="derivationPath"in G?G.derivationPath:`${YL[G.chain]}/${G.index}`;return f.fromMnemonic(T,{hdPaths:[N(X)],prefix:x})}async function RL({privateKey:T,prefix:x}){let G=await import("@cosmjs/proto-signing");return(G.DirectSecp256k1Wallet??G.default?.DirectSecp256k1Wallet).fromKey(T,x)}function n1(T){return async function({signature:G,message:y,address:f}){let L=await T(f);if(!L?.pubkey)throw new wf("toolbox_cosmos_verify_signature_no_pubkey");let N=await import("@cosmjs/crypto"),X=N.Secp256k1Signature??N.default?.Secp256k1Signature,_=N.Secp256k1??N.default?.Secp256k1,Z=X.fromFixedLength(k0.decode(G));return _.verifySignature(Z,k0.decode(y),L.pubkey.value)}}async function UT({chain:T,...x}){let G=await HL(T),y=A1[T],f="index"in x?x.index||0:0,L=U1("derivationPath"in x&&x.derivationPath?x.derivationPath:wL(ML[T],{index:f})),N=await IL(x).with({phrase:P1.string},({phrase:J})=>K0({derivationPath:L,phrase:J,prefix:y})).with({signer:P1.any},({signer:J})=>J).otherwise(()=>{return});async function X(J){return(await Ry(G)).getAccount(J)}async function _(){let[J]=await N?.getAccounts()||[];return J?.address}async function Z(){let[J]=await N?.getAccounts()||[];if(!J?.pubkey)throw new wf("toolbox_cosmos_signer_not_defined");return k0.encode(J?.pubkey)}async function B({recipient:J,assetValue:Q,memo:z="",feeRate:W,feeOptionKey:w=If.Fast}){let I=await _();if(!(N&&I))throw new wf("toolbox_cosmos_signer_not_defined");let k=Mf.from({chain:T}),l=LT(k),U=W||l1((await O0(T,C0[T]))[w],l),A=await GT(G,N),j=wy(Q.symbol),g=Q.getBaseValue("string"),{TxRaw:Ly}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),D={amount:[{amount:g,denom:j}],fromAddress:I,toAddress:J},P=await A.sign(I,[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:D}],U,z),Y=Ly.encode(P).finish();return Buffer.from(Y).toString("hex")}async function q({recipient:J,assetValue:Q,memo:z="",feeRate:W,feeOptionKey:w=If.Fast,dryRun:I=!1}){if(I)return B({assetValue:Q,feeOptionKey:w,feeRate:W,memo:z,recipient:J});let k=await _();if(!(N&&k))throw new wf("toolbox_cosmos_signer_not_defined");let l=Mf.from({chain:T}),U=LT(l),A=W||l1((await O0(T,C0[T]))[w],U),j=await GT(G,N),g=wy(Q.symbol),Ly=[{amount:Q.getBaseValue("string"),denom:g}],{transactionHash:D}=await j.sendTokens(k,J,Ly,A,z);return D}return{createPrivateKeyFromPhrase:KL(L),createTransaction:Q0,fetchFeeRateFromSwapKit:E0,getAccount:X,getAddress:_,getBalance:async(J,Q)=>{let z=await v1(G)(J),W=await Promise.all(z.filter(({denom:w})=>w&&!w.includes("IBC/")).map(({denom:w,amount:I})=>{let k=[Ty.THORChain,Ty.Maya].includes(T)&&(w.includes("/")||w.includes("˜"))?`${T}.${w}`:w;return z0(k,I)}));if(W.length===0)return[Mf.from({chain:T})];return W},getBalanceAsDenoms:v1(G),getFees:()=>O0(T,C0[T]),getPubKey:Z,getSignerFromPhrase:async({phrase:J,derivationPath:Q})=>K0({derivationPath:U1(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:B,transfer:q,validateAddress:V1(T),verifySignature:n1(X)}}async function CL(T,x){try{let y=(await F1.getGasRate()).find((f)=>f.chainId===T)?.value;return y?Number.parseFloat(y):x}catch{return x}}function OL({assetValue:{chain:T}}){return Mf.from({chain:T,value:kL(T)})}async function O0(T,x){let{chainId:G,baseDecimal:y}=WL(T),f=await E0(G,x);return{average:R0.fromBigInt(BigInt(f),y),fast:R0.fromBigInt(BigInt(S1(f,If.Fast,!0)),y),fastest:R0.fromBigInt(BigInt(S1(f,If.Fastest,!0)),y)}}function l1(T,x){return{amount:[{amount:T.getBaseValue("string"),denom:x}],gas:"200000"}}function kL(T){return{[Ty.Cosmos]:0.007,[Ty.Kujira]:0.02,[Ty.Noble]:0.01,[Ty.THORChain]:0.02,[Ty.Maya]:0.02,[Ty.Harbor]:0.02}[T]||0}function V1(T){let x=A1[T];return function(y){if(!y.startsWith(x))return!1;try{let{prefix:f,words:L}=I0.decode(y);return I0.encode(f,L)===y.toLocaleLowerCase()}catch{return!1}}}function v1(T){return async function(G){return(await(await Ry(T)).getAllBalances(G)).map((N)=>({...N,denom:N.denom.includes("/")?N.denom.toUpperCase():N.denom}))}}function KL(T){return async function(G){let y=await import("@cosmjs/crypto"),f=y.stringToPath??y.default?.stringToPath,L=y.Slip10Curve??y.default?.Slip10Curve,N=y.Slip10??y.default?.Slip10,X=y.EnglishMnemonic??y.default?.EnglishMnemonic,_=y.Bip39??y.default?.Bip39,Z=new X(G),B=await _.mnemonicToSeed(Z),{privkey:q}=N.derivePath(L.Secp256k1,B,f(T));return q}}var C0;var Rf=E(()=>{DT();C0={[Ty.Cosmos]:1000,[Ty.Kujira]:1000,[Ty.Noble]:1000,[Ty.THORChain]:5000000,[Ty.Maya]:5000000,[Ty.Harbor]:5000000}});import{base64 as oy}from"@scure/base";import{Chain as EL,CosmosChainPrefixes as DL,derivationPathToString as SL,FeeOption as D0,getChainConfig as $1,getRPCUrl as UL,NetworkDerivationPath as PL,RequestClient as lL,SKConfig as vL,SwapKitNumber as u1,USwapError as b1,updateDerivationPath as AL}from"@uswap/helpers";import{match as FL,P as j1}from"ts-pattern";function nL({prefix:T,derivationPath:x}){return async function(y,f=0){let L=await import("@cosmjs/amino"),N=L.Secp256k1HdWallet??L.default?.Secp256k1HdWallet,X=await import("@cosmjs/crypto"),_=X.stringToPath??X.default?.stringToPath;return N.fromMnemonic(y,{hdPaths:[_(`${x}/${f}`)],prefix:T})}}function VL(T){return oy.encode(T)}function $L(T){return async function({wallet:G,tx:y}){let{msgs:f,accountNumber:L,sequence:N,chainId:X,fee:_,memo:Z}=typeof y==="string"?JSON.parse(y):y,B=(await G.getAccounts())?.[0]?.address||"",q=await Ey(T),J=await jy(),Q=await q0(G,{aminoTypes:q,registry:J}),z=[];for(let I of f){let k=await Dy(I,T);z.push(k)}let{signatures:[W]}=await Q.sign(B,z,_,Z,{accountNumber:L,chainId:X,sequence:N});return{bodyBytes:await ST({chain:T,memo:Z,msgs:f.map(Sy)}),signature:VL(W)}}}function uL({prefix:T,rpcUrl:x}){return async function(y,f,L,N,X){let{encodeSecp256k1Pubkey:_,pubkeyToAddress:Z}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:B}=(await import("@cosmjs/stargate")).default,{sequence:q,fee:J}=JSON.parse(y),Q=await o1(L,N),z=f.map((I)=>[Z(_(oy.decode(I.pubKey)),T),oy.decode(I.signature)]),W=await Ry(x),{transactionHash:w}=await W.broadcastTx(B(Q,q,J,X,new Map(z)));return w}}async function o1(T,x,G=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:f}=(await import("@cosmjs/amino")).default;return y(T.map((L)=>f(oy.decode(L))),x,G)}function bL(T){return oy.decode(T)}async function jL({privateKey:T,message:x}){let{Secp256k1:G}=(await import("@cosmjs/crypto")).default,y=await G.createSignature(oy.decode(x),T);return oy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function S0({chain:T,...x}){let G=await UL(T),{nodeUrl:y}=$1(T),{isStagenet:f}=vL.get("envs"),L=T===EL.THORChain,N=`${f?"s":""}${DL[T]}`,X="index"in x?x.index||0:0,_="derivationPath"in x&&x.derivationPath?x.derivationPath:AL(PL[T],{index:X}),Z=await UT({chain:T,...x}),B=await FL(x).with({phrase:j1.string},({phrase:z})=>Z.getSignerFromPhrase({derivationPath:_,phrase:z})).with({signer:j1.any},({signer:z})=>z).otherwise(()=>{return}),q=Iy(T);async function J(){let z,W=`${y}/${L?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:w}}=await lL.get(W);if(!w||Number.isNaN(w)||w<0)throw new b1("toolbox_cosmos_invalid_fee",{nativeFee:w.toString()});z=new u1(w)}catch{z=new u1({decimal:$1(T).baseDecimal,value:L?0.02:1})}return{[D0.Average]:z,[D0.Fast]:z,[D0.Fastest]:z}}async function Q({assetValue:z,memo:W="",recipient:w}){let{TxRaw:I}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),k=(await B?.getAccounts())?.[0]?.address;if(!(k&&B))throw new b1("toolbox_cosmos_no_signer");let l="signAmino"in B,U=await jy(),A=await Ey(T),j=await GT(G,B,{aminoTypes:A,registry:U}),g=Hf({assetValue:z,memo:W,recipient:w,sender:k});if(l){let Y=await Dy(g,T),{signatures:R,authInfoBytes:O}=await j.sign(k,[Y],q,W),v=I.encode({authInfoBytes:O,bodyBytes:await ST({chain:T,memo:W,msgs:[g].map(Sy)}),signatures:R}).finish();return(await j.broadcastTx(v)).transactionHash}let Ly=Sy(g),D=await Dy(Ly,T);return(await j.signAndBroadcast(k,[D],q,W)).transactionHash}return{...Z,broadcastMultisigTx:uL({prefix:N,rpcUrl:G}),buildAminoMsg:Hf,buildEncodedTxBody:ST,convertToSignable:Dy,createDefaultAminoTypes:()=>Ey(T),createDefaultRegistry:jy,createMultisig:o1,createTransaction:M0(G),deposit:Q,getFees:J,importSignature:bL,parseAminoMessageForDirectSigning:Sy,pubkeyToAddress:async(z)=>{let{pubkeyToAddress:W}=(await import("@cosmjs/amino")).default;return W(z,N)},secp256k1HdWalletFromMnemonic:nL({derivationPath:SL(_),prefix:N}),signMultisigTx:$L(T),signWithPrivateKey:jL,transfer:Q}}var U0=E(()=>{w0();DT();Rf()});import{Chain as PT,USwapError as oL}from"@uswap/helpers";var hL=(T,x)=>{switch(T){case PT.Cosmos:case PT.Kujira:case PT.Noble:return UT({chain:T,...x});case PT.Maya:case PT.THORChain:return S0({chain:T,...x});default:throw new oL("toolbox_cosmos_not_supported",{chain:T})}};var h1=E(()=>{Rf();U0();Rf();U0()});var Cf={};yy(Cf,{verifySignature:()=>n1,transferMsgAmino:()=>W0,toBase64:()=>GL,parseAminoMessageForDirectSigning:()=>Sy,getSignerFromPrivateKey:()=>RL,getSignerFromPhrase:()=>K0,getMsgSendDenom:()=>wy,getFeeRateFromSwapKit:()=>CL,getDenomWithChain:()=>LT,getDefaultChainFee:()=>Iy,getCreateTransaction:()=>M0,getCosmosValidateAddress:()=>V1,getCosmosToolbox:()=>hL,getAssetFromDenom:()=>z0,fromBase64:()=>NL,fetchFeeRateFromSwapKit:()=>E0,estimateTransactionFee:()=>OL,depositMsgAmino:()=>H0,createThorchainToolbox:()=>S0,createStargateClient:()=>Ry,createSigningStargateClient:()=>GT,createOfflineStargateClient:()=>q0,createDefaultRegistry:()=>jy,createDefaultAminoTypes:()=>Ey,createCosmosToolbox:()=>UT,cosmosCreateTransaction:()=>Q0,convertToSignable:()=>Dy,buildTransferTx:()=>O1,buildEncodedTxBody:()=>ST,buildDepositTx:()=>k1,buildAminoMsg:()=>Hf,bech32ToBase64:()=>KT,base64ToBech32:()=>ET,YUM_KUJIRA_FACTORY_DENOM:()=>Y1,USK_KUJIRA_FACTORY_DENOM:()=>B0,THORCHAIN_GAS_VALUE:()=>QL,MAYA_GAS_VALUE:()=>zL,DEFAULT_NOBLE_FEE_MAINNET:()=>M1,DEFAULT_KUJI_FEE_MAINNET:()=>H1,DEFAULT_COSMOS_FEE_MAINNET:()=>W1});var Of=E(()=>{w0();h1();DT()});import{AssetValue as kf,Chain as Uy,DerivationPath as pL,derivationPathToString as tL,getChainConfig as c1,getRPCUrl as cL,NetworkDerivationPath as mL,USwapError as py,updateDerivationPath as iL}from"@uswap/helpers";import{match as gL,P as p1}from"ts-pattern";async function m1(T){let x=kf.from({address:T,chain:Uy.Solana});if(x.symbol!=="UNKNOWN")return{decimals:x.decimal||0,id:T,logoURI:x.getIconUrl(),name:x.symbol,symbol:x.ticker};let G=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(T)}`;try{let y=await fetch(G);if(!y.ok)return null;let f=await y.json();if(!Array.isArray(f)||f.length===0)return null;return f.find((N)=>N.id===T)||null}catch{return null}}async function dL(T){let x=await hy(),{PublicKey:G}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),f=new G(T),{baseDecimal:L}=c1(Uy.Solana),N=await x.getBalance(f),X=[kf.from({chain:Uy.Solana,fromBaseDecimal:L,value:N||0})],_=await x.getParsedTokenAccountsByOwner(f,{programId:y});for(let{account:Z}of _.value){let B=Z.data.parsed.info,q=B.mint,J=B.tokenAmount.amount;if(Number(J)===0)continue;let Q=await m1(q),z=Q?.symbol||"UNKNOWN",W=Q?.decimals||B.tokenAmount.decimals;X.push(kf.from({asset:`${Uy.Solana}.${z}-${q}`,fromBaseDecimal:W,value:J}))}return X}async function v0(){let{PublicKey:T}=await import("@solana/web3.js");return(x)=>{try{let G=new T(x);return T.isOnCurve(G.toBytes())}catch{return!1}}}async function rL(T){let x=T&&"index"in T?T.index||0:0,G=tL(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:iL(mL[Uy.Solana],{index:x})),y=await gL(T).with({phrase:p1.string},({phrase:N})=>l0({derivationPath:G,phrase:N})).with({signer:p1.any},({signer:N})=>N).otherwise(()=>{return});function f(){return y?.publicKey?t1(y.publicKey):""}function L(N){let X=N||f();if(!X)throw new py("core_wallet_connection_not_found");return dL(X)}return{broadcastTransaction:P0(hy),createKeysForPath:l0,createTransaction:A0(hy),createTransactionFromInstructions:yG,estimateTransactionFee:aL(hy),getAddress:f,getAddressFromPubKey:t1,getAddressValidator:v0,getBalance:L,getConnection:hy,getPubkeyFromAddress:F0,signTransaction:fG(hy,y),transfer:TG(hy,y)}}function aL(T){return async({recipient:x,assetValue:G,memo:y,isProgramDerivedAddress:f,sender:L})=>{let N=await T(),_=(await A0(T)({assetValue:G,isProgramDerivedAddress:f,memo:y,recipient:x,sender:L})).compileMessage(),Z=await N.getFeeForMessage(_);if(Z.value===null)throw new py("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:B}=c1(Uy.Solana);return kf.from({chain:Uy.Solana,fromBaseDecimal:B,value:Z.value})}}async function hy(){let{Connection:T}=await import("@solana/web3.js"),x=await cL(Uy.Solana);return new T(x,"confirmed")}function sL(T){return async({assetValue:x,recipient:G,sender:y,isProgramDerivedAddress:f})=>{let L=await T(),N=await F0(y);if(x.isGasAsset){let{Transaction:X,SystemProgram:_,PublicKey:Z}=await import("@solana/web3.js");return new X().add(_.transfer({fromPubkey:N,lamports:x.getBaseValue("number"),toPubkey:new Z(G)}))}if(x.address)return eL({amount:x.getBaseValue("number"),connection:L,decimals:x.decimal,from:N,isProgramDerivedAddress:f,recipient:G,tokenAddress:x.address});return}}async function eL({tokenAddress:T,recipient:x,from:G,connection:y,amount:f,decimals:L,isProgramDerivedAddress:N}){let{getAssociatedTokenAddress:X,getAccount:_,createAssociatedTokenAccountInstruction:Z,createTransferCheckedInstruction:B}=await import("@solana/spl-token"),{Transaction:q,PublicKey:J}=await import("@solana/web3.js"),Q=new q,z=new J(T),W=await X(z,G),w=new J(x),I=await X(z,w,N),k=!1;try{await _(y,I),k=!0}catch{}if(!k)Q.add(Z(G,I,w,z));return Q.add(B(W,z,I,G,f,L)),Q}function A0(T){return async({recipient:x,assetValue:G,memo:y,isProgramDerivedAddress:f,sender:L})=>{let{createMemoInstruction:N}=await import("@solana/spl-memo"),X=await F0(L),_=await v0();if(!(f||_(x)))throw new py("core_transaction_invalid_recipient_address");let Z=await T(),B=await sL(T)({assetValue:G,isProgramDerivedAddress:f,recipient:x,sender:L});if(!B)throw new py("core_transaction_invalid_sender_address");if(y)B.add(N(y));let q=await Z.getLatestBlockhash();return B.recentBlockhash=q.blockhash,B.feePayer=X,B}}async function yG({instructions:T}){let{Transaction:x}=await import("@solana/web3.js"),G=new x().add(...T);if(!G)throw new py("core_transaction_invalid_sender_address");return G}function TG(T,x){return async({recipient:G,assetValue:y,memo:f,isProgramDerivedAddress:L})=>{if(!x)throw new py("core_transaction_invalid_sender_address");let N=x.publicKey?.toString()??(await x.connect()).publicKey.toString(),X=await A0(T)({assetValue:y,isProgramDerivedAddress:L,memo:f,recipient:G,sender:N});if("signTransaction"in x){let _=await x.signTransaction(X);return P0(T)(_)}return X.sign(x),P0(T)(X)}}function P0(T){return async(x)=>{return(await T()).sendRawTransaction(x.serialize())}}function fG(T,x){return async(G)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!x)throw new py("toolbox_solana_no_signer");if(!(G instanceof y)){let L=await(await T()).getLatestBlockhash();G.recentBlockhash=L.blockhash,G.feePayer=x.publicKey||void 0}if("connect"in x)return await x.signTransaction(G);return await G.sign([x]),G}}async function l0({phrase:T,derivationPath:x=pL.SOL}){let{HDKey:G}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:y}=await import("@scure/bip39"),{Keypair:f}=await import("@solana/web3.js"),L=y(T),N=G.fromMasterSeed(L);return f.fromSeed(N.derive(x,!0).privateKey)}function t1(T){return T.toString()}async function F0(T){let{PublicKey:x}=await import("@solana/web3.js");return new x(T)}var i1=()=>{};var n0={};yy(n0,{getSolanaToolbox:()=>rL,getSolanaAddressValidator:()=>v0,fetchTokenMetaData:()=>m1,createKeysForPath:()=>l0});var V0=E(()=>{i1()});import{AssetValue as lT,Chain as $0,getChainConfig as xG,USwapError as ty}from"@uswap/helpers";import{match as LG,P as g1}from"ts-pattern";async function d1(){let{isValidSuiAddress:T}=await import("@mysten/sui/utils");return function(G){try{return T(G)}catch{return!1}}}async function GG({provider:T,...x}={}){let G=await d1(),y=await LG(x).with({phrase:g1.string},async({phrase:q})=>{let{Ed25519Keypair:J}=await import("@mysten/sui/keypairs/ed25519");return J.deriveKeypair(q)}).with({signer:g1.any},({signer:q})=>q).otherwise(()=>{return});async function f(q=T){let{SuiClient:J,getFullnodeUrl:Q}=await import("@mysten/sui/client");return new J({url:q||Q("mainnet")})}function L(){return y?.toSuiAddress()||""}async function N(q){let J=q||L();if(!J)throw new ty("toolbox_sui_address_required");let{baseDecimal:Q,chain:z}=xG($0.Sui);try{let W=await f(),{totalBalance:w}=await W.getBalance({owner:J}),I=[lT.from({chain:z,fromBaseDecimal:Q,value:w})],k=await W.getAllBalances({owner:J});for(let{coinType:l,totalBalance:U}of k){if(l==="0x2::sui::SUI")continue;if(Number(U)>0){let A=l.split("::").pop()?.toUpperCase()||"UNKNOWN",j=`${z}.${A}-${l}`;I.push(lT.from({asset:j,fromBaseDecimal:Q,value:U}))}}return I}catch{return[lT.from({chain:z})]}}async function X(q){let J=lT.from({chain:$0.Sui,value:"0.01"});if(!q)return J;try{let Q=await f(),{txBytes:z}=await _(q),{effects:{status:W,gasUsed:w}}=await Q.dryRunTransactionBlock({transactionBlock:z});if(W.status!=="success")return J;let I=Number(w.computationCost)+Number(w.storageCost)-Number(w.storageRebate);return lT.from({chain:$0.Sui,value:I.toString()})}catch{return J}}async function _({recipient:q,assetValue:J,gasBudget:Q,sender:z}){let{Transaction:W}=await import("@mysten/sui/transactions"),w=z||L();if(!w)throw new ty("toolbox_sui_no_sender");try{let I=new W;if(I.setSender(w),J.isGasAsset||J.symbol==="SUI"){let[U]=I.splitCoins(I.gas,[J.getBaseValue("string")]);I.transferObjects([U],q)}else throw new ty("toolbox_sui_custom_token_transfer_not_implemented");if(Q)I.setGasBudget(Q);let k=await f(),l=await I.build({client:k});return{tx:I,txBytes:l}}catch(I){throw new ty("toolbox_sui_transaction_creation_error",{error:I})}}async function Z(q){if(!y)throw new ty("toolbox_sui_no_signer");if(q instanceof Uint8Array)return y.signTransaction(q);let{txBytes:J}="tx"in q?q:await _(q);return y.signTransaction(J)}async function B({assetValue:q,gasBudget:J,recipient:Q}){if(!y)throw new ty("toolbox_sui_no_signer");let z=y.toSuiAddress()||L();if(!z)throw new ty("toolbox_sui_no_sender");let{txBytes:W}=await _({assetValue:q,gasBudget:J,recipient:Q,sender:z}),w=await f(),{digest:I}=await w.signAndExecuteTransaction({signer:y,transaction:W});return I}return{createTransaction:_,estimateTransactionFee:X,getAddress:L,getBalance:N,signTransaction:Z,transfer:B,validateAddress:G}}var r1=()=>{};var Kf={};yy(Kf,{getSuiToolbox:()=>GG,getSuiAddressValidator:()=>d1});var Ef=E(()=>{r1()});import{AssetValue as u0,Chain as vT,getChainConfig as a1,SwapKitNumber as NG,USwapError as AT}from"@uswap/helpers";import{match as XG,P as s1}from"ts-pattern";async function _G(T={}){let{mnemonicToWalletKey:x}=await import("@ton/crypto"),{Address:G,TonClient:y,WalletContractV4:f}=await import("@ton/ton"),L=await e1(),N,X,_=await XG(T).with({phrase:s1.string},async({phrase:I})=>x(I.split(" "))).with({signer:s1.any},({signer:I})=>I).otherwise(()=>{return});function Z(){let{rpcUrls:I}=a1(vT.Ton),[k]=I;if(!N||N.parameters.endpoint!==k)N=new y({endpoint:k});return N}function B(I){if(!X||I){let k=Z(),l=I||_;if(!l)throw new AT("core_wallet_connection_not_found");let U=f.create({publicKey:l.publicKey,workchain:0});X=k.open(U)}return X}async function q(I){let k=Z(),{baseDecimal:l}=a1(vT.Ton);try{let U=await k.getBalance(G.parse(I));return[u0.from({chain:vT.Ton,value:NG.fromBigInt(U,l)})]}catch{return[u0.from({chain:vT.Ton})]}}async function J({assetValue:I,recipient:k,memo:l}){let U=B();if(!U||!_)throw new AT("core_wallet_connection_not_found");let{toNano:A,comment:j,internal:g}=await import("@ton/ton"),Ly=await U.getSeqno(),D=A(I.getValue("string")),P=l?j(l):void 0;return U.createTransfer({messages:[g({body:P,to:k,value:D})],secretKey:_.secretKey,seqno:Ly})}async function Q({assetValue:I,recipient:k,memo:l}){let U=B();if(!U||!_)throw new AT("core_wallet_connection_not_found");let A=await J({assetValue:I,memo:l,recipient:k});return await U.send(A),A.hash().toString()}async function z(I){let k=B();if(!k)throw new AT("core_wallet_connection_not_found");try{return await k.send(I),I.hash().toString("hex")}catch(l){throw new AT("core_wallet_connection_not_found",{error:l})}}function W(){return B().address.toString()}function w(){return Promise.resolve(u0.from({chain:vT.Ton,value:"0.0001"}))}return{createTransaction:J,estimateTransactionFee:w,getAddress:W,getBalance:q,sendTransaction:z,transfer:Q,validateAddress:L}}async function e1(){let{Address:T}=await import("@ton/ton");return function(G){try{return T.parse(G),!0}catch{return!1}}}var y2=()=>{};var Df={};yy(Df,{getTONToolbox:()=>_G,getTONAddressValidator:()=>e1});var Sf=E(()=>{y2()});var NT;var b0=E(()=>{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 ZG}from"@uswap/helpers";async function T2(T){let x=await import("tronweb"),G=x.TronWeb??x.default?.TronWeb;try{let y=await fetch(`${JG}/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 L;try{L=G.address.toHex(T).toLowerCase()}catch{L=T.toLowerCase()}let N=f.data.find((X)=>{return X.address.toLowerCase()===L});if(!N)return;return{balance:N.balance,trc20:N.trc20||[]}}catch(y){throw new ZG("toolbox_tron_trongrid_api_error",{address:T,message:y instanceof Error?y.message:"Unknown error"})}}var JG="https://api.trongrid.io";var f2=()=>{};import{AssetValue as Cy,BaseDecimal as x2,Chain as Qy,derivationPathToString as N2,getRPCUrl as BG,NetworkDerivationPath as X2,USwapError as fy,updateDerivationPath as _2,warnOnce as j0}from"@uswap/helpers";import{match as qG,P as L2}from"ts-pattern";async function o0(){let T=await import("tronweb"),x=T.TronWeb??T.default?.TronWeb;return(G)=>{return x.isAddress(G)}}async function Z2({phrase:T,derivationPath:x,index:G}){let y=x||N2(_2(X2[Qy.Tron],{index:G||0})),{HDKey:f}=await import("@scure/bip32"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),N=L(T),_=f.fromMasterSeed(N).derive(y);if(!_.privateKey)throw new fy("toolbox_tron_no_signer");return Buffer.from(_.privateKey).toString("hex")}async function HG({phrase:T,derivationPath:x,tronWeb:G}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),L=f(T),X=y.fromMasterSeed(L).derive(x);if(!X.privateKey)throw new fy("toolbox_tron_no_signer");let _=Buffer.from(X.privateKey).toString("hex");G.setPrivateKey(_);let Z=G?.address.fromPrivateKey(_);return{getAddress:()=>Promise.resolve(typeof Z==="string"?Z:""),signTransaction:async(B)=>{return await G.trx.sign(B,_)}}}var QG=268,zG=13000,YG=345,G2="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",WG="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",J2=async(T={})=>{let x=await import("tronweb"),G=x.TronWeb??x.default?.TronWeb,y=await BG(Qy.Tron),f=void 0,L=new G({fullHost:y,headers:void 0}),N="index"in T?T.index||0:0,X=N2("derivationPath"in T&&T.derivationPath?T.derivationPath:_2(X2[Qy.Tron],{index:N})),_=await qG(T).with({phrase:L2.string},async({phrase:D})=>HG({derivationPath:X,phrase:D,tronWeb:L})).with({signer:L2.any},({signer:D})=>Promise.resolve(D)).otherwise(()=>Promise.resolve(void 0)),Z=async()=>{if(!_)throw new fy("toolbox_tron_no_signer");return await _.getAddress()},B=()=>{return 1e8},q=async()=>{try{let D=await L.trx.getChainParameters(),P={};for(let Y of D)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(D)=>{try{let P=await L.trx.getAccount(D);return P&&Object.keys(P).length>0}catch{return!1}},Q=async(D)=>{try{let P=await L.trx.getAccountResources(D);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}}}},z=async(D,P)=>{try{let Y=L.contract(NT,P);if(!Y.methods?.balanceOf)return 0n;let[R]=await Y.methods.balanceOf(D).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(D,P)=>{try{L.setAddress(P);let Y=L.contract(NT,D),[R,O]=await Promise.all([Y.symbol().call().catch(()=>"UNKNOWN"),Y.decimals().call().catch(()=>"18")]);return{decimals:Number(O??18),symbol:R??"UNKNOWN"}}catch(Y){return j0({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${D}: ${Y instanceof Error?Y.message:Y}`}),null}},w=async(D,P=!0)=>{let Y=[Cy.from({chain:Qy.Tron})];try{let R=await T2(D);if(R){let O=[];O.push(Cy.from({chain:Qy.Tron,fromBaseDecimal:6,value:R.balance}));for(let v of R.trc20){let[u,$]=Object.entries(v)[0]||[];if(!(u&&$))continue;let n=await W(u,D);if(!n)continue;O.push(Cy.from({asset:`TRON.${n.symbol}-${u}`,fromBaseDecimal:n.decimals,value:BigInt($||0)}))}return O}return Y}catch(R){j0({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${R instanceof Error?R.message:R}`});try{let O=[],v=await L.trx.getBalance(D);if(v&&Number(v)>0)O.push(Cy.from({chain:Qy.Tron,fromBaseDecimal:6,value:v}));let u=await z(D,G2);if(u)O.push(Cy.from({asset:`TRON.USDT-${G2}`,fromBaseDecimal:6,value:u}));if(O.length===0)return Y;return O}catch(O){let v=O instanceof Error?O.message:String(O);return console.error(`Tron balance fetch failed: ${v}`),Y}}},I=async({recipient:D,assetValue:P,memo:Y,expiration:R})=>{if(!_)throw new fy("toolbox_tron_no_signer");let O=await Z();L.setAddress(O);let v=await l({assetValue:P,expiration:R,memo:Y,recipient:D,sender:O}),u=await _.signTransaction(v),{txid:$}=await L.trx.sendRawTransaction(u);if(!$)throw new fy("toolbox_tron_token_transfer_failed");return $},k=async({assetValue:D,recipient:P,sender:Y})=>{let R=D.isGasAsset;try{let O=Y?Y:_?await Z():void 0;if(!O)return R?Cy.from({chain:Qy.Tron,fromBaseDecimal:0,value:0.1}):Cy.from({chain:Qy.Tron,fromBaseDecimal:0,value:15});let v=await q(),$=await J(P)?0:v.createAccountFee,n=await Q(O);if(R){let Vy=QG,tT=n.bandwidth.free+(n.bandwidth.total-n.bandwidth.used),cT=0;if(Vy>tT)cT=(Vy-tT)*v.bandwidthFee;let mT=$+cT;return Cy.from({chain:Qy.Tron,fromBaseDecimal:x2.TRON,value:mT})}let o=YG,d=zG,e=n.bandwidth.free+(n.bandwidth.total-n.bandwidth.used),Gy=n.energy.total-n.energy.used,ny=0;if(o>e)ny=(o-e)*v.bandwidthFee;let pT=0;if(d>Gy)pT=(d-Gy)*v.energyFee;let pf=$+ny+pT;return Cy.from({chain:Qy.Tron,fromBaseDecimal:x2.TRON,value:pf})}catch(O){throw j0({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${O instanceof Error?O.message:O}`}),new fy("toolbox_tron_fee_estimation_failed",{error:O})}},l=async(D)=>{let{recipient:P,assetValue:Y,memo:R,sender:O,expiration:v}=D,u=Y.isGasAsset,$=async({transaction:o,memo:d,expiration:e})=>{let Gy=d?await L.transactionBuilder.addUpdateData(o,d,"utf8"):o;return e?await L.transactionBuilder.extendExpiration(Gy,e):Gy};if(u){let o=await L.transactionBuilder.sendTrx(P,Y.getBaseValue("number"),O);return $({expiration:v,memo:R,transaction:o})}L.setAddress(O);let n=Y.address;if(!n)throw new fy("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});try{let d=[{type:"address",value:P},{type:"uint256",value:Y.getBaseValue("string")}],e={callValue:0,feeLimit:B()},{transaction:Gy}=await L.transactionBuilder.triggerSmartContract(n,"transfer(address,uint256)",e,d,O);return $({expiration:v,memo:R,transaction:Gy})}catch(o){throw new fy("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction.",originalError:o instanceof Error?o.message:String(o)})}},U=async(D)=>{if(!_)throw new fy("toolbox_tron_no_signer");return await _.signTransaction(D)},A=async(D)=>{let{txid:P}=await L.trx.sendRawTransaction(D);return P},j=async({assetAddress:D,spenderAddress:P,from:Y})=>{try{let R=L.contract(NT,D);if(!R.methods?.allowance)throw new fy("toolbox_tron_invalid_token_contract");let[O]=await R.methods.allowance(Y,P).call();return O?typeof O==="bigint"?O:BigInt(O):0n}catch(R){throw new fy("toolbox_tron_allowance_check_failed",{error:R})}};return{approve:async({assetAddress:D,spenderAddress:P,amount:Y,from:R})=>{if(!_)throw new fy("toolbox_tron_no_signer");let O=R||await Z(),v=Y!==void 0?BigInt(Y).toString():WG,u="approve(address,uint256)",$=[{type:"address",value:P},{type:"uint256",value:v}],o={callValue:0,feeLimit:B()};try{let{transaction:d}=await L.transactionBuilder.triggerSmartContract(D,u,o,$,O),e=await _.signTransaction(d),{txid:Gy}=await L.trx.sendRawTransaction(e);if(!Gy)throw new fy("toolbox_tron_approve_failed");return Gy}catch(d){throw new fy("toolbox_tron_approve_failed",{error:d})}},broadcastTransaction:A,createTransaction:l,estimateTransactionFee:k,getAddress:Z,getApprovedAmount:j,getBalance:w,isApproved:async({assetAddress:D,spenderAddress:P,from:Y,amount:R})=>{let O=await j({assetAddress:D,from:Y,spenderAddress:P});if(!R)return O>0n;let v=BigInt(R);return O>=v},signTransaction:U,transfer:I,tronWeb:L,validateAddress:await o0()}};var B2=E(()=>{b0();f2()});var h0={};yy(h0,{trc20ABI:()=>NT,getTronPrivateKeyFromMnemonic:()=>Z2,getTronAddressValidator:()=>o0,createTronToolbox:()=>J2});var p0=E(()=>{b0();B2()});import{networks as MG}from"@bitgo/utxo-lib";import{Chain as a,getRPCUrl as wG,RequestClient as Uf,SKConfig as IG,USwapError as Py,warnOnce as RG}from"@uswap/helpers";import{networks as CG}from"bitcoinjs-lib";import FT from"coininfo";async function OG({chain:T,txHash:x}){let G=`${Pf(T)}/push/transaction`,y=JSON.stringify({data:x});try{let f=await Uf.post(G,{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 L=await wG(T);if(L){let N=JSON.stringify({id:$5(),jsonrpc:"2.0",method:"sendrawtransaction",params:[x]}),X=await Uf.post(L,{body:N,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/${kG(T)}`}function q2(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 kG(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 KG(T){try{let{feePerKb:x}=await Uf.get(`https://app.bitgo.com/api/v2/${T.toLowerCase()}/tx/fee`),G=x/1000;return Math.max(G,q2(T))}catch{return q2(T)}}async function t0(T,x){let G=await Uf.get(`${T}${x?`${T.includes("?")?"&":"?"}key=${x}`:""}`);if(!G||G.context.code!==200)throw new Py("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return G.data}async function z2({address:T,chain:x,apiKey:G}){if(!T)throw new Py("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await t0(`${Pf(x)}/dashboards/address/${T}?transaction_details=true`,G))[T]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function EG({address:T,chain:x,apiKey:G}){return(await z2({address:T,apiKey:G,chain:x}))?.address.balance||0}async function Y2({chain:T,apiKey:x,txHash:G}){if(!G)throw new Py("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await t0(`${Pf(T)}/raw/transaction/${G}`,x))?.[G]?.raw_transaction||""}catch(y){let f=y instanceof Error?y.message:String(y);return console.error(`Failed to fetch raw transaction: ${f}`),""}}async function DG({chain:T,address:x,apiKey:G,offset:y=0,limit:f=30}){return(await t0(`${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}`,G)).map(({is_spent:_,script_hex:Z,block_id:B,transaction_hash:q,index:J,value:Q,spending_signature_hex:z})=>({hash:q,index:J,is_confirmed:B!==-1,is_spent:_,script_hex:Z,txHex:z,value:Q}))}function SG(T){return T.reduce((x,G)=>x+G.value,0)}function Q2(T,x){let G=[...T].sort((y,f)=>f.value-y.value);if(x){let y=[],f=0;for(let L of G)if(y.push(L),f+=L.value,f>=x)break;return y}return G}async function W2({chain:T,address:x,apiKey:G,targetValue:y,accumulativeValue:f=0,offset:L=0,limit:N=30}){if(!x)throw new Py("toolbox_utxo_invalid_params",{error:"Address is required"});try{let X=await DG({address:x,apiKey:G,chain:T,limit:N,offset:L,targetValue:y}),Z=X.length<N,B=X.filter(({is_spent:w})=>!w),q=SG(B),J=f+q,Q=y&&J>=y;if(Z||Q)return Q2(B,y);let z=await W2({accumulativeValue:J,address:x,apiKey:G,chain:T,limit:N,offset:L+N,targetValue:y}),W=[...B,...z];return Q2(W,y)}catch(X){let _=X instanceof Error?X.message:String(X);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function UG({address:T,chain:x,apiKey:G,fetchTxHex:y=!0,targetValue:f}){let L=await W2({address:T,apiKey:G,chain:x,targetValue:f}),N=[];for(let{hash:X,index:_,script_hex:Z,value:B}of L){let q;if(y)q=await Y2({apiKey:G,chain:x,txHash:X});N.push({address:T,hash:X,index:_,txHex:q,value:B,witnessUtxo:{script:Buffer.from(Z,"hex"),value:B}})}return N}function Ny(T){let x=IG.get("apiKeys").blockchair||"";return RG({condition:!x,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(G)=>OG({chain:T,txHash:G}),getAddressData:(G)=>z2({address:G,apiKey:x,chain:T}),getBalance:(G)=>EG({address:G,apiKey:x,chain:T}),getRawTx:(G)=>Y2({apiKey:x,chain:T,txHash:G}),getSuggestedTxFee:()=>KG(T),getUtxos:(G)=>UG({...G,apiKey:x,chain:T})}}function PG(T){return T}function zy(){return function(x){switch(x){case a.Bitcoin:return CG.bitcoin;case a.BitcoinCash:return FT.bitcoincash.main.toBitcoinJS();case a.Dash:return FT.dash.main.toBitcoinJS();case a.Litecoin:return FT.litecoin.main.toBitcoinJS();case a.Dogecoin:{let G={private:70615956,public:70617039},y=FT.dogecoin.test;return y.versions.bip32=G,FT.dogecoin.main.toBitcoinJS()}case a.Zcash:return MG.zcash;default:throw new Py("toolbox_utxo_not_supported",{chain:x})}}}var H2=E(()=>{WT()});import{USwapError as w2}from"@uswap/helpers";import I2 from"bs58check";import R2 from"cashaddrjs";function m0(T){try{return lf(T),!0}catch{return!1}}function i0(T){return lf(T)?.network}function XT(T){let x=lf(T);if(x?.format==="legacy")return T;return AG(x)}function nT(T){let x=lf(T);return FG(x)}function lf(T){try{let x=lG(T);if(x)return x}catch{}try{let x=vG(T);if(x)return x}catch{}throw new w2("toolbox_utxo_invalid_address",{address:T})}function lG(T){try{let x=I2.decode(T);if(x.length!==21)throw new w2("toolbox_utxo_invalid_address",{address:T});let G=x[0],y=Array.prototype.slice.call(x,1);switch(G){case cy.legacy.mainnet.p2pkh:return{format:"legacy",hash:y,network:"mainnet",type:"p2pkh"};case cy.legacy.mainnet.p2sh:return{format:"legacy",hash:y,network:"mainnet",type:"p2sh"};case cy.legacy.testnet.p2pkh:return{format:"legacy",hash:y,network:"testnet",type:"p2pkh"};case cy.legacy.testnet.p2sh:return{format:"legacy",hash:y,network:"testnet",type:"p2sh"};case cy.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2pkh"};case cy.bitpay.mainnet.p2sh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function vG(T){if(T.indexOf(":")!==-1)try{return M2(T)}catch{}else{let x=["bitcoincash","bchtest","bchreg"];for(let G of x)try{return M2(`${G}:${T}`)}catch{}}return}function M2(T){try{let{hash:x,prefix:G,type:y}=R2.decode(T);return{format:"cashaddr",hash:Array.prototype.slice.call(x,0),network:G==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function AG(T){let x=cy.legacy[T.network][T.type],G=Buffer.alloc(1+T.hash.length);return G[0]=x,G.set(T.hash,1),I2.encode(G)}function FG(T){let x=T.network==="mainnet"?"bitcoincash":"bchtest",G=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return R2.encode(x,G,y)}var c0,cy;var C2=E(()=>{((G)=>{G.Mainnet="mainnet";G.Testnet="testnet"})(c0||={});cy={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{USwapError as nG}from"@uswap/helpers";import{opcodes as VG,script as $G}from"bitcoinjs-lib";function Yy(T){let x=Buffer.from(T,"utf8");return $G.compile([VG.OP_RETURN,x])}var uG=1000,Ff=10,O2=10,bG=41,jG=107,nf,vf,Af,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 nG("toolbox_utxo_invalid_address",{address:T})},_T=({inputs:T,outputs:x,feeRate:G})=>{let y=T[0]&&"address"in T[0]&&T[0].address?VT(T[0].address):"P2PKH",f=T.filter((N)=>N.value>=vf["type"in N?N.type:"P2PKH"]*Math.ceil(G)).reduce((N,X)=>N+ly(X),0),L=x?.reduce((N,X)=>N+$T(X),0)||Af[y];return Ff+f+L},ly=(T)=>{if("type"in T)return vf[T.type];if("address"in T&&T.address)return vf[VT(T.address)];return bG+jG},$T=(T,x)=>{if(T?.script)return O2+T.script.length+(T.script.length>=74?2:1);if(x)return Af[x];return Af.P2PKH};var g0=E(()=>{((G)=>{G.P2PKH="P2PKH";G.P2WPKH="P2WPKH"})(nf||={});vf={["P2PKH"]:148,["P2WPKH"]:68},Af={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as my,USwapError as oG}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 oG("toolbox_utxo_not_supported",{chain:T})}}function Wy({inputs:T,outputs:x,feeRate:G=1,chain:y=my.Bitcoin,changeAddress:f=""}){let L=Math.ceil(G),N=T[0]&&"address"in T[0]&&T[0].address?VT(T[0].address):"P2PKH",X=T.filter((Q)=>ly(Q)*L<=Q.value),_=Ff+x.reduce((Q,z)=>Q+$T(z,N),0),Z=x.reduce((Q,z)=>Q+z.value,0),B=_*L,q=0,J=[];for(let Q of X){let z=ly(Q),W=L*z;B+=W,q+=Q.value,J.push(Q);let w=B+Z;if(q<w)continue;let I=q-w,k=L*$T({address:"",value:0},N);if(I>k){let l=k+B,U=q-(Z+l);if(U>Math.max(ly({})*L,Vf(y)))return{fee:l,inputs:J,outputs:x.concat({address:f,value:U})}}return{fee:B,inputs:J,outputs:x}}return{fee:L*_T({feeRate:L,inputs:T,outputs:x})}}var k2=E(()=>{g0()});var ZT=E(()=>{H2();C2();k2();g0()});import{networks as hG,address as pG}from"@bitgo/utxo-lib";import tG from"bs58check";function iy(T){return T.replace(/(bchtest:|bitcoincash:)/,"")}function vy(T){let x=iy(T);return m0(x)&&i0(x)==="mainnet"}function JT(T){try{if(T.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let x=hG.zcash;try{return pG.toOutputScript(T,x),!0}catch{let G=tG.decode(T);if(G.length<21)return!1;let y=G[0];return y===x.pubKeyHash||y===x.scriptHash}}catch{return!1}}var uT=E(()=>{ZT()});import r0 from"@bitcoinerlab/secp256k1";import{ECPair as cG,HDNode as mG}from"@psf/bitcoincashjs-lib";import{HDKey as iG}from"@scure/bip32";import{mnemonicToSeedSync as K2}from"@scure/bip39";import{AssetValue as d0,applyFeeMultiplier as E2,Chain as Xy,DerivationPath as gG,derivationPathToString as dG,FeeOption as Oy,NetworkDerivationPath as rG,SwapKitNumber as aG,USwapError as ky,updateDerivationPath as sG}from"@uswap/helpers";import{address as eG,initEccLib as S2,Psbt as yN,payments as D2}from"bitcoinjs-lib";import{ECPairFactory as TN}from"ecpair";function U2({inputs:T,outputs:x,chain:G,psbt:y,sender:f,compiledMemo:L}){for(let N of T){let X=!!N.witnessUtxo&&!bT.includes(G)&&{witnessUtxo:N.witnessUtxo},_=bT.includes(G)&&{nonWitnessUtxo:N.txHex?Buffer.from(N.txHex,"hex"):void 0};y.addInput({hash:N.hash,index:N.index,...X,..._})}for(let N of x){let X="address"in N&&N.address?N.address:f,_=N.script;if(_&&!L)continue;let Z=_?{script:L,value:0}:{address:X,value:N.value};S2(r0),y.addOutput(Z)}return{inputs:T,psbt:y}}async function P2({assetValue:T,recipient:x,memo:G,feeRate:y,sender:f,fetchTxHex:L=!1}){let N=T.chain,X=G?await Yy(G):null,_=await A2({assetValue:T,fetchTxHex:L,memo:G,recipient:x,sender:f}),{inputs:Z,outputs:B}=Wy({..._,chain:N,feeRate:y});if(!(Z&&B))throw new ky("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let q=await zy(),J=new yN({network:q(N)});if(N===Xy.Dogecoin)J.setMaximumFeeRate(650000000);let{psbt:Q,inputs:z}=await U2({chain:N,compiledMemo:X,inputs:Z,outputs:B,psbt:J,sender:f});return{inputs:z,psbt:Q,utxos:_.inputs}}async function l2(){let T=await zy();return function({address:G,chain:y}){if(y===Xy.BitcoinCash)return vy(G);if(y===Xy.Zcash)return JT(G);try{return S2(r0),eG.toOutputScript(G,T(y)),!0}catch{return!1}}}async function fN({chain:T,phrase:x,derivationPath:G}){let y=(await jT(T))({derivationPath:G,phrase:x});async function f(N){return await N.signAllInputs(y),N}function L(){return a0(T)(y)}return{getAddress:L,signTransaction:f}}async function gy({chain:T,...x}){let G="phrase"in x?x.phrase:void 0,y="index"in x?x.index||0:0,f=dG("derivationPath"in x&&x.derivationPath?x.derivationPath:sG(rG[T],{index:y})),L=G?await fN({chain:T,derivationPath:f,phrase:G}):("signer"in x)?x.signer:void 0;function N(){return Promise.resolve(L?.getAddress())}let X=await l2(),_=await jT(T);return{accumulative:Wy,broadcastTx:(Z)=>Ny(T).broadcastTx(Z),calculateTxSize:_T,createKeysForPath:_,createTransaction:P2,estimateMaxSendableAmount:xN(T),estimateTransactionFee:LN(T),getAddress:N,getAddressFromKeys:a0(T),getBalance:ry(T),getFeeRates:()=>oT(T),getInputsOutputsFee:v2,getPrivateKeyFromMnemonic:(Z)=>{return _(Z).toWIF()},transfer:GN(L),validateAddress:(Z)=>X({address:Z,chain:T})}}async function v2({assetValue:T,feeOptionKey:x=Oy.Fast,feeRate:G,memo:y,sender:f,recipient:L}){let N=T.chain,X=await A2({assetValue:T,memo:y,recipient:L,sender:f}),_=G?Math.floor(G):(await oT(N))[x];return Wy({...X,chain:N,feeRate:_})}function xN(T){return async function({from:G,memo:y,feeRate:f,feeOptionKey:L=Oy.Fast,recipients:N=1}){let X=await Ny(T).getAddressData(G),_=f?Math.ceil(f):(await oT(T))[L],Z=X?.utxo.map((z)=>({...z,hash:"",type:"P2PKH"})).filter((z)=>z.value>Math.max(Vf(T),ly(z)*_));if(!Z?.length)return d0.from({chain:T});let B=d0.from({chain:T,value:Z.reduce((z,W)=>z+W.value,0)}),q=typeof N==="number"?Array.from({length:N},()=>({address:G,value:0})):N;if(y){let z=await Yy(y);q.push({address:G,script:z,value:0})}let Q=_T({feeRate:_,inputs:Z,outputs:q})*_;return B.sub(Q)}}function LN(T){return async(x)=>{let G=await v2(x);return d0.from({chain:T,value:aG.fromBigInt(BigInt(G.fee),8).getValue("string")})}}async function jT(T){let x=await zy();switch(T){case Xy.BitcoinCash:return function({phrase:y,derivationPath:f=`${gG.BCH}/0`,wif:L}){let N=x(T);if(L)return cG.fromWIF(L,N);if(!y)throw new ky("toolbox_utxo_invalid_params",{error:"No phrase provided"});return mG.fromSeedBuffer(Buffer.from(K2(y)),N).derivePath(f).keyPair};case Xy.Bitcoin:case Xy.Dogecoin:case Xy.Litecoin:case Xy.Zcash:case Xy.Dash:return function({phrase:y,wif:f,derivationPath:L}){if(!(f||y))throw new ky("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let N=TN(r0),X=x(T);if(f)return N.fromWIF(f,X);let _=K2(y),Z=iG.fromMasterSeed(_,X).derive(L);if(!Z.privateKey)throw new ky("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return N.fromPrivateKey(Buffer.from(Z.privateKey),{network:X})};default:throw new ky("toolbox_utxo_not_supported",{chain:T})}}function a0(T){let x=zy();return function(y){if(!y)throw new ky("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let f=bT.includes(T)?D2.p2pkh:D2.p2wpkh,{address:L}=f({network:x(T),pubkey:y.publicKey});if(!L)throw new ky("toolbox_utxo_invalid_address",{error:"Address not defined"});return L}}function GN(T){return async function({memo:G,recipient:y,feeOptionKey:f,feeRate:L,assetValue:N}){let X=await T?.getAddress(),_=N.chain;if(!(T&&X))throw new ky("toolbox_utxo_no_signer");if(!y)throw new ky("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Z=L||(await oT(_))[f||Oy.Fast],{psbt:B}=await P2({assetValue:N,feeRate:Z,memo:G,recipient:y,sender:X}),q=await T.signTransaction(B);return q.finalizeAllInputs(),Ny(_).broadcastTx(q.extractTransaction().toHex())}}async function oT(T){let x=await Ny(T).getSuggestedTxFee();return{[Oy.Average]:x,[Oy.Fast]:E2(x,Oy.Fast),[Oy.Fastest]:E2(x,Oy.Fastest)}}async function A2({assetValue:T,recipient:x,memo:G,sender:y,fetchTxHex:f=!1}){let L=T.chain,N=(await oT(L))[Oy.Fastest],X=f||bT.includes(L),_=T.getBaseValue("number"),Z=Math.ceil(_+N*5000);return{inputs:await Ny(L).getUtxos({address:y,fetchTxHex:X,targetValue:Z}),outputs:[{address:x,value:_},...G?[{address:"",script:await Yy(G),value:0}]:[]]}}var bT;var hT=E(()=>{WT();ZT();uT();bT=[Xy.Dash,Xy.Dogecoin,Xy.Zcash,Xy.BitcoinCash]});import{address as NN,Transaction as XN,TransactionBuilder as _N}from"@psf/bitcoincashjs-lib";import{Chain as ZN,derivationPathToString as JN,FeeOption as BN,NetworkDerivationPath as qN,USwapError as BT,updateDerivationPath as QN}from"@uswap/helpers";import{Psbt as zN}from"bitcoinjs-lib";function dy(T){return iy(nT(T))}function YN(T){function x({builder:y,utxos:f}){return f.forEach((L,N)=>{y.sign(N,T,void 0,65,L.witnessUtxo?.value)}),y.build()}return{getAddress:()=>{let y=T.getAddress(0);return Promise.resolve(dy(y))},signTransaction:x}}async function s0(T){let x="phrase"in T?T.phrase:void 0,G="index"in T?T.index||0:0,y=JN("derivationPath"in T&&T.derivationPath?T.derivationPath:QN(qN[Jy],{index:G})),f=x?(await jT(Jy))({derivationPath:y,phrase:x}):void 0,L=f?YN(f):("signer"in T)?T.signer:void 0;function N(){return Promise.resolve(L?.getAddress())}let{getBalance:X,getFeeRates:_,broadcastTx:Z,...B}=await gy({chain:Jy});function q(J,Q=!0){return X(iy(nT(J)))}return{...B,broadcastTx:Z,buildTx:HN,createTransaction:F2,getAddress:N,getAddressFromKeys:MN,getBalance:q,getFeeRates:_,stripPrefix:iy,stripToCashAddress:dy,transfer:WN({broadcastTx:Z,getFeeRates:_,signer:L}),validateAddress:vy}}async function F2({assetValue:T,recipient:x,memo:G,feeRate:y,sender:f}){if(!vy(x))throw new BT("toolbox_utxo_invalid_address",{address:x});let L=Math.ceil(T.getBaseValue("number")+y*7500),N=await Ny(Jy).getUtxos({address:dy(f),fetchTxHex:!0,targetValue:L}),X=G?await Yy(G):null,_=[];_.push({address:x,value:T.getBaseValue("number")});let{inputs:Z,outputs:B}=Wy({chain:Jy,feeRate:y,inputs:N,outputs:_});if(!(Z&&B))throw new BT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let q=await zy(),J=new _N(q(Jy));await Promise.all(Z.map(async(Q)=>{let z=await Ny(Jy).getRawTx(Q.hash);J.addInput(XN.fromBuffer(Buffer.from(z,"hex")),Q.index)}));for(let Q of B){let z="address"in Q&&Q.address?Q.address:XT(f),W=await zy(),w=NN.toOutputScript(XT(z),W(Jy));J.addOutput(w,Q.value)}if(X)J.addOutput(X,0);return{builder:J,utxos:Z}}function WN({broadcastTx:T,getFeeRates:x,signer:G}){return async function({recipient:f,assetValue:L,feeOptionKey:N=BN.Fast,...X}){let _=await G?.getAddress();if(!(G&&_))throw new BT("toolbox_utxo_no_signer");if(!f)throw new BT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Z=X.feeRate||(await x())[N],{builder:B,utxos:q}=await F2({...X,assetValue:L,feeRate:Z,recipient:f,sender:_}),Q=(await G.signTransaction({builder:B,utxos:q})).toHex();return T(Q)}}async function HN({assetValue:T,recipient:x,memo:G,feeRate:y,sender:f,setSigHashType:L}){let N=nT(x);if(!vy(N))throw new BT("toolbox_utxo_invalid_address",{address:N});let X=Math.ceil(T.getBaseValue("number")+y*7500),_=await Ny(Jy).getUtxos({address:dy(f),fetchTxHex:!1,targetValue:X}),Z=Number(y.toFixed(0)),B=G?await Yy(G):null,q=[];if(q.push({address:XT(x),value:T.getBaseValue("number")}),B)q.push({script:B,value:0});let{inputs:J,outputs:Q}=Wy({chain:Jy,feeRate:Z,inputs:_,outputs:q});if(!(J&&Q))throw new BT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let z=await zy(),W=new zN({network:z(Jy)});for(let{hash:w,index:I,witnessUtxo:k}of J)W.addInput({hash:w,index:I,sighashType:L?65:void 0,witnessUtxo:k});for(let w of Q){let I="address"in w&&w.address?w.address:XT(f),k=w.script?B?{script:B,value:0}:void 0:{address:I,value:w.value};if(k)W.addOutput(k)}return{inputs:J,psbt:W,utxos:_}}function MN(T){let x=T.getAddress(0);return dy(x)}var Jy;var $f=E(()=>{ZT();hT();uT();Jy=ZN.BitcoinCash});import{bitgo as wN,crypto as IN,ECPair as $2,networks as RN,address as CN}from"@bitgo/utxo-lib";import{ZcashTransaction as n2}from"@bitgo/utxo-lib/dist/src/bitgo";import{HDKey as u2}from"@scure/bip32";import{mnemonicToSeedSync as b2}from"@scure/bip39";import{Chain as uf,derivationPathToString as ON,FeeOption as kN,NetworkDerivationPath as KN,SKConfig as EN,USwapError as bf,updateDerivationPath as DN}from"@uswap/helpers";import SN from"bs58check";import{match as UN,P as e0}from"ts-pattern";function y5(){return RN.zcash}function j2(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
+ `,pubKeyHash:28,scriptHash:28,wif:128}}function PN({phrase:T,derivationPath:x}){let G=b2(T),f=u2.fromMasterSeed(G).derive(x);if(!f.privateKey)throw new bf("toolbox_utxo_invalid_params");let L=j2(),N=$2.fromPrivateKey(Buffer.from(f.privateKey),{network:L}),X=IN.hash160(N.publicKey),{isStagenet:_}=EN.get("envs"),Z=_?Buffer.from([29,37]):Buffer.from([28,184]),B=Buffer.concat([Z,X]),q=SN.encode(B);return{getAddress:()=>Promise.resolve(q),signTransaction:(J)=>{let Q=J.signAllInputs(N);return Promise.resolve(Q)}}}function lN({inputs:T,outputs:x,psbt:G,sender:y,compiledMemo:f}){for(let L of T){let N=!!L.witnessUtxo&&{witnessUtxo:{...L.witnessUtxo,value:BigInt(L.value)}},X=!L.witnessUtxo&&{nonWitnessUtxo:L.txHex?Buffer.from(L.txHex,"hex"):void 0};G.addInput({hash:L.hash,index:L.index,...N,...X})}for(let L of x){let N="address"in L&&L.address?L.address:y,X=L.script;if(X&&!f)continue;let _=X?{script:f,value:0n}:{script:CN.toOutputScript(N,y5()),value:BigInt(L.value)};G.addOutput(_)}return{inputs:T,psbt:G}}async function V2(T){let{assetValue:x,recipient:G,memo:y,feeRate:f,sender:L,fetchTxHex:N}=T,X=y?Yy(y):null,_=await Ny(uf.Zcash).getUtxos({address:L,fetchTxHex:N!==!1}),Z=[{address:G,value:Number(x.getBaseValue("string"))},...X?[{script:X,value:0}]:[]],{inputs:B,outputs:q}=Wy({chain:uf.Zcash,changeAddress:L,feeRate:f,inputs:_,outputs:Z});if(!(B&&q))throw new bf("toolbox_utxo_insufficient_balance",{assetValue:x,sender:L});let J=wN.createPsbtForNetwork({network:y5()},{version:n2.VERSION4_BRANCH_NU6_1}),{psbt:Q,inputs:z}=await lN({compiledMemo:X,inputs:B,outputs:q,psbt:J,sender:L});return Q.setDefaultsForVersion(y5(),n2.VERSION4_BRANCH_NU6_1),{inputs:z,outputs:q,psbt:Q}}async function T5(T){let x=await UN(T).with({signer:e0.not(e0.nullish)},({signer:N})=>Promise.resolve(N)).with({phrase:e0.string},({phrase:N,derivationPath:X,index:_=0})=>{let Z=X||KN[uf.Zcash]||[44,133,0,0,0],B=DN(Z,{index:_}),q=ON(B);return PN({derivationPath:q,phrase:N})}).otherwise(()=>Promise.resolve(void 0)),G=await gy({chain:uf.Zcash,signer:x});async function y({recipient:N,assetValue:X,feeOptionKey:_=kN.Fast,...Z}){let B=await x?.getAddress();if(!(x&&B))throw new bf("toolbox_utxo_no_signer");let q=Z.feeRate||(await G.getFeeRates())[_],{psbt:J}=await V2({...Z,assetValue:X,feeRate:q,recipient:N,sender:B}),Q=await x.signTransaction(J);Q.validateSignaturesOfAllInputs(),Q.finalizeAllInputs();let W=Q.extractTransaction().toHex();return G.broadcastTx(W)}function f({phrase:N,derivationPath:X="m/44'/133'/0'/0/0"}){let _=b2(N),B=u2.fromMasterSeed(_).derive(X);if(!B.privateKey)throw new bf("toolbox_utxo_invalid_params");let q=j2();return $2.fromPrivateKey(Buffer.from(B.privateKey),{network:q})}function L({phrase:N,derivationPath:X="m/44'/133'/0'/0/0"}){return f({derivationPath:X,phrase:N}).toWIF()}return{...G,createKeysForPath:f,createTransaction:V2,getPrivateKeyFromMnemonic:L,transfer:y,validateAddress:JT}}var f5=E(()=>{ZT();hT();uT()});import{Chain as qT,USwapError as vN}from"@uswap/helpers";async function AN(T,x){switch(T){case qT.BitcoinCash:return await s0(x||{});case qT.Zcash:return await T5(x);case qT.Bitcoin:case qT.Dogecoin:case qT.Litecoin:case qT.Dash:return await gy({chain:T,...x});default:throw new vN("toolbox_utxo_not_supported",{chain:T})}}var o2=E(()=>{$f();hT();f5();$f();uT()});var x5={};yy(x5,{validateZcashAddress:()=>JT,toLegacyAddress:()=>XT,toCashAddress:()=>nT,stripToCashAddress:()=>dy,stripPrefix:()=>iy,nonSegwitChains:()=>bT,isValidAddress:()=>m0,getUtxoToolbox:()=>AN,getUtxoNetwork:()=>zy,getUtxoApi:()=>Ny,getUTXOAddressValidator:()=>l2,getScriptTypeForAddress:()=>VT,getOutputSize:()=>$T,getInputSize:()=>ly,getDustThreshold:()=>Vf,getCreateKeysForPath:()=>jT,detectAddressNetwork:()=>i0,createZcashToolbox:()=>T5,createUTXOToolbox:()=>gy,createCustomUtxoApi:()=>PG,createBCHToolbox:()=>s0,compileMemo:()=>Yy,calculateTxSize:()=>_T,bchValidateAddress:()=>vy,addressFromKeysGetter:()=>a0,addInputsAndOutputs:()=>U2,accumulative:()=>Wy,UtxoNetwork:()=>c0,UTXOScriptType:()=>nf,TX_OVERHEAD:()=>Ff,OutputSizes:()=>Af,OP_RETURN_OVERHEAD:()=>O2,MIN_TX_FEE:()=>uG,InputSizes:()=>vf});var L5=E(()=>{ZT();o2();$f();hT();f5()});import{KeyPairSigner as FN}from"@near-js/signers";import{derivationPathToString as nN,USwapError as VN}from"@uswap/helpers";async function jf(){let{validateAccountId:T}=await import("near-sdk-js");return(x)=>{try{return T(x)}catch{let G=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return x.length>=2&&x.length<=64&&G.test(x)}}}async function of(T){let{parseSeedPhrase:x}=await import("near-seed-phrase"),{KeyPair:G}=await import("@near-js/crypto"),y=T.index||0,f=T.derivationPath?nN(T.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:L}=x(T.phrase,f),N=G.fromString(L);return p2(N)}async function G5(T){let{KeyPair:x}=await import("@near-js/crypto"),G=x.fromString(T);return p2(G)}function p2(T){return new h2(T)}async function hf(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 VN("toolbox_near_no_public_key_found");let{PublicKey:f}=await import("@near-js/crypto"),L=f.fromString(y.public_key);return{nonce:y.access_key.nonce||0,publicKey:L}}var h2;var N5=E(()=>{h2=class h2 extends FN{#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 X5(T){return"recipient"in T&&"amount"in T&&!("contractId"in T)}function _5(T){return"contractId"in T&&"methodName"in T}function Z5(T){return"actions"in T}function J5(T){return"newAccountId"in T}function B5(T){return"contractCode"in T}function q5(T){return"customEstimator"in T}function Q5(T){let x=0;for(let G of T)switch(G.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 $N(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function uN(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var s;var Y5=E(()=>{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 W5({account:T,contractId:x,viewMethods:G,changeMethods:y}){let{Contract:f}=await import("@near-js/accounts");return new f(T,x,{changeMethods:y,useLocalViewExecution:!0,viewMethods:G})}import{AssetValue as t2,Chain as QT,getChainConfig as c2,getRPCUrl as bN,USwapError as xy}from"@uswap/helpers";async function jN(T){let{P:x,match:G}=await import("ts-pattern"),{JsonRpcProvider:y}=await import("@near-js/providers"),f=await G(T).with({phrase:x.string},async(Y)=>{return await of(Y)}).with({signer:x.any},({signer:Y})=>Y).otherwise(()=>{return}),L=await bN(QT.Near),N=new y({url:L});async function X(Y){let{Account:R}=await import("@near-js/accounts"),O=Y||await _();return new R(O,N,f)}async function _(){if(!f)throw new xy("toolbox_near_no_signer");return await f.getAddress()}async function Z(Y){return(await g({changeMethods:[],contractId:Y.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:Y.accountId})}async function B(Y){let O=[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 Ly({actions:O,receiverId:Y.contractId})}async function q(Y){if(!f)throw new xy("toolbox_near_no_signer");let{assetValue:R,recipient:O,memo:v}=Y,u=await _();if(!R.isGasAsset&&R.address){if(!await Z({accountId:O,contractId:R.address}))return B({assetValue:R,contractId:R.address,memo:v,recipient:O})}let $=await J({...Y,sender:u});return k($)}async function J(Y){let{recipient:R,assetValue:O,memo:v,attachedDeposit:u,sender:$,functionCall:n}=Y,o=await jf();if(!o(R))throw new xy("toolbox_near_invalid_address",{recipient:R});if(!o($))throw new xy("toolbox_near_invalid_address",{signerId:$});if(n)return z({...n,sender:$});if(!O.isGasAsset){let mT=O.address;if(!mT)throw new xy("toolbox_near_missing_contract_address");return z({args:{amount:O.getBaseValue("string"),memo:v||null,receiver_id:R},attachedDeposit:u||"1",contractId:mT,gas:"250000000000000",methodName:"ft_transfer",sender:$})}let{publicKey:d,nonce:e}=await hf(N,$),Gy=O.getBaseValue("bigint"),{actionCreators:ny,createTransaction:pT}=await import("@near-js/transactions"),{baseDecode:pf}=await import("@near-js/utils"),Vy=[ny.transfer(Gy)];if(v&&u)Vy.push(ny.functionCall("memo",{memo:v},BigInt("250000000000000"),BigInt(u)));let tT=await N.block({finality:"final"}),cT=pf(tT.header.hash);return pT($,d,R,e+1,Vy,cT)}function Q(Y){let R=Y.encode();return Buffer.from(R).toString("base64")}async function z(Y){let{sender:R}=Y,{publicKey:O,nonce:v}=await hf(N,R),{createTransaction:u,actionCreators:$}=await import("@near-js/transactions"),{baseDecode:n}=await import("@near-js/utils"),o=await N.block({finality:"final"}),d=n(o.header.hash),e=[$.functionCall(Y.methodName,Buffer.from(JSON.stringify(Y.args)),BigInt(Y.gas),BigInt(Y.attachedDeposit))];return u(R,O,Y.contractId,v+1,e,d)}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 w(Y){if(!f)throw new xy("toolbox_near_no_signer");let[R,O]=await f.signTransaction(Y);return O}async function I(Y){return(await N.sendTransaction(Y)).transaction.hash}async function k(Y){if(!f)throw new xy("toolbox_near_no_signer");try{let R=await w(Y);return await I(R)}catch{return f.signAndSendTransactions?.({transactions:[Y]})}}async function l(Y){if("assetValue"in Y){let u=BigInt("115123062500")+BigInt("108059500000"),$=await U(),n=u*BigInt($.toString()),{baseDecimal:o}=c2(QT.Near);return t2.from({chain:QT.Near,fromBaseDecimal:o,value:n.toString()})}let R=f?await X():void 0;return D(Y,R)}async function U(){try{return await N.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function A(Y,R,O){if(!f)throw new xy("toolbox_near_no_signer");let v=await X(),{formatNearAmount:u}=await import("@near-js/utils"),{PublicKey:$}=await import("@near-js/crypto"),n=u(O)||"0";return(await v.createAccount(Y,$.fromString(R),BigInt(n))).transaction.hash}async function j(Y){try{if(!f)throw new xy("toolbox_near_no_signer");let{actionCreators:R}=await import("@near-js/transactions"),{contractId:O,methodName:v,args:u,deposit:$}=Y,n=await X(),o=await D({args:u||{},contractId:O,methodName:v}),d=R.functionCall(v,u||{},o.getBaseValue("bigint"),BigInt($||"1"));return(await n.signAndSendTransaction({actions:[d],receiverId:O})).transaction_outcome.id}catch(R){throw new xy("toolbox_near_transfer_failed",{error:R})}}async function g(Y){let R=await X();return W5({account:R,changeMethods:Y.changeMethods,contractId:Y.contractId,viewMethods:Y.viewMethods})}async function Ly(Y){if(!f)throw new xy("toolbox_near_no_signer");if(Y.actions.length===0)throw new xy("toolbox_near_empty_batch");return(await(await X()).signAndSendTransaction({actions:Y.actions,receiverId:Y.receiverId})).transaction.hash}async function D(Y,R){let{baseDecimal:O}=c2(QT.Near),v=await G(Y).when(X5,()=>s.SIMPLE_TRANSFER).when(_5,(n)=>z5(n.methodName)).when(Z5,(n)=>Q5(n.actions)).when(J5,()=>s.ACCOUNT_CREATION).when(B5,()=>s.CONTRACT_DEPLOYMENT).when(q5,(n)=>{if(!R)throw new xy("toolbox_near_no_account");return n.customEstimator(R)}).otherwise(()=>{throw new xy("toolbox_near_invalid_gas_params")}),$=BigInt(v)*BigInt(1000000000000);return t2.from({chain:QT.Near,fromBaseDecimal:O,value:$})}async function P(){try{return(await N.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:I,callFunction:j,createAction:W,createContract:g,createContractFunctionCall:z,createSubAccount:A,createTransaction:J,estimateGas:D,estimateTransactionFee:l,executeBatchTransaction:Ly,getAddress:_,getBalance:ry(QT.Near),getGasPrice:P,getPublicKey:async()=>f?(await f.getPublicKey()).toString():"",getSignerFromPhrase:(Y)=>of(Y),getSignerFromPrivateKey:G5,provider:N,serializeTransaction:Q,signAndSendTransaction:k,signTransaction:w,transfer:q,validateAddress:await jf()}}var H5=E(()=>{WT();N5();Y5()});var m2=E(()=>{H5()});var M5={};yy(M5,{tgasToGas:()=>$N,isSimpleTransfer:()=>X5,isCustomEstimator:()=>q5,isContractDeployment:()=>B5,isContractCall:()=>_5,isBatchTransaction:()=>Z5,isAccountCreation:()=>J5,getValidateNearAddress:()=>jf,getNearToolbox:()=>jN,getNearSignerFromPrivateKey:()=>G5,getNearSignerFromPhrase:()=>of,getFullAccessPublicKey:()=>hf,getContractMethodGas:()=>z5,gasToTGas:()=>uN,estimateBatchGas:()=>Q5,createNearContract:()=>W5,GAS_COSTS:()=>s});var w5=E(()=>{N5();Y5();H5();m2()});var R5={};yy(R5,{radixValidateAddress:()=>g2,RadixToolbox:()=>iN});import{AssetValue as i2,Chain as I5,SKConfig as oN,USwapError as hN}from"@uswap/helpers";function g2(T){return T.startsWith("account_rdx1")&&T.length===66}function pN({networkApi:T}){return async function(G){let y=await tN({address:G,networkApi:T}),f=await cN({networkApi:T,resources:y});if(!f.some((N)=>N.isGasAsset))return[i2.from({chain:I5.Radix}),...f];return f}}async function tN({address:T,networkApi:x}){let G=!0,y,f=[],L=await mN(x);while(G){let N={address:T,at_ledger_state:{state_version:L},cursor:y,limit_per_page:100},X=await x.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:N});if(f=f.concat(X.items),X.next_cursor)y=X.next_cursor;else G=!1}return f}async function cN({resources:T,networkApi:x}){let G=[],y=50,f=[];for(let L=0;L<T.length;L+=50)f.push(T.slice(L,L+50));for(let L of f){let N=L.map((Z)=>Z.resource_address),X=await x.state.getEntityDetailsVaultAggregated(N),_=new Map;for(let Z of X)if(Z.details!==void 0){let B=Z.metadata?.items.find((J)=>J.key==="symbol"),q=B?.value.typed.type==="String"?B.value.typed.value:"?";if(Z.details.type==="FungibleResource")_.set(Z.address,{decimals:Z.details.divisibility,symbol:q})}for(let Z of L)if(Z.aggregation_level==="Global"){let B=_.get(Z.resource_address)||{decimals:0,symbol:"?"},q=i2.from({asset:B.symbol!==I5.Radix?`${I5.Radix}.${B.symbol}-${Z.resource_address}`:"XRD.XRD",value:Z.amount});G.push(q)}}return G}function mN(T){return T.status.getCurrent().then((x)=>x.ledger_state.state_version)}var iN=async({dappConfig:T}={})=>{let{RadixDappToolkit:x}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:G}=await import("@radixdlt/babylon-gateway-api-sdk"),y=T||oN.get("integrations").radix,f=x({...y,networkId:y.network?.networkId||1}),L=G.initialize(f.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:pN({networkApi:L}),networkApi:L,signAndBroadcast:()=>{throw new hN("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:g2}};var C5=()=>{};var K5={};yy(K5,{rippleValidateAddress:()=>k5,hashes:()=>fX,getRippleToolbox:()=>TX});import{AssetValue as O5,Chain as Ky,getChainConfig as d2,getRPCUrl as gN,SwapKitNumber as dN,USwapError as Ay}from"@uswap/helpers";import{Client as rN,isValidAddress as aN,Wallet as sN,xrpToDrops as eN}from"xrpl";import{hashes as fX}from"xrpl";function r2(T){let x=sN.fromMnemonic(T);return{getAddress:()=>Promise.resolve(x.address),signTransaction:(G)=>Promise.resolve(x.sign(G))}}function k5(T){return aN(T)}var yX,TX=async(T={})=>{let x="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?r2(T.phrase):void 0,G=await gN(Ky.Ripple);if(!G)throw new Ay({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:Ky.Ripple}});let y=new rN(G);await y.connect();let f=()=>{if(!x)throw new Ay({errorKey:"toolbox_ripple_signer_not_found"});return x.getAddress()},L=async(J)=>{let Q=J||await f(),{baseDecimal:z}=d2(Ky.Ripple);try{let w=(await y.request({account:Q,command:"account_info"})).result.account_data.Balance;return[O5.from({chain:Ky.Ripple,fromBaseDecimal:z,value:w})]}catch(W){if(W.data.error_code===yX.ACCOUNT_NOT_FOUND)return[O5.from({chain:Ky.Ripple,value:0})];throw new Ay("toolbox_ripple_get_balance_error",{info:{address:Q,error:W}})}},N=async()=>{let Q=(await y.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:z}=d2(Ky.Ripple);return O5.from({chain:Ky.Ripple,fromBaseDecimal:z,value:dN.fromBigInt(BigInt(Q),z)})},X=async({assetValue:J,recipient:Q,memo:z,sender:W})=>{if(!k5(Q))throw new Ay({errorKey:"core_transaction_invalid_recipient_address"});let w=W||await f();if(!J.isGasAsset||J.chain!==Ky.Ripple)throw new Ay({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:J.toString()}});let I={Account:w,Amount:eN(J.getValue("string")),Destination:Q,TransactionType:"Payment"};if(z)I.Memos=[{Memo:{MemoData:Buffer.from(z).toString("hex")}}];return await y.autofill(I)},_=(J)=>{if(!x)throw new Ay({errorKey:"toolbox_ripple_signer_not_found"});return x.signTransaction(J)},Z=async(J)=>{let z=(await y.submitAndWait(J)).result;if(z.validated)return z.hash;throw new Ay({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Ky.Ripple}})};return{broadcastTransaction:Z,createSigner:r2,createTransaction:X,disconnect:()=>y.disconnect(),estimateTransactionFee:N,getAddress:f,getBalance:L,signer:x,signTransaction:_,transfer:async(J)=>{if(!x)throw new Ay({errorKey:"toolbox_ripple_signer_not_found"});let Q=await x.getAddress(),z=await X({...J,sender:Q}),W=await _(z);return Z(W.tx_blob)},validateAddress:k5}};var E5=E(()=>{yX={ACCOUNT_NOT_FOUND:19}});import{AssetValue as xX,Chain as LX,SwapKitNumber as a2}from"@uswap/helpers";async function GX(T,x,G){try{let y=await T.query.system?.account?.(G);if(!y)return[x.set(0)];let{data:{free:f}}=y,L=a2.fromBigInt(BigInt(f.toString()),x.decimal).getValue("string");return[x.set(L)]}catch(y){let f=y instanceof Error?y.message:String(y);return console.error(`Error fetching substrate balance: ${f}`),[x.set(0)]}}async function NX(T,x,G){try{let y=await T.query.flip?.account?.(G);if(!y)return[x.set(0)];let f=y.balance||y.data?.balance;if(!f||f.isEmpty)return[x.set(0)];let L=a2.fromBigInt(BigInt(f.toString()),x.decimal).getValue("string");return[x.set(L)]}catch(y){let f=y instanceof Error?y.message:String(y);return console.error(`Error fetching chainflip balance: ${f}`),[x.set(0)]}}function s2(T,x){return function(y){let f=xX.from({chain:T});switch(T){case LX.Chainflip:return NX(x,f,y);default:return GX(x,f,y)}}}var e2=()=>{};var XX,_X,ZX,Fy;var D5=E(()=>{XX={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},_X={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},ZX={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},Fy={DOT:XX,FLIP:_X,GENERIC:ZX}});import{hexToU8a as JX,isHex as BX,u8aToHex as qX}from"@polkadot/util";import{decodeAddress as Tx,encodeAddress as fx}from"@polkadot/util-crypto";import{AssetValue as QX,Chain as YT,getRPCUrl as zX,SwapKitNumber as YX,USwapError as Hy}from"@uswap/helpers";import{match as WX,P as yx}from"ts-pattern";function HX(T,x){switch(T){case YT.Chainflip:return Lx(x);case YT.Polkadot:return xx(x);default:throw new Hy("toolbox_substrate_not_supported",{chain:T})}}function zT(T){return"address"in T}async function U5(T,x){let{Keyring:G}=await import("@polkadot/api"),{cryptoWaitReady:y}=await import("@polkadot/util-crypto");return await y(),new G({ss58Format:x,type:"sr25519"}).addFromUri(T)}function kX(T,x){let G=Tx(T);return fx(G,x)}function Gx(T,x){return BX(T)?JX(T):Tx(T,void 0,x)}function Nx(T,x="ss58",G){if(x==="hex")return qX(T);return fx(T,G)}async function v5({generic:T,chain:x,...G}){let{ApiPromise:y,WsProvider:f}=await import("@polkadot/api"),L=await zX(x),N=new f(L),X=await y.create({noInitWarn:!0,provider:N}),_=QX.from({chain:x}),Z=T?Fy.GENERIC:Fy[x],B=await WX(G).with({phrase:yx.string},({phrase:q})=>U5(q,Fy[x].prefix)).with({signer:yx.any},({signer:q})=>q).otherwise(()=>{return});return Xx({api:X,chain:x,gasAsset:_,network:Z,signer:B})}var xx=({generic:T=!1,...x}={})=>{return v5({chain:YT.Polkadot,generic:T,...x})},Lx=async({generic:T=!1,...x}={})=>{return{...await v5({chain:YT.Chainflip,generic:T,...x})}},P5=(T,x)=>T.rpc.system.accountNextIndex(x),S5=(T,x)=>{try{let G=Gx(T,x);return Nx(G,"ss58",x),!0}catch{return!1}},l5=(T,{recipient:x,assetValue:G})=>T.tx.balances?.transferAllowDeath?.(x,G.getBaseValue("number")),MX=async(T,x,{recipient:G,assetValue:y,sender:f})=>{let L=l5(T,{assetValue:y,recipient:G});if(!L)throw new Hy("toolbox_substrate_transfer_error");let N=zT(x),X=N?x.address:f;if(!X)throw new Hy("core_transaction_invalid_sender_address");let _=await P5(T,X);return(await L.signAndSend(N?x:X,{nonce:_,signer:N?void 0:x})).toString()},wX=async(T,x,G,{recipient:y,assetValue:f,sender:L})=>{let N=l5(T,{assetValue:f,recipient:y}),X=zT(x)?x.address:L;if(!X)return;let _=await N?.paymentInfo(X,{nonce:await P5(T,X)})||{partialFee:0};return G.set(YX.fromBigInt(BigInt(_.partialFee.toString()),G.decimal).getValue("string"))},IX=async(T,x)=>{if(x)return T.send(x);return(await T.send()).toString()},RX=async(T,x)=>{return await x.signAsync(T)},CX=(T,x,G)=>{if(G)return x.signAndSend(T,G);return x.signAndSend(T).toString()},OX=async({signer:T,address:x,tx:G,callback:y,api:f})=>{let L=await P5(f,x);if(y)G.signAndSend(x,{nonce:L,signer:T},y);return G.signAndSend(x,{nonce:L,signer:T}).toString()},Xx=({api:T,network:x,gasAsset:G,signer:y,chain:f})=>({api:T,broadcast:IX,convertAddress:kX,createKeyring:(L)=>U5(L,x.prefix),createTransaction:(L)=>l5(T,L),decodeAddress:Gx,encodeAddress:Nx,estimateTransactionFee:(L)=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");return wX(T,y,G,L)},gasAsset:G,getAddress:(L)=>{let N=L||y;if(!N)throw new Hy("core_wallet_not_keypair_wallet");return zT(N)?N.address:void 0},getBalance:s2(f||YT.Polkadot,T),network:x,sign:(L)=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");if(zT(y))return RX(y,L);throw new Hy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:L,callback:N,address:X})=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");if(zT(y))return CX(y,L,N);if(X)return OX({address:X,api:T,callback:N,signer:y,tx:L});throw new Hy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(L)=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");return MX(T,y,L)},validateAddress:(L)=>S5(L,x.prefix)}),KX=({address:T,chain:x})=>{let{prefix:G}=x===YT.Polkadot?Fy.DOT:Fy.FLIP;return S5(T,G)||S5(T,Fy.GENERIC.prefix)};var _x=E(()=>{e2();D5()});var A5={};yy(A5,{substrateValidateAddress:()=>KX,isKeyringPair:()=>zT,getSubstrateToolbox:()=>HX,createSubstrateToolbox:()=>v5,createKeyring:()=>U5,SubstrateNetwork:()=>Fy,PolkadotToolbox:()=>xx,ChainflipToolbox:()=>Lx,BaseSubstrateToolbox:()=>Xx});var F5=E(()=>{_x();D5()});import{AssetValue as EX,Chain as F,CosmosChains as Jx,EVMChains as n5,FeeOption as DX,SubstrateChains as SX,USwapError as UX,UTXOChains as Bx}from"@uswap/helpers";async function V4(){let{match:T}=await import("ts-pattern"),{evmValidateAddress:x}=await Promise.resolve().then(() => (Z1(),_1)),{getCardanoAddressValidator:G}=await Promise.resolve().then(() => (_0(),X0)),{getCosmosValidateAddress:y}=await Promise.resolve().then(() => (Of(),Cf)),{getSolanaAddressValidator:f}=await Promise.resolve().then(() => (V0(),n0)),{getSuiAddressValidator:L}=await Promise.resolve().then(() => (Ef(),Kf)),{getTONAddressValidator:N}=await Promise.resolve().then(() => (Sf(),Df)),{getTronAddressValidator:X}=await Promise.resolve().then(() => (p0(),h0)),{getUTXOAddressValidator:_}=await Promise.resolve().then(() => (L5(),x5)),{getValidateNearAddress:Z}=await Promise.resolve().then(() => (w5(),M5)),{radixValidateAddress:B}=await Promise.resolve().then(() => (C5(),R5)),{rippleValidateAddress:q}=await Promise.resolve().then(() => (E5(),K5)),{substrateValidateAddress:J}=await Promise.resolve().then(() => (F5(),A5)),Q=await G(),z=await Z(),W=await f(),w=await L(),I=await N(),k=await X(),l=await _();return function({address:A,chain:j}){return T(j).with(...n5,()=>x({address:A})).with(...Bx,()=>l({address:A,chain:j})).with(F.Cosmos,F.Kujira,F.Noble,F.Maya,F.THORChain,(Ly)=>{return y(Ly)(A)}).with(F.Chainflip,F.Polkadot,()=>J({address:A,chain:j})).with(F.Radix,()=>B(A)).with(F.Near,()=>z(A)).with(F.Ripple,()=>q(A)).with(F.Solana,()=>W(A)).with(F.Sui,()=>w(A)).with(F.Ton,()=>I(A)).with(F.Tron,()=>k(A)).with(F.Cardano,()=>Q(A)).otherwise(()=>!1)}}function $4(T){return async function(G){let{match:y}=await import("ts-pattern");return y(T).returnType().with(...n5,async(f)=>{let L=await Zx(f),N=await L.createTransaction(G);return L.estimateTransactionFee({...N,chain:f,feeOption:G.feeOptionKey||DX.Fast})}).with(F.Bitcoin,F.BitcoinCash,F.Dogecoin,F.Dash,F.Litecoin,F.Polkadot,F.Solana,F.Ripple,F.Tron,F.Near,F.Cardano,async(f)=>{return(await Zx(f)).estimateTransactionFee(G)}).with(F.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (Ef(),Kf));return(await f()).estimateTransactionFee(G)}).with(F.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (Sf(),Df));return(await f()).estimateTransactionFee()}).with(...Jx,async()=>{let{estimateTransactionFee:f}=await Promise.resolve().then(() => (Of(),Cf));return f(G)}).otherwise(async()=>EX.from({chain:T}))}}async function Zx(T,x){let{match:G}=await import("ts-pattern");return G(T).returnType().with(...n5,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (G0(),G1));return await y(T,x)}).with(...Bx,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (L5(),x5));return await y(T,x)}).with(...Jx,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (Of(),Cf));return await y(T,x)}).with(...SX,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (F5(),A5));return await y(T,x)}).with(F.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (C5(),R5));return await y(x)}).with(F.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (E5(),K5));return await y(x)}).with(F.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (V0(),n0));return await y(x)}).with(F.Sui,async()=>{let{getSuiToolbox:y}=await Promise.resolve().then(() => (Ef(),Kf));return await y(x)}).with(F.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (p0(),h0));return await y(x)}).with(F.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (w5(),M5));return await y(x)}).with(F.Cardano,async()=>{let{getCardanoToolbox:y}=await Promise.resolve().then(() => (_0(),X0));return await y(x)}).with(F.Ton,async()=>{let{getTONToolbox:y}=await Promise.resolve().then(() => (Sf(),Df));return await y(x)}).otherwise(()=>{throw new UX("toolbox_not_supported",{chain:T})})}export{Zx as getToolbox,$4 as getFeeEstimator,V4 as getAddressValidator};
3
3
 
4
- //# debugId=33CACB860B8D2F9F64756E2164756E21
4
+ //# debugId=5276687BF751273064756E2164756E21
5
5
  //# sourceMappingURL=index.js.map