@swapkit/toolboxes 4.15.10 → 4.15.12

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 (191) hide show
  1. package/dist/src/index.cjs +1 -1
  2. package/dist/src/index.js +1 -1
  3. package/dist/src/tron/index.cjs +1 -1
  4. package/dist/src/tron/index.js +1 -1
  5. package/dist/src/utxo/index.cjs +1 -1
  6. package/dist/src/utxo/index.js +1 -1
  7. package/dist/types/__tests__/helpers.d.ts +0 -1
  8. package/dist/types/aptos/index.d.ts +0 -1
  9. package/dist/types/aptos/toolbox.d.ts +0 -1
  10. package/dist/types/aptos/types.d.ts +0 -1
  11. package/dist/types/cardano/index.d.ts +0 -1
  12. package/dist/types/cardano/toolbox.d.ts +0 -1
  13. package/dist/types/cardano/types.d.ts +0 -1
  14. package/dist/types/cosmos/index.d.ts +0 -1
  15. package/dist/types/cosmos/thorchainUtils/addressFormat.d.ts +0 -1
  16. package/dist/types/cosmos/thorchainUtils/index.d.ts +0 -1
  17. package/dist/types/cosmos/thorchainUtils/messages.d.ts +6 -7
  18. package/dist/types/cosmos/thorchainUtils/registry.d.ts +2 -3
  19. package/dist/types/cosmos/thorchainUtils/types/MsgCompiled.d.ts +0 -1
  20. package/dist/types/cosmos/thorchainUtils/types/client-types.d.ts +0 -1
  21. package/dist/types/cosmos/thorchainUtils/types/index.d.ts +0 -1
  22. package/dist/types/cosmos/toolbox/cosmos.d.ts +2 -3
  23. package/dist/types/cosmos/toolbox/index.d.ts +0 -1
  24. package/dist/types/cosmos/toolbox/thorchain.d.ts +7 -8
  25. package/dist/types/cosmos/types.d.ts +0 -1
  26. package/dist/types/cosmos/util.d.ts +3 -4
  27. package/dist/types/evm/api.d.ts +0 -1
  28. package/dist/types/evm/contracts/eth/multicall.d.ts +0 -1
  29. package/dist/types/evm/contracts/op/gasOracle.d.ts +0 -1
  30. package/dist/types/evm/helpers.d.ts +1 -2
  31. package/dist/types/evm/index.d.ts +0 -1
  32. package/dist/types/evm/toolbox/baseEVMToolbox.d.ts +0 -1
  33. package/dist/types/evm/toolbox/evm.d.ts +0 -1
  34. package/dist/types/evm/toolbox/index.d.ts +0 -1
  35. package/dist/types/evm/toolbox/op.d.ts +0 -1
  36. package/dist/types/evm/types.d.ts +0 -1
  37. package/dist/types/hypercore/helpers.d.ts +0 -1
  38. package/dist/types/hypercore/index.d.ts +0 -1
  39. package/dist/types/hypercore/signing.d.ts +0 -1
  40. package/dist/types/hypercore/toolbox.d.ts +0 -1
  41. package/dist/types/hypercore/types.d.ts +0 -1
  42. package/dist/types/index.d.ts +0 -1
  43. package/dist/types/near/helpers/core.d.ts +0 -1
  44. package/dist/types/near/helpers/gasEstimation.d.ts +0 -1
  45. package/dist/types/near/helpers/nep141.d.ts +0 -1
  46. package/dist/types/near/index.d.ts +0 -1
  47. package/dist/types/near/toolbox.d.ts +0 -1
  48. package/dist/types/near/types/contract.d.ts +0 -1
  49. package/dist/types/near/types/index.d.ts +0 -1
  50. package/dist/types/near/types/nep141.d.ts +0 -1
  51. package/dist/types/near/types/toolbox.d.ts +0 -1
  52. package/dist/types/near/types.d.ts +0 -1
  53. package/dist/types/radix/index.d.ts +0 -1
  54. package/dist/types/ripple/currency.d.ts +0 -1
  55. package/dist/types/ripple/index.d.ts +0 -1
  56. package/dist/types/ripple/tokens.d.ts +0 -1
  57. package/dist/types/solana/index.d.ts +0 -1
  58. package/dist/types/solana/toolbox.d.ts +0 -1
  59. package/dist/types/starknet/index.d.ts +0 -1
  60. package/dist/types/starknet/toolbox.d.ts +0 -1
  61. package/dist/types/starknet/types.d.ts +0 -1
  62. package/dist/types/stellar/index.d.ts +0 -1
  63. package/dist/types/stellar/toolbox.d.ts +0 -1
  64. package/dist/types/stellar/types.d.ts +0 -1
  65. package/dist/types/substrate/balance.d.ts +0 -1
  66. package/dist/types/substrate/index.d.ts +0 -1
  67. package/dist/types/substrate/substrate.d.ts +0 -1
  68. package/dist/types/substrate/types.d.ts +0 -1
  69. package/dist/types/sui/index.d.ts +0 -1
  70. package/dist/types/sui/toolbox.d.ts +0 -1
  71. package/dist/types/sui/types.d.ts +0 -1
  72. package/dist/types/ton/index.d.ts +0 -1
  73. package/dist/types/ton/toolbox.d.ts +0 -1
  74. package/dist/types/ton/types.d.ts +0 -1
  75. package/dist/types/tron/helpers/proto.d.ts +0 -1
  76. package/dist/types/tron/helpers/trongrid.d.ts +1 -1
  77. package/dist/types/tron/helpers/utils.d.ts +0 -1
  78. package/dist/types/tron/index.d.ts +0 -1
  79. package/dist/types/tron/toolbox.d.ts +1 -2
  80. package/dist/types/tron/types.d.ts +0 -1
  81. package/dist/types/types.d.ts +0 -1
  82. package/dist/types/utils.d.ts +0 -1
  83. package/dist/types/utxo/hdWallet.d.ts +0 -1
  84. package/dist/types/utxo/helpers/api.d.ts +0 -1
  85. package/dist/types/utxo/helpers/bchaddrjs.d.ts +1 -2
  86. package/dist/types/utxo/helpers/cashaddr.d.ts +0 -1
  87. package/dist/types/utxo/helpers/coinselect.d.ts +1 -2
  88. package/dist/types/utxo/helpers/index.d.ts +0 -1
  89. package/dist/types/utxo/helpers/txSize.d.ts +0 -1
  90. package/dist/types/utxo/helpers/xpubDerivation.d.ts +0 -1
  91. package/dist/types/utxo/index.d.ts +0 -1
  92. package/dist/types/utxo/toolbox/bitcoinCash.d.ts +3 -3
  93. package/dist/types/utxo/toolbox/index.d.ts +0 -1
  94. package/dist/types/utxo/toolbox/params.d.ts +0 -1
  95. package/dist/types/utxo/toolbox/utxo.d.ts +4 -4
  96. package/dist/types/utxo/toolbox/validators.d.ts +0 -1
  97. package/dist/types/utxo/toolbox/zcash.d.ts +1 -2
  98. package/dist/types/utxo/types.d.ts +0 -1
  99. package/package.json +77 -77
  100. package/dist/types/__tests__/helpers.d.ts.map +0 -1
  101. package/dist/types/aptos/index.d.ts.map +0 -1
  102. package/dist/types/aptos/toolbox.d.ts.map +0 -1
  103. package/dist/types/aptos/types.d.ts.map +0 -1
  104. package/dist/types/cardano/index.d.ts.map +0 -1
  105. package/dist/types/cardano/toolbox.d.ts.map +0 -1
  106. package/dist/types/cardano/types.d.ts.map +0 -1
  107. package/dist/types/cosmos/index.d.ts.map +0 -1
  108. package/dist/types/cosmos/thorchainUtils/addressFormat.d.ts.map +0 -1
  109. package/dist/types/cosmos/thorchainUtils/index.d.ts.map +0 -1
  110. package/dist/types/cosmos/thorchainUtils/messages.d.ts.map +0 -1
  111. package/dist/types/cosmos/thorchainUtils/registry.d.ts.map +0 -1
  112. package/dist/types/cosmos/thorchainUtils/types/MsgCompiled.d.ts.map +0 -1
  113. package/dist/types/cosmos/thorchainUtils/types/client-types.d.ts.map +0 -1
  114. package/dist/types/cosmos/thorchainUtils/types/index.d.ts.map +0 -1
  115. package/dist/types/cosmos/toolbox/cosmos.d.ts.map +0 -1
  116. package/dist/types/cosmos/toolbox/index.d.ts.map +0 -1
  117. package/dist/types/cosmos/toolbox/thorchain.d.ts.map +0 -1
  118. package/dist/types/cosmos/types.d.ts.map +0 -1
  119. package/dist/types/cosmos/util.d.ts.map +0 -1
  120. package/dist/types/evm/api.d.ts.map +0 -1
  121. package/dist/types/evm/contracts/eth/multicall.d.ts.map +0 -1
  122. package/dist/types/evm/contracts/op/gasOracle.d.ts.map +0 -1
  123. package/dist/types/evm/helpers.d.ts.map +0 -1
  124. package/dist/types/evm/index.d.ts.map +0 -1
  125. package/dist/types/evm/toolbox/baseEVMToolbox.d.ts.map +0 -1
  126. package/dist/types/evm/toolbox/evm.d.ts.map +0 -1
  127. package/dist/types/evm/toolbox/index.d.ts.map +0 -1
  128. package/dist/types/evm/toolbox/op.d.ts.map +0 -1
  129. package/dist/types/evm/types.d.ts.map +0 -1
  130. package/dist/types/hypercore/helpers.d.ts.map +0 -1
  131. package/dist/types/hypercore/index.d.ts.map +0 -1
  132. package/dist/types/hypercore/signing.d.ts.map +0 -1
  133. package/dist/types/hypercore/toolbox.d.ts.map +0 -1
  134. package/dist/types/hypercore/types.d.ts.map +0 -1
  135. package/dist/types/index.d.ts.map +0 -1
  136. package/dist/types/near/helpers/core.d.ts.map +0 -1
  137. package/dist/types/near/helpers/gasEstimation.d.ts.map +0 -1
  138. package/dist/types/near/helpers/nep141.d.ts.map +0 -1
  139. package/dist/types/near/index.d.ts.map +0 -1
  140. package/dist/types/near/toolbox.d.ts.map +0 -1
  141. package/dist/types/near/types/contract.d.ts.map +0 -1
  142. package/dist/types/near/types/index.d.ts.map +0 -1
  143. package/dist/types/near/types/nep141.d.ts.map +0 -1
  144. package/dist/types/near/types/toolbox.d.ts.map +0 -1
  145. package/dist/types/near/types.d.ts.map +0 -1
  146. package/dist/types/radix/index.d.ts.map +0 -1
  147. package/dist/types/ripple/currency.d.ts.map +0 -1
  148. package/dist/types/ripple/index.d.ts.map +0 -1
  149. package/dist/types/ripple/tokens.d.ts.map +0 -1
  150. package/dist/types/solana/index.d.ts.map +0 -1
  151. package/dist/types/solana/toolbox.d.ts.map +0 -1
  152. package/dist/types/starknet/index.d.ts.map +0 -1
  153. package/dist/types/starknet/toolbox.d.ts.map +0 -1
  154. package/dist/types/starknet/types.d.ts.map +0 -1
  155. package/dist/types/stellar/index.d.ts.map +0 -1
  156. package/dist/types/stellar/toolbox.d.ts.map +0 -1
  157. package/dist/types/stellar/types.d.ts.map +0 -1
  158. package/dist/types/substrate/balance.d.ts.map +0 -1
  159. package/dist/types/substrate/index.d.ts.map +0 -1
  160. package/dist/types/substrate/substrate.d.ts.map +0 -1
  161. package/dist/types/substrate/types.d.ts.map +0 -1
  162. package/dist/types/sui/index.d.ts.map +0 -1
  163. package/dist/types/sui/toolbox.d.ts.map +0 -1
  164. package/dist/types/sui/types.d.ts.map +0 -1
  165. package/dist/types/ton/index.d.ts.map +0 -1
  166. package/dist/types/ton/toolbox.d.ts.map +0 -1
  167. package/dist/types/ton/types.d.ts.map +0 -1
  168. package/dist/types/tron/helpers/proto.d.ts.map +0 -1
  169. package/dist/types/tron/helpers/trongrid.d.ts.map +0 -1
  170. package/dist/types/tron/helpers/utils.d.ts.map +0 -1
  171. package/dist/types/tron/index.d.ts.map +0 -1
  172. package/dist/types/tron/toolbox.d.ts.map +0 -1
  173. package/dist/types/tron/types.d.ts.map +0 -1
  174. package/dist/types/types.d.ts.map +0 -1
  175. package/dist/types/utils.d.ts.map +0 -1
  176. package/dist/types/utxo/hdWallet.d.ts.map +0 -1
  177. package/dist/types/utxo/helpers/api.d.ts.map +0 -1
  178. package/dist/types/utxo/helpers/bchaddrjs.d.ts.map +0 -1
  179. package/dist/types/utxo/helpers/cashaddr.d.ts.map +0 -1
  180. package/dist/types/utxo/helpers/coinselect.d.ts.map +0 -1
  181. package/dist/types/utxo/helpers/index.d.ts.map +0 -1
  182. package/dist/types/utxo/helpers/txSize.d.ts.map +0 -1
  183. package/dist/types/utxo/helpers/xpubDerivation.d.ts.map +0 -1
  184. package/dist/types/utxo/index.d.ts.map +0 -1
  185. package/dist/types/utxo/toolbox/bitcoinCash.d.ts.map +0 -1
  186. package/dist/types/utxo/toolbox/index.d.ts.map +0 -1
  187. package/dist/types/utxo/toolbox/params.d.ts.map +0 -1
  188. package/dist/types/utxo/toolbox/utxo.d.ts.map +0 -1
  189. package/dist/types/utxo/toolbox/validators.d.ts.map +0 -1
  190. package/dist/types/utxo/toolbox/zcash.d.ts.map +0 -1
  191. package/dist/types/utxo/types.d.ts.map +0 -1
package/dist/src/index.js CHANGED
@@ -1 +1 @@
1
- var DA=Object.defineProperty;var OA=(n)=>n;function RA(n,y){this[n]=OA.bind(null,y)}var nn=(n,y)=>{for(var T in y)DA(n,T,{get:y[T],enumerable:!0,configurable:!0,set:RA.bind(y,T)})};var p=(n,y)=>()=>(n&&(y=n(n=0)),y);var x=((n)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(y,T)=>(typeof require<"u"?require:y)[T]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});import{AssetValue as oy,Chain as $n,derivationPathToString as xA,getChainConfig as _T,getRPCUrlSync as z0,NetworkDerivationPath as FA,SwapKitError as fn}from"@swapkit/helpers";import{match as D0,P as UT}from"ts-pattern";function Jo(n){if(!n||typeof n!=="string"||!n.startsWith("0x"))return!1;let y=n.slice(2);if(y.length===0||y.length>64)return!1;return pA.test(y)}function O0({derivationPath:n,provider:y,...T}={}){let o,f=xA(n||FA[$n.Aptos],{allHardened:!0});async function t(){if(o)return o;return o=await D0(T).with({phrase:UT.string},async({phrase:l})=>{let{Ed25519Account:Z}=await import("@aptos-labs/ts-sdk");return Z.fromDerivationPath({mnemonic:l,path:f})}).with({signer:UT.any},({signer:l})=>l).otherwise(()=>{return}),o}async function C(){let{Aptos:l,AptosConfig:Z}=await import("@aptos-labs/ts-sdk"),z=new Z({fullnode:y||z0($n.Aptos)});return new l(z)}async function H(){return(await t())?.accountAddress.toString()||""}async function A(l){let Z=l||await H();if(!Z)throw new fn("toolbox_aptos_address_required");let{baseDecimal:z,chain:L}=_T($n.Aptos);try{let N=await C(),J=await N.getAccountAPTAmount({accountAddress:Z}),U=[oy.from({chain:L,fromBaseDecimal:z,value:J.toString()})],B=await N.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:Z}}}});for(let q of B){if(q.asset_type===Ao.COIN_TYPE||Number(q.amount)<=0)continue;let Y=q.asset_type;if(Y){let Q=("metadata"in q&&typeof q.metadata==="object"&&q.metadata!==null?q.metadata:void 0)?.decimals??z;U.push(oy.from({asset:`${$n.Aptos}.APT-${Y}`,fromBaseDecimal:Q,value:String(q.amount)}))}}return U}catch{return[oy.from({chain:L})]}}async function _(l){if(!l){let{baseDecimal:B}=_T($n.Aptos),q=y||z0($n.Aptos),Y=await fetch(`${q}/estimate_gas_price`),{gas_estimate:D}=await Y.json();return oy.from({chain:$n.Aptos,fromBaseDecimal:B,value:String(D)})}let Z=await t();if(!Z)throw new fn("toolbox_aptos_no_signer");let z=await G(l),L=await C(),[N]=await L.transaction.simulate.simple({signerPublicKey:Z.publicKey,transaction:z});if(!N)throw new fn("toolbox_aptos_transaction_creation_error");let J=BigInt(N.gas_used)*BigInt(N.gas_unit_price),{baseDecimal:U}=_T($n.Aptos);return oy.from({chain:$n.Aptos,fromBaseDecimal:U,value:J.toString()})}async function G({recipient:l,assetValue:Z,maxGasAmount:z,sender:L}){if(!Jo(l))throw new fn("core_transaction_invalid_recipient_address");let N=L||await H();if(!N)throw new fn("toolbox_aptos_no_sender");let{AccountAddress:J}=await import("@aptos-labs/ts-sdk"),U=await C(),B=J.from(N);try{let q=Z.isGasAsset?Ao.TRANSFER:Ao.FUNGIBLE_STORE_TRANSFER,Y=D0({address:Z?.address,isGasAsset:Z.isGasAsset}).with({isGasAsset:!0},()=>[J.from(l),Z.getBaseValue("bigint")]).with({address:UT.string},({address:D})=>[J.from(D),J.from(l),Z.getBaseValue("bigint")]).otherwise(()=>null);if(!Y)throw new fn("toolbox_aptos_missing_asset_type");return U.transaction.build.simple({data:{function:q,functionArguments:Y,typeArguments:Z.isGasAsset?[]:[Ao.FUNGIBLE_ASSET_METADATA]},options:z?{maxGasAmount:z}:void 0,sender:B})}catch(q){if(q instanceof fn)throw q;throw new fn("toolbox_aptos_transaction_creation_error",q)}}async function M(l){let Z=await t();if(!Z)throw new fn("toolbox_aptos_no_signer");return(await C()).transaction.sign({signer:Z,transaction:l})}async function w({assetValue:l,maxGasAmount:Z,recipient:z}){let L=await t();if(!L)throw new fn("toolbox_aptos_no_signer");if(!Jo(z))throw new fn("core_transaction_invalid_recipient_address");try{let N=L.accountAddress.toString(),J=await G({assetValue:l,maxGasAmount:Z,recipient:z,sender:N});return(await(await C()).signAndSubmitTransaction({signer:L,transaction:J})).hash}catch(N){if(N instanceof fn)throw N;throw new fn("toolbox_aptos_transaction_creation_error",N)}}async function X({senderAuthenticator:l,transaction:Z}){try{return(await(await C()).transaction.submit.simple({senderAuthenticator:l,transaction:Z})).hash}catch(z){throw new fn("toolbox_aptos_broadcast_error",z)}}async function W(l){let Z=await M(l);return X({senderAuthenticator:Z,transaction:l})}return{broadcastTransaction:X,createTransaction:G,estimateTransactionFee:_,getAddress:H,getBalance:A,signAndBroadcastTransaction:W,signTransaction:M,transfer:w,validateAddress:Jo}}function R0({provider:n}){return async function({assetValue:T,recipient:o}){if(!Jo(o))throw new fn("core_transaction_invalid_recipient_address");let{AccountAddress:f}=await import("@aptos-labs/ts-sdk");if(T.isGasAsset)return(await n.signAndSubmitTransaction({arguments:[f.from(o).toString(),T.getBaseValue("string")],function:Ao.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let t=T.address;if(!t)throw new fn("toolbox_aptos_missing_asset_type");return(await n.signAndSubmitTransaction({arguments:[t,f.from(o).toString(),T.getBaseValue("string")],function:Ao.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[Ao.FUNGIBLE_ASSET_METADATA]})).hash}}var Ao,pA;var x0=p(()=>{Ao={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},pA=/^[0-9a-fA-F]+$/});var $y={};nn($y,{validateAptosAddress:()=>Jo,getAptosToolbox:()=>O0,createAptosExtensionTransfer:()=>R0});var Ey=p(()=>{x0()});import{AssetValue as F0,getChainConfig as SA}from"@swapkit/helpers";import{SwapKitApi as kA}from"@swapkit/helpers/api";function p0(){function n(){let y=Date.now(),T=wT||y;return wT=T,y>wT?y:T+1}return uA+n().toString(36)}function qn(n){return async function(T,o=!0){let f=await kA.getChainBalance({address:T,chain:n,scamFilter:o}),{baseDecimal:t}=SA(n),C=f.map(({identifier:A,value:_,decimal:G})=>{return new F0({decimal:G||t,identifier:A,value:_})});if(!C.some((A)=>A.isGasAsset))return[F0.from({chain:n}),...C];return C}}var uA,wT=0;var En=p(()=>{uA=typeof process<"u"&&process.pid?process.pid.toString(36):""});function yy(n){return{getBalance:qn(n)}}function PA(n){return n}var by=p(()=>{En()});import{Chain as h,getChainConfig as XT,getRPCUrl as IA,SwapKitError as vy}from"@swapkit/helpers";import{getAddress as k0,Interface as $A,JsonRpcProvider as EA}from"ethers";import{match as u0}from"ts-pattern";function P0(n){return new EA(n)}async function WT(n,y){return P0(y||await IA(n))}function fy(n){return n>0n?`0x${n.toString(16)}`:"0x0"}function BT(n){let{explorerUrl:y,chainIdHex:T,rpcUrls:o}=XT(n);return function(){return n!==h.Ethereum?{...bA({chain:n}),blockExplorerUrls:[y],chainId:T,rpcUrls:o}:void 0}}function MT(n){return![h.Adi,h.Arbitrum,h.BinanceSmartChain].includes(n)}function bA({chain:n}){let{name:y,nativeCurrency:T,baseDecimal:o}=XT(n);return u0(n).with(h.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:o,name:"Avalanche",symbol:n}})).with(h.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:o,name:"Berachain",symbol:"BERA"}})).with(h.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:o,name:"OKB",symbol:"OKB"}})).with(h.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:o,name:"Binance Coin",symbol:"BNB"}})).with(h.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:o,name:"xDAI",symbol:"XDAI"}})).with(h.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:o,name:"Polygon",symbol:h.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:o,name:T,symbol:T}}))}async function LT(n,y){if(!("authorize"in n))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let T={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await n.authorize(T)}function I0(n,y){let T=y!==void 0?`index ${y}: `:"",o=(f,t)=>{throw new vy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:f,message:`${T}${t}`}})};u0(n).when(({chainId:f})=>typeof f!=="bigint",()=>o("chainId","chainId must be a bigint")).when(({address:f})=>!vA(f),()=>o("address","address must be a valid checksummed address")).when(({nonce:f})=>typeof f!=="bigint"||f<0n,()=>o("nonce","nonce must be a non-negative bigint")).when(({signature:f})=>!f,()=>o("signature","signature is required")).when(({signature:f})=>typeof f?.yParity!=="number"||![0,1].includes(f.yParity),()=>o("signature.yParity","yParity must be 0 or 1")).when(({signature:f})=>!S0(f?.r),()=>o("signature.r","r must be a 32-byte hex string")).when(({signature:f})=>!S0(f?.s),()=>o("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function $0(n){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>n[y]!=null).map(({key:y,type:T})=>({name:y,type:T}))}function qT(n){return n.charAt(0).toUpperCase()+n.slice(1)}function GT(n,y){if(n.isTuple()&&n.components){let T=qT(n.name);return y[T]=n.components.map((o)=>({name:o.name,type:GT(o,y)})),T}if(n.isArray()){let T=n.arrayChildren;if(T?.isTuple()&&T.components){let o=qT(n.name.replace(/s$/,""));return y[o]=T.components.map((f)=>({name:f.name,type:GT(f,y)})),`${o}[]`}return`${T?.type??"bytes"}[]`}return n.type}function lT(n,y){if(typeof n==="bigint")return n;if(y?.isTuple()&&typeof n?.toObject==="function"){let T=n.toObject(),o={};for(let[f,t]of(y.components??[]).entries())o[t.name]=lT(T[t.name]??n[f],t);return o}if(Array.isArray(n)){let T=y?.arrayChildren;return n.map((o)=>lT(o,T??void 0))}return n}function VA({chain:n,abi:y,data:T,to:o}){let t=new $A(y).parseTransaction({data:T});if(!t)throw new vy({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let C={},H=qT(t.name);C[H]=t.fragment.inputs.map((w)=>({name:w.name,type:GT(w,C)}));let A={};for(let[w,X]of t.fragment.inputs.entries())A[X.name]=lT(t.args[w],X);let{chainId:_}=XT(n),G={chainId:Number(_),verifyingContract:k0(o)},M=$0(G);return{domain:G,message:A,primaryType:H,types:{EIP712Domain:M,...C}}}function QT(n,y){if(!Array.isArray(n)||n.length===0)throw new vy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[T,o]of n.entries())if(I0(o,T),y!==void 0&&o.chainId!==y)throw new vy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${T}: authorization chainId (${o.chainId}) does not match transaction chainId (${y})`}})}var S0=(n)=>typeof n==="string"&&/^0x[a-fA-F0-9]{64}$/.test(n),vA=(n)=>{try{return typeof n==="string"&&!!k0(n)}catch{return!1}};var Ty=()=>{};var E0;var b0=p(()=>{E0=[{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 jA,applyFeeMultiplierToBigInt as Gn,Chain as Jn,EVMChains as KA,FeeOption as v,isGasAsset as cA,SwapKitError as i,SwapKitNumber as Vy}from"@swapkit/helpers";import{erc20ABI as ty}from"@swapkit/helpers/contracts";import{BrowserProvider as iA,Contract as v0,getAddress as jy,Interface as V0}from"ethers";import{match as j0}from"ts-pattern";function Yo({chain:n=Jn.Ethereum,provider:y,signer:T,isEIP1559Compatible:o=!0}){return{approve:dA({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),approvedAmount:i0({chain:n,provider:y}),broadcastTransaction:y.broadcastTransaction,call:zT({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),createApprovalTx:n_({chain:n,provider:y,signer:T}),createContract:JT({chain:n,provider:y}),createContractTxObject:_o({chain:n,provider:y}),createTransaction:ZT({chain:n,provider:y,signer:T}),createTransferTx:ZT({chain:n,provider:y,signer:T}),EIP1193SendTransaction:zo(y),estimateCall:h0({provider:y,signer:T}),estimateGasLimit:sA({chain:n,provider:y,signer:T}),estimateGasPrices:Uo({chain:n,isEIP1559Compatible:o,provider:y}),estimateTransactionFee:o_({chain:n,isEIP1559Compatible:o,provider:y}),getAddress:()=>{return T?T.getAddress():void 0},getBalance:yy(n).getBalance,getNetworkParams:BT(n),isApproved:gA({chain:n,provider:y}),sendTransaction:m0({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),signAuthorization:eA({signer:T}),signMessage:T?(f)=>T.signMessage(f):void 0,signTypedData:T?({domain:f,types:t,value:C})=>T.signTypedData(f,t,C):void 0,transfer:aA({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),validateAddress:Hy}}function Hy(n){try{return jy(n),!0}catch{return!1}}function No(n){return n instanceof iA}function Ay(n,y,T){return new v0(n,V0.from(y),T)}function JT({provider:n}){return function(T,o){return new v0(T,V0.from(o),n)}}function YT({abi:n,funcName:y}){let T=n.find((o)=>o.name===y);if(!T)throw new i("toolbox_evm_no_abi_fragment",{funcName:y});return T.stateMutability&&hA.includes(T.stateMutability)}function K0(n){return jy(n)}function zo(n){return function({value:T,...o}){if(!No(n))throw new i("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:f,gasPrice:t,maxFeePerGas:C,maxPriorityFeePerGas:H,...A}=o;return n.send("eth_sendTransaction",[{...A,value:fy(BigInt(T||0))}])}}function c0(n,y){let T=Do(n,y);if(T)return jy(T.toLowerCase());throw new i("toolbox_evm_invalid_gas_asset_address")}function Do({chain:n,symbol:y,ticker:T},o){try{let f=n===Jn.BinanceSmartChain&&y==="BNB"&&T==="BNB",t=n===Jn.Hyperevm&&y==="HYPE"&&T==="HYPE",C=n===o&&y===o&&T===o,H=rA.includes(n)&&y==="ETH"&&T==="ETH";if(C||f||t||H)return NT[o];return jy(y.slice(T.length+1).replace(/^0X/,""))}catch{return null}}function _o({provider:n}){return async({contractAddress:y,abi:T,funcName:o,funcParams:f=[],txOverrides:t})=>Ay(y,T,n).getFunction(o).populateTransaction(...f.concat(t).filter((C)=>typeof C<"u"))}function Uo({chain:n,provider:y,isEIP1559Compatible:T=!0}){return j0(n).with(Jn.Gnosis,()=>{return async function(){try{let{gasPrice:f,maxPriorityFeePerGas:t}=await y.getFeeData();if(!f||t===null)throw new i("toolbox_evm_no_fee_data");return{[v.Average]:{maxFeePerGas:Gn(f,v.Average),maxPriorityFeePerGas:Gn(t,v.Average)},[v.Fast]:{maxFeePerGas:Gn(f,v.Fast),maxPriorityFeePerGas:Gn(t,v.Fast)},[v.Fastest]:{maxFeePerGas:Gn(f,v.Fastest),maxPriorityFeePerGas:Gn(t,v.Fastest)}}}catch(f){throw new i("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).with(Jn.Arbitrum,()=>{return async function(){try{let{gasPrice:f}=await y.getFeeData();if(!f)throw new i("toolbox_evm_no_fee_data");let t=f*12n/10n;return{[v.Average]:{gasPrice:t},[v.Fast]:{gasPrice:Gn(t,v.Fast)},[v.Fastest]:{gasPrice:Gn(t,v.Fastest)}}}catch(f){throw new i("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:f,maxPriorityFeePerGas:t,gasPrice:C}=await y.getFeeData();if(T){if(f===null||t===null)throw new i("toolbox_evm_no_fee_data");return{[v.Average]:{maxFeePerGas:f,maxPriorityFeePerGas:t},[v.Fast]:{maxFeePerGas:Gn(f,v.Fast),maxPriorityFeePerGas:Gn(t,v.Fast)},[v.Fastest]:{maxFeePerGas:Gn(f,v.Fastest),maxPriorityFeePerGas:Gn(t,v.Fastest)}}}if(!C)throw new i("toolbox_evm_no_gas_price");return{[v.Average]:{gasPrice:C},[v.Fast]:{gasPrice:Gn(C,v.Fast)},[v.Fastest]:{gasPrice:Gn(C,v.Fastest)}}}catch(f){throw new i("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}})}function zT({provider:n,isEIP1559Compatible:y,signer:T,chain:o}){return async function({callProvider:t,contractAddress:C,abi:H,funcName:A,funcParams:_=[],txOverrides:G={},feeOption:M=v.Fast}){let w=t||n;if(!C)throw new i("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let X=YT({abi:H,funcName:A});if(X&&No(w)&&T){let Z=_o({chain:o,provider:w}),z=G?.from||await T?.getAddress(),L=await Z({abi:H,contractAddress:C,funcName:A,funcParams:_,txOverrides:{...G,from:z}});return zo(w)(L)}let W=Ay(C,H,w);if(X){if(!T)throw new i("toolbox_evm_no_signer");let Z=G?.from||await T.getAddress();if(!Z)throw new i("toolbox_evm_no_signer_address");let z=W.connect(T),L=Uo({chain:o,isEIP1559Compatible:y,provider:n}),{maxFeePerGas:N,maxPriorityFeePerGas:J,gasPrice:U}=(await L())[M],B=await W.getFunction(A).estimateGas(..._,G),q=await z[A](..._,{...G,gasLimit:B,gasPrice:U,maxFeePerGas:N,maxPriorityFeePerGas:J,nonce:G?.nonce||await w.getTransactionCount(Z)});return typeof q?.hash==="string"?q?.hash:q}let l=await W[A]?.(..._);return typeof l?.hash==="string"?l?.hash:l}}function i0({provider:n,chain:y}){return function({assetAddress:o,spenderAddress:f,from:t}){return zT({chain:y,isEIP1559Compatible:!0,provider:n})({abi:ty,contractAddress:o,funcName:"allowance",funcParams:[t,f]})}}function gA({provider:n,chain:y}){return async function({assetAddress:o,spenderAddress:f,from:t,amount:C=Cy}){let H=await i0({chain:y,provider:n})({assetAddress:o,from:t,spenderAddress:f});return Vy.fromBigInt(H).gte(Vy.fromBigInt(BigInt(C)))}}function dA({signer:n,isEIP1559Compatible:y=!0,provider:T,chain:o}){return async function({assetAddress:t,spenderAddress:C,feeOptionKey:H=v.Fast,amount:A,gasLimitFallback:_,from:G,nonce:M}){let w=[C,BigInt(A||Cy)],X=await n?.getAddress()||G,W={abi:ty,contractAddress:t,funcName:"approve",funcParams:w,signer:n,txOverrides:{from:X}};if(No(T)){let Z=_o({chain:o,provider:T}),z=zo(T),L=await Z(W);return z(L)}return zT({chain:o,isEIP1559Compatible:y,provider:T,signer:n})({...W,feeOption:H,funcParams:w,txOverrides:{from:X,gasLimit:_?BigInt(_.toString()):void 0,nonce:M}})}}function aA({signer:n,isEIP1559Compatible:y=!0,provider:T}){return async function({assetValue:f,memo:t,recipient:C,feeOptionKey:H=v.Fast,sender:A,..._}){let{hexlify:G,toUtf8Bytes:M}=await import("ethers"),w=f.getBaseValue("bigint"),X=f.chain,W=A||await n?.getAddress(),l=m0({chain:X,isEIP1559Compatible:y,provider:T,signer:n});if(!W)throw new i("toolbox_evm_no_from_address");if(f.isGasAsset){let U={..._,data:G(M(t||"")),feeOptionKey:H,from:W,to:C,value:w};return l(U)}if(!Do(f,X))throw new i("toolbox_evm_no_contract_address");let{maxFeePerGas:z,maxPriorityFeePerGas:L,gasPrice:N}=(await Uo({chain:X,isEIP1559Compatible:y,provider:T})())[H],J=await ZT({chain:X,provider:T,signer:n})({assetValue:f,data:G(M(t||"")),gasPrice:N,maxFeePerGas:z,maxPriorityFeePerGas:L,memo:t,recipient:C,sender:W});return l(J)}}function h0({provider:n,signer:y}){return function({contractAddress:o,abi:f,funcName:t,funcParams:C=[],txOverrides:H}){if(!o)throw new i("toolbox_evm_no_contract_address");let A=Ay(o,f,n);return y?A.connect(y).getFunction(t).estimateGas(...C,H):A.getFunction(t).estimateGas(...C,H)}}function sA({provider:n,signer:y}){return async function({assetValue:o,recipient:f,memo:t,data:C,sender:H,funcName:A,funcParams:_,txOverrides:G}){let M=o.bigIntValue,w=o.isGasAsset?null:Do(o,o.chain);if(w&&A)return h0({provider:n,signer:y})({abi:ty,contractAddress:w,funcName:A,funcParams:_,txOverrides:G});let{hexlify:X,toUtf8Bytes:W}=await import("ethers");return n.estimateGas({data:C?C:t?X(W(t)):void 0,from:H,to:f,value:M})}}function eA({signer:n}){if(!n)return;return(y)=>LT(n,y)}function m0({provider:n,signer:y,isEIP1559Compatible:T=!0,chain:o}){return async function({feeOptionKey:t=v.Fast,...C}){let{from:H,to:A,data:_,value:G,...M}=C;if(!y)throw new i("toolbox_evm_no_signer");if(!A)throw new i("toolbox_evm_no_to_address");let w={...M,data:_||"0x",from:H,to:A,value:BigInt(G||0)};if(No(n))return zo(n)(w);let X=H||await y.getAddress(),W=C.nonce||await n.getTransactionCount(X),l=(await n.getNetwork()).chainId,Z=OT(w,T);if(Z==="eip7702")QT(w.authorizations||[],l);let z=j0(Z).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),L={...w,chainId:l,nonce:W,type:z,...Z==="eip7702"&&{authorizationList:w.authorizations}},N=Uo({chain:o,isEIP1559Compatible:T,provider:n}),U=Z!=="legacy"&&!(w.maxFeePerGas&&w.maxPriorityFeePerGas)||!w.gasPrice?Object.entries((await N())[t]).reduce((q,[Y,D])=>({...q,[Y]:fy(BigInt(D))}),{}):{},B;try{B=fy(w.gasLimit||await n.estimateGas(L)*11n/10n)}catch(q){throw new i("toolbox_evm_error_estimating_gas_limit",{error:q})}try{let q={...L,gasLimit:B,...U};try{return(await y.sendTransaction(q)).hash}catch{let Y=await y.signTransaction({...q,from:X});return(await n.broadcastTransaction(Y)).hash}}catch(q){throw new i("toolbox_evm_error_sending_transaction",{error:q})}}}function ZT({provider:n,signer:y}){return async function({assetValue:o,memo:f,recipient:t,data:C,sender:H,maxFeePerGas:A,maxPriorityFeePerGas:_,gasPrice:G,...M}){let w=o.getBaseValue("bigint"),X=o.chain,W=H||await y?.getAddress();if(!W)throw new i("toolbox_evm_no_from_address");if(cA(o)){let{hexlify:z,toUtf8Bytes:L}=await import("ethers");return{...M,data:C||z(L(f||"")),from:W,to:t,value:w}}let l=Do(o,X);if(!l)throw new i("toolbox_evm_no_contract_address");return _o({chain:o.chain,provider:n})({abi:ty,contractAddress:l,funcName:"transfer",funcParams:[t,w],txOverrides:{from:W,gasPrice:G,maxFeePerGas:A,maxPriorityFeePerGas:_}})}}function n_({provider:n,signer:y,chain:T}){return async function({assetAddress:f,spenderAddress:t,amount:C,from:H}){let A=await y?.getAddress()||H,_=_o({chain:T,provider:n}),G=["bigint","number"].includes(typeof C)?C:C||Cy;return await _({abi:ty,contractAddress:f,funcName:"approve",funcParams:[t,BigInt(G)],txOverrides:{from:A}})}}function o_({provider:n,isEIP1559Compatible:y=!0,chain:T}){return async function({feeOption:f=v.Fast,...t}){let H=await Uo({chain:T,isEIP1559Compatible:y,provider:n})(),A=await n.estimateGas(t),_=jA.from({chain:T}),{gasPrice:G,maxFeePerGas:M,maxPriorityFeePerGas:w}=H[f];if(!y&&G)return _.set(Vy.fromBigInt(G*A,_.decimal));if(M&&w){let X=(M+w)*A;return _.set(Vy.fromBigInt(X,_.decimal))}throw new i("toolbox_evm_no_gas_price")}}var Cy,hA,mA,NT,rA,Ky=(n)=>n.type===4||(n.authorizations?.length??0)>0,DT=(n)=>!Ky(n)&&(n.type===2||!!n.maxFeePerGas||!!n.maxPriorityFeePerGas),OT=(n,y=!0)=>{if(Ky(n))return"eip7702";if(DT(n)||y)return"eip1559";return"legacy"};var cy=p(()=>{by();Ty();Cy=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");hA=["payable","nonpayable"];mA=KA.reduce((n,y)=>{return n[y]="0x0000000000000000000000000000000000000000",n},{}),NT={...mA,[Jn.Optimism]:"0x4200000000000000000000000000000000000042",[Jn.Polygon]:"0x0000000000000000000000000000000000001010"},rA=[Jn.Arbitrum,Jn.Aurora,Jn.Base,Jn.Optimism]});import{Chain as r,FeeOption as y_}from"@swapkit/helpers";import{HDNodeWallet as f_}from"ethers";import{match as T_,P as r0}from"ts-pattern";function iy(n){let y=g(r.Ethereum)(n);async function T(o,f="0x5ba1e12693dc8f9c48aad8770482f4739beed696",t="aggregate",C=y_.Fast){let H=await y.createContractTxObject({abi:E0,contractAddress:f,funcName:t,funcParams:[o]});return y.sendTransaction({...H,feeOptionKey:C})}return{...y,multicall:T}}function g(n){return function({provider:T,...o}){let f=MT(n),t=T_(o).with({phrase:r0.string},({phrase:H})=>f_.fromPhrase(H).connect(T)).with({signer:r0.any},({signer:H})=>H).otherwise(()=>{return});return Yo({chain:n,isEIP1559Compatible:f,provider:T,signer:t})}}var hy,my,ry,gy,dy,ay,sy,g0,ey,nf,of,yf,ff,Tf,_y,tf,Cf,Hf,Af;var RT=p(()=>{b0();Ty();cy();hy=g(r.Adi),my=g(r.Arbitrum),ry=g(r.Aurora),gy=g(r.Avalanche),dy=g(r.Base),ay=g(r.Berachain),sy=g(r.BinanceSmartChain),g0=g(r.Botanix),ey=g(r.Core),nf=g(r.Corn),of=g(r.Cronos),yf=g(r.Gnosis),ff=g(r.Hyperevm),Tf=g(r.Polygon),_y=g(r.Sonic),tf=g(r.Unichain),Cf=g(r.XLayer),Hf=g(r.Monad),Af=g(r.MegaETH)});var d0;var a0=p(()=>{d0=[{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 Oo,Chain as C_,FeeOption as bn,SwapKitError as xT}from"@swapkit/helpers";import{Contract as H_,HDNodeWallet as A_}from"ethers";import{match as __,P as s0}from"ts-pattern";function FT(n){return new H_(U_,d0,n)}function e0(n){return async function(){let T=FT(n);if(T&&"l1BaseFee"in T)return await T?.l1BaseFee();return}}function nC(n){return async function({from:T,to:o,nonce:f,...t}){let{Transaction:C}=await import("ethers");if(!o)throw new xT("toolbox_evm_invalid_transaction",{error:"Missing to address"});return C.from({...t,authorizationList:t.authorizationList,nonce:f?f:T?await n.getTransactionCount(T):0,to:o}).serialized}}function oC(n){return async function(T){let o=FT(n),f=await nC(n)(T);if(o&&"getL1Fee"in o)return o.getL1Fee(f)}}function yC(n){return async function(T){let f=(await n.getFeeData()).gasPrice??0n,t=await n.estimateGas(T);return f*t}}function w_(n){return async function(T){let o=await oC(n)(T)??0n,f=await yC(n)(T);return o+f}}function q_(n){return async function(T){let o=FT(n),f=await nC(n)(T);if(o&&"getL1GasUsed"in o)return o.getL1GasUsed(f)}}function G_(n){return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:o,gasPrice:f}=await n.getFeeData(),t=await e0(n)(),C=f;if(!(T&&o))throw new xT("toolbox_evm_no_fee_data");return{[bn.Average]:{gasPrice:C,l1GasPrice:t,maxFeePerGas:T,maxPriorityFeePerGas:o},[bn.Fast]:{gasPrice:Oo(C,bn.Fast),l1GasPrice:Oo(t||0n,bn.Fast),maxFeePerGas:T,maxPriorityFeePerGas:Oo(o,bn.Fast)},[bn.Fastest]:{gasPrice:Oo(C,bn.Fastest),l1GasPrice:Oo(t||0n,bn.Fastest),maxFeePerGas:T,maxPriorityFeePerGas:Oo(o,bn.Fastest)}}}catch(T){throw new xT("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}function _f({provider:n,...y}){let T=__(y).with({phrase:s0.string},({phrase:t})=>A_.fromPhrase(t).connect(n)).with({signer:s0.any},({signer:t})=>t).otherwise(()=>{return}),o=Yo({provider:n,signer:T}),f=e0(n);return{...o,estimateGasPrices:G_(n),estimateL1Gas:q_(n),estimateL1GasCost:oC(n),estimateL2GasCost:yC(n),estimateTotalGasCost:w_(n),getBalance:yy(C_.Optimism).getBalance,getL1GasPrice:f}}var U_="0x420000000000000000000000000000000000000f";var pT=p(()=>{by();a0();cy()});var TC={};nn(TC,{validateEVMAddress:()=>Hy,toChecksumAddress:()=>K0,isStateChangingCall:()=>YT,isEIP7702Transaction:()=>Ky,isEIP1559Transaction:()=>DT,isBrowserProvider:()=>No,getTokenAddress:()=>Do,getEvmToolboxAsync:()=>fC,getEvmToolbox:()=>ST,getEstimateGasPrices:()=>Uo,getEVMTxType:()=>OT,getEIP1193SendTransaction:()=>zo,getCreateContractTxObject:()=>_o,getCreateContract:()=>JT,getChecksumAddressFromAsset:()=>c0,createContract:()=>Ay,XLayerToolbox:()=>Cf,UNIToolbox:()=>tf,SONICToolbox:()=>_y,OPToolbox:()=>_f,MONADToolbox:()=>Hf,MEGAETHToolbox:()=>Af,MAX_APPROVAL:()=>Cy,MATICToolbox:()=>Tf,HYPEREVMToolbox:()=>ff,GNOToolbox:()=>yf,ETHToolbox:()=>iy,ContractAddress:()=>NT,CROToolbox:()=>of,CORNToolbox:()=>nf,COREToolbox:()=>ey,BotanixToolbox:()=>g0,BaseEVMToolbox:()=>Yo,BSCToolbox:()=>sy,BERAToolbox:()=>ay,BASEToolbox:()=>dy,AVAXToolbox:()=>gy,AURORAToolbox:()=>ry,ARBToolbox:()=>my,ADIToolbox:()=>hy});import{Chain as m}from"@swapkit/helpers";import{match as l_}from"ts-pattern";function ST(n,y){return l_(n).with(m.Adi,()=>hy(y)).with(m.Arbitrum,()=>my(y)).with(m.Aurora,()=>ry(y)).with(m.Avalanche,()=>gy(y)).with(m.Base,()=>dy(y)).with(m.Berachain,()=>ay(y)).with(m.BinanceSmartChain,()=>sy(y)).with(m.Botanix,()=>_y(y)).with(m.Core,()=>ey(y)).with(m.Corn,()=>nf(y)).with(m.Cronos,()=>of(y)).with(m.Ethereum,()=>iy(y)).with(m.Gnosis,()=>yf(y)).with(m.Hyperevm,()=>ff(y)).with(m.Optimism,()=>_f(y)).with(m.Polygon,()=>Tf(y)).with(m.Sonic,()=>_y(y)).with(m.Unichain,()=>tf(y)).with(m.XLayer,()=>Cf(y)).with(m.Monad,()=>Hf(y)).with(m.MegaETH,()=>Af(y)).exhaustive()}async function fC(n,y){let T={...y,provider:y?.provider||await WT(n)};return ST(n,T)}var kT=p(()=>{Ty();RT();pT();cy();RT();pT()});var tC;var CC=p(()=>{((T)=>{T.Test="goerli";T.Main="homestead"})(tC||={})});var HC={};nn(HC,{validateEVMAddress:()=>Hy,validateAuthorizations:()=>QT,validateAuthorization:()=>I0,toHexString:()=>fy,toChecksumAddress:()=>K0,signAuthorization:()=>LT,parseEIP712FromEVMTx:()=>VA,isStateChangingCall:()=>YT,isEIP7702Transaction:()=>Ky,isEIP1559Transaction:()=>DT,isBrowserProvider:()=>No,getTokenAddress:()=>Do,getProviderSync:()=>P0,getProvider:()=>WT,getNetworkParams:()=>BT,getIsEIP1559Compatible:()=>MT,getEvmToolboxAsync:()=>fC,getEvmToolbox:()=>ST,getEvmApi:()=>yy,getEstimateGasPrices:()=>Uo,getEVMTxType:()=>OT,getEIP1193SendTransaction:()=>zo,getCreateContractTxObject:()=>_o,getCreateContract:()=>JT,getChecksumAddressFromAsset:()=>c0,createCustomEvmApi:()=>PA,createContract:()=>Ay,buildEIP712DomainType:()=>$0,XLayerToolbox:()=>Cf,UNIToolbox:()=>tf,SONICToolbox:()=>_y,OPToolbox:()=>_f,MONADToolbox:()=>Hf,MEGAETHToolbox:()=>Af,MAX_APPROVAL:()=>Cy,MATICToolbox:()=>Tf,HYPEREVMToolbox:()=>ff,GNOToolbox:()=>yf,EthNetwork:()=>tC,ETHToolbox:()=>iy,ContractAddress:()=>NT,CROToolbox:()=>of,CORNToolbox:()=>nf,COREToolbox:()=>ey,BotanixToolbox:()=>g0,BaseEVMToolbox:()=>Yo,BSCToolbox:()=>sy,BERAToolbox:()=>ay,BASEToolbox:()=>dy,AVAXToolbox:()=>gy,AURORAToolbox:()=>ry,ARBToolbox:()=>my,ADIToolbox:()=>hy});var uT=p(()=>{by();Ty();kT();CC()});import{bech32 as X_}from"@scure/base";import{mnemonicToSeed as W_}from"@scure/bip39";import{Bip32PrivateKey as B_}from"@stricahq/bip32ed25519";import{Transaction as M_,types as $T,address as L_,crypto as PT,utils as AC}from"@stricahq/typhonjs";import{AssetValue as Ro,Chain as wo,getChainConfig as Q_,SwapKitError as Uy}from"@swapkit/helpers";import Wn from"bignumber.js";async function ET(n,y){let T=await fetch(`${qC}${n}`,{...y,headers:{project_id:wC,...y?.headers}});if(!T.ok)throw Error(`Blockfrost API error: ${T.status} ${T.statusText}`);return T.json()}async function GC(n){try{return await ET(`/addresses/${n}/utxos`)}catch{return[]}}async function J_(){return(await ET("/blocks/latest")).slot}async function Y_(){let n=await ET("/epochs/latest/parameters"),y={PlutusScriptV1:n.cost_models.PlutusV1?Object.values(n.cost_models.PlutusV1):[],PlutusScriptV2:n.cost_models.PlutusV2?Object.values(n.cost_models.PlutusV2):[],PlutusScriptV3:n.cost_models.PlutusV3?Object.values(n.cost_models.PlutusV3):[]};return{collateralPercent:new Wn(n.collateral_percent),languageView:y,lovelacePerUtxoWord:new Wn(0),maxValueSize:Number.parseInt(n.max_val_size,10),minFeeA:new Wn(n.min_fee_a),minFeeB:new Wn(n.min_fee_b),minFeeRefScriptCostPerByte:new Wn(15),priceMem:new Wn(n.price_mem),priceSteps:new Wn(n.price_step),stakeKeyDeposit:new Wn(2000000),utxoCostPerByte:new Wn(n.coins_per_utxo_size)}}async function UC(n){let y=await fetch(`${qC}/tx/submit`,{body:Buffer.from(n,"hex"),headers:{"Content-Type":"application/cbor",project_id:wC},method:"POST"});if(!y.ok){let T=await y.text();throw Error(`Transaction submission failed: ${T}`)}return y.json()}function N_(n,y){return n.map((T)=>{let o=T.amount.find((C)=>C.unit==="lovelace"),f=o?new Wn(o.quantity):new Wn(0),t=T.amount.filter((C)=>C.unit!=="lovelace").map((C)=>({amount:new Wn(C.quantity),assetName:C.unit.slice(56),policyId:C.unit.slice(0,56)}));return{address:y,amount:f,index:T.output_index,tokens:t,txId:T.tx_hash}})}async function z_(n){try{let y=await GC(n),T=0n,o=new Map;for(let C of y){if(!C.amount||!Array.isArray(C.amount))continue;for(let H of C.amount){let{unit:A,quantity:_}=H;if(A==="lovelace")T+=BigInt(_);else{let G=o.get(A)||0n;o.set(A,G+BigInt(_))}}}let f=[],{baseDecimal:t}=Q_(wo.Cardano);if(T>0n)f.push(Ro.from({chain:wo.Cardano,fromBaseDecimal:t,value:T.toString()}));for(let[C,H]of o)f.push(Ro.from({asset:`${wo.Cardano}.${C}`,value:H.toString()}));if(f.length===0)return[Ro.from({chain:wo.Cardano})];return f}catch(y){let T=y instanceof Error?y.message:String(y);return console.error(`Cardano balance fetch error: ${T}`),[Ro.from({chain:wo.Cardano})]}}function lC(n){if(!n||typeof n!=="string")return!1;try{let y=X_.decode(n,120);return y.prefix==="addr"||y.prefix==="addr_test"}catch{return!1}}async function D_(n,y=0,T=0){let o=await W_(n,""),t=(await B_.fromEntropy(Buffer.from(o.slice(0,64)))).derive(IT+1852).derive(IT+1815).derive(IT+y),C=t.derive(0).derive(T),H=C.toBip32PublicKey().toPublicKey().toBytes(),A=PT.hash28(H),G=t.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),M=PT.hash28(G),w={hash:A,type:$T.HashType.ADDRESS},X={hash:M,type:$T.HashType.ADDRESS},l=new L_.BaseAddress(Z_,w,X).getBech32(),Z=C.toPrivateKey();return{getAddress:()=>l,publicKey:H,publicKeyHash:A,signTransaction:async(z)=>{try{let L=await import("@stricahq/cbors"),N=Buffer.from(z,"hex"),J=L.Decoder.decode(N),[U,B,q,Y]=J.value,D=L.Encoder.encode(U),Q=PT.hash32(D),O=Z.sign(Q),R=B instanceof Map?B:new Map,S=R.get(_C)||[];S.push([H,O]),R.set(_C,S);let k=[U,R,q,Y];return L.Encoder.encode(k).toString("hex")}catch(L){throw new Uy("toolbox_cardano_sign_transaction_failed",{message:String(L)})}}}}function O_(n){let y,T,o;async function f(){if(!o)o=await Y_();return o}async function t(){if(y!==void 0)return y;if(n&&"phrase"in n&&n.phrase){let X=n.index??0;return y=await D_(n.phrase,0,X),y}if(n&&"signer"in n&&n.signer)return y=n.signer,y;return}async function C(){if(T)return T;let X=await t();if(!X)return"";if("getAddress"in X)return T=await X.getAddress(),T;return""}async function H(X){let W=X||await C();if(!W)throw new Uy("core_wallet_connection_not_found");return z_(W)}async function A(X){if(X)try{let{tx:z}=await _(X),L=z.getFee();return Ro.from({chain:wo.Cardano,fromBaseDecimal:6,value:L.toString()})}catch{}let W=await f(),l=400,Z=W.minFeeB.plus(W.minFeeA.times(l));return Ro.from({chain:wo.Cardano,fromBaseDecimal:6,value:Z.toString()})}async function _({sender:X="",recipient:W,assetValue:l,memo:Z,pureLovelaceOnly:z=!1}){let L=X||await C();if(!L)throw new Uy("core_wallet_connection_not_found");let[N,J,U]=await Promise.all([GC(L),J_(),f()]),B=N.filter((K)=>z?K.amount.every((V)=>V.unit==="lovelace"):K.amount.some((V)=>V.unit==="lovelace")).sort((K,V)=>{let yn=K.amount.some((Un)=>Un.unit!=="lovelace"),a=V.amount.some((Un)=>Un.unit!=="lovelace");if(yn===a)return 0;return yn?1:-1}),q=AC.getAddressFromString(L),Y=AC.getAddressFromString(W),D=N_(B,q),Q=new Wn(l.getBaseValue("string")),O=[{address:Y,amount:Q,tokens:[]}],R;if(Z){let K=new Map;K.set("msg",[Z]),R={metadata:[{data:K,label:674}]}}let S={...U,minFeeB:U.minFeeB.plus(U.minFeeA.times(4))},I=new M_({protocolParams:S}).paymentTransaction({auxiliaryData:R,changeAddress:q,inputs:D,outputs:O,ttl:J+3600}),{payload:b}=I.buildTransaction();return{tx:I,unsignedTx:b}}async function G(X){let W=await t();if(!W||!("signTransaction"in W))throw new Uy("core_wallet_connection_not_found");return W.signTransaction(X)}async function M({recipient:X,assetValue:W,memo:l}){let Z=await t();if(!Z||!("signTransaction"in Z))throw new Uy("core_wallet_connection_not_found");let{unsignedTx:z}=await _({assetValue:W,memo:l,recipient:X,sender:await C()}),L=await G(z);return await UC(L)}async function w(X){let W=await G(X);return await UC(W)}return{createTransaction:_,estimateTransactionFee:A,getAddress:C,getBalance:H,signAndBroadcastTransaction:w,signTransaction:G,transfer:M,validateAddress:lC}}var wC="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",qC="https://cardano-mainnet.blockfrost.io/api/v0",Z_,IT=2147483648,_C=0;var XC=p(()=>{Z_=$T.NetworkId.MAINNET});var bT={};nn(bT,{validateCardanoAddress:()=>lC,getCardanoToolbox:()=>O_});var vT=p(()=>{XC()});import{base64 as wf,bech32 as Uf}from"@scure/base";import{SwapKitError as R_}from"@swapkit/helpers";function wy(n){return wf.encode(Uint8Array.from(Uf.fromWords(Uf.decode(n).words)))}function qy(n,y="thor"){return Uf.encode(y,Uf.toWords(wf.decode(n)))}function x_(n){return wf.encode(n)}function F_(n){if(!n.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new R_("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return wf.decode(n)}var VT=()=>{};import{AssetValue as jT,Chain as E,getChainConfig as Sn,getRPCUrl as p_,SwapKitError as WC}from"@swapkit/helpers";function vn(n){switch(n){case E.Maya:return{amount:[],gas:"10000000000"};case E.THORChain:return{amount:[],gas:"500000000"};case E.Kujira:return LC;case E.Noble:return QC;default:return MC}}async function Vn(n){let y=await import("@cosmjs/stargate"),T=y.StargateClient??y.default?.StargateClient,o=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return T.connect({headers:o,url:n})}async function qo(n,y,T={}){let o=await import("@cosmjs/stargate"),f=o.SigningStargateClient??o.default?.SigningStargateClient,t=o.GasPrice??o.default?.GasPrice,C=typeof T==="string"?T:"0.0003uatom",H=typeof T==="string"?{}:T;return f.connectWithSigner(n,y,{gasPrice:t.fromString(C),...H})}async function cT(n,y){let T=await import("@cosmjs/stargate");return(T.SigningStargateClient??T.default?.SigningStargateClient).offline(n,y)}async function iT({sender:n,recipient:y,assetValue:T,memo:o="",feeRate:f,sequence:t,accountNumber:C}){let{chain:H,chainId:A}=T,_=await p_(H),M=await(await Vn(_)).getAccount(n);if(!M)throw new WC("toolbox_cosmos_account_not_found",{sender:n});let w=jT.from({chain:H}),X=gn(w.symbol),W=vn(H),l=X&&f?{amount:[{amount:f.toString(),denom:X}],gas:W.gas}:W,Z={amount:[{amount:T.getBaseValue("string"),denom:gn(T.symbol)}],fromAddress:n,toAddress:y};return{accountNumber:C??M.accountNumber,chainId:A,fee:l,memo:o,msgs:[{typeUrl:S_(H),value:Z}],sequence:t??M.sequence}}var KT="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",BC="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",MC,LC,QC,gn=(n,y=!1)=>{if(y)return n.toLowerCase();switch(n){case"uUSK":case"USK":return KT;case"uYUM":case"YUM":return BC;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return n}},Gy=({symbol:n,chain:y})=>{if(y===E.Maya)return(n.toUpperCase()!=="CACAO"?n:`${E.Maya}.${n}`).toUpperCase();if(y===E.THORChain)return(["RUNE","TCY","RUJI"].includes(n.toUpperCase())?`${E.THORChain}.${n}`:n).toUpperCase();return gn(n,!1)},S_=(n)=>{switch(n){case E.Maya:case E.THORChain:return"/types.MsgSend";case E.Cosmos:case E.Kujira:case E.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new WC("toolbox_cosmos_not_supported",{chain:n})}},k_,hT=(n,y)=>{let T=k_[n.toLowerCase()];if(!T)return jT.from({asset:n,fromBaseDecimal:8,value:y});let{chain:o,asset:f,decimals:t}=T,C=o?{chain:o}:{asset:f};return jT.from({...C,fromBaseDecimal:t,value:y})};var ly=p(()=>{MC={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},LC={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},QC={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};k_={atom:{chain:E.Cosmos,decimals:Sn(E.Cosmos).baseDecimal},cacao:{chain:E.Maya,decimals:10},kuji:{chain:E.Kujira,decimals:Sn(E.Kujira).baseDecimal},maya:{asset:`${E.Maya}.${E.Maya}`,decimals:4},rune:{chain:E.THORChain,decimals:Sn(E.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Sn(E.THORChain).baseDecimal},uatom:{chain:E.Cosmos,decimals:Sn(E.Cosmos).baseDecimal},ukuji:{chain:E.Kujira,decimals:Sn(E.Kujira).baseDecimal},usdc:{chain:E.Noble,decimals:Sn(E.Noble).baseDecimal},uusdc:{chain:E.Noble,decimals:Sn(E.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Sn(E.THORChain).baseDecimal},[KT.toLowerCase()]:{asset:`${E.Kujira}.USK`,decimals:Sn(E.Kujira).baseDecimal}}});var ZC={};nn(ZC,{$root:()=>F});import on from"protobufjs/minimal.js";var P,Mn,u,F;var JC=p(()=>{P=on.Reader,Mn=on.Writer,u=on.util,F=on.roots.default||(on.roots.default={});F.common=(()=>{let n={};return n.Asset=(()=>{function y(T){if(T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.chain="",y.prototype.symbol="",y.prototype.ticker="",y.prototype.synth=!1,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.chain!=null&&Object.hasOwnProperty.call(o,"chain"))f.uint32(10).string(o.chain);if(o.symbol!=null&&Object.hasOwnProperty.call(o,"symbol"))f.uint32(18).string(o.symbol);if(o.ticker!=null&&Object.hasOwnProperty.call(o,"ticker"))f.uint32(26).string(o.ticker);if(o.synth!=null&&Object.hasOwnProperty.call(o,"synth"))f.uint32(32).bool(o.synth);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.common.Asset;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.chain=o.string();break;case 2:C.symbol=o.string();break;case 3:C.ticker=o.string();break;case 4:C.synth=o.bool();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.chain!=null&&o.hasOwnProperty("chain")){if(!u.isString(o.chain))return"chain: string expected"}if(o.symbol!=null&&o.hasOwnProperty("symbol")){if(!u.isString(o.symbol))return"symbol: string expected"}if(o.ticker!=null&&o.hasOwnProperty("ticker")){if(!u.isString(o.ticker))return"ticker: string expected"}if(o.synth!=null&&o.hasOwnProperty("synth")){if(typeof o.synth!=="boolean")return"synth: boolean expected"}return null},y.fromObject=function(o){if(o instanceof F.common.Asset)return o;let f=new F.common.Asset;if(o.chain!=null)f.chain=String(o.chain);if(o.symbol!=null)f.symbol=String(o.symbol);if(o.ticker!=null)f.ticker=String(o.ticker);if(o.synth!=null)f.synth=Boolean(o.synth);return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.defaults)t.chain="",t.symbol="",t.ticker="",t.synth=!1;if(o.chain!=null&&o.hasOwnProperty("chain"))t.chain=o.chain;if(o.symbol!=null&&o.hasOwnProperty("symbol"))t.symbol=o.symbol;if(o.ticker!=null&&o.hasOwnProperty("ticker"))t.ticker=o.ticker;if(o.synth!=null&&o.hasOwnProperty("synth"))t.synth=o.synth;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Coin=(()=>{function y(T){if(T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.asset=null,y.prototype.amount="",y.prototype.decimals=u.Long?u.Long.fromBits(0,0,!1):0,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.asset!=null&&Object.hasOwnProperty.call(o,"asset"))F.common.Asset.encode(o.asset,f.uint32(10).fork()).ldelim();if(o.amount!=null&&Object.hasOwnProperty.call(o,"amount"))f.uint32(18).string(o.amount);if(o.decimals!=null&&Object.hasOwnProperty.call(o,"decimals"))f.uint32(24).int64(o.decimals);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.common.Coin;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.asset=F.common.Asset.decode(o,o.uint32());break;case 2:C.amount=o.string();break;case 3:C.decimals=o.int64();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.asset!=null&&o.hasOwnProperty("asset")){let f=F.common.Asset.verify(o.asset);if(f)return"asset."+f}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!u.isString(o.amount))return"amount: string expected"}if(o.decimals!=null&&o.hasOwnProperty("decimals")){if(!u.isInteger(o.decimals)&&!(o.decimals&&u.isInteger(o.decimals.low)&&u.isInteger(o.decimals.high)))return"decimals: integer|Long expected"}return null},y.fromObject=function(o){if(o instanceof F.common.Coin)return o;let f=new F.common.Coin;if(o.asset!=null){if(typeof o.asset!=="object")throw TypeError(".common.Coin.asset: object expected");f.asset=F.common.Asset.fromObject(o.asset)}if(o.amount!=null)f.amount=String(o.amount);if(o.decimals!=null){if(u.Long)(f.decimals=u.Long.fromValue(o.decimals)).unsigned=!1;else if(typeof o.decimals==="string")f.decimals=Number.parseInt(o.decimals,10);else if(typeof o.decimals==="number")f.decimals=o.decimals;else if(typeof o.decimals==="object")f.decimals=new u.LongBits(o.decimals.low>>>0,o.decimals.high>>>0).toNumber()}return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.defaults)if(t.asset=null,t.amount="",u.Long){let C=new u.Long(0,0,!1);t.decimals=f.longs===String?C.toString():f.longs===Number?C.toNumber():C}else t.decimals=f.longs===String?"0":0;if(o.asset!=null&&o.hasOwnProperty("asset"))t.asset=F.common.Asset.toObject(o.asset,f);if(o.amount!=null&&o.hasOwnProperty("amount"))t.amount=o.amount;if(o.decimals!=null&&o.hasOwnProperty("decimals"))if(typeof o.decimals==="number")t.decimals=f.longs===String?String(o.decimals):o.decimals;else t.decimals=f.longs===String?u.Long.prototype.toString.call(o.decimals):f.longs===Number?new u.LongBits(o.decimals.low>>>0,o.decimals.high>>>0).toNumber():o.decimals;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.PubKeySet=(()=>{function y(T){if(T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.secp256k1="",y.prototype.ed25519="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.secp256k1!=null&&Object.hasOwnProperty.call(o,"secp256k1"))f.uint32(10).string(o.secp256k1);if(o.ed25519!=null&&Object.hasOwnProperty.call(o,"ed25519"))f.uint32(18).string(o.ed25519);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.common.PubKeySet;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.secp256k1=o.string();break;case 2:C.ed25519=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.secp256k1!=null&&o.hasOwnProperty("secp256k1")){if(!u.isString(o.secp256k1))return"secp256k1: string expected"}if(o.ed25519!=null&&o.hasOwnProperty("ed25519")){if(!u.isString(o.ed25519))return"ed25519: string expected"}return null},y.fromObject=function(o){if(o instanceof F.common.PubKeySet)return o;let f=new F.common.PubKeySet;if(o.secp256k1!=null)f.secp256k1=String(o.secp256k1);if(o.ed25519!=null)f.ed25519=String(o.ed25519);return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.defaults)t.secp256k1="",t.ed25519="";if(o.secp256k1!=null&&o.hasOwnProperty("secp256k1"))t.secp256k1=o.secp256k1;if(o.ed25519!=null&&o.hasOwnProperty("ed25519"))t.ed25519=o.ed25519;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Tx=(()=>{function y(T){if(this.coins=[],this.gas=[],T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.id="",y.prototype.chain="",y.prototype.fromAddress="",y.prototype.toAddress="",y.prototype.coins=u.emptyArray,y.prototype.gas=u.emptyArray,y.prototype.memo="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.id!=null&&Object.hasOwnProperty.call(o,"id"))f.uint32(10).string(o.id);if(o.chain!=null&&Object.hasOwnProperty.call(o,"chain"))f.uint32(18).string(o.chain);if(o.fromAddress!=null&&Object.hasOwnProperty.call(o,"fromAddress"))f.uint32(26).string(o.fromAddress);if(o.toAddress!=null&&Object.hasOwnProperty.call(o,"toAddress"))f.uint32(34).string(o.toAddress);if(o.coins?.length)for(let t=0;t<o.coins.length;++t)F.common.Coin.encode(o.coins[t],f.uint32(42).fork()).ldelim();if(o.gas?.length)for(let t=0;t<o.gas.length;++t)F.common.Coin.encode(o.gas[t],f.uint32(50).fork()).ldelim();if(o.memo!=null&&Object.hasOwnProperty.call(o,"memo"))f.uint32(58).string(o.memo);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.common.Tx;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.id=o.string();break;case 2:C.chain=o.string();break;case 3:C.fromAddress=o.string();break;case 4:C.toAddress=o.string();break;case 5:if(!C.coins?.length)C.coins=[];C.coins.push(F.common.Coin.decode(o,o.uint32()));break;case 6:if(!C.gas?.length)C.gas=[];C.gas.push(F.common.Coin.decode(o,o.uint32()));break;case 7:C.memo=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.id!=null&&o.hasOwnProperty("id")){if(!u.isString(o.id))return"id: string expected"}if(o.chain!=null&&o.hasOwnProperty("chain")){if(!u.isString(o.chain))return"chain: string expected"}if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress")){if(!u.isString(o.fromAddress))return"fromAddress: string expected"}if(o.toAddress!=null&&o.hasOwnProperty("toAddress")){if(!u.isString(o.toAddress))return"toAddress: string expected"}if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let t=F.common.Coin.verify(o.coins[f]);if(t)return"coins."+t}}if(o.gas!=null&&o.hasOwnProperty("gas")){if(!Array.isArray(o.gas))return"gas: array expected";for(let f=0;f<o.gas.length;++f){let t=F.common.Coin.verify(o.gas[f]);if(t)return"gas."+t}}if(o.memo!=null&&o.hasOwnProperty("memo")){if(!u.isString(o.memo))return"memo: string expected"}return null},y.fromObject=function(o){if(o instanceof F.common.Tx)return o;let f=new F.common.Tx;if(o.id!=null)f.id=String(o.id);if(o.chain!=null)f.chain=String(o.chain);if(o.fromAddress!=null)f.fromAddress=String(o.fromAddress);if(o.toAddress!=null)f.toAddress=String(o.toAddress);if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".common.Tx.coins: array expected");f.coins=[];for(let t=0;t<o.coins.length;++t){if(typeof o.coins[t]!=="object")throw TypeError(".common.Tx.coins: object expected");f.coins[t]=F.common.Coin.fromObject(o.coins[t])}}if(o.gas){if(!Array.isArray(o.gas))throw TypeError(".common.Tx.gas: array expected");f.gas=[];for(let t=0;t<o.gas.length;++t){if(typeof o.gas[t]!=="object")throw TypeError(".common.Tx.gas: object expected");f.gas[t]=F.common.Coin.fromObject(o.gas[t])}}if(o.memo!=null)f.memo=String(o.memo);return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.arrays||f.defaults)t.coins=[],t.gas=[];if(f.defaults)t.id="",t.chain="",t.fromAddress="",t.toAddress="",t.memo="";if(o.id!=null&&o.hasOwnProperty("id"))t.id=o.id;if(o.chain!=null&&o.hasOwnProperty("chain"))t.chain=o.chain;if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress"))t.fromAddress=o.fromAddress;if(o.toAddress!=null&&o.hasOwnProperty("toAddress"))t.toAddress=o.toAddress;if(o.coins?.length){t.coins=[];for(let C=0;C<o.coins.length;++C)t.coins[C]=F.common.Coin.toObject(o.coins[C],f)}if(o.gas?.length){t.gas=[];for(let C=0;C<o.gas.length;++C)t.gas[C]=F.common.Coin.toObject(o.gas[C],f)}if(o.memo!=null&&o.hasOwnProperty("memo"))t.memo=o.memo;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Fee=(()=>{function y(T){if(this.coins=[],T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.coins=u.emptyArray,y.prototype.poolDeduct="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.coins?.length)for(let t=0;t<o.coins.length;++t)F.common.Coin.encode(o.coins[t],f.uint32(10).fork()).ldelim();if(o.poolDeduct!=null&&Object.hasOwnProperty.call(o,"poolDeduct"))f.uint32(18).string(o.poolDeduct);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.common.Fee;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:if(!C.coins?.length)C.coins=[];C.coins.push(F.common.Coin.decode(o,o.uint32()));break;case 2:C.poolDeduct=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let t=F.common.Coin.verify(o.coins[f]);if(t)return"coins."+t}}if(o.poolDeduct!=null&&o.hasOwnProperty("poolDeduct")){if(!u.isString(o.poolDeduct))return"poolDeduct: string expected"}return null},y.fromObject=function(o){if(o instanceof F.common.Fee)return o;let f=new F.common.Fee;if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".common.Fee.coins: array expected");f.coins=[];for(let t=0;t<o.coins.length;++t){if(typeof o.coins[t]!=="object")throw TypeError(".common.Fee.coins: object expected");f.coins[t]=F.common.Coin.fromObject(o.coins[t])}}if(o.poolDeduct!=null)f.poolDeduct=String(o.poolDeduct);return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.arrays||f.defaults)t.coins=[];if(f.defaults)t.poolDeduct="";if(o.coins?.length){t.coins=[];for(let C=0;C<o.coins.length;++C)t.coins[C]=F.common.Coin.toObject(o.coins[C],f)}if(o.poolDeduct!=null&&o.hasOwnProperty("poolDeduct"))t.poolDeduct=o.poolDeduct;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.ProtoUint=(()=>{function y(T){if(T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.value="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.value!=null&&Object.hasOwnProperty.call(o,"value"))f.uint32(10).string(o.value);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.common.ProtoUint;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.value=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.value!=null&&o.hasOwnProperty("value")){if(!u.isString(o.value))return"value: string expected"}return null},y.fromObject=function(o){if(o instanceof F.common.ProtoUint)return o;let f=new F.common.ProtoUint;if(o.value!=null)f.value=String(o.value);return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.defaults)t.value="";if(o.value!=null&&o.hasOwnProperty("value"))t.value=o.value;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n})();F.types=(()=>{let n={};return n.MsgDeposit=(()=>{function y(T){if(this.coins=[],T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.coins=u.emptyArray,y.prototype.memo="",y.prototype.signer=u.newBuffer([]),y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.coins?.length)for(let t=0;t<o.coins.length;++t)F.common.Coin.encode(o.coins[t],f.uint32(10).fork()).ldelim();if(o.memo!=null&&Object.hasOwnProperty.call(o,"memo"))f.uint32(18).string(o.memo);if(o.signer!=null&&Object.hasOwnProperty.call(o,"signer"))f.uint32(26).bytes(o.signer);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.types.MsgDeposit;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:if(!C.coins?.length)C.coins=[];C.coins.push(F.common.Coin.decode(o,o.uint32()));break;case 2:C.memo=o.string();break;case 3:C.signer=o.bytes();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let t=F.common.Coin.verify(o.coins[f]);if(t)return"coins."+t}}if(o.memo!=null&&o.hasOwnProperty("memo")){if(!u.isString(o.memo))return"memo: string expected"}if(o.signer!=null&&o.hasOwnProperty("signer")){if(!(o.signer&&typeof o.signer.length==="number"||u.isString(o.signer)))return"signer: buffer expected"}return null},y.fromObject=function(o){if(o instanceof F.types.MsgDeposit)return o;let f=new F.types.MsgDeposit;if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".types.MsgDeposit.coins: array expected");f.coins=[];for(let t=0;t<o.coins.length;++t){if(typeof o.coins[t]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");f.coins[t]=F.common.Coin.fromObject(o.coins[t])}}if(o.memo!=null)f.memo=String(o.memo);if(o.signer!=null){if(typeof o.signer==="string")u.base64.decode(o.signer,f.signer=u.newBuffer(u.base64.length(o.signer)),0);else if(o.signer.length)f.signer=o.signer}return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.arrays||f.defaults)t.coins=[];if(f.defaults){if(t.memo="",f.bytes===String)t.signer="";else if(t.signer=[],f.bytes!==Array)t.signer=u.newBuffer(t.signer)}if(o.coins?.length){t.coins=[];for(let C=0;C<o.coins.length;++C)t.coins[C]=F.common.Coin.toObject(o.coins[C],f)}if(o.memo!=null&&o.hasOwnProperty("memo"))t.memo=o.memo;if(o.signer!=null&&o.hasOwnProperty("signer"))t.signer=f.bytes===String?u.base64.encode(o.signer,0,o.signer.length):f.bytes===Array?Array.prototype.slice.call(o.signer):o.signer;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.MsgSend=(()=>{function y(T){if(this.amount=[],T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.fromAddress=u.newBuffer([]),y.prototype.toAddress=u.newBuffer([]),y.prototype.amount=u.emptyArray,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.fromAddress!=null&&Object.hasOwnProperty.call(o,"fromAddress"))f.uint32(10).bytes(o.fromAddress);if(o.toAddress!=null&&Object.hasOwnProperty.call(o,"toAddress"))f.uint32(18).bytes(o.toAddress);if(o.amount?.length)for(let t=0;t<o.amount.length;++t)F.cosmos.base.v1beta1.Coin.encode(o.amount[t],f.uint32(26).fork()).ldelim();return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.types.MsgSend;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.fromAddress=o.bytes();break;case 2:C.toAddress=o.bytes();break;case 3:if(!C.amount?.length)C.amount=[];C.amount.push(F.cosmos.base.v1beta1.Coin.decode(o,o.uint32()));break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress")){if(!(o.fromAddress&&typeof o.fromAddress.length==="number"||u.isString(o.fromAddress)))return"fromAddress: buffer expected"}if(o.toAddress!=null&&o.hasOwnProperty("toAddress")){if(!(o.toAddress&&typeof o.toAddress.length==="number"||u.isString(o.toAddress)))return"toAddress: buffer expected"}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!Array.isArray(o.amount))return"amount: array expected";for(let f=0;f<o.amount.length;++f){let t=F.cosmos.base.v1beta1.Coin.verify(o.amount[f]);if(t)return"amount."+t}}return null},y.fromObject=function(o){if(o instanceof F.types.MsgSend)return o;let f=new F.types.MsgSend;if(o.fromAddress!=null){if(typeof o.fromAddress==="string")u.base64.decode(o.fromAddress,f.fromAddress=u.newBuffer(u.base64.length(o.fromAddress)),0);else if(o.fromAddress.length)f.fromAddress=o.fromAddress}if(o.toAddress!=null){if(typeof o.toAddress==="string")u.base64.decode(o.toAddress,f.toAddress=u.newBuffer(u.base64.length(o.toAddress)),0);else if(o.toAddress.length)f.toAddress=o.toAddress}if(o.amount){if(!Array.isArray(o.amount))throw TypeError(".types.MsgSend.amount: array expected");f.amount=[];for(let t=0;t<o.amount.length;++t){if(typeof o.amount[t]!=="object")throw TypeError(".types.MsgSend.amount: object expected");f.amount[t]=F.cosmos.base.v1beta1.Coin.fromObject(o.amount[t])}}return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.arrays||f.defaults)t.amount=[];if(f.defaults){if(f.bytes===String)t.fromAddress="";else if(t.fromAddress=[],f.bytes!==Array)t.fromAddress=u.newBuffer(t.fromAddress);if(f.bytes===String)t.toAddress="";else if(t.toAddress=[],f.bytes!==Array)t.toAddress=u.newBuffer(t.toAddress)}if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress"))t.fromAddress=f.bytes===String?u.base64.encode(o.fromAddress,0,o.fromAddress.length):f.bytes===Array?Array.prototype.slice.call(o.fromAddress):o.fromAddress;if(o.toAddress!=null&&o.hasOwnProperty("toAddress"))t.toAddress=f.bytes===String?u.base64.encode(o.toAddress,0,o.toAddress.length):f.bytes===Array?Array.prototype.slice.call(o.toAddress):o.toAddress;if(o.amount?.length){t.amount=[];for(let C=0;C<o.amount.length;++C)t.amount[C]=F.cosmos.base.v1beta1.Coin.toObject(o.amount[C],f)}return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n})();F.cosmos=(()=>{let n={};return n.base=(()=>{let y={};return y.v1beta1=(()=>{let T={};return T.Coin=(()=>{function o(f){if(f){for(let t=Object.keys(f),C=0;C<t.length;++C)if(f[t[C]]!=null)this[t[C]]=f[t[C]]}}return o.prototype.denom="",o.prototype.amount="",o.create=function(t){return new o(t)},o.encode=function(t,C){if(!C)C=Mn.create();if(t.denom!=null&&Object.hasOwnProperty.call(t,"denom"))C.uint32(10).string(t.denom);if(t.amount!=null&&Object.hasOwnProperty.call(t,"amount"))C.uint32(18).string(t.amount);return C},o.encodeDelimited=function(t,C){return this.encode(t,C).ldelim()},o.decode=function(t,C){if(!(t instanceof P))t=P.create(t);let H=C===void 0?t.len:t.pos+C,A=new F.cosmos.base.v1beta1.Coin;while(t.pos<H){let _=t.uint32();switch(_>>>3){case 1:A.denom=t.string();break;case 2:A.amount=t.string();break;default:t.skipType(_&7);break}}return A},o.decodeDelimited=function(t){if(!(t instanceof P))t=new P(t);return this.decode(t,t.uint32())},o.verify=function(t){if(typeof t!=="object"||t===null)return"object expected";if(t.denom!=null&&t.hasOwnProperty("denom")){if(!u.isString(t.denom))return"denom: string expected"}if(t.amount!=null&&t.hasOwnProperty("amount")){if(!u.isString(t.amount))return"amount: string expected"}return null},o.fromObject=function(t){if(t instanceof F.cosmos.base.v1beta1.Coin)return t;let C=new F.cosmos.base.v1beta1.Coin;if(t.denom!=null)C.denom=String(t.denom);if(t.amount!=null)C.amount=String(t.amount);return C},o.toObject=function(t,C){if(!C)C={};let H={};if(C.defaults)H.denom="",H.amount="";if(t.denom!=null&&t.hasOwnProperty("denom"))H.denom=t.denom;if(t.amount!=null&&t.hasOwnProperty("amount"))H.amount=t.amount;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),T.DecCoin=(()=>{function o(f){if(f){for(let t=Object.keys(f),C=0;C<t.length;++C)if(f[t[C]]!=null)this[t[C]]=f[t[C]]}}return o.prototype.denom="",o.prototype.amount="",o.create=function(t){return new o(t)},o.encode=function(t,C){if(!C)C=Mn.create();if(t.denom!=null&&Object.hasOwnProperty.call(t,"denom"))C.uint32(10).string(t.denom);if(t.amount!=null&&Object.hasOwnProperty.call(t,"amount"))C.uint32(18).string(t.amount);return C},o.encodeDelimited=function(t,C){return this.encode(t,C).ldelim()},o.decode=function(t,C){if(!(t instanceof P))t=P.create(t);let H=C===void 0?t.len:t.pos+C,A=new F.cosmos.base.v1beta1.DecCoin;while(t.pos<H){let _=t.uint32();switch(_>>>3){case 1:A.denom=t.string();break;case 2:A.amount=t.string();break;default:t.skipType(_&7);break}}return A},o.decodeDelimited=function(t){if(!(t instanceof P))t=new P(t);return this.decode(t,t.uint32())},o.verify=function(t){if(typeof t!=="object"||t===null)return"object expected";if(t.denom!=null&&t.hasOwnProperty("denom")){if(!u.isString(t.denom))return"denom: string expected"}if(t.amount!=null&&t.hasOwnProperty("amount")){if(!u.isString(t.amount))return"amount: string expected"}return null},o.fromObject=function(t){if(t instanceof F.cosmos.base.v1beta1.DecCoin)return t;let C=new F.cosmos.base.v1beta1.DecCoin;if(t.denom!=null)C.denom=String(t.denom);if(t.amount!=null)C.amount=String(t.amount);return C},o.toObject=function(t,C){if(!C)C={};let H={};if(C.defaults)H.denom="",H.amount="";if(t.denom!=null&&t.hasOwnProperty("denom"))H.denom=t.denom;if(t.amount!=null&&t.hasOwnProperty("amount"))H.amount=t.amount;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),T.IntProto=(()=>{function o(f){if(f){for(let t=Object.keys(f),C=0;C<t.length;++C)if(f[t[C]]!=null)this[t[C]]=f[t[C]]}}return o.prototype.int="",o.create=function(t){return new o(t)},o.encode=function(t,C){if(!C)C=Mn.create();if(t.int!=null&&Object.hasOwnProperty.call(t,"int"))C.uint32(10).string(t.int);return C},o.encodeDelimited=function(t,C){return this.encode(t,C).ldelim()},o.decode=function(t,C){if(!(t instanceof P))t=P.create(t);let H=C===void 0?t.len:t.pos+C,A=new F.cosmos.base.v1beta1.IntProto;while(t.pos<H){let _=t.uint32();switch(_>>>3){case 1:A.int=t.string();break;default:t.skipType(_&7);break}}return A},o.decodeDelimited=function(t){if(!(t instanceof P))t=new P(t);return this.decode(t,t.uint32())},o.verify=function(t){if(typeof t!=="object"||t===null)return"object expected";if(t.int!=null&&t.hasOwnProperty("int")){if(!u.isString(t.int))return"int: string expected"}return null},o.fromObject=function(t){if(t instanceof F.cosmos.base.v1beta1.IntProto)return t;let C=new F.cosmos.base.v1beta1.IntProto;if(t.int!=null)C.int=String(t.int);return C},o.toObject=function(t,C){if(!C)C={};let H={};if(C.defaults)H.int="";if(t.int!=null&&t.hasOwnProperty("int"))H.int=t.int;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),T.DecProto=(()=>{function o(f){if(f){for(let t=Object.keys(f),C=0;C<t.length;++C)if(f[t[C]]!=null)this[t[C]]=f[t[C]]}}return o.prototype.dec="",o.create=function(t){return new o(t)},o.encode=function(t,C){if(!C)C=Mn.create();if(t.dec!=null&&Object.hasOwnProperty.call(t,"dec"))C.uint32(10).string(t.dec);return C},o.encodeDelimited=function(t,C){return this.encode(t,C).ldelim()},o.decode=function(t,C){if(!(t instanceof P))t=P.create(t);let H=C===void 0?t.len:t.pos+C,A=new F.cosmos.base.v1beta1.DecProto;while(t.pos<H){let _=t.uint32();switch(_>>>3){case 1:A.dec=t.string();break;default:t.skipType(_&7);break}}return A},o.decodeDelimited=function(t){if(!(t instanceof P))t=new P(t);return this.decode(t,t.uint32())},o.verify=function(t){if(typeof t!=="object"||t===null)return"object expected";if(t.dec!=null&&t.hasOwnProperty("dec")){if(!u.isString(t.dec))return"dec: string expected"}return null},o.fromObject=function(t){if(t instanceof F.cosmos.base.v1beta1.DecProto)return t;let C=new F.cosmos.base.v1beta1.DecProto;if(t.dec!=null)C.dec=String(t.dec);return C},o.toObject=function(t,C){if(!C)C={};let H={};if(C.defaults)H.dec="";if(t.dec!=null&&t.hasOwnProperty("dec"))H.dec=t.dec;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),T})(),y})(),n})()});import{Chain as u_}from"@swapkit/helpers";async function Go(){let{$root:n}=await Promise.resolve().then(() => (JC(),ZC)),y=await import("@cosmjs/proto-signing"),T=y.Registry??y.default?.Registry,o=await import("@cosmjs/stargate"),f=o.defaultRegistryTypes??o.default?.defaultRegistryTypes;return new T([...f,["/types.MsgSend",n.types.MsgSend],["/types.MsgDeposit",n.types.MsgDeposit]])}async function dn(n){let y=await import("@cosmjs/stargate"),T=y.AminoTypes??y.default?.AminoTypes,o=n===u_.THORChain?"thorchain":"mayachain";return new T({"/types.MsgDeposit":{aminoType:`${o}/MsgDeposit`,fromAmino:({signer:f,...t})=>({...t,signer:wy(f)}),toAmino:({signer:f,...t})=>({...t,signer:qy(f)})},"/types.MsgSend":{aminoType:`${o}/MsgSend`,fromAmino:({from_address:f,to_address:t,...C})=>({...C,fromAddress:wy(f),toAddress:wy(t)}),toAmino:({fromAddress:f,toAddress:t,...C})=>({...C,from_address:qy(f),to_address:qy(t)})}})}var mT=p(()=>{VT()});import{AssetValue as P_,Chain as qf,getChainConfig as YC,getRPCUrl as NC,SwapKitError as I_}from"@swapkit/helpers";function dT(n){let{assetValue:y,recipient:T,memo:o,sender:f,asSignable:t,asAminoMessage:C}=n;if(T)return DC({asAminoMessage:C,asSignable:t,assetValue:y,memo:o,recipient:T,sender:f});return OC({asAminoMessage:C,asSignable:t,assetValue:y,memo:o,sender:f})}async function DC({sender:n,recipient:y,assetValue:T,memo:o="",asSignable:f=!0,asAminoMessage:t=!1,sequence:C,accountNumber:H}){let A=T.chain,_=await NC(A),G=await zC({rpcUrl:_,sender:n}),{chainId:M}=YC(A),w=rT({assetValue:T,recipient:y,sender:n}),X=f?await an(t?w:sn(w),A):w;return{accountNumber:H||G.accountNumber,chainId:M,fee:vn(A),memo:o,msgs:[X],sequence:C||G.sequence}}async function OC({sender:n,assetValue:y,memo:T="",asSignable:o=!0,asAminoMessage:f=!1,sequence:t,accountNumber:C}){let H=y.chain,A=await NC(H),_=await zC({rpcUrl:A,sender:n}),{chainId:G}=YC(H),M=gT({assetValue:y,memo:T,sender:n}),w=o?await an(f?M:sn(M),H):M;return{accountNumber:C||_.accountNumber,chainId:G,fee:vn(H),memo:T,msgs:[w],sequence:t||_.sequence}}function sn(n){if(n.type==="thorchain/MsgSend"||n.type==="mayachain/MsgSend")return n;return{...n,value:{...n.value,coins:n.value.coins.map((y)=>{let T=P_.from({asset:y.asset}),o=(T.isSynthetic?T.symbol.split("/")?.[1]:T.symbol)?.toUpperCase(),f=(T.isSynthetic?T.symbol.split("/")?.[0]:T.chain)?.toUpperCase();return{...y,asset:{chain:f,symbol:o,synth:T.isSynthetic,ticker:T.ticker}}})}}}async function Xy({chain:n,memo:y,msgs:T}){let o=await Go(),f=await dn(n),t={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:y,messages:T.map((C)=>f.fromAmino(C))}};return o.encode(t)}var $_,E_,rT=({sender:n,recipient:y,assetValue:T})=>{return{type:`${T.chain===qf.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:T.getBaseValue("string"),denom:gn(T.symbol,!0)}],from_address:n,to_address:y}}},gT=({sender:n,assetValue:y,memo:T=""})=>{return{type:`${y.chain===qf.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:y.getBaseValue("string"),asset:Gy(y)}],memo:T,signer:n}}},Gf=({sender:n,recipient:y,assetValue:T,memo:o})=>{return!y?gT({assetValue:T,memo:o,sender:n}):rT({assetValue:T,recipient:y,sender:n})},an=async(n,y)=>{return(await dn(y)).fromAmino(n)},zC=async({rpcUrl:n,sender:y})=>{let o=await(await Vn(n)).getAccount(y);if(!o)throw new I_("toolbox_cosmos_account_not_found",{sender:y});return o};var RC=p(()=>{ly();mT();$_=vn(qf.THORChain).gas,E_=vn(qf.Maya).gas});var xC=()=>{};var FC=p(()=>{xC()});var aT=p(()=>{VT();RC();mT();FC()});import{stringToPath as b_}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as v_}from"@cosmjs/proto-signing";import{base64 as nt,bech32 as sT}from"@scure/base";import{AssetValue as ot,applyFeeMultiplier as pC,Chain as Tn,CosmosChainPrefixes as $C,DerivationPath as V_,derivationPathToString as SC,FeeOption as yt,getChainConfig as j_,getRPCUrl as Wy,NetworkDerivationPath as K_,SwapKitError as xo,SwapKitNumber as eT,updateDerivationPath as c_}from"@swapkit/helpers";import{SwapKitApi as EC}from"@swapkit/helpers/api";import{match as i_,P as kC}from"ts-pattern";async function Tt(n,y){try{let o=(await EC.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}async function ft({phrase:n,prefix:y,...T}){let o="derivationPath"in T?T.derivationPath:`${V_[T.chain]}/${T.index}`;return await v_.fromMnemonic(n,{hdPaths:[b_(o)],prefix:y})}async function h_({privateKey:n,prefix:y}){let T=await import("@cosmjs/proto-signing");return(T.DirectSecp256k1Wallet??T.default?.DirectSecp256k1Wallet).fromKey(n,y)}function bC(n){return async function({signature:T,message:o,address:f}){let t=await n(f);if(!t?.pubkey)throw new xo("toolbox_cosmos_verify_signature_no_pubkey");let C=await import("@cosmjs/crypto"),H=C.Secp256k1Signature??C.default?.Secp256k1Signature,A=C.Secp256k1??C.default?.Secp256k1,_=H.fromFixedLength(nt.decode(T));return A.verifySignature(_,nt.decode(o),t.pubkey.value)}}function By({chain:n,...y}){let T=$C[n],o="index"in y?y.index||0:0,f=SC("derivationPath"in y&&y.derivationPath?y.derivationPath:c_(K_[n],{index:o})),t;async function C(){if(t)return t;return t=await i_(y).with({phrase:kC.string},({phrase:X})=>ft({derivationPath:f,phrase:X,prefix:T})).with({signer:kC.any},({signer:X})=>X).otherwise(()=>{return}),t}async function H(X){let W=await Wy(n);return(await Vn(W)).getAccount(X)}async function A(){let X=await C(),[W]=await X?.getAccounts()||[];return W?.address}async function _(){let X=await C(),[W]=await X?.getAccounts()||[];if(!W?.pubkey)throw new xo("toolbox_cosmos_signer_not_defined");return nt.encode(W?.pubkey)}async function G(X){let W=await C(),l=await A(),Z=await Wy(n);if(!(W&&l))throw new xo("toolbox_cosmos_signer_not_defined");return await(await qo(Z,W)).sign(l,X.msgs,X.fee,X.memo,{accountNumber:X.accountNumber,chainId:X.chainId,sequence:X.sequence})}async function M(X){let W=await C(),l=await A(),Z=await Wy(n);if(!(W&&l))throw new xo("toolbox_cosmos_signer_not_defined");let L=await(await qo(Z,W)).signAndBroadcast(l,X.msgs,X.fee,X.memo);if(L.code!==0)throw new xo("core_swap_transaction_error",{code:L.code,message:L.rawLog});return L.transactionHash}async function w({recipient:X,assetValue:W,memo:l="",feeRate:Z,feeOptionKey:z=yt.Fast}){let L=await C(),N=await A();if(!(L&&N))throw new xo("toolbox_cosmos_signer_not_defined");let J=await Wy(n),U=ot.from({chain:n}),B=Gy(U),q=Z||g_((await PC(n,uC[n]))[z],B),Y=await qo(J,L),D=gn(W.symbol),Q=[{amount:W.getBaseValue("string"),denom:D}],{transactionHash:O}=await Y.sendTokens(N,X,Q,q,l);return O}return{createPrivateKeyFromPhrase:a_(f),createTransaction:iT,fetchFeeRateFromSwapKit:Tt,getAccount:H,getAddress:A,getBalance:async(X,W)=>{let l=await IC(n)(X),Z=await Promise.all(l.filter(({denom:z})=>z&&!z.includes("IBC/")&&!([Tn.THORChain,Tn.Maya].includes(n)&&z.split("-").length>2)).map(({denom:z,amount:L})=>{let N=[Tn.THORChain,Tn.Maya].includes(n)&&(z.includes("/")||z.includes("˜"))?`${n}.${z}`:z;return hT(N,L)}));if(Z.length===0)return[ot.from({chain:n})];return Z},getBalanceAsDenoms:IC(n),getFees:()=>PC(n,uC[n]),getPubKey:_,getSignerFromPhrase:({phrase:X,derivationPath:W})=>ft({derivationPath:SC(W),index:o,phrase:X,prefix:T}),getSignerFromPrivateKey:async(X)=>{let W=await import("@cosmjs/proto-signing");return(W.DirectSecp256k1Wallet??W.default?.DirectSecp256k1Wallet).fromKey(X,T)},signAndBroadcastTransaction:M,signTransaction:G,transfer:w,validateAddress:vC(n),verifySignature:bC(H)}}async function m_(n,y){try{let o=(await EC.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}function r_({assetValue:{chain:n}}){return ot.from({chain:n,value:d_(n)})}async function PC(n,y){let{chainId:T,baseDecimal:o}=j_(n),f=await Tt(T,y);return{average:eT.fromBigInt(BigInt(f),o),fast:eT.fromBigInt(BigInt(pC(f,yt.Fast,!0)),o),fastest:eT.fromBigInt(BigInt(pC(f,yt.Fastest,!0)),o)}}function g_(n,y){return{amount:[{amount:n.getBaseValue("string"),denom:y}],gas:"200000"}}function d_(n){return{[Tn.Cosmos]:0.007,[Tn.Kujira]:0.02,[Tn.Noble]:0.01,[Tn.THORChain]:0.02,[Tn.Maya]:0.02,[Tn.Harbor]:0.02}[n]||0}function vC(n){let y=$C[n];return function(o){if(!o.startsWith(y))return!1;try{let{prefix:f,words:t}=sT.decode(o);return sT.encode(f,t)===o.toLocaleLowerCase()}catch{return!1}}}function IC(n){return async function(T){let o=await Wy(n);return(await(await Vn(o)).getAllBalances(T)).map((H)=>({...H,denom:H.denom.includes("/")?H.denom.toUpperCase():H.denom}))}}function a_(n){return async function(T){let o=await import("@cosmjs/crypto"),f=o.stringToPath??o.default?.stringToPath,t=o.Slip10Curve??o.default?.Slip10Curve,C=o.Slip10??o.default?.Slip10,H=o.EnglishMnemonic??o.default?.EnglishMnemonic,A=o.Bip39??o.default?.Bip39,_=new H(T),G=await A.mnemonicToSeed(_),{privkey:M}=C.derivePath(t.Secp256k1,G,f(n));return M}}var uC;var lf=p(()=>{ly();uC={[Tn.Cosmos]:1000,[Tn.Kujira]:1000,[Tn.Noble]:1000,[Tn.THORChain]:5000000,[Tn.Maya]:5000000,[Tn.Harbor]:5000000}});import{base64 as lo}from"@scure/base";import{Chain as s_,CosmosChainPrefixes as e_,derivationPathToString as n5,FeeOption as tt,getChainConfig as o5,getRPCUrl as iC,NetworkDerivationPath as y5,RequestClient as f5,SKConfig as VC,SwapKitError as Fo,SwapKitNumber as jC,updateDerivationPath as T5}from"@swapkit/helpers";import{match as KC,P as cC}from"ts-pattern";function t5({prefix:n,derivationPath:y}){return async function(o,f=0){let t=await import("@cosmjs/amino"),C=t.Secp256k1HdWallet??t.default?.Secp256k1HdWallet,H=await import("@cosmjs/crypto"),A=H.stringToPath??H.default?.stringToPath;return C.fromMnemonic(o,{hdPaths:[A(`${y}/${f}`)],prefix:n})}}function C5(n){return lo.encode(n)}function H5(n){return async function({wallet:T,tx:o}){let{msgs:f,accountNumber:t,sequence:C,chainId:H,fee:A,memo:_}=typeof o==="string"?JSON.parse(o):o,G=(await T.getAccounts())?.[0]?.address||"",M=await dn(n),w=await Go(),X=await cT(T,{aminoTypes:M,registry:w}),W=[];for(let z of f){let L=await an(z,n);W.push(L)}let{signatures:[l]}=await X.sign(G,W,A,_,{accountNumber:t,chainId:H,sequence:C});return{bodyBytes:await Xy({chain:n,memo:_,msgs:f.map(sn)}),signature:C5(l)}}}function A5({prefix:n,chain:y}){return async function(o,f,t,C,H){let A=await iC(y),{encodeSecp256k1Pubkey:_,pubkeyToAddress:G}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:M}=(await import("@cosmjs/stargate")).default,{sequence:w,fee:X}=JSON.parse(o),W=await hC(t,C),l=f.map((L)=>[G(_(lo.decode(L.pubKey)),n),lo.decode(L.signature)]),Z=await Vn(A),{transactionHash:z}=await Z.broadcastTx(M(W,w,X,H,new Map(l)));return z}}async function hC(n,y,T=!0){let{createMultisigThresholdPubkey:o,encodeSecp256k1Pubkey:f}=(await import("@cosmjs/amino")).default;return o(n.map((t)=>f(lo.decode(t))),y,T)}function _5(n){return lo.decode(n)}async function U5({privateKey:n,message:y}){let{Secp256k1:T}=(await import("@cosmjs/crypto")).default,o=await T.createSignature(lo.decode(y),n);return lo.encode(Buffer.concat([o.r(32),o.s(32)]))}function Ct({chain:n,...y}){let{isStagenet:T}=VC.get("envs"),o=VC.get("thornodeUrls"),f=n===s_.Maya,t=KC({isMayachain:f,isStagenet:T}).with({isMayachain:!0},({isStagenet:L})=>L?o.MAYA_STAGENET:o.MAYA).otherwise(({isStagenet:L})=>L?o.THOR_STAGENET:o.THOR),C=`${T?"s":""}${e_[n]}`,H="index"in y?y.index||0:0,A="derivationPath"in y&&y.derivationPath?y.derivationPath:T5(y5[n],{index:H}),_=By({chain:n,...y}),G=vn(n),M;function w(){return M??=KC(y).with({phrase:cC.string},({phrase:L})=>_.getSignerFromPhrase({derivationPath:A,phrase:L})).with({signer:cC.any},({signer:L})=>Promise.resolve(L)).otherwise(()=>Promise.resolve(void 0)),M}async function X(){let L=await iC(n),N=await w();if(!N)throw new Fo("toolbox_cosmos_no_signer");let J=await Go(),U=await dn(n),B=await qo(L,N,{aminoTypes:U,registry:J});return{signer:N,signingClient:B}}async function W({fee:L,memo:N,msgs:J}){let{signer:U,signingClient:B}=await X(),q=(await U.getAccounts())?.[0]?.address;if(!q)throw new Fo("toolbox_cosmos_signer_not_defined");let Y=await B.signAndBroadcast(q,J,L,N);if(Y.code!==0)throw new Fo("core_swap_transaction_error",{code:Y.code,message:Y.rawLog});return Y.transactionHash}async function l(){let L,N=`${t}/${f?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:J}}=await f5.get(N);if(!J||Number.isNaN(J)||J<0)throw new Fo("toolbox_cosmos_invalid_fee",{nativeFee:J.toString()});L=new jC(J)}catch{L=new jC({decimal:o5(n).baseDecimal,value:f?1:0.02})}return{[tt.Average]:L,[tt.Fast]:L,[tt.Fastest]:L}}async function Z({assetValue:L,memo:N="",recipient:J}){let{TxRaw:U}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:B,signingClient:q}=await X(),Y=(await B.getAccounts())?.[0]?.address;if(!Y)throw new Fo("toolbox_cosmos_no_signer");let D="signAmino"in B,Q=Gf({assetValue:L,memo:N,recipient:J,sender:Y});if(D){let S=await an(Q,n),{signatures:k,authInfoBytes:I}=await q.sign(Y,[S],G,N),b=U.encode({authInfoBytes:I,bodyBytes:await Xy({chain:n,memo:N,msgs:[Q].map(sn)}),signatures:k}).finish();return(await q.broadcastTx(b)).transactionHash}let O=sn(Q),R=await an(O,n);return W({fee:G,memo:N,msgs:[R]})}async function z(L){let{signer:N,signingClient:J}=await X(),U=(await N.getAccounts())?.[0]?.address;if(!U)throw new Fo("toolbox_cosmos_signer_not_defined");return J.sign(U,L.msgs,L.fee,L.memo,{accountNumber:L.accountNumber,chainId:L.chainId,sequence:L.sequence})}return{..._,broadcastMultisigTx:A5({chain:n,prefix:C}),buildAminoMsg:Gf,buildEncodedTxBody:Xy,convertToSignable:an,createDefaultAminoTypes:()=>dn(n),createDefaultRegistry:Go,createMultisig:hC,createTransaction:dT,deposit:Z,getFees:l,importSignature:_5,parseAminoMessageForDirectSigning:sn,pubkeyToAddress:async(L)=>{let{pubkeyToAddress:N}=(await import("@cosmjs/amino")).default;return N(L,C)},secp256k1HdWalletFromMnemonic:t5({derivationPath:n5(A),prefix:C}),signAndBroadcastTransaction:W,signMultisigTx:H5(n),signTransaction:z,signWithPrivateKey:U5,transfer:Z}}var Ht=p(()=>{aT();ly();lf()});import{Chain as My,SwapKitError as w5}from"@swapkit/helpers";var q5=(n,y)=>{switch(n){case My.Cosmos:case My.Kujira:case My.Noble:return By({chain:n,...y});case My.Maya:case My.THORChain:return Ct({chain:n,...y});default:throw new w5("toolbox_cosmos_not_supported",{chain:n})}};var mC=p(()=>{lf();Ht();lf();Ht()});var Xf={};nn(Xf,{verifySignature:()=>bC,transferMsgAmino:()=>rT,toBase64:()=>x_,parseAminoMessageForDirectSigning:()=>sn,getSignerFromPrivateKey:()=>h_,getSignerFromPhrase:()=>ft,getMsgSendDenom:()=>gn,getFeeRateFromSwapKit:()=>m_,getDenomWithChain:()=>Gy,getDefaultChainFee:()=>vn,getCosmosToolbox:()=>q5,getCosmosAddressValidator:()=>vC,getAssetFromDenom:()=>hT,fromBase64:()=>F_,fetchFeeRateFromSwapKit:()=>Tt,estimateTransactionFee:()=>r_,depositMsgAmino:()=>gT,createTransaction:()=>dT,createThorchainToolbox:()=>Ct,createStargateClient:()=>Vn,createSigningStargateClient:()=>qo,createOfflineStargateClient:()=>cT,createDefaultRegistry:()=>Go,createDefaultAminoTypes:()=>dn,createCosmosToolbox:()=>By,cosmosCreateTransaction:()=>iT,convertToSignable:()=>an,buildTransferTx:()=>DC,buildEncodedTxBody:()=>Xy,buildDepositTx:()=>OC,buildAminoMsg:()=>Gf,bech32ToBase64:()=>wy,base64ToBech32:()=>qy,YUM_KUJIRA_FACTORY_DENOM:()=>BC,USK_KUJIRA_FACTORY_DENOM:()=>KT,THORCHAIN_GAS_VALUE:()=>$_,MAYA_GAS_VALUE:()=>E_,DEFAULT_NOBLE_FEE_MAINNET:()=>QC,DEFAULT_KUJI_FEE_MAINNET:()=>LC,DEFAULT_COSMOS_FEE_MAINNET:()=>MC});var Wf=p(()=>{aT();mC();ly()});function G5({builder:n,grouping:y="na",orders:T}){return{builder:n,grouping:y,orders:T,type:"order"}}function l5({cancels:n}){return{cancels:n,type:"cancel"}}function X5({cancels:n}){return{cancels:n,type:"cancelByCloid"}}function W5({oid:n,order:y}){return{oid:n,order:y,type:"modify"}}function B5({modifies:n}){return{modifies:n,type:"batchModify"}}function M5({asset:n,isCross:y,leverage:T}){return{asset:n,isCross:y,leverage:T,type:"updateLeverage"}}function L5({asset:n,isBuy:y,ntli:T}){return{asset:n,isBuy:y,ntli:T,type:"updateIsolatedMargin"}}function Q5({asset:n,leverage:y}){return{asset:n,leverage:y,type:"topUpIsolatedOnlyMargin"}}function Z5({time:n}){return{time:n,type:"scheduleCancel"}}function J5({amount:n,hyperliquidChain:y,nonce:T,signatureChainId:o,toPerp:f}){return{amount:n,hyperliquidChain:y,nonce:T,signatureChainId:o,toPerp:f,type:"usdClassTransfer"}}function Y5({amount:n,destination:y,destinationDex:T,fromSubAccount:o,hyperliquidChain:f,nonce:t,signatureChainId:C,sourceDex:H,token:A}){return{amount:n,destination:y,destinationDex:T,fromSubAccount:o,hyperliquidChain:f,nonce:t,signatureChainId:C,sourceDex:H,token:A,type:"sendAsset"}}function N5({agentAddress:n,agentName:y,hyperliquidChain:T,nonce:o,signatureChainId:f}){return{agentAddress:n,agentName:y,hyperliquidChain:T,nonce:o,signatureChainId:f,type:"approveAgent"}}function z5({builder:n,hyperliquidChain:y,maxFeeRate:T,nonce:o,signatureChainId:f}){return{builder:n,hyperliquidChain:y,maxFeeRate:T,nonce:o,signatureChainId:f,type:"approveBuilderFee"}}function D5({hyperliquidChain:n,isUndelegate:y,nonce:T,signatureChainId:o,validator:f,wei:t}){return{hyperliquidChain:n,isUndelegate:y,nonce:T,signatureChainId:o,type:"tokenDelegate",validator:f,wei:t}}import{SwapKitError as At}from"@swapkit/helpers";import{keccak256 as O5,Signature as R5}from"ethers";function ln(...n){let y=n.reduce((f,t)=>f+t.length,0),T=new Uint8Array(y),o=0;for(let f of n)T.set(f,o),o+=f.length;return T}function u5(n,y,T){if(T<y)return new Uint8Array([n+T]);if(T<=255)return new Uint8Array([n+y,T]);if(T<=65535)return new Uint8Array([n+y+1,T>>8,T&255]);return new Uint8Array([n+y+2,T>>>24&255,T>>>16&255,T>>>8&255,T&255])}function en(n,y){let T=new Uint8Array(y),o=n;for(let f=y-1;f>=0;f-=1)T[f]=Number(o&0xffn),o>>=8n;return T}function rC(n){if(n>=0n){if(n<=0x7fn)return new Uint8Array([Number(n)]);if(n<=0xffn)return new Uint8Array([204,Number(n)]);if(n<=0xffffn)return ln(new Uint8Array([205]),en(n,2));if(n<=0xffffffffn)return ln(new Uint8Array([206]),en(n,4));return ln(new Uint8Array([207]),en(n,8))}if(n>=-32n)return new Uint8Array([256+Number(n)]);if(n>=-128n)return new Uint8Array([208,256+Number(n)]);if(n>=-32768n)return ln(new Uint8Array([209]),en(BigInt.asUintN(16,n),2));if(n>=-2147483648n)return ln(new Uint8Array([210]),en(BigInt.asUintN(32,n),4));return ln(new Uint8Array([211]),en(BigInt.asUintN(64,n),8))}function aC(n){let y=k5.encode(n);if(y.length<32)return ln(new Uint8Array([160+y.length]),y);return ln(u5(217,0,y.length),y)}function P5(n){let y=n.map((o)=>_t(o)),T=n.length<16?new Uint8Array([144+n.length]):n.length<=65535?new Uint8Array([220,n.length>>8,n.length&255]):new Uint8Array([221,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return ln(T,...y)}function I5(n){let y=Object.entries(n).filter(([,o])=>typeof o<"u"),T=y.length<16?new Uint8Array([128+y.length]):y.length<=65535?new Uint8Array([222,y.length>>8,y.length&255]):new Uint8Array([223,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return ln(T,...y.flatMap(([o,f])=>[aC(o),_t(f)]))}function _t(n){if(n===null)return new Uint8Array([192]);if(typeof n==="boolean")return new Uint8Array([n?195:194]);if(typeof n==="string")return aC(n);if(typeof n==="number"){if(!Number.isFinite(n)||!Number.isInteger(n))throw new At("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return rC(BigInt(n))}if(typeof n==="bigint")return rC(n);if(n instanceof Uint8Array){let y=n.length<=255?new Uint8Array([196,n.length]):n.length<=65535?new Uint8Array([197,n.length>>8,n.length&255]):new Uint8Array([198,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return ln(y,n)}if(Array.isArray(n))return P5(n);if(typeof n==="object")return I5(n);throw new At("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(n)}`})}function $5(n){let y=n.startsWith("0x")?n.slice(2):n;if(y.length%2!==0||/[^a-fA-F0-9]/u.test(y))throw new At("helpers_invalid_params",{hexValue:n});let T=new Uint8Array(y.length/2);for(let o=0;o<y.length;o+=2)T[o/2]=Number.parseInt(y.slice(o,o+2),16);return T}function sC(n){return{domain:x5,message:{connectionId:n,source:"a"},primaryType:"Agent",types:{Agent:[...F5.Agent]}}}function eC(n){let y=S5[n.type],T=p5[n.type],{type:o,...f}=n;return{domain:{chainId:Number.parseInt(f.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:gC,version:"1"},message:{...f,hyperliquidChain:f.hyperliquidChain||dC},primaryType:y,types:{[y]:T}}}function n1(n){let y=R5.from(n);return{r:y.r,s:y.s,v:y.v}}function o1(n,y,{expiresAfter:T,vaultAddress:o}={}){let f=_t(n),t=en(BigInt(y),8),C=o?ln(new Uint8Array([1]),$5(o.toLowerCase())):new Uint8Array([0]),H=typeof T==="number"?ln(new Uint8Array([0]),en(BigInt(T),8)):new Uint8Array;return O5(ln(f,t,C,H))}function y1(n){let y=n.hyperliquidChain||dC;switch(n.type){case"approveAgent":return{...n,agentAddress:n.agentAddress.toLowerCase(),hyperliquidChain:y};case"approveBuilderFee":return{...n,builder:n.builder.toLowerCase(),hyperliquidChain:y};case"sendAsset":return{...n,destination:n.destination.toLowerCase(),fromSubAccount:n.fromSubAccount.toLowerCase(),hyperliquidChain:y};case"tokenDelegate":return{...n,hyperliquidChain:y,validator:n.validator.toLowerCase()};case"usdClassTransfer":return{...n,hyperliquidChain:y};default:return n}}var gC="0x0000000000000000000000000000000000000000",x5,F5,dC="Mainnet",p5,S5,k5;var f1=p(()=>{x5={chainId:1337,name:"Exchange",verifyingContract:gC,version:"1"},F5={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},p5={approveAgent:[{name:"hyperliquidChain",type:"string"},{name:"agentAddress",type:"address"},{name:"agentName",type:"string"},{name:"nonce",type:"uint64"}],approveBuilderFee:[{name:"hyperliquidChain",type:"string"},{name:"maxFeeRate",type:"string"},{name:"builder",type:"address"},{name:"nonce",type:"uint64"}],sendAsset:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"sourceDex",type:"string"},{name:"destinationDex",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"fromSubAccount",type:"string"},{name:"nonce",type:"uint64"}],tokenDelegate:[{name:"hyperliquidChain",type:"string"},{name:"validator",type:"address"},{name:"wei",type:"uint64"},{name:"isUndelegate",type:"bool"},{name:"nonce",type:"uint64"}],usdClassTransfer:[{name:"hyperliquidChain",type:"string"},{name:"amount",type:"string"},{name:"toPerp",type:"bool"},{name:"nonce",type:"uint64"}]},S5={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},k5=new TextEncoder});import{AssetValue as qt,Chain as E5,derivationPathToString as b5,getChainConfig as C1,getRPCUrl as v5,NetworkDerivationPath as V5,RequestClient as po,SwapKitError as So,updateDerivationPath as j5}from"@swapkit/helpers";import{HDNodeWallet as K5}from"ethers";import{match as c5,P as Ut}from"ts-pattern";function Yn(n,y){if(!lt(n))throw new So(y,{address:n});return n.toLowerCase()}async function Xo(n){let y=await Bf();return po.post(`${y}/info`,{json:n})}function a5({dex:n,user:y}){return Xo({...n?{dex:n}:{},type:"clearinghouseState",user:Yn(y,"helpers_invalid_params")})}function s5({user:n}){return Xo({type:"spotClearinghouseState",user:Yn(n,"helpers_invalid_params")})}function e5({dex:n,user:y}){return Xo({...n?{dex:n}:{},type:"openOrders",user:Yn(y,"helpers_invalid_params")})}function n2({dex:n,user:y}){return Xo({...n?{dex:n}:{},type:"frontendOpenOrders",user:Yn(y,"helpers_invalid_params")})}function o2({oidOrCloid:n,user:y}){return Xo({oid:n,type:"orderStatus",user:Yn(y,"helpers_invalid_params")})}function y2({aggregateByTime:n,user:y}){return Xo({...typeof n==="boolean"?{aggregateByTime:n}:{},type:"userFills",user:Yn(y,"helpers_invalid_params")})}function f2({aggregateByTime:n,endTime:y,startTime:T,user:o}){return Xo({...typeof n==="boolean"?{aggregateByTime:n}:{},...typeof y==="number"?{endTime:y}:{},startTime:T,type:"userFillsByTime",user:Yn(o,"helpers_invalid_params")})}function T1({coin:n,token:y,value:T,spotMeta:o}){if(!T||Number(T)<=0)return null;let f=n?.toUpperCase()||`TOKEN-${y||"UNKNOWN"}`,t=i5[f]||H1,C=o?.tokens?.find((A)=>A.name===n||y!==void 0&&A.index===Number(y)),H=C?`${kn}.${f}-${C.name}:${C.tokenId}`:`${kn}.${f}`;return new qt({decimal:t,identifier:H,value:T})}function T2(n){let y=new Map;for(let T of n){let o=T.toString({includeSynthProtocol:!0}),f=y.get(o);y.set(o,f?f.add(T):T)}if(![...y.values()].some((T)=>T.isGasAsset||T.ticker==="HYPE")){let T=qt.from({chain:kn,value:0});y.set(T.toString({includeSynthProtocol:!0}),T)}return[...y.values()]}async function Bf(){try{return await v5(kn)}catch{let[n]=C1(kn).rpcUrls;if(!n)throw new So("helpers_chain_no_public_or_set_rpc_url",{chain:kn});return n}}async function Gt(){return`${await Bf()}/exchange`}function t2(n){let y=d5[n.type],{type:T,...o}=n,f=g5[T];return{domain:{chainId:Number.parseInt(n.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:r5,version:"1"},message:o,primaryType:y,types:{[y]:f}}}async function A1({action:n,expiresAfter:y,nonce:T,vaultAddress:o}){let f=T||Date.now(),t=o?Yn(o,"helpers_invalid_params"):void 0,C=await Gt(),H=o1(n,f,{expiresAfter:y,vaultAddress:t});return{action:n,endpoint:C,expiresAfter:y,nonce:f,typedData:sC(H),vaultAddress:t}}async function _1({action:n,nonce:y,signatureChainId:T}){let o=y||n.nonce||Date.now(),f=T||n.signatureChainId||"0xa4b1",t=y1({...n,nonce:o,signatureChainId:f});return{action:t,endpoint:await Gt(),nonce:o,typedData:eC(t)}}async function wt({assetValue:n,recipient:y,sender:T,signatureChainId:o,time:f}){let t=Yn(y,"core_transaction_invalid_recipient_address"),C=Yn(T,"core_transaction_invalid_sender_address"),H=await Gt(),A=n.getValue("string"),_=f||Date.now(),G=n.address;if(!G)throw new So("helpers_invalid_params",{asset:n.toString(),from:C});let M={amount:A,destination:t,hyperliquidChain:h5,signatureChainId:o||m5,time:_,token:G,type:"spotSend"};return{action:M,endpoint:H,nonce:_,typedData:t2(M)}}async function t1(n){let y=await po.post(n.endpoint,{json:{action:n.action,...typeof n.expiresAfter==="number"?{expiresAfter:n.expiresAfter}:{},nonce:n.nonce,signature:n.signature,...n.vaultAddress?{vaultAddress:n.vaultAddress}:{}}});if(y.status!=="ok")throw new So("core_transaction_failed",{response:y});return y}async function C2(n,y){let T=await Bf(),o=y-5000;for(let f=0;f<5;f++){if(f>0)await new Promise((t)=>setTimeout(t,1000));try{let t=await po.post(`${T}/info`,{json:{startTime:o,type:"userNonFundingLedgerUpdates",user:n}}),C=Array.isArray(t)?t.find((H)=>H.time&&H.time>=y&&(H.delta?.type==="spotTransfer"||H.delta?.type==="internalTransfer")):void 0;if(C?.hash)return C.hash}catch{}}return""}function lt(n){return n.startsWith("0x")&&Hy(n)}function H2(n){let y=qn(kn),T=n&&"index"in n?n.index||0:0,o=b5(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:j5(V5[kn],{index:T})),f,t=!1;function C(){if(t)return f;return f=c5(n).with({phrase:Ut.string},({phrase:w})=>{return K5.fromPhrase(w,void 0,o)}).with({signer:Ut.not(Ut.nullish)},({signer:w})=>w).otherwise(()=>{return}),t=!0,f}async function H(){let w=C();return w?await w.getAddress():""}async function A(w){let X=C();if(!X)throw new So("toolbox_hypercore_no_signer");let W=await X.signTypedData(w.typedData.domain,w.typedData.types,w.typedData.message);return{action:w.action,endpoint:w.endpoint,nonce:w.nonce,signature:n1(W),..."expiresAfter"in w?{expiresAfter:w.expiresAfter}:{},..."vaultAddress"in w?{vaultAddress:w.vaultAddress}:{}}}async function _(w){let X=Yn(w,"helpers_invalid_params");try{let W=await Bf(),[l,Z,z]=await Promise.all([po.post(`${W}/info`,{json:{type:"spotClearinghouseState",user:X}}),po.post(`${W}/info`,{json:{type:"clearinghouseState",user:X}}),po.post(`${W}/info`,{json:{type:"spotMeta"}})]),L=(l.spotState?.balances||l.balances||[]).map(({coin:J,token:U,total:B})=>T1({coin:J,spotMeta:z,token:U,value:B})).filter((J)=>!!J),N=T1({coin:"USDC",spotMeta:z,value:Z.withdrawable||Z.marginSummary?.accountValue||Z.marginSummary?.totalRawUsd});return T2(N?[...L,N]:L)}catch{return y(X)}}async function G(w){let X=C();if(!X)throw new So("toolbox_hypercore_no_signer");let W=w.sender||await X.getAddress(),l=await wt({...w,feeRate:0,sender:W}),Z=await A(l);return await t1(Z),C2(W,l.nonce)}function M(){return qt.from({chain:kn,value:0})}return{broadcastTransaction:t1,createL1ActionRequest:A1,createTransaction:wt,createUserSignedActionRequest:_1,estimateTransactionFee:M,getAddress:H,getBalance:_,getState:{clearinghouse:a5,frontendOpenOrders:n2,openOrders:e5,orderStatus:o2,spotClearinghouse:s5,userFills:y2,userFillsByTime:f2},signTransaction:A,transfer:G,validateAddress:lt}}var kn,H1,i5,h5="Mainnet",m5="0xa4b1",r5="0x0000000000000000000000000000000000000000",g5,d5;var U1=p(()=>{uT();En();f1();kn=E5.HyperCore,{baseDecimal:H1}=C1(kn),i5={HYPE:H1,USDC:6,USDT:6},g5={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},d5={spotSend:"HyperliquidTransaction:SpotSend"}});var Xt={};nn(Xt,{validateHyperCoreAddress:()=>lt,getHyperCoreToolbox:()=>H2,createUserSignedActionRequest:()=>_1,createTransaction:()=>wt,createL1ActionRequest:()=>A1,buildUsdClassTransferAction:()=>J5,buildUpdateLeverageAction:()=>M5,buildUpdateIsolatedMarginAction:()=>L5,buildTopUpIsolatedOnlyMarginAction:()=>Q5,buildTokenDelegateAction:()=>D5,buildSendAssetAction:()=>Y5,buildScheduleCancelAction:()=>Z5,buildOrderAction:()=>G5,buildModifyAction:()=>W5,buildCancelByCloidAction:()=>X5,buildCancelAction:()=>l5,buildBatchModifyAction:()=>B5,buildApproveBuilderFeeAction:()=>z5,buildApproveAgentAction:()=>N5});var Wt=p(()=>{U1()});import{PublicKey as no}from"@solana/web3.js";import{AssetValue as Mf,Chain as Kn,DerivationPath as A2,derivationPathToString as _2,getChainConfig as l1,getRPCUrl as U2,NetworkDerivationPath as w2,SwapKitError as ko,updateDerivationPath as q2}from"@swapkit/helpers";import{match as G2,P as w1}from"ts-pattern";async function X1(n){let y=Mf.from({address:n,chain:Kn.Solana});if(y.symbol!=="UNKNOWN")return{decimals:y.decimal||0,id:n,logoURI:y.getIconUrl(),name:y.symbol,symbol:y.ticker};let T=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(n)}`;try{let o=await fetch(T);if(!o.ok)return null;let f=await o.json();if(!Array.isArray(f)||f.length===0)return null;return f.find((C)=>C.id===n)||null}catch{return null}}async function l2(n){let y=await jn(),{PublicKey:T}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:o}=await import("@solana/spl-token"),f=new T(n),{baseDecimal:t}=l1(Kn.Solana),C=await y.getBalance(f),H=[Mf.from({chain:Kn.Solana,fromBaseDecimal:t,value:C||0})],A=await y.getParsedTokenAccountsByOwner(f,{programId:o});for(let{account:_}of A.value){let G=_.data.parsed.info,M=G.mint,w=G.tokenAmount.amount;if(Number(w)===0)continue;let X=await X1(M),W=X?.symbol||"UNKNOWN",l=X?.decimals||G.tokenAmount.decimals;H.push(Mf.from({asset:`${Kn.Solana}.${W}-${M}`,fromBaseDecimal:l,value:w}))}return H}function Mt(n){try{let y=new no(n);return no.isOnCurve(y.toBytes())}catch{return!1}}function X2(n){let y=n&&"index"in n?n.index||0:0,T=_2(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:q2(w2[Kn.Solana],{index:y})),o;async function f(){if(o)return o;return o=await G2(n).with({phrase:w1.string},({phrase:C})=>Bt({derivationPath:T,phrase:C})).with({signer:w1.any},({signer:C})=>C).otherwise(()=>{return}),o}async function t(){let C=await f();return C?.publicKey?G1(C.publicKey):""}return{broadcastTransaction:Lf(jn),createKeysForPath:Bt,createTransaction:Lt(jn),createTransactionFromInstructions:L2,estimateTransactionFee:W2(jn),getAddress:t,getAddressFromPubKey:G1,getBalance:qn(Kn.Solana),getBalanceFromRPC:l2,getConnection:jn,getPubkeyFromAddress:(C)=>new no(C),signAndBroadcastTransaction:async(C)=>{let H=await q1(jn,f)(C);return Lf(jn)(H)},signTransaction:q1(jn,f),transfer:Q2(jn,f),validateAddress:Mt}}function W2(n){return async({recipient:y,assetValue:T,memo:o,isProgramDerivedAddress:f,sender:t})=>{let C=await n(),A=(await Lt(n)({assetValue:T,isProgramDerivedAddress:f,memo:o,recipient:y,sender:t})).compileMessage(),_=await C.getFeeForMessage(A);if(_.value===null)throw new ko("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:G}=l1(Kn.Solana);return Mf.from({chain:Kn.Solana,fromBaseDecimal:G,value:_.value})}}async function jn(){let{Connection:n}=await import("@solana/web3.js"),y=await U2(Kn.Solana);return new n(y,{commitment:"confirmed",fetchMiddleware:(T,o,f)=>{let t={};for(let[C,H]of Object.entries(o?.headers??{})){let A=C.toLowerCase();if(A!=="pragma"&&A!=="solana-client")t[C]=H}f(T,{...o,headers:t})}})}function B2(n){return async({assetValue:y,recipient:T,sender:o,isProgramDerivedAddress:f})=>{let t=await n(),C=new no(o);if(y.isGasAsset){let{Transaction:H,SystemProgram:A}=await import("@solana/web3.js");return new H().add(A.transfer({fromPubkey:C,lamports:y.getBaseValue("number"),toPubkey:new no(T)}))}if(y.address)return M2({amount:y.getBaseValue("number"),connection:t,decimals:y.decimal,from:C,isProgramDerivedAddress:f,recipient:T,tokenAddress:y.address});return}}async function M2({tokenAddress:n,recipient:y,from:T,connection:o,amount:f,decimals:t,isProgramDerivedAddress:C}){let{getAssociatedTokenAddress:H,getAccount:A,createAssociatedTokenAccountInstruction:_,createTransferCheckedInstruction:G}=await import("@solana/spl-token"),{Transaction:M}=await import("@solana/web3.js"),w=new M,X=new no(n),W=await H(X,T),l=new no(y),Z=await H(X,l,C),z=!1;try{await A(o,Z),z=!0}catch{}if(!z)w.add(_(T,Z,l,X));return w.add(G(W,X,Z,T,f,t)),w}function Lt(n){return async({recipient:y,assetValue:T,memo:o,isProgramDerivedAddress:f,sender:t})=>{let{createMemoInstruction:C}=await import("@solana/spl-memo"),H=new no(t);if(!(f||Mt(y)))throw new ko("core_transaction_invalid_recipient_address");let A=await n(),_=await B2(n)({assetValue:T,isProgramDerivedAddress:f,recipient:y,sender:t});if(!_)throw new ko("core_transaction_invalid_sender_address");if(o)_.add(C(o));let G=await A.getLatestBlockhash();return _.recentBlockhash=G.blockhash,_.feePayer=H,_}}async function L2({instructions:n}){let{Transaction:y}=await import("@solana/web3.js"),T=new y().add(...n);if(!T)throw new ko("core_transaction_invalid_sender_address");return T}function Q2(n,y){return async({recipient:T,assetValue:o,memo:f,isProgramDerivedAddress:t})=>{let C=await y();if(!C)throw new ko("core_transaction_invalid_sender_address");let H=C.publicKey?.toString()??(await C.connect()).publicKey.toString(),A=await Lt(n)({assetValue:o,isProgramDerivedAddress:t,memo:f,recipient:T,sender:H});if("signTransaction"in C){let _=await C.signTransaction(A);return Lf(n)(_)}return A.sign(C),Lf(n)(A)}}function Lf(n){return async(y)=>{return(await n()).sendRawTransaction(y.serialize())}}function q1(n,y){return async(T)=>{let o=await y();if(!o)throw new ko("toolbox_solana_no_signer");let{VersionedTransaction:f}=await import("@solana/web3.js");if(!(T instanceof f)){let C=await(await n()).getLatestBlockhash();T.recentBlockhash=C.blockhash,T.feePayer=o.publicKey||void 0}if("connect"in o)return await o.signTransaction(T);return T.sign([o]),T}}async function Bt({phrase:n,derivationPath:y=A2.SOL}){let{HDKey:T}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:o}=await import("@scure/bip39"),{Keypair:f}=await import("@solana/web3.js"),t=o(n),C=T.fromMasterSeed(t);return f.fromSeed(C.derive(y,!0).privateKey)}function G1(n){return n.toString()}var W1=p(()=>{En()});var Qt={};nn(Qt,{validateSolanaAddress:()=>Mt,getSolanaToolbox:()=>X2,fetchTokenMetaData:()=>X1,createKeysForPath:()=>Bt});var Zt=p(()=>{W1()});import{AssetValue as Qf,Chain as Zf,DerivationPath as M1,derivationPathToString as Z2,getChainConfig as J2,getRPCUrl as Nt,NetworkDerivationPath as Y2,SwapKitError as Ln,updateDerivationPath as N2}from"@swapkit/helpers";import{match as Jt,P as uo}from"ts-pattern";function Jf(n){if(!n)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(n)}async function Yf({phrase:n,derivationPath:y=M1.STRK}){let{HDKey:T}=await import("@scure/bip32"),{mnemonicToSeedSync:o}=await import("@scure/bip39"),{ec:f,hash:t,encode:C,CallData:H}=await import("starknet"),A=o(n),G=T.fromMasterSeed(A).derive(y);if(!G.privateKey)throw new Ln("toolbox_starknet_no_signer");let M=C.addHexPrefix(Buffer.from(G.privateKey).toString("hex")),w=f.starkCurve.grindKey(M),X=C.addHexPrefix(w),W=f.starkCurve.getStarkKey(X),l=H.compile([W,0]);return{address:t.calculateContractAddressFromHash(W,zt,l,0),privateKey:X,publicKey:W}}async function Dt({phrase:n,derivationPath:y=M1.STRK}){let{Account:T,RpcProvider:o}=await import("starknet"),{privateKey:f,address:t}=await Yf({derivationPath:y,phrase:n}),C=await Nt(Zf.Starknet),H=new o({nodeUrl:C});return new T({address:t,provider:H,signer:f})}function L1(n){let y=Zf.Starknet,T=n&&"index"in n?n.index||0:0,o=Z2(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:N2(Y2[y],{index:T})),f,t,C;async function H(){if(t)return t;let{RpcProvider:U}=await import("starknet"),B=await Nt(y);return t=new U({nodeUrl:B}),t}async function A(U){let B=await H(),q=U||await w();if(!q)return!1;try{return await B.getClassHashAt(q),!0}catch(Y){if(Y instanceof Error&&Y.message.includes("Contract not found"))return!1;let D=Y;if(D?.code===20||D?.code===19)return!1;throw Y}}async function _(){let{CallData:U,hash:B}=await import("starknet"),q=await H(),Y=await M();if(!Y)throw new Ln("toolbox_starknet_no_signer");if(!C)throw new Ln({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await A())return Y.address;let Q=U.compile([C,0]);if(B.calculateContractAddressFromHash(C,zt,Q,0).toLowerCase()!==Y.address.toLowerCase())throw new Ln({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let R={addressSalt:C,classHash:zt,constructorCalldata:Q},{transaction_hash:S}=await Y.deployAccount(R);return await q.waitForTransaction(S),S}async function G(){if(!await A()){if(!C)throw new Ln({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await _()}}async function M(){if(f)return f;return f=await Jt(n).with({phrase:uo.string},async({phrase:U})=>{let{Account:B,RpcProvider:q}=await import("starknet"),{privateKey:Y,address:D,publicKey:Q}=await Yf({derivationPath:o,phrase:U});C=Q;let O=await Nt(Zf.Starknet),R=new q({nodeUrl:O});return new B({address:D,provider:R,signer:Y})}).with({address:uo.string,privateKey:uo.string},async({privateKey:U,address:B})=>{let{Account:q}=await import("starknet"),Y=await H();return new q({address:B,provider:Y,signer:U})}).with({signer:uo.instanceOf(Object)},({signer:U})=>U).otherwise(()=>{return}),f}async function w(){return(await M())?.address??""}async function X(U){let B=await H(),{uint256:q,CallData:Y}=await import("starknet"),D=[],Q=[Yt,B1];for(let O of Q)try{let[R="0",S="0"]=await B.callContract({calldata:Y.compile({account:U}),contractAddress:O,entrypoint:"balanceOf"}),k=q.uint256ToBN({high:R,low:S});Jt(O).with(Yt,()=>{D.push(Qf.from({chain:y,value:k}))}).with(B1,()=>{if(k>0n)D.push(Qf.from({asset:`${y}.ETH-${O}`,value:k}))}).otherwise(()=>{})}catch{}return D}async function W({recipient:U,assetValue:B}){let{CallData:q,uint256:Y}=await import("starknet");if(!Jf(U))throw new Ln("core_transaction_invalid_recipient_address",{address:U});let D=B.isGasAsset?Yt:B.address;if(!D)throw new Ln("toolbox_starknet_invalid_address",{address:D,assetValue:B});let Q=Y.bnToUint256(B.getBaseValue("bigint"));return[{calldata:q.compile([U,Q]),contractAddress:D,entrypoint:"transfer"}]}async function l({recipient:U,assetValue:B,sender:q}){let{baseDecimal:Y}=J2(Zf.Starknet),D=await M(),Q=await Jt({sender:q,signer:D}).with({sender:uo.string},async({sender:O})=>{let{Account:R}=await import("starknet"),S=await H();return new R({address:O,provider:S,signer:"0x0"})}).with({signer:uo.nonNullable},({signer:O})=>O).otherwise((O)=>{throw new Ln({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:O}})});try{let O=await W({assetValue:B,recipient:U}),R=await Q.estimateInvokeFee(O);if(R?.overall_fee)return Qf.from({chain:y,fromBaseDecimal:Y,value:R.overall_fee})}catch(O){throw new Ln("toolbox_starknet_fee_estimation_failed",O)}return Qf.from({chain:y,value:"0.00001"})}async function Z({recipient:U,assetValue:B,memo:q}){let Y=await M();if(!Y)throw new Ln("toolbox_starknet_no_signer");await G();let D=await W({assetValue:B,memo:q,recipient:U});return(await Y.execute(D)).transaction_hash}async function z(U){let B=await M();if(!B)throw new Ln("toolbox_starknet_no_signer");let q=await B.signMessage(U);return Array.isArray(q)?q:[q.r.toString(),q.s.toString()]}async function L(U){let B=await M();if(!B)throw new Ln("toolbox_starknet_no_signer");return await G(),(await B.execute(U)).transaction_hash}function N(U){return L(U)}function J(U,B=!0){try{return qn(y)(U,B)}catch{return X(U)}}return{broadcastTransaction:L,createKeysForPath:Dt,createTransaction:W,deployAccount:_,estimateTransactionFee:l,getAddress:w,getBalance:J,getProvider:H,isAccountDeployed:A,signAndBroadcastTransaction:N,signMessage:z,transfer:Z,validateAddress:Jf}}var Yt="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",B1="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",zt="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var Q1=p(()=>{En()});var Nf={};nn(Nf,{validateStarknetAddress:()=>Jf,starknetCreateKeysForPath:()=>Dt,getStarknetToolbox:()=>L1,deriveStarknetKeys:()=>Yf});var zf=p(()=>{Q1()});import{isValidSuiAddress as z2}from"@mysten/sui/utils";import{AssetValue as Po,Chain as Df,getChainConfig as D2,SwapKitError as Nn}from"@swapkit/helpers";import{match as O2,P as Z1}from"ts-pattern";async function Y1(n,y,T,o=[],f){let t=await n.getCoins({coinType:T,cursor:f,owner:y}),C=[...o,...t.data];return t.hasNextPage?Y1(n,y,T,C,t.nextCursor):C}function R2(n,y,T){let o=y.reduce((A,_)=>A+BigInt(_.balance),0n);if(o<T)throw new Nn("toolbox_sui_insufficient_balance",{available:o.toString(),required:T.toString()});let{ids:f}=y.reduce((A,_)=>{if(A.total>=T)return A;return{ids:[...A.ids,_.coinObjectId],total:A.total+BigInt(_.balance)}},{ids:[],total:0n}),t=f[0],C=f.slice(1);if(C.length>0)n.mergeCoins(t,C);let[H]=n.splitCoins(t,[T]);return H}function N1(n){try{return z2(n)}catch{return!1}}function J1(n){return"signWithIntent"in n}function x2({provider:n,...y}={}){let T;async function o(){if(T)return T;return T=await O2(y).with({phrase:Z1.string},async({phrase:W})=>{let{Ed25519Keypair:l}=await import("@mysten/sui/keypairs/ed25519");return l.deriveKeypair(W)}).with({signer:Z1.any},({signer:W})=>W).otherwise(()=>{return}),T}async function f(W=n){let{SuiClient:l,getFullnodeUrl:Z}=await import("@mysten/sui/client");return new l({url:W||Z("mainnet")})}async function t(){return(await o())?.toSuiAddress()||""}function C(W){try{let l=Po.from({address:W,chain:Df.Sui});return{asset:l.toString(),decimals:l.decimal}}catch{}return null}async function H(W){let l=W||await t();if(!l)throw new Nn("toolbox_sui_address_required");let{baseDecimal:Z,chain:z}=D2(Df.Sui);try{let L=await f(),{totalBalance:N}=await L.getBalance({owner:l}),J=[Po.from({chain:z,fromBaseDecimal:Z,value:N})],U=await L.getAllBalances({owner:l});for(let{coinType:B,totalBalance:q}of U){if(B==="0x2::sui::SUI"||Number(q)<=0)continue;let Y=C(B);if(Y)J.push(Po.from({asset:Y.asset,fromBaseDecimal:Y.decimals,value:q}))}return J}catch{return[Po.from({chain:z})]}}async function A(W){let l=Po.from({chain:Df.Sui,value:"0.01"});if(!W)return l;try{let Z=await f(),{txBytes:z}=await _(W),{effects:{status:L,gasUsed:N}}=await Z.dryRunTransactionBlock({transactionBlock:z});if(L.status!=="success")return l;let J=Number(N.computationCost)+Number(N.storageCost)-Number(N.storageRebate);return Po.from({chain:Df.Sui,value:J.toString()})}catch{return l}}async function _({recipient:W,assetValue:l,gasBudget:Z,sender:z}){let{Transaction:L}=await import("@mysten/sui/transactions"),N=z||await t();if(!N)throw new Nn("toolbox_sui_no_sender");try{let J=new L;if(J.setSender(N),l.isGasAsset||l.symbol==="SUI"){let[q]=J.splitCoins(J.gas,[l.getBaseValue("string")]);J.transferObjects([q],W)}else{let q=l.address;if(!q)throw new Nn("toolbox_sui_missing_coin_type");let Y=await f(),D=l.getBaseValue("bigint"),Q=await Y1(Y,N,q);if(!Q.length)throw new Nn("toolbox_sui_no_coins_found",{coinType:q});let O=R2(J,Q,D);J.transferObjects([O],W)}if(Z)J.setGasBudget(Z);let U=await f(),B=await J.build({client:U});return{tx:J,txBytes:B}}catch(J){if(J instanceof Nn)throw J;throw new Nn("toolbox_sui_transaction_creation_error",{error:J})}}async function G(W){let l=await o();if(!l)throw new Nn("toolbox_sui_no_signer");if(W instanceof Uint8Array)return l.signTransaction(W);let{txBytes:Z}="tx"in W?W:await _(W);return l.signTransaction(Z)}async function M({assetValue:W,gasBudget:l,recipient:Z}){let z=await o();if(!z)throw new Nn("toolbox_sui_no_signer");let L=z.toSuiAddress()||await t();if(!L)throw new Nn("toolbox_sui_no_sender");let{txBytes:N}=await _({assetValue:W,gasBudget:l,recipient:Z,sender:L}),J=await f();if(!J1(z)){let B=await z.signTransaction(N),{digest:q}=await J.executeTransactionBlock({signature:B.signature,transactionBlock:B.bytes});return q}let{digest:U}=await J.signAndExecuteTransaction({signer:z,transaction:N});return U}async function w(W){let l=await f(),{digest:Z}=await l.executeTransactionBlock({signature:W.signature,transactionBlock:W.bytes});return Z}async function X(W){let l=await o();if(!l)throw new Nn("toolbox_sui_no_signer");let Z=await f(),z;if(typeof W==="string")z=Uint8Array.from(Buffer.from(W,"base64"));else if(W instanceof Uint8Array)z=W;else z=await W.build({client:Z});if(!J1(l)){let N=await l.signTransaction(z),{digest:J}=await Z.executeTransactionBlock({signature:N.signature,transactionBlock:N.bytes});return J}let{digest:L}=await Z.signAndExecuteTransaction({signer:l,transaction:z});return L}return{broadcastTransaction:w,createTransaction:_,estimateTransactionFee:A,getAddress:t,getBalance:H,signAndBroadcastTransaction:X,signTransaction:G,transfer:M,validateAddress:N1}}var z1=()=>{};var Of={};nn(Of,{validateSuiAddress:()=>N1,getSuiToolbox:()=>x2});var Rf=p(()=>{z1()});import{getHttpEndpoint as F2}from"@orbs-network/ton-access";import{AssetValue as p2,Chain as Qy,getChainConfig as S2,getRPCUrl as k2,SwapKitError as Ly,SwapKitNumber as u2}from"@swapkit/helpers";import{mnemonicToWalletKey as P2}from"@ton/crypto";import{Address as cn,beginCell as Ot,Cell as D1,external as I2,internal as $2,JettonMaster as E2,loadStateInit as b2,SendMode as O1,storeMessage as v2,TonClient as V2,toNano as p1,WalletContractV4 as j2}from"@ton/ton";import{match as R1,P as Rt}from"ts-pattern";async function m2(){let n=Date.now();if(xf&&n-F1<h2)return xf;try{return xf=await F2(),F1=n,xf}catch{return k2(Qy.Ton)}}function r2(n={}){let y,T,o;async function f(){if(!y){let J=n.provider??await m2();y=new V2({endpoint:J})}return y}async function t(){return(await H()).address.toString()}async function C(){if(o)return o;return o=await R1(n).with({phrase:Rt.string},async({phrase:J})=>P2(J.split(" "))).with({signer:Rt.any},({signer:J})=>J).otherwise(()=>{return}),o}async function H(J){if(!T||J){let U=await C(),B=await f(),q=J||U;if(!q)throw new Ly("core_wallet_connection_not_found");let Y=j2.create({publicKey:q.publicKey,workchain:0});T=B.open(Y)}return T}let A=qn(Qy.Ton);async function _({assetValue:J,recipient:U,memo:B,sender:q}){if(J.isGasAsset){let b=B?N(B).toBoc().toString("base64"):void 0;return[{address:U,amount:J.getBaseValue("string"),payload:b}]}let Y=J.address;if(!Y)throw new Ly({errorKey:"core_swap_contract_not_found",info:{asset:J.toString()}});let D=q??await t(),Q=await z({jettonMasterAddress:Y,ownerAddress:D}),O=cn.parse(U),R=cn.parse(D),S=J.getBaseValue("bigint"),k=B?N(B):void 0,I=L({destinationAddress:O,forwardPayload:k,jettonAmount:S,responseAddress:R});return[{address:Q.toString(),amount:i2.toString(),payload:I.toBoc().toString("base64")}]}function G({sender:J,...U}){return _({...U,sender:J})}function M(J){return J.map((U)=>{let B=U.payload?D1.fromBase64(U.payload):void 0,q=U.stateInit?b2(D1.fromBase64(U.stateInit).asSlice()):void 0,Y=cn.parse(U.address),D=cn.isFriendly(U.address)?cn.parseFriendly(U.address).isBounceable:!0;return $2({body:B,bounce:D,init:q,to:Y,value:BigInt(U.amount)})})}async function w(J){let U=await C(),B=await H();if(!B||!U)throw new Ly("core_wallet_connection_not_found");let q=await f(),{state:Y}=await q.getContractState(B.address),D=Y==="active",Q=D?await B.getSeqno():0,O=B.createTransfer({messages:M(J),secretKey:U.secretKey,sendMode:x1,seqno:Q}),R=I2({body:O,init:D?void 0:B.init,to:B.address});return Ot().store(v2(R)).endCell()}async function X(J){return await(await f()).sendFile(J.toBoc()),J.hash().toString("hex")}async function W(J){let U=await w(J);return X(U)}async function l({assetValue:J,recipient:U,memo:B}){let q=await G({assetValue:J,memo:B,recipient:U});return W(q)}async function Z({sender:J,...U}){let{baseDecimal:B}=S2(Qy.Ton),q=await R1(J).with(Rt.string,(Q)=>{return cn.parseFriendly(Q).address}).otherwise(async()=>{return(await H()).address});if(!q)throw new Ly("toolbox_fee_estimation_failed",{chain:Qy.Ton});let Y=p2.from({chain:Qy.Ton,value:"0.01"}),D=await f();try{let Q=await G({sender:J,...U}),O=await C(),R=await H();if(!R||!O)return Y;let S=await R.getSeqno(),k=R.createTransfer({messages:M(Q),secretKey:O.secretKey,sendMode:x1,seqno:S}),{source_fees:I}=await D.estimateExternalMessageFee(q,{body:k,ignoreSignature:!0,initCode:null,initData:null}),b=I.in_fwd_fee+I.storage_fee+I.gas_fee+I.fwd_fee;return Y.set(u2.fromBigInt(BigInt(b),B))}catch{return Y}}async function z({jettonMasterAddress:J,ownerAddress:U}){try{let B=await f(),q=cn.parse(J),Y=cn.parse(U);return await B.open(E2.create(q)).getWalletAddress(Y)}catch{throw new Ly({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:J,ownerAddress:U}})}}function L({jettonAmount:J,destinationAddress:U,responseAddress:B,forwardAmount:q=c2,forwardPayload:Y}){let D=Ot().storeUint(K2,32).storeUint(0,64).storeCoins(J).storeAddress(U).storeAddress(B).storeBit(0).storeCoins(q);if(Y)D.storeBit(1).storeRef(Y);else D.storeBit(0);return D.endCell()}function N(J){return Ot().storeUint(0,32).storeStringTail(J).endCell()}return{broadcastTransaction:X,createTransaction:G,estimateTransactionFee:Z,getAddress:t,getBalance:A,getJettonWalletAddress:z,sign:w,signAndBroadcastTransaction:W,transfer:l,validateAddress:S1}}function S1(n){try{return cn.parse(n),!0}catch{return!1}}var K2=260734629,c2,i2,x1,h2=60000,xf,F1=0;var k1=p(()=>{En();c2=p1("0.01"),i2=p1("0.05"),x1=O1.PAY_GAS_SEPARATELY+O1.IGNORE_ERRORS});var Ff={};nn(Ff,{validateTonAddress:()=>S1,getTONToolbox:()=>r2});var pf=p(()=>{k1()});import{NetworkDerivationPath as g2}from"@swapkit/helpers";function zn(n,y){if(!Number.isInteger(y)||y<0)throw RangeError(`${n} must be a non-negative integer, got: ${y}`)}function oo({accountIndex:n,chain:y,derivationPath:T}){if(n!==void 0)zn("accountIndex",n);let o=[...T?.slice(0,3)??g2[y].slice(0,3)];if(n!==void 0)o[2]=n;return o}function Io({accountIndex:n,change:y=!1,chain:T,derivationPath:o,index:f}){return zn("index",f),[...oo({accountIndex:n,chain:T,derivationPath:o}),Number(y),f]}function Wo(n){return n[2]??0}function u1({deriveAddress:n,getBalance:y,getUtxos:T}){async function o(H){let{accountIndex:A,count:_,startIndex:G=0,change:M=!1}=H;if(zn("count",_),_<1)throw RangeError("count must be at least 1");zn("startIndex",G);let w=[];for(let X=0;X<_;X++){let W=await n({accountIndex:A,change:M,index:G+X});if(W)w.push(W)}return w}async function f(H){let{gapLimit:A=20,change:_=!1}=H??{},G=[],M=0,w=0;while(M<A){let X=await n({change:_,index:w});if(!X)break;if((await y(X.address)).some((Z)=>Z.getValue("number")>0))G.push(X),M=0;else M++;w++}return G}async function t(H=20){let[A,_]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),G=[...A,..._],M=await Promise.all(G.map(async(X)=>{let l=(await y(X.address)).reduce((Z,z)=>Z+z.getValue("number"),0);return{...X,balance:l}})),w=M.reduce((X,W)=>X+W.balance,0);return{addresses:M,total:w}}async function C(H=20){let[A,_]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),G=[...A,..._];return(await Promise.all(G.map(async(w)=>{return(await T(w.address)).map((W)=>({...W,address:w.address,derivationIndex:w.index,isChange:w.change}))}))).flat()}return{deriveAddresses:o,getAggregatedBalance:t,getAggregatedUtxos:C,scanForAddresses:f}}var Zy=()=>{};import{Chain as tn,getRPCUrl as d2,RequestClient as Sf,SKConfig as a2,SwapKitError as un,warnOnce as s2}from"@swapkit/helpers";import{NETWORKS as $o}from"@swapkit/utxo-signer";async function e2({chain:n,txHash:y}){let T=`${Jy(n)}/push/transaction`,o=JSON.stringify({data:y});try{let f=await Sf.post(T,{body:o,headers:{"Content-Type":"application/json"}});if(f.context.code!==200)throw new un("toolbox_utxo_broadcast_failed",{error:f.context.error||"Transaction broadcast failed"});return f.data?.transaction_hash||y}catch(f){let t=await d2(n);if(t){let C=JSON.stringify({id:p0(),jsonrpc:"2.0",method:"sendrawtransaction",params:[y]}),H=await Sf.post(t,{body:C,headers:{"Content-Type":"application/json"}});if(H.error)throw new un("toolbox_utxo_broadcast_failed",{error:H.error?.message});if(H.result.includes('"code":-26'))throw new un("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return H.result}throw f}}function Jy(n){return`https://api.blockchair.com/${nU(n)}`}function P1(n){switch(n){case tn.Bitcoin:return 5;case tn.Dogecoin:return 1e4;case tn.Litecoin:return 1;case tn.Zcash:return 1;default:return 2}}function nU(n){switch(n){case tn.BitcoinCash:return"bitcoin-cash";case tn.Litecoin:return"litecoin";case tn.Dash:return"dash";case tn.Dogecoin:return"dogecoin";case tn.Zcash:return"zcash";case tn.Polkadot:return"polkadot";default:return"bitcoin"}}async function oU(n){try{let{feePerKb:y}=await Sf.get(`https://app.bitgo.com/api/v2/${n.toLowerCase()}/tx/fee`),T=y/1000;return Math.max(T,P1(n))}catch{return P1(n)}}async function kf(n,y){let T=await Sf.get(`${n}${y?`${n.includes("?")?"&":"?"}key=${y}`:""}`);if(!T||T.context.code!==200)throw new un("toolbox_utxo_api_error",{error:`Failed to query ${n}`});return T.data}async function $1({address:n,chain:y,apiKey:T}){if(!n)throw new un("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await kf(`${Jy(y)}/dashboards/address/${n}?transaction_details=true`,T))[n]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function yU({address:n,chain:y,apiKey:T}){return(await $1({address:n,apiKey:T,chain:y}))?.address.balance||0}async function E1({chain:n,apiKey:y,txHash:T}){if(!T)throw new un("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await kf(`${Jy(n)}/raw/transaction/${T}`,y))?.[T]?.raw_transaction||""}catch(o){let f=o instanceof Error?o.message:String(o);return console.error(`Failed to fetch raw transaction: ${f}`),""}}async function TU({chain:n,apiKey:y,txHash:T}){if(!T)throw new un("toolbox_utxo_invalid_params",{error:"TxHash is required"});let f=(await kf(`${Jy(n)}/dashboards/transaction/${T}`,y))?.[T];if(!f)throw new un("toolbox_utxo_tx_not_found",{txHash:T});let{transaction:t,inputs:C,outputs:H}=f,A=C.map((G)=>G.spending_sequence),_=t.is_rbf===!0||A.some((G)=>G<fU);return{blockId:t.block_id,confirmed:t.block_id!==-1,fee:t.fee,inputs:C,isRBF:_,outputs:H,sequences:A,size:t.size,txid:t.hash,weight:t.weight}}async function tU({chain:n,address:y,apiKey:T,offset:o=0,limit:f=30}){return(await kf(`${Jy(n)}/outputs?q=recipient(${y}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${f}&offset=${o}`,T)).map(({is_spent:A,script_hex:_,block_id:G,transaction_hash:M,index:w,value:X,spending_signature_hex:W})=>({hash:M,index:w,is_confirmed:G!==-1,is_spent:A,script_hex:_,txHex:W,value:X}))}function CU(n){return n.reduce((y,T)=>y+T.value,0)}function I1(n,y){let T=[...n].sort((o,f)=>f.value-o.value);if(y){let o=[],f=0;for(let t of T)if(o.push(t),f+=t.value,f>=y)break;return o}return T}async function b1({chain:n,address:y,apiKey:T,targetValue:o,accumulativeValue:f=0,offset:t=0,limit:C=30}){if(!y)throw new un("toolbox_utxo_invalid_params",{error:"Address is required"});try{let H=await tU({address:y,apiKey:T,chain:n,limit:C,offset:t,targetValue:o}),_=H.length<C,G=H.filter(({is_spent:Z})=>!Z),M=CU(G),w=f+M,X=o&&w>=o;if(_||X)return I1(G,o);let W=await b1({accumulativeValue:w,address:y,apiKey:T,chain:n,limit:C,offset:t+C,targetValue:o}),l=[...G,...W];return I1(l,o)}catch(H){let A=H instanceof Error?H.message:String(H);return console.error(`Failed to fetch unspent UTXOs: ${A}`),[]}}async function HU({address:n,chain:y,apiKey:T,fetchTxHex:o=!0,targetValue:f}){let t=await b1({address:n,apiKey:T,chain:y,targetValue:f}),C=[];for(let{hash:H,index:A,script_hex:_,value:G}of t){let M;if(o)M=await E1({apiKey:T,chain:y,txHash:H});C.push({address:n,hash:H,index:A,txHex:M,value:G,witnessUtxo:{script:Buffer.from(_,"hex"),value:G}})}return C}function s(n){let y=a2.get("apiKeys").blockchair||"";return s2({condition:!y,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(T)=>e2({chain:n,txHash:T}),getAddressData:(T)=>$1({address:T,apiKey:y,chain:n}),getBalance:(T)=>yU({address:T,apiKey:y,chain:n}),getRawTx:(T)=>E1({apiKey:y,chain:n,txHash:T}),getSuggestedTxFee:()=>oU(n),getTransactionDetails:(T)=>TU({apiKey:y,chain:n,txHash:T}),getUtxos:(T)=>HU({...T,apiKey:y,chain:n})}}function AU(n){return n}function _U(){return function(y){switch(y){case tn.Bitcoin:return $o.bitcoin;case tn.BitcoinCash:return $o.bitcoinCash;case tn.Dash:return $o.dash;case tn.Litecoin:return $o.litecoin;case tn.Dogecoin:return $o.dogecoin;case tn.Zcash:return $o.zcash;default:throw new un("toolbox_utxo_not_supported",{chain:y})}}}var fU=4294967294;var v1=p(()=>{En()});import{CashAddrType as uf,decodeCashAddr as UU,encodeCashAddr as wU}from"@swapkit/utxo-signer";function lU(n,y,T){return wU({hash:T,prefix:n,type:qU[y]})}function XU(n){let y=UU(n),T=GU[y.type];if(!T)throw Error(`Unknown CashAddr type: ${y.type}`);return{hash:y.hash,prefix:y.prefix,type:T}}var qU,GU,xt;var V1=p(()=>{qU={P2PKH:uf.P2PKH,P2SH:uf.P2SH},GU={[uf.P2PKH]:"P2PKH",[uf.P2SH]:"P2SH"};xt={decode:XU,encode:lU}});import{sha256 as WU}from"@noble/hashes/sha2.js";import{createBase58check as BU}from"@scure/base";import{SwapKitError as K1}from"@swapkit/helpers";function pt(n){try{return Pf(n),!0}catch{return!1}}function St(n){return Pf(n)?.network}function hn(n){let y=Pf(n);if(y?.format==="legacy")return n;return QU(y)}function Yy(n){let y=Pf(n);return ZU(y)}function Pf(n){try{let y=MU(n);if(y)return y}catch{}try{let y=LU(n);if(y)return y}catch{}throw new K1("toolbox_utxo_invalid_address",{address:n})}function MU(n){try{let y=c1.decode(n);if(y.length!==21)throw new K1("toolbox_utxo_invalid_address",{address:n});let T=y[0],o=Array.prototype.slice.call(y,1);switch(T){case Bo.legacy.mainnet.p2pkh:return{format:"legacy",hash:o,network:"mainnet",type:"p2pkh"};case Bo.legacy.mainnet.p2sh:return{format:"legacy",hash:o,network:"mainnet",type:"p2sh"};case Bo.legacy.testnet.p2pkh:return{format:"legacy",hash:o,network:"testnet",type:"p2pkh"};case Bo.legacy.testnet.p2sh:return{format:"legacy",hash:o,network:"testnet",type:"p2sh"};case Bo.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:o,network:"mainnet",type:"p2pkh"};case Bo.bitpay.mainnet.p2sh:return{format:"bitpay",hash:o,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function LU(n){if(n.indexOf(":")!==-1)try{return j1(n)}catch{}else{let y=["bitcoincash","bchtest","bchreg"];for(let T of y)try{return j1(`${T}:${n}`)}catch{}}return}function j1(n){try{let{hash:y,prefix:T,type:o}=xt.decode(n);return{format:"cashaddr",hash:Array.prototype.slice.call(y,0),network:T==="bitcoincash"?"mainnet":"testnet",type:o==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function QU(n){let y=Bo.legacy[n.network][n.type],T=Buffer.alloc(1+n.hash.length);return T[0]=y,T.set(n.hash,1),c1.encode(T)}function ZU(n){let y=n.network==="mainnet"?"bitcoincash":"bchtest",T=n.type==="p2pkh"?"P2PKH":"P2SH",o=new Uint8Array(n.hash);return xt.encode(y,T,o)}var c1,Ft,Bo;var i1=p(()=>{V1();c1=BU(WU);((T)=>{T.Mainnet="mainnet";T.Testnet="testnet"})(Ft||={});Bo={["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 JU}from"@swapkit/helpers";import{Script as YU}from"@swapkit/utxo-signer";function Bn(n){let y=new Uint8Array(Buffer.from(n,"utf8"));return YU.encode(["RETURN",y])}var NU=1000,$f=10,Ef=2,h1=10,zU=41,DU=107,bf,If,Ny,Eo=(n)=>{if(n.startsWith("bc1")||n.startsWith("tb1")||n.startsWith("ltc1")||n.startsWith("tltc1"))return"P2WPKH";if(n.startsWith("1")||n.startsWith("m")||n.startsWith("n")||n.startsWith("bitcoincash:q")||n.startsWith("bitcoincash:p")||n.startsWith("q")||n.startsWith("p")||n.startsWith("L")||n.startsWith("M")||n.startsWith("3")||n.startsWith("D")||n.startsWith("A")||n.startsWith("9")||n.startsWith("X")||n.startsWith("7")||n.startsWith("y")||n.startsWith("t1")||n.startsWith("t3")||n.startsWith("tm"))return"P2PKH";throw new JU("toolbox_utxo_invalid_address",{address:n})},Mo=({inputs:n,outputs:y,feeRate:T})=>{let o=n[0]&&"address"in n[0]&&n[0].address?Eo(n[0].address):"P2PKH",t=(T?n.filter((_)=>_.value>=If["type"in _&&_.type?_.type:"P2PKH"]*Math.ceil(T)):n).reduce((_,G)=>_+yo(G),0),C=y?.reduce((_,G)=>_+zy(G),0)||Ny[o],H=$f+t+C;return o==="P2WPKH"?Math.ceil(H+Ef/4):H},yo=(n)=>{if("type"in n&&n.type)return If[n.type];if("address"in n&&n.address)return If[Eo(n.address)];return zU+DU},zy=(n,y)=>{if(n?.script)return h1+n.script.length+(n.script.length>=74?2:1);if(y)return Ny[y];if("address"in n&&n.address)return Ny[Eo(n.address)];return Ny.P2PKH};var kt=p(()=>{((T)=>{T.P2PKH="P2PKH";T.P2WPKH="P2WPKH"})(bf||={});If={["P2PKH"]:148,["P2WPKH"]:68},Ny={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as Lo,SwapKitError as OU}from"@swapkit/helpers";function Dy(n){switch(n){case Lo.Bitcoin:case Lo.BitcoinCash:return 550;case Lo.Dash:case Lo.Litecoin:return 5500;case Lo.Dogecoin:return 1e5;case Lo.Zcash:return 546;default:throw new OU("toolbox_utxo_not_supported",{chain:n})}}function Dn({inputs:n,outputs:y,feeRate:T=1,chain:o=Lo.Bitcoin,changeAddress:f=""}){let t=n[0]&&"address"in n[0]&&n[0].address?Eo(n[0].address):"P2PKH",C=n.filter((W)=>yo(W)*T<=W.value),A=t==="P2WPKH"?Math.ceil(Ef/4):0,_=$f+A+y.reduce((W,l)=>W+zy(l),0),G=y.reduce((W,l)=>W+l.value,0),M=_*T,w=0,X=[];for(let W of C){let l=yo(W),Z=T*l;M+=Z,w+=W.value,X.push(W);let z=M+G;if(w<z)continue;let L=w-z,N=T*zy({address:f,value:0});if(L>N){let J=N+M,U=w-(G+Math.ceil(J));if(U>Math.max(yo({value:0})*T,Dy(o)))return{fee:Math.ceil(J),inputs:X,outputs:y.concat({address:f,value:U})}}return{fee:Math.ceil(M),inputs:X,outputs:y}}return{fee:Math.ceil(T*Mo({inputs:n,outputs:y}))}}var m1=p(()=>{kt()});var bo=p(()=>{v1();i1();m1();kt()});import{Address as RU,ZCASH_NETWORK as xU}from"@swapkit/utxo-signer";function Qo(n){return n.replace(/(bchtest:|bitcoincash:)/,"")}function fo(n){let y=Qo(n);return pt(y)&&St(y)==="mainnet"}function vo(n){try{if(n.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let T=RU(xU).decode(n);return T.type==="pkh"||T.type==="sh"}catch{return!1}}var Oy=p(()=>{bo()});import{secp256k1 as FU}from"@noble/curves/secp256k1.js";import{hex as Zo}from"@scure/base";import{HDKey as a1}from"@scure/bip32";import{mnemonicToSeedSync as Pt}from"@scure/bip39";import{AssetValue as vf,applyFeeMultiplier as r1,Chain as e,derivationPathToString as Ry,FeeOption as Pn,NetworkDerivationPath as s1,SwapKitError as c,SwapKitNumber as pU,updateDerivationPath as SU,warnOnce as kU}from"@swapkit/helpers";import{Address as uU,BCHSigHash as It,CashAddrPrefix as PU,CashAddrType as IU,encodeCashAddr as $U,NETWORKS as Vo,p2pkh as g1,p2wpkh as EU,RBF_SEQUENCE as bU,SigHash as e1,Transaction as ut,WIF as nH}from"@swapkit/utxo-signer";import{match as oH}from"ts-pattern";function $t({address:n,chain:y}){return oH(y).with(e.BitcoinCash,()=>fo(n)).with(e.Zcash,()=>vo(n)).otherwise(()=>{try{return uU(An(y)).decode(n),!0}catch{return!1}})}function An(n){return oH(n).with(e.Bitcoin,()=>Vo.bitcoin).with(e.BitcoinCash,()=>Vo.bitcoinCash).with(e.Dash,()=>Vo.dash).with(e.Dogecoin,()=>Vo.dogecoin).with(e.Litecoin,()=>Vo.litecoin).with(e.Zcash,()=>Vo.zcash).exhaustive()}function vU({phrase:n,derivationPath:y,network:T,seed:o}){let f=o??Pt(n),C=a1.fromMasterSeed(f,T.bip32).derive(y);if(!C.privateKey)throw new c("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return C.privateKey}function d1(n){return FU.getPublicKey(n,!0)}function Fy({publicKey:n,chain:y,network:T}){if(y===e.BitcoinCash){let t=g1(n,T);if(!t.hash)throw new c("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return $U({hash:t.hash,prefix:PU.MAINNET,type:IU.P2PKH}).replace(/^bitcoincash:/,"")}let f=!xy.includes(y)?EU(n,T):g1(n,T);if(!f.address)throw new c("toolbox_utxo_invalid_address",{error:"Could not derive address"});return f.address}function jo({phrase:n,derivationPath:y,chain:T,wif:o,seed:f}){let t=An(T);if(o){let _=nH(t).decode(o),G=d1(_);return{privateKey:_,publicKey:G}}if(!n)throw new c("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let C=y||Ry(s1[T]),H=vU({derivationPath:C,network:t,phrase:n,seed:f}),A=d1(H);return{privateKey:H,publicKey:A}}function VU(n,y){return nH(An(y)).encode(n)}function jU({phrase:n,derivationPath:y,chain:T,seed:o}){let f=y.split("/");if(f.length<4)throw new c("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${f.length}): ${y}`});let t=An(T),C=o??Pt(n),H=a1.fromMasterSeed(C,t.bip32),A=f.slice(0,4).join("/");return H.derive(A)}function To({inputs:n,outputs:y,chain:T,tx:o,sender:f,compiledMemo:t,enableRBF:C=!1}){let H=An(T),A=!xy.includes(T),_=C?bU:void 0,G=new Set;for(let M of n){let w=`${M.hash}:${M.index}`;if(G.has(w))throw new c("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});G.add(w);let X=typeof M.hash==="string"?Zo.decode(M.hash):M.hash;if(A&&M.witnessUtxo)o.addInput({index:M.index,sequence:_,txid:X,witnessUtxo:{amount:BigInt(M.witnessUtxo.value),script:M.witnessUtxo.script}});else if(M.txHex)o.addInput({index:M.index,nonWitnessUtxo:Zo.decode(M.txHex),sequence:_,txid:X,...T===e.BitcoinCash?{sighashType:It.ALL}:{}});else throw new c("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let M of y){let w="address"in M&&M.address?M.address:f;if(T===e.BitcoinCash)w=hn(w);if(M.script){if(t)o.addOutput({amount:0n,script:t})}else o.addOutputAddress(w,BigInt(M.value),H)}return{inputs:n,tx:o}}async function Ko(n){let y=await s(n).getSuggestedTxFee();return{[Pn.Average]:y,[Pn.Fast]:r1(y,Pn.Fast),[Pn.Fastest]:r1(y,Pn.Fastest)}}async function yH({assetValue:n,recipient:y,memo:T,sender:o,fetchTxHex:f=!1}){let t=n.chain,C=(await Ko(t))[Pn.Fastest],H=f||xy.includes(t),A=n.getBaseValue("number"),_=Math.ceil(A+C*5000);return{inputs:await s(t).getUtxos({address:o,fetchTxHex:H,targetValue:_}),outputs:[{address:y,value:A},...T?[{address:"",script:Bn(T),value:0}]:[]]}}async function fH({assetValue:n,recipient:y,memo:T,feeRate:o,sender:f,fetchTxHex:t=!1,enableRBF:C=!1}){let H=n.chain,A=T?Bn(T):null,_=await yH({assetValue:n,fetchTxHex:t,memo:T,recipient:y,sender:f}),{inputs:G,outputs:M}=Dn({..._,chain:H,feeRate:o});if(!(G&&M))throw new c("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let w=new ut({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:X,tx:W}=To({chain:H,compiledMemo:A,enableRBF:C,inputs:G,outputs:M,sender:f,tx:w});return{inputs:X,tx:W,utxos:_.inputs}}async function TH({assetValue:n,feeOptionKey:y=Pn.Fast,feeRate:T,memo:o,sender:f,recipient:t}){let C=n.chain,H=await yH({assetValue:n,memo:o,recipient:t,sender:f}),A=T?Math.floor(T):(await Ko(C))[y];return Dn({...H,chain:C,feeRate:A})}function KU(n){return async function({from:T,memo:o,feeRate:f,feeOptionKey:t=Pn.Fast,recipients:C=1}){let H=await s(n).getAddressData(T),A=f?Math.ceil(f):(await Ko(n))[t],_=H?.utxo.map((l)=>({...l,hash:"",type:"P2PKH"})).filter((l)=>l.value>Math.max(Dy(n),yo(l)*A));if(!_?.length)return vf.from({chain:n});let G=BigInt(_.reduce((l,Z)=>l+Z.value,0)),M=vf.from({chain:n,value:G}),w=typeof C==="number"?Array.from({length:C},()=>({address:T,value:0})):C;if(o)w.push({address:T,script:Bn(o),value:0});let X=Mo({inputs:_,outputs:w}),W=vf.from({chain:n,value:BigInt(X*A)});return M.sub(W)}}function cU(n){return async function(T){let{fee:o}=await TH(T);return vf.from({chain:n,value:pU.fromBigInt(BigInt(o),8).getValue("string")})}}function iU({chain:n,phrase:y,derivationPath:T,seed:o}){let f=An(n),{privateKey:t,publicKey:C}=jo({chain:n,derivationPath:T,phrase:y,seed:o}),H=n===e.BitcoinCash?[It.ALL]:[e1.ALL];return{getAddress:()=>Fy({chain:n,network:f,publicKey:C}),privateKey:t,publicKey:C,signTransaction:(A)=>{return A.sign(t,H),A}}}function hU(n,y){return async function({memo:o,recipient:f,feeOptionKey:t,feeRate:C,assetValue:H,enableRBF:A=!1}){let _=y?.getAddress();if(!(y&&_))throw new c("toolbox_utxo_no_signer");if(!f)throw new c("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});kU({condition:A&&!Vf.includes(n),id:`rbf_not_supported_${n}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${n}. Transaction will be created without RBF signaling.`});let G=A&&Vf.includes(n),M=C||(await Ko(n))[t||Pn.Fast],{tx:w}=await fH({assetValue:H,enableRBF:G,feeRate:M,memo:o,recipient:f,sender:_});return y.signTransaction(w),w.finalize(),s(n).broadcastTx(Zo.encode(w.extract()))}}function Et(n){return(y)=>$t({address:y,chain:n})}function bt(n){let y=An(n);return function(o){if(!o)throw new c("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return Fy({chain:n,network:y,publicKey:o.publicKey})}}function to({chain:n,...y}){let T="phrase"in y?y.phrase:void 0,o="index"in y?y.index||0:0,f=T?Pt(T):void 0,t="derivationPath"in y&&y.derivationPath?y.derivationPath:SU(s1[n],{index:o}),C=Ry(t),H=T?iU({chain:n,derivationPath:C,phrase:T,seed:f}):void 0,A="signer"in y?y.signer:void 0,_=T?jo({chain:n,derivationPath:C,phrase:T,seed:f}):void 0;function G(){if(H)return Promise.resolve(H.getAddress());if(A)return A.getAddress();return Promise.resolve(void 0)}function M(q){if(!T)return;let Y=oo({accountIndex:q,chain:n,derivationPath:t});return jU({chain:n,derivationPath:Ry(Y),phrase:T,seed:f})}let w=M();function X(){if(!w)return;return w.publicExtendedKey}function W({accountIndex:q}={}){let Y=q===void 0?w:M(q);if(!Y)return;let D=oo({accountIndex:q,chain:n,derivationPath:t});return{accountIndex:Wo(D),path:Ry(D),xpub:Y.publicExtendedKey}}function l({accountIndex:q,index:Y,change:D=!1}){let Q=q===void 0?w:M(q);if(!Q)return;let O=Io({accountIndex:q,chain:n,change:D,derivationPath:t,index:Y}),R=An(n),S=Q.deriveChild(Number(D)).deriveChild(Y);if(!S.publicKey)throw new c("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let k=Fy({chain:n,network:R,publicKey:S.publicKey}),I=Zo.encode(S.publicKey);return{accountIndex:Wo(O),address:k,change:D,index:Y,path:Ry(O),pubkey:I}}async function Z(q){if(!Vf.includes(n))return{reason:`RBF is not supported on ${n}`,supported:!1};let Y=await s(n).getTransactionDetails(q);return{canReplace:Y.isRBF&&!Y.confirmed,confirmed:Y.confirmed,enabled:Y.isRBF,fee:Y.fee,sequences:Y.sequences,supported:!0}}async function z({txid:q,newFeeRate:Y,recipient:D,memo:Q}){if(!Vf.includes(n))throw new c("toolbox_utxo_rbf_not_supported",{chain:n});let O=await s(n).getTransactionDetails(q);if(!O.isRBF)throw new c("toolbox_utxo_tx_not_replaceable",{txid:q});if(O.confirmed)throw new c("toolbox_utxo_tx_already_confirmed",{blockId:O.blockId,txid:q});let R=O.inputs.reduce((d,Zn)=>d+Zn.value,0),k=O.outputs.find((d)=>d.recipient===D)?.value||0;if(k===0)throw new c("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let I=await Promise.all(O.inputs.map(async(d)=>{let Zn=await s(n).getRawTx(d.transaction_hash);return{hash:d.transaction_hash,index:d.index,txHex:Zn,value:d.value,witnessUtxo:void 0}})),b=Q?Bn(Q):null,K=Mo({feeRate:Y,inputs:I.map((d)=>({...d,type:"P2WPKH"})),outputs:[{address:D,value:k}]}),V=Math.ceil(K*Y);if(V<=O.fee)throw new c("toolbox_utxo_rbf_fee_too_low",{newFee:V,originalFee:O.fee});let yn=V-O.fee,a=k-yn;if(a<=0)throw new c("toolbox_utxo_rbf_insufficient_change");let Un=new ut({allowLegacyWitnessUtxo:!0,version:1}),Fn=[{address:D,value:a},...Q?[{address:"",script:Bn(Q),value:0}]:[]],pn=R-a-V,wn=await G();if(pn>Dy(n)&&wn)Fn.push({address:wn,value:pn});return To({chain:n,compiledMemo:b,inputs:I,outputs:Fn,sender:wn||D,tx:Un}),{feeDelta:yn,newFee:V,originalFee:O.fee,tx:Un}}async function L({txid:q,newFeeRate:Y,recipient:D,memo:Q}){if(!H)throw new c("toolbox_utxo_no_signer");let{tx:O,originalFee:R,newFee:S}=await z({memo:Q,newFeeRate:Y,recipient:D,txid:q});H.signTransaction(O),O.finalize();let k=await s(n).broadcastTx(Zo.encode(O.extract()));return{newFee:S,originalFee:R,txid:k}}function N({accountIndex:q,index:Y,change:D=!1}){zn("index",Y);let Q=q===void 0?w:M(q);if(!Q)return;return Q.deriveChild(Number(D)).deriveChild(Y).privateKey||void 0}function J({tx:q,inputDerivations:Y}){if(!w)throw new c("toolbox_utxo_no_signer");let D=n===e.BitcoinCash?[It.ALL]:[e1.ALL];for(let Q=0;Q<Y.length;Q++){let O=Y[Q];if(!O)continue;let{derivationIndex:R,isChange:S}=O,k=N({change:S,index:R});if(!k)throw new c("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${Q} at index ${R}`});q.signIdx(k,Q,D)}return q}async function U({utxos:q,recipient:Y,assetValue:D,memo:Q,feeRate:O,feeOptionKey:R,changeAddress:S}){if(!w)throw new c("toolbox_utxo_no_signer");let k=O||(await Ko(n))[R||Pn.Fast],I=Q?Bn(Q):null,b=[{address:Y,value:D.getBaseValue("number")}];if(I)b.push({address:"",script:I,value:0});let K=q.map(({hash:wn,index:d,value:Zn,txHex:zA,witnessUtxo:AT})=>({hash:wn,index:d,txHex:zA,value:Zn,witnessUtxo:AT?{script:AT.script,value:AT.value}:void 0})),{inputs:V,outputs:yn}=Dn({chain:n,feeRate:k,inputs:K,outputs:b});if(!(V&&yn))throw new c("toolbox_utxo_insufficient_balance",{assetValue:D,sender:"multiple addresses"});let a=new ut({allowLegacyWitnessUtxo:!0,version:1}),Un=q[0]?.address,Fn=S||await G()||Un||Y;To({chain:n,compiledMemo:I,inputs:V,outputs:yn,sender:Fn,tx:a});let pn=V.map((wn)=>{let d=q.find((Zn)=>Zn.hash===wn.hash&&Zn.index===wn.index);return d?{derivationIndex:d.derivationIndex,isChange:d.isChange}:{derivationIndex:0,isChange:!1}});return J({inputDerivations:pn,tx:a}),a.finalize(),s(n).broadcastTx(Zo.encode(a.extract()))}function B({address:q,gapLimit:Y=20}){if(!w)return;for(let D=0;D<Y;D++){let Q=l({change:!1,index:D}),O=l({change:!0,index:D}),R=Q?.address===q?!1:O?.address===q;if(Q?.address===q||O?.address===q)return{change:R,index:D}}return}return{accumulative:Dn,broadcastTx:(q)=>s(n).broadcastTx(q),bumpFee:L,calculateTxSize:Mo,createKeysForPath:(q)=>jo({...q,chain:n}),createReplacementTransaction:z,createTransaction:fH,deriveAddressAtIndex:l,derivePrivateKeyAtIndex:N,estimateMaxSendableAmount:KU(n),estimateTransactionFee:cU(n),getAddress:G,getAddressFromKeys:bt(n),getBalance:qn(n),getExtendedPublicKey:X,getExtendedPublicKeyInfo:W,getFeeRates:()=>Ko(n),getInputsOutputsFee:TH,getNetworkForChain:()=>An(n),getPrivateKeyFromMnemonic:(q)=>VU(jo({...q,chain:n}).privateKey,n),isRBFEnabled:Z,keys:_,resolveDerivationIndex:B,signAndBroadcastTransaction:async(q)=>{if(!H)throw new c("toolbox_utxo_no_signer");return H.signTransaction(q),q.finalize(),await s(n).broadcastTx(Zo.encode(q.extract()))},signTransactionWithMultipleKeys:J,transfer:hU(n,H),transferFromMultipleAddresses:U,validateAddress:Et(n)}}var xy,Vf;var co=p(()=>{En();Zy();bo();Oy();xy=[e.Dash,e.Dogecoin,e.Zcash,e.BitcoinCash],Vf=[e.Bitcoin]});import{hex as tH}from"@scure/base";import{Chain as mU,derivationPathToString as rU,FeeOption as gU,NetworkDerivationPath as dU,SwapKitError as mn,updateDerivationPath as aU}from"@swapkit/helpers";import{BCHSigHash as sU,CashAddrPrefix as CH,CashAddrType as HH,encodeCashAddr as AH,NETWORKS as eU,p2pkh as _H,Transaction as UH}from"@swapkit/utxo-signer";function py(n){return Qo(Yy(n))}function n8(n){let y=An(In);function T(f){return f.sign(n.privateKey,[sU.ALL]),f}function o(){let f=_H(n.publicKey,y);if(!f.hash)throw new mn("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let t=AH({hash:f.hash,prefix:CH.MAINNET,type:HH.P2PKH});return Promise.resolve(t.replace(/^bitcoincash:/,""))}return{getAddress:o,signTransaction:T}}function vt(n){let y="phrase"in n?n.phrase:void 0,T="index"in n?n.index||0:0,o=rU("derivationPath"in n&&n.derivationPath?n.derivationPath:aU(dU[In],{index:T})),f=y?jo({chain:In,derivationPath:o,phrase:y}):void 0,t=f?n8(f):("signer"in n)?n.signer:void 0;function C(){return Promise.resolve(t?.getAddress())}let{getBalance:H,getFeeRates:A,broadcastTx:_,...G}=to({chain:In});function M(X,W=!0){return H(Qo(Yy(X)))}async function w(X){if(!t)throw new mn("toolbox_utxo_no_signer");return t.signTransaction(X),X.finalize(),await _(tH.encode(X.extract()))}return{...G,broadcastTx:_,buildTx:y8,createTransaction:wH,getAddress:C,getAddressFromKeys:f8,getBalance:M,getFeeRates:A,signAndBroadcastTransaction:w,stripPrefix:Qo,stripToCashAddress:py,transfer:o8({broadcastTx:_,getFeeRates:A,signer:t}),validateAddress:fo}}async function wH({assetValue:n,recipient:y,memo:T,feeRate:o,sender:f}){if(!fo(y))throw new mn("toolbox_utxo_invalid_address",{address:y});let t=Math.ceil(n.getBaseValue("number")+o*7500),C=await s(In).getUtxos({address:py(f),fetchTxHex:!0,targetValue:t}),H=T?Bn(T):null,A=[],_=hn(y);if(A.push({address:_,value:n.getBaseValue("number")}),H)A.push({script:H,value:0});let{inputs:G,outputs:M}=Dn({chain:In,feeRate:o,inputs:C,outputs:A});if(!(G&&M))throw new mn("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let w=new UH({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!H,version:1}),X=hn(f),{inputs:W,tx:l}=To({chain:In,compiledMemo:H,inputs:G,outputs:M.map((Z)=>("address"in Z)&&Z.address?{...Z,address:hn(Z.address)}:Z),sender:X,tx:w});return{inputs:W,tx:l,utxos:G}}function o8({broadcastTx:n,getFeeRates:y,signer:T}){return async function({recipient:f,assetValue:t,feeOptionKey:C=gU.Fast,...H}){let A=await T?.getAddress();if(!(T&&A))throw new mn("toolbox_utxo_no_signer");if(!f)throw new mn("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let _=H.feeRate||(await y())[C],{tx:G}=await wH({...H,assetValue:t,feeRate:_,recipient:f,sender:A}),M=await T.signTransaction(G);return M.finalize(),n(tH.encode(M.extract()))}}async function y8({assetValue:n,recipient:y,memo:T,feeRate:o,sender:f}){let t=Yy(y);if(!fo(t))throw new mn("toolbox_utxo_invalid_address",{address:t});let C=Math.ceil(n.getBaseValue("number")+o*7500),H=await s(In).getUtxos({address:py(f),fetchTxHex:!0,targetValue:C}),A=Number(o.toFixed(0)),_=T?Bn(T):null,G=[];if(G.push({address:hn(y),value:n.getBaseValue("number")}),_)G.push({script:_,value:0});let{inputs:M,outputs:w}=Dn({chain:In,feeRate:A,inputs:H,outputs:G});if(!(M&&w))throw new mn("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let X=new UH({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:W,tx:l}=To({chain:In,compiledMemo:_,inputs:M,outputs:w,sender:hn(f),tx:X});return{inputs:W,tx:l,utxos:H}}function f8(n){let y=eU.bitcoinCash,T=_H(n.publicKey,y);if(!T.hash)throw new mn("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return AH({hash:T.hash,prefix:CH.MAINNET,type:HH.P2PKH}).replace(/^bitcoincash:/,"")}var In;var jf=p(()=>{bo();co();Oy();In=mU.BitcoinCash});import{createBase58check as T8,hex as t8}from"@scure/base";import{HDKey as lH}from"@scure/bip32";import{mnemonicToSeedSync as XH}from"@scure/bip39";import{Chain as Kf,derivationPathToString as C8,FeeOption as H8,NetworkDerivationPath as A8,SKConfig as WH,SwapKitError as io,updateDerivationPath as _8}from"@swapkit/helpers";import{Address as U8,createZcashTransaction as w8,OutScript as q8,PCZT as G8,utils as BH,WIF as l8,ZCASH_NETWORK as X8,ZCASH_TEST_NETWORK as W8,ZcashConsensusBranchId as B8,ZcashSigHash as qH,ZcashVersionGroupId as M8}from"@swapkit/utxo-signer";import{match as L8,P as Vt}from"ts-pattern";function MH(){let{isStagenet:n}=WH.get("envs");return n?W8:X8}function Z8(n){return Q8.encode(n)}function J8({phrase:n,derivationPath:y}){let T=XH(n),f=lH.fromMasterSeed(T).derive(y);if(!f.privateKey||!f.publicKey)throw new io("toolbox_utxo_invalid_params");let{privateKey:t,publicKey:C}=f,H=BH.hash160(C),{isStagenet:A}=WH.get("envs"),_=A?new Uint8Array([29,37]):new Uint8Array([28,184]),G=new Uint8Array(_.length+H.length);G.set(_,0),G.set(H,_.length);let M=Z8(G);return{getAddress:()=>Promise.resolve(M),signTransaction:(w)=>{if(w instanceof G8)return w.signAllInputs(t,C,qH.ALL),w.finalizeAllInputs(),Promise.resolve(w.extract());return w.signAllInputs(t,C,qH.ALL),Promise.resolve(w)}}}function Y8({inputs:n,outputs:y,tx:T,sender:o,compiledMemo:f}){let t=MH();for(let C of n){let H=U8(t).decode(o),A=q8.encode(H);T.addInput({index:C.index,script:A,sequence:4294967295,txid:t8.decode(C.hash),value:BigInt(C.value)})}for(let C of y){let H="address"in C&&C.address?C.address:o,A=C.script;if(A&&!f)continue;if(A&&f)T.addOutput({amount:0n,script:f});else T.addOutputAddress(H,BigInt(C.value),t)}return{inputs:n,tx:T}}async function GH(n){let{assetValue:y,recipient:T,memo:o,feeRate:f,sender:t,fetchTxHex:C}=n,H=o?Bn(o):null,A=await s(Kf.Zcash).getUtxos({address:t,fetchTxHex:C!==!1}),_=[{address:T,value:Number(y.getBaseValue("string"))},...H?[{script:H,value:0}]:[]],{inputs:G,outputs:M}=Dn({chain:Kf.Zcash,changeAddress:t,feeRate:f,inputs:A,outputs:_});if(!(G&&M))throw new io("toolbox_utxo_insufficient_balance",{assetValue:y,sender:t});let w=w8({consensusBranchId:B8.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:M8.SAPLING}),{tx:X,inputs:W}=Y8({compiledMemo:H,inputs:G,outputs:M,sender:t,tx:w});return{inputs:W,outputs:M,tx:X}}function jt(n){let y=L8(n).with({signer:Vt.not(Vt.nullish)},({signer:A})=>A).with({phrase:Vt.string},({phrase:A,derivationPath:_,index:G=0})=>{let M=_||A8[Kf.Zcash]||[44,133,0,0,0],w=_8(M,{index:G}),X=C8(w);return J8({derivationPath:X,phrase:A})}).otherwise(()=>{return}),T=to({chain:Kf.Zcash,signer:y});async function o({recipient:A,assetValue:_,feeOptionKey:G=H8.Fast,...M}){let w=await y?.getAddress();if(!(y&&w))throw new io("toolbox_utxo_no_signer");let X=M.feeRate||(await T.getFeeRates())[G],{tx:W}=await GH({...M,assetValue:_,feeRate:X,recipient:A,sender:w}),Z=(await y.signTransaction(W)).toHex();return T.broadcastTx(Z)}function f({phrase:A,derivationPath:_="m/44'/133'/0'/0/0"}){let G=XH(A),w=lH.fromMasterSeed(G).derive(_);if(!w.privateKey||!w.publicKey)throw new io("toolbox_utxo_invalid_params");return{privateKey:w.privateKey,publicKey:w.publicKey}}function t({phrase:A,derivationPath:_="m/44'/133'/0'/0/0"}){let G=f({derivationPath:_,phrase:A}),M=MH();return l8(M).encode(G.privateKey)}function C(A){return async function(G){if(!A)throw new io("toolbox_utxo_no_signer");return await A.signTransaction(G)}}function H(A){return async function(G){if(!A)throw new io("toolbox_utxo_no_signer");let M=await A.signTransaction(G);return T.broadcastTx(M.toHex())}}return{...T,createKeysForPath:f,createTransaction:GH,getPrivateKeyFromMnemonic:t,signAndBroadcastTransaction:H(y),signTransaction:C(y),transfer:o,validateAddress:vo}}var Q8;var Kt=p(()=>{bo();co();Oy();Q8=T8(BH.sha256)});import{hex as N8}from"@scure/base";import{HDKey as z8}from"@scure/bip32";import{derivationPathToString as D8}from"@swapkit/helpers";function LH({xpub:n,chain:y,count:T,startIndex:o=0,accountIndex:f}){if(zn("count",T),T<1)throw RangeError("count must be at least 1");zn("startIndex",o);let t=An(y),C=z8.fromExtendedKey(n,t.bip32),H=oo({accountIndex:f,chain:y}),A=Wo(H),_=[];for(let G of[!1,!0]){let M=C.deriveChild(Number(G));for(let w=0;w<T;w++){let X=o+w,W=M.deriveChild(X);if(!W.publicKey)continue;let l=Io({accountIndex:f,chain:y,change:G,index:X});_.push({accountIndex:A,address:Fy({chain:y,network:t,publicKey:W.publicKey}),change:G,index:X,path:D8(l),pubkey:N8.encode(W.publicKey)})}}return _}var QH=p(()=>{Zy();co()});import{Chain as ho,SwapKitError as O8}from"@swapkit/helpers";function R8(n,y){switch(n){case ho.BitcoinCash:return vt(y||{});case ho.Zcash:return jt(y);case ho.Bitcoin:case ho.Dogecoin:case ho.Litecoin:case ho.Dash:return to({chain:n,...y});default:throw new O8("toolbox_utxo_not_supported",{chain:n})}}var ZH=p(()=>{jf();co();Kt();Zy();QH();jf();Oy()});var ct={};nn(ct,{validateZcashAddress:()=>vo,validateUtxoAddress:()=>$t,validateBchAddress:()=>fo,toLegacyAddress:()=>hn,toCashAddress:()=>Yy,stripToCashAddress:()=>py,stripPrefix:()=>Qo,nonSegwitChains:()=>xy,isValidAddress:()=>pt,getUtxoToolbox:()=>R8,getUtxoNetwork:()=>_U,getUtxoApi:()=>s,getUTXOAddressValidator:()=>Et,getUTXOAddressPath:()=>Io,getUTXOAccountPath:()=>oo,getUTXOAccountIndexFromPath:()=>Wo,getScriptTypeForAddress:()=>Eo,getOutputSize:()=>zy,getNetworkForChain:()=>An,getInputSize:()=>yo,getDustThreshold:()=>Dy,detectAddressNetwork:()=>St,deriveAddressesFromXpub:()=>LH,createZcashToolbox:()=>jt,createUTXOToolbox:()=>to,createHDWalletHelpers:()=>u1,createCustomUtxoApi:()=>AU,createBCHToolbox:()=>vt,compileMemo:()=>Bn,calculateTxSize:()=>Mo,assertDerivationIndex:()=>zn,addressFromKeysGetter:()=>bt,addInputsAndOutputs:()=>To,accumulative:()=>Dn,UtxoNetwork:()=>Ft,UTXOScriptType:()=>bf,TX_OVERHEAD:()=>$f,SEGWIT_MARKER_FLAG_WEIGHT:()=>Ef,OutputSizes:()=>Ny,OP_RETURN_OVERHEAD:()=>h1,MIN_TX_FEE:()=>NU,InputSizes:()=>If});var it=p(()=>{co();Zy();bo();ZH();jf();Kt()});import{KeyPairSigner as x8}from"@near-js/signers";import{derivationPathToString as F8,SwapKitError as p8}from"@swapkit/helpers";import*as JH from"near-seed-phrase";function Sy(n){return n.length>=2&&n.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(n)}async function cf(n){let{KeyPair:y}=await import("@near-js/crypto"),T=n.index||0,o=n.derivationPath?F8(n.derivationPath.slice(0,3)):`m/44'/397'/${T}'`,{secretKey:f}=JH.parseSeedPhrase(n.phrase,o),t=y.fromString(f);return NH(t)}async function ht(n){let{KeyPair:y}=await import("@near-js/crypto"),T=y.fromString(n);return NH(T)}function NH(n){return new YH(n)}async function hf(n,y){let o=(await n.query({account_id:y,finality:"final",request_type:"view_access_key_list"})).keys.find((H)=>H.access_key.permission==="FullAccess");if(!o)throw new p8("toolbox_near_no_public_key_found");let{PublicKey:f}=await import("@near-js/crypto"),t=f.fromString(o.public_key);return{nonce:o.access_key.nonce||0,publicKey:t}}var YH;var mt=p(()=>{YH=class YH extends x8{#n;constructor(n){super(n);this.#n=n}getAddress(){let n=this.#n.getPublicKey(),y=Buffer.from(n.data).toString("hex");return Promise.resolve(y)}}});function rt(n){return"recipient"in n&&"amount"in n&&!("contractId"in n)}function gt(n){return"contractId"in n&&"methodName"in n}function dt(n){return"actions"in n}function at(n){return"newAccountId"in n}function st(n){return"contractCode"in n}function et(n){return"customEstimator"in n}function n0(n){let y=0;for(let T of n)switch(T.enum){case"transfer":y+=Number(Cn.SIMPLE_TRANSFER);break;case"functionCall":y+=Number(Cn.CONTRACT_CALL);break;case"createAccount":y+=Number(Cn.ACCOUNT_CREATION);break;case"deployContract":y+=Number(Cn.CONTRACT_DEPLOYMENT);break;case"addKey":y+=Number(Cn.ACCESS_KEY_ADDITION);break;case"deleteKey":y+=Number(Cn.ACCESS_KEY_DELETION);break;case"stake":y+=Number(Cn.STAKE);break;default:y+=Number(Cn.CONTRACT_CALL)}return y.toString()}function o0(n){if(n==="ft_transfer"||n==="ft_transfer_call")return Cn.TOKEN_TRANSFER;if(n==="storage_deposit")return Cn.STORAGE_DEPOSIT;return Cn.CONTRACT_CALL}function S8(n){return(BigInt(n)*BigInt(1000000000000)).toString()}function k8(n){return(BigInt(n)/BigInt(1000000000000)).toString()}var Cn;var y0=p(()=>{Cn={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 f0({account:n,contractId:y,viewMethods:T,changeMethods:o}){let{Contract:f}=await import("@near-js/accounts");return new f(n,y,{changeMethods:o,useLocalViewExecution:!0,viewMethods:T})}import{JsonRpcProvider as u8}from"@near-js/providers";import{AssetValue as T0,Chain as mo,getRPCUrl as zH,SwapKitError as Xn}from"@swapkit/helpers";import{match as DH,P as OH}from"ts-pattern";function P8(n){let y;async function T(){if(y)return y;return y=await DH(n).with({phrase:OH.string},async(Q)=>{return await cf(Q)}).with({signer:OH.any},({signer:Q})=>Q).otherwise(()=>{return}),y}async function o(){let Q=await zH(mo.Near);return new u8({url:Q})}async function f(Q){let{Account:O}=await import("@near-js/accounts"),R=await o(),S=await T(),k=Q||await t();return new O(k,R,S)}async function t(){let Q=await T();if(!Q)throw new Xn("toolbox_near_no_signer");return await Q.getAddress()}async function C(Q){return(await J({changeMethods:[],contractId:Q.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:Q.accountId})}async function H(Q){let R=[await w({args:{account_id:Q.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await w({args:{amount:Q.assetValue.getBaseValue("string"),memo:Q.memo||null,receiver_id:Q.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return U({actions:R,receiverId:Q.contractId})}async function A(Q){if(!await T())throw new Xn("toolbox_near_no_signer");let{assetValue:R,recipient:S,memo:k}=Q,I=await t();if(!R.isGasAsset&&R.address){if(!await C({accountId:S,contractId:R.address}))return H({assetValue:R,contractId:R.address,memo:k,recipient:S})}let b=await _({...Q,sender:I});return l(b)}async function _({recipient:Q,assetValue:O,memo:R,attachedDeposit:S,sender:k,functionCall:I}){let b=await o();if(!Sy(Q))throw new Xn("toolbox_near_invalid_address",{recipient:Q});if(!Sy(k))throw new Xn("toolbox_near_invalid_address",{sender:k});if(I)return M({...I,sender:k});if(!O.isGasAsset){let Zn=O.address;if(!Zn)throw new Xn("toolbox_near_missing_contract_address");return M({args:{amount:O.getBaseValue("string"),memo:R||null,receiver_id:Q},attachedDeposit:S||"1",contractId:Zn,gas:"250000000000000",methodName:"ft_transfer",sender:k})}let{publicKey:K,nonce:V}=await hf(b,k),yn=O.getBaseValue("bigint"),{actionCreators:a,createTransaction:Un}=await import("@near-js/transactions"),{baseDecode:Fn}=await import("@near-js/utils"),pn=[a.transfer(yn)];if(R&&S)pn.push(a.functionCall("memo",{memo:R},BigInt("250000000000000"),BigInt(S)));let wn=await b.block({finality:"final"}),d=Fn(wn.header.hash);return Un(k,K,Q,V+1,pn,d)}function G(Q){let O=Q.encode();return Buffer.from(O).toString("base64")}async function M({args:Q,attachedDeposit:O,contractId:R,gas:S,methodName:k,sender:I}){let b=await o(),{publicKey:K,nonce:V}=await hf(b,I),{createTransaction:yn,actionCreators:a}=await import("@near-js/transactions"),{baseDecode:Un}=await import("@near-js/utils"),Fn=await b.block({finality:"final"}),pn=Un(Fn.header.hash),wn=[a.functionCall(k,Buffer.from(JSON.stringify(Q)),BigInt(S),BigInt(O))];return yn(I,K,R,V+1,wn,pn)}async function w(Q){let{actionCreators:O}=await import("@near-js/transactions");return O.functionCall(Q.methodName,Buffer.from(JSON.stringify(Q.args)),BigInt(Q.gas),BigInt(Q.attachedDeposit))}async function X(Q){let O=await T();if(!O)throw new Xn("toolbox_near_no_signer");let[R,S]=await O.signTransaction(Q);return S}async function W(Q){return(await(await o()).sendTransaction(Q)).transaction.hash}async function l(Q){let O=await T();if(!O)throw new Xn("toolbox_near_no_signer");try{let R=await X(Q);return await W(R)}catch{return O.signAndSendTransactions?.({transactions:[Q]})}}async function Z(Q){let O=await T();if("assetValue"in Q){let S=await z();try{let k=await zH(mo.Near),I=await fetch(k,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:b}}=await I.json(),{execution:K,send_sir:V}=b.transaction_costs.action_receipt_creation_config,{execution:yn,send_sir:a}=b.transaction_costs.action_creation_config.transfer_cost,Un=BigInt(a)+BigInt(yn),Fn=BigInt(V)+BigInt(K),wn=(Un+Fn)*BigInt(S.toString());return T0.from({chain:mo.Near,value:wn})}catch(k){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",k);let I=BigInt("115123062500"),b=BigInt("108059500000"),V=(I+b)*BigInt(S.toString());return T0.from({chain:mo.Near,value:V})}}let R=O?await f():void 0;return B(Q,R)}async function z(){let Q=await o();try{return await Q.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function L(Q,O,R){if(!await T())throw new Xn("toolbox_near_no_signer");let k=await f(),{formatNearAmount:I}=await import("@near-js/utils"),{PublicKey:b}=await import("@near-js/crypto"),K=I(R)||"0";return(await k.createAccount(Q,b.fromString(O),BigInt(K))).transaction.hash}async function N(Q){let O=await T();try{if(!O)throw new Xn("toolbox_near_no_signer");let{actionCreators:R}=await import("@near-js/transactions"),{contractId:S,methodName:k,args:I,deposit:b}=Q,K=await f(),V=await B({args:I||{},contractId:S,methodName:k}),yn=R.functionCall(k,I||{},V.getBaseValue("bigint"),BigInt(b||"1"));return(await K.signAndSendTransaction({actions:[yn],receiverId:S})).transaction_outcome.id}catch(R){throw new Xn("toolbox_near_transfer_failed",{error:R})}}async function J(Q){let O=await f();return f0({account:O,changeMethods:Q.changeMethods,contractId:Q.contractId,viewMethods:Q.viewMethods})}async function U(Q){if(!await T())throw new Xn("toolbox_near_no_signer");if(Q.actions.length===0)throw new Xn("toolbox_near_empty_batch");return(await(await f()).signAndSendTransaction({actions:Q.actions,receiverId:Q.receiverId})).transaction.hash}async function B(Q,O){let R=await DH(Q).when(rt,()=>Cn.SIMPLE_TRANSFER).when(gt,(k)=>o0(k.methodName)).when(dt,(k)=>n0(k.actions)).when(at,()=>Cn.ACCOUNT_CREATION).when(st,()=>Cn.CONTRACT_DEPLOYMENT).when(et,(k)=>{if(!O)throw new Xn("toolbox_near_no_account");return k.customEstimator(O)}).otherwise(()=>{throw new Xn("toolbox_near_invalid_gas_params")}),S=BigInt(R)*BigInt(1000000000000);return T0.from({chain:mo.Near,value:S})}function q(Q,O){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),B(Q,O)}async function Y(){let Q=await o();try{return(await Q.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function D(){let Q=await T();return Q?(await Q.getPublicKey()).toString():""}return{broadcastTransaction:W,callFunction:N,createAction:w,createContract:J,createContractFunctionCall:M,createSubAccount:L,createTransaction:_,estimateGas:q,estimateGasLimit:B,estimateTransactionFee:Z,executeBatchTransaction:U,getAddress:t,getBalance:qn(mo.Near),getGasPrice:Y,getNearProvider:o,getPublicKey:D,getSignerFromPhrase:cf,getSignerFromPrivateKey:ht,serializeTransaction:G,signAndBroadcastTransaction:l,signTransaction:X,transfer:A,validateAddress:Sy}}var t0=p(()=>{En();mt();y0()});var RH=p(()=>{t0()});var C0={};nn(C0,{validateNearAddress:()=>Sy,tgasToGas:()=>S8,isSimpleTransfer:()=>rt,isCustomEstimator:()=>et,isContractDeployment:()=>st,isContractCall:()=>gt,isBatchTransaction:()=>dt,isAccountCreation:()=>at,getNearToolbox:()=>P8,getNearSignerFromPrivateKey:()=>ht,getNearSignerFromPhrase:()=>cf,getFullAccessPublicKey:()=>hf,getContractMethodGas:()=>o0,gasToTGas:()=>k8,estimateBatchGas:()=>n0,createNearContract:()=>f0,GAS_COSTS:()=>Cn});var H0=p(()=>{mt();y0();t0();RH()});var _0={};nn(_0,{validateRadixAddress:()=>FH,getRadixToolbox:()=>c8});import{GatewayApiClient as I8}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as $8}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as xH,Chain as A0,SKConfig as E8,SwapKitError as b8}from"@swapkit/helpers";function FH(n){return n.startsWith("account_rdx1")&&n.length===66}function v8({networkApi:n}){return async function(T){let o=await V8({address:T,networkApi:n}),f=await j8({networkApi:n,resources:o});if(!f.some((C)=>C.isGasAsset))return[xH.from({chain:A0.Radix}),...f];return f}}async function V8({address:n,networkApi:y}){let T=!0,o,f=[],t=await K8(y);while(T){let C={address:n,at_ledger_state:{state_version:t},cursor:o,limit_per_page:100},H=await y.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:C});if(f=f.concat(H.items),H.next_cursor)o=H.next_cursor;else T=!1}return f}async function j8({resources:n,networkApi:y}){let T=[],o=50,f=[];for(let t=0;t<n.length;t+=50)f.push(n.slice(t,t+50));for(let t of f){let C=t.map((_)=>_.resource_address),H=await y.state.getEntityDetailsVaultAggregated(C),A=new Map;for(let _ of H)if(_.details!==void 0){let G=_.metadata?.items.find((w)=>w.key==="symbol"),M=G?.value.typed.type==="String"?G.value.typed.value:"?";if(_.details.type==="FungibleResource")A.set(_.address,{decimals:_.details.divisibility,symbol:M})}for(let _ of t)if(_.aggregation_level==="Global"){let G=A.get(_.resource_address)||{decimals:0,symbol:"?"},M=xH.from({asset:G.symbol!==A0.Radix?`${A0.Radix}.${G.symbol}-${_.resource_address}`:"XRD.XRD",value:_.amount});T.push(M)}}return T}async function K8(n){return(await n.status.getCurrent()).ledger_state.state_version}function c8({dappConfig:n}={}){let y=n||E8.get("integrations").radix,T=$8({...y,networkId:y.network?.networkId||1}),o=I8.initialize(T.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:v8({networkApi:o}),networkApi:o,signAndBroadcast:()=>{throw new b8("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:FH}}var U0=()=>{};import{SwapKitError as i8}from"@swapkit/helpers";function mf(n){return/^[0-9A-Fa-f]{40}$/.test(n)}function ky(n){if(mf(n))return n.toUpperCase();if(n.length<=3){let T=Buffer.from(n.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${T}${"0".repeat(10)}`.toUpperCase()}let y=Buffer.from(n).toString("hex").toUpperCase();if(y.length>40)throw new i8({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n,reason:"Currency exceeds maximum length (20 bytes)"}});return y.padEnd(40,"0")}function h8(n){if(!mf(n))return n;if(n.toUpperCase().startsWith("00")){let y=n.slice(24,30);try{let T=Buffer.from(y,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(T)&&T.length>0)return T}catch{}return n.toUpperCase()}try{let y=n.replace(/0+$/,""),T=y.length%2===0?y:`${y}0`,o=Buffer.from(T,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(o))return o}catch{}return n.toUpperCase()}function ro(n){if(mf(n))return n.toUpperCase();if(n.length<=3)return n;return ky(n)}var rf=()=>{};import{RequestClient as m8,warnOnce as r8}from"@swapkit/helpers";async function g8(n,y){let T=ro(n),o=gf.find((f)=>ro(f.currency)===T&&f.issuer===y);if(o)return o;try{let f=await m8.get(`https://api.xrplmeta.org/token/${n}:${y}`);if(f)return{currency:n,decimals:15,description:f.desc,domain:f.domain,icon:f.icon,issuer:y,name:f.name,verified:f.self_assessment?.is_regulated||f.self_assessment?.is_licensed}}catch(f){r8({condition:!0,id:`xrpl_token_lookup_${n}_${y}`,warning:`Failed to fetch XRPL token info for ${n}:${y}: ${f}`})}return{currency:n,decimals:15,issuer:y,verified:!1}}function d8(n){return gf.filter((y)=>y.issuer===n)}function a8(n,y){let T=ro(n);return gf.some((o)=>ro(o.currency)===T&&o.issuer===y)}var gf;var pH=p(()=>{rf();gf=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var w0={};nn(w0,{validateRippleAddress:()=>sf,parseXrplTokenIdentifier:()=>EH,normalizeCurrency:()=>ro,isKnownToken:()=>a8,isHexCurrency:()=>mf,hexToCurrency:()=>h8,hashes:()=>Tw,getXrplTokenInfo:()=>g8,getRippleToolbox:()=>fw,getKnownTokensByIssuer:()=>d8,formatXrplTokenIdentifier:()=>bH,currencyToHex:()=>ky,XRPL_TOKEN_ERROR_CODES:()=>af,XRPL_KNOWN_TOKENS:()=>gf});import{AssetValue as df,Chain as On,getChainConfig as SH,getRPCUrl as s8,SwapKitError as _n}from"@swapkit/helpers";import{match as kH,P as uH}from"ts-pattern";import{Client as e8,isValidAddress as $H,Wallet as nw,xrpToDrops as ow}from"xrpl";import{hashes as Tw}from"xrpl";function EH(n){let y=n.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!y?.[1]||!y?.[2])return null;if(!$H(y[2]))return null;return{currency:y[1],issuer:y[2]}}function bH(n,y){return`${On.Ripple}.${n}-${y}`}function yw(n){if(n.isGasAsset)return ow(n.getValue("string"));let y=EH(n.toString());if(!y)throw new _n({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n.toString()}});return{currency:y.currency,issuer:y.issuer,value:n.getValue("string")}}function IH(n){let y=nw.fromMnemonic(n);return{getAddress:()=>Promise.resolve(y.address),signTransaction:(T)=>Promise.resolve(y.sign(T))}}function sf(n){return $H(n)}function fw(n={}){let y=kH(n).with({phrase:uH.string},({phrase:L})=>IH(L)).with({signer:uH.any},({signer:L})=>L).otherwise(()=>{return}),T;async function o(){let L=await s8(On.Ripple);if(!L)throw new _n({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:On.Ripple}});let N=new e8(L);return await N.connect(),N}async function f(){if(T){let L=await T.catch(()=>null);if(L?.isConnected())return L}return T=o(),T}let t=()=>{if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});return y.getAddress()},C=async(L)=>{let N=L||await t(),{baseDecimal:J}=SH(On.Ripple),U=await f();try{let[B,q]=await Promise.all([U.request({account:N,command:"account_info"}),U.request({account:N,command:"account_lines"})]),Y=B.result.account_data.Balance,D=[df.from({chain:On.Ripple,fromBaseDecimal:J,value:Y})];for(let Q of q.result.lines){let O=bH(Q.currency,Q.account);if(Number.parseFloat(Q.balance)!==0)D.push(df.from({asset:O,asyncTokenLookup:!1,value:Q.balance}))}return D}catch(B){if(B.data?.error_code===PH.ACCOUNT_NOT_FOUND)return[df.from({chain:On.Ripple,value:0})];throw new _n({errorKey:"toolbox_ripple_get_balance_error",info:{address:N,error:B}})}},H=async()=>{let{baseDecimal:L}=SH(On.Ripple),U=(await(await f()).request({command:"fee"})).result.drops.open_ledger_fee;return df.from({chain:On.Ripple,fromBaseDecimal:L,value:U})};async function A(L){let N=L||await t(),J=await f();try{return(await J.request({account:N,command:"account_lines"})).result.lines.map((B)=>({account:B.account,authorized:B.authorized??!1,balance:B.balance,currency:B.currency,freeze:B.freeze??!1,freezePeer:B.freeze_peer??!1,limit:B.limit,limitPeer:B.limit_peer,noRipple:B.no_ripple??!1,noRipplePeer:B.no_ripple_peer??!1,peerAuthorized:B.peer_authorized??!1,qualityIn:B.quality_in??0,qualityOut:B.quality_out??0}))}catch(U){if(U.data?.error_code===PH.ACCOUNT_NOT_FOUND)return[];throw new _n({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:N,error:U}})}}async function _({address:L,currency:N,issuer:J}){let U=await A(L),B=ky(N);return U.some((q)=>{return ky(q.currency)===B&&q.account===J})}async function G({currency:L,issuer:N,limit:J,sender:U}){let B=U||await t();if(!sf(N))throw new _n({errorKey:"core_transaction_invalid_recipient_address",info:{address:N}});let q=Number.parseFloat(J);if(Number.isNaN(q)||q<0)throw new _n({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:J}});let Y=await f(),D={Account:B,LimitAmount:{currency:L,issuer:N,value:J},TransactionType:"TrustSet"};return Y.autofill(D)}async function M({assetValue:L,recipient:N,memo:J,sender:U,destinationTag:B,extendBySeconds:q=150}){if(!sf(N))throw new _n({errorKey:"core_transaction_invalid_recipient_address"});let Y=U||await t();if(L.chain!==On.Ripple)throw new _n({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:L.toString()}});let D=yw(L),Q={Account:Y,Amount:D,Destination:N,TransactionType:"Payment",...B!==void 0&&{DestinationTag:B}};if(J)Q.Memos=[{Memo:{MemoData:Buffer.from(J).toString("hex")}}];let R=await(await f()).autofill(Q);if(R.LastLedgerSequence&&q>0)R.LastLedgerSequence+=Math.ceil(q/4);return R}function w(L){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});return y.signTransaction(L)}async function X(L){let J=await(await f()).submitAndWait(L),{result:U}=J;if(U.validated)return U.hash;let B=U.meta?.TransactionResult,q=kH(B).with(af.tecNO_LINE,()=>"No trust line exists for this token").with(af.tecPATH_DRY,()=>"Payment path could not deliver funds").with(af.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new _n({errorKey:"toolbox_ripple_broadcast_error",info:{chain:On.Ripple,...q?{reason:q}:{txResult:B}}})}let W=async(L)=>{try{let N=await w(L);return X(N.tx_blob)}catch(N){if(N instanceof _n)throw N;throw new _n({errorKey:"toolbox_ripple_broadcast_error",info:{chain:On.Ripple,error:N}})}};async function l(L){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});let N=await y.getAddress(),J=await M({...L,sender:N}),U=await w(J);return X(U.tx_blob)}async function Z(L){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});let N=await y.getAddress(),J=await G({...L,sender:N}),U=await w(J);return X(U.tx_blob)}function z(){let L=T;if(T=null,L)L.then((N)=>{if(N?.isConnected())return N.disconnect();return}).catch((N)=>{console.warn("XRPL Cleanup failed silently:",N)})}return{broadcastTransaction:X,createSigner:IH,createTransaction:M,disconnect:z,estimateTransactionFee:H,getAddress:t,getBalance:C,getTrustLines:A,hasTrustLine:_,setTrustLine:G,setTrustLineAndBroadcast:Z,signAndBroadcastTransaction:W,signTransaction:w,transfer:l,validateAddress:sf}}var PH,af;var q0=p(()=>{rf();rf();pH();PH={ACCOUNT_NOT_FOUND:19},af={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});import{sha256 as tw}from"@noble/hashes/sha2.js";import{bytesToHex as vH,hexToBytes as VH}from"@noble/hashes/utils.js";import{SwapKitError as go}from"@swapkit/helpers";function G0(n,y){let T=0n,o=0n,f=y;while(f<n.length&&f-y<10){let t=n[f++];if(t===void 0)break;if(T|=BigInt(t&127)<<o,o+=7n,(t&128)===0)return[T,f]}throw new go("toolbox_tron_transaction_creation_failed")}function uy(n){let y=[],T=n<0n?n+2n**64n:n;while(T>=128n)y.push(Number(T&0x7fn)|128),T>>=7n;return y.push(Number(T)),y}function ef(n,y,T){let o=n.get(y);if(o)o.push(T);else n.set(y,[T])}function _w(n){let y=new Map,T=0;while(T<n.length){let[o,f]=G0(n,T);T=f;let t=Number(o>>3n),C=Number(o&7n);if(C===nT){let[H,A]=G0(n,T);T=A,ef(y,t,{data:new Uint8Array(uy(H)),wireType:nT})}else if(C===oT){let[H,A]=G0(n,T);T=A;let _=Number(H);if(_<0||T+_>n.length)throw new go("toolbox_tron_transaction_creation_failed");let G=n.slice(T,T+_);T+=_,ef(y,t,{data:G,wireType:oT})}else if(C===jH){if(T+8>n.length)throw new go("toolbox_tron_transaction_creation_failed");let H=n.slice(T,T+8);T+=8,ef(y,t,{data:H,wireType:jH})}else if(C===KH){if(T+4>n.length)throw new go("toolbox_tron_transaction_creation_failed");let H=n.slice(T,T+4);T+=4,ef(y,t,{data:H,wireType:KH})}else throw new go("toolbox_tron_transaction_creation_failed")}return y}function Uw(n){let y=[];for(let[t,C]of[...n.entries()].sort(([H],[A])=>H-A))for(let{wireType:H,data:A}of C){let _=BigInt(t<<3|H);if(y.push(new Uint8Array(uy(_))),H===oT)y.push(new Uint8Array(uy(BigInt(A.length))));y.push(A)}let T=y.reduce((t,C)=>t+C.length,0),o=new Uint8Array(T),f=0;for(let t of y)o.set(t,f),f+=t.length;return o}function cH(n,y){if(!n||n.length%2!==0)throw new go("toolbox_tron_transaction_creation_failed");let T=VH(n),o=_w(T);if(y.expiration!==void 0)o.set(Cw,[{data:new Uint8Array(uy(BigInt(y.expiration))),wireType:nT}]);if(y.data!==void 0)o.set(Hw,[{data:VH(y.data),wireType:oT}]);if(y.fee_limit!==void 0)o.set(Aw,[{data:new Uint8Array(uy(BigInt(y.fee_limit))),wireType:nT}]);let f=Uw(o),t=vH(f),C=vH(tw(f));return{raw_data_hex:t,txID:C}}var nT=0,jH=1,oT=2,KH=5,Cw=8,Hw=10,Aw=18;var iH=()=>{};import{secp256k1 as hH}from"@noble/curves/secp256k1.js";import{sha256 as mH}from"@noble/hashes/sha2.js";import{keccak_256 as ww}from"@noble/hashes/sha3.js";import{bytesToHex as ao,hexToBytes as yT}from"@noble/hashes/utils.js";import{createBase58check as qw}from"@scure/base";import{SwapKitError as rH}from"@swapkit/helpers";function Rn(n){if(typeof n!=="string")return!1;try{let y=fT.decode(n);return y.length===21&&y[0]===gH}catch{return!1}}function dH(n){return ao(fT.decode(n))}function lw(n){return fT.decode(n).slice(1)}function aH(n){let y=hH.getPublicKey(yT(n),!1),T=ww(y.slice(1)).slice(-20),o=new Uint8Array(21);return o[0]=gH,o.set(T,1),fT.encode(o)}function sH({txID:n,privateKey:y}){let T=hH.sign(yT(n),yT(y),{format:"recovered",prehash:!1}),o=T[0]??0,f=ao(T.slice(1,33)),t=ao(T.slice(33,65)),C=(o+27).toString(16).padStart(2,"0");return f+t+C}function so({txID:n,raw_data_hex:y}){let T=ao(mH(yT(y)));if(n!==T)throw new rH("toolbox_tron_invalid_transaction_integrity",{expected:T,txID:n})}function Xw(n){return`000000000000000000000000${ao(lw(n))}`}function Ww(n){let y=typeof n==="bigint"?n:BigInt(n);if(y<0n||y>=Gw)throw new rH("toolbox_tron_invalid_token_identifier",{identifier:y.toString()});return y.toString(16).padStart(64,"0")}function eo(n){return n.map(({type:y,value:T})=>y==="address"?Xw(T):Ww(BigInt(T))).join("")}function eH(n){return ao(new TextEncoder().encode(n))}var fT,gH=65,Gw;var l0=p(()=>{fT=qw(mH),Gw=2n**256n});import{Chain as Bw,getRPCUrlSync as Mw,SwapKitError as xn,warnOnce as X0}from"@swapkit/helpers";function oA(){try{return Mw(Bw.Tron)}catch{return nA}}function yA(){let n=new AbortController,y=setTimeout(()=>n.abort(),Jw);return{cleanup:()=>clearTimeout(y),signal:n.signal}}async function ny(n,y){let{signal:T,cleanup:o}=yA();try{let f=await fetch(`${oA()}${n}`,{body:JSON.stringify(y),headers:{"Content-Type":"application/json"},method:"POST",signal:T});if(!f.ok)throw new xn("toolbox_tron_trongrid_api_error",{message:`${f.status} ${f.statusText} on ${n}`});return await f.json()}finally{o()}}async function fA(n,y){let{signal:T,cleanup:o}=yA();try{let f=await fetch(`${y??oA()}${n}`,{headers:{"Content-Type":"application/json"},signal:T});if(!f.ok)throw new xn("toolbox_tron_trongrid_api_error",{message:`${f.status} ${f.statusText} on ${n}`});return await f.json()}finally{o()}}async function TA(n){if(!Rn(n))throw new xn("toolbox_tron_trongrid_api_error",{address:n,message:"Invalid address"});try{let y=await fA(`/v1/accounts/${n}`,nA);if(!(y.success&&y.data)||y.data.length===0)return;let T;try{T=dH(n).toLowerCase()}catch{T=n.toLowerCase()}let o=y.data.find((f)=>f.address.toLowerCase()===T);if(!o)return;return{balance:o.balance,trc20:o.trc20||[]}}catch(y){if(y instanceof xn)throw y;throw new xn("toolbox_tron_trongrid_api_error",{address:n,message:y instanceof Error?y.message:"Unknown error"})}}async function tA({from:n,to:y,amount:T}){let f=await ny("/wallet/createtransaction",{amount:T,owner_address:n,to_address:y,visible:!0});if(!f.txID||!f.raw_data_hex||!f.raw_data)throw new xn("toolbox_tron_transaction_creation_failed");let C=f.raw_data?.contract?.[0]?.parameter?.value;if(C?.to_address!==y||C?.owner_address!==n||C?.amount!==T)throw new xn("toolbox_tron_transaction_creation_failed");return so(f),f}async function CA({ownerAddress:n,contractAddress:y,functionSelector:T,parameter:o,feeLimit:f,callValue:t=0}){let C=await ny("/wallet/triggersmartcontract",{call_value:t,contract_address:y,fee_limit:f,function_selector:T,owner_address:n,parameter:o,visible:!0});if(!C.result.result||!C.transaction?.txID||!C.transaction?.raw_data_hex)throw new xn("toolbox_tron_transaction_creation_failed");let A=C.transaction.raw_data?.contract?.[0]?.parameter?.value;if(A?.contract_address!==y||A?.owner_address!==n)throw new xn("toolbox_tron_transaction_creation_failed");return so(C.transaction),C.transaction}function HA({ownerAddress:n,contractAddress:y,functionSelector:T,parameter:o}){return ny("/wallet/triggerconstantcontract",{contract_address:y,function_selector:T,owner_address:n,parameter:o,visible:!0})}async function Py(n){try{let{result:y,txid:T}=await ny("/wallet/broadcasttransaction",{raw_data:n.raw_data,raw_data_hex:n.raw_data_hex,signature:n.signature,txID:n.txID,visible:n.visible});if(!y||!T)throw new xn("toolbox_tron_token_transfer_failed");return T}catch(y){throw new xn("toolbox_tron_broadcast_failed",{error:y})}}async function TT(){let n={};try{let{chainParameter:y}=await fA("/wallet/getchainparameters");for(let T of y)n[T.key]=T.value}catch(y){X0({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${y instanceof Error?y.message:y}`})}return{bandwidthFee:n.getTransactionFee??Lw,createAccountFee:n.getCreateAccountFee??Qw,energyFee:n.getEnergyFee??Zw}}async function W0(n){try{let y=await ny("/wallet/getaccountresource",{address:n,visible:!0});return{bandwidth:{free:(y.freeNetLimit??600)-(y.freeNetUsed??0),total:y.NetLimit??0,used:y.NetUsed??0},energy:{total:y.EnergyLimit??0,used:y.EnergyUsed??0}}}catch(y){return X0({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${y instanceof Error?y.message:y}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function B0(n){try{let y=await ny("/wallet/getaccount",{address:n,visible:!0});return y&&Object.keys(y).length>0}catch{return!1}}async function M0(n){try{let{energy_used:y}=await HA({...n,ownerAddress:n.sender});return y}catch(y){return X0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy, using default: ${y instanceof Error?y.message:y}`}),65000}}async function AA({assetAddress:n,owner:y,spender:T}){let o=eo([{type:"address",value:y},{type:"address",value:T}]),t=(await HA({contractAddress:n,functionSelector:"allowance(address,address)",ownerAddress:T,parameter:o})).constant_result?.[0];if(!t)return 0n;try{return BigInt(`0x${t}`)}catch{return 0n}}var nA="https://api.trongrid.io",Lw=1000,Qw=1e5,Zw=420,Jw=30000;var _A=p(()=>{l0()});import{bytesToHex as Yw}from"@noble/hashes/utils.js";import{HDKey as Nw}from"@scure/bip32";import{mnemonicToSeedSync as zw}from"@scure/bip39";import{AssetValue as rn,BaseDecimal as UA,Chain as Qn,derivationPathToString as GA,getRPCUrl as Dw,NetworkDerivationPath as lA,SwapKitError as Hn,updateDerivationPath as XA,warnOnce as wA}from"@swapkit/helpers";import{match as Ow,P as L0}from"ts-pattern";function BA({phrase:n,derivationPath:y}){let T=Nw.fromMasterSeed(zw(n)).derive(y);if(!T.privateKey)throw new Hn("toolbox_tron_no_signer");return Yw(T.privateKey)}function MA({phrase:n,derivationPath:y,index:T}){let o=y||GA(XA(lA[Qn.Tron],{index:T||0}));return BA({derivationPath:o,phrase:n})}function Sw({phrase:n,derivationPath:y}){let T=BA({derivationPath:y,phrase:n}),o=aH(T);return{getAddress:()=>Promise.resolve(o),signTransaction:(f)=>{so(f);let t=sH({privateKey:T,txID:f.txID});return Promise.resolve({...f,signature:[t]})}}}function qA({transaction:n,memo:y,expiration:T,feeLimit:o}){let f={},t={};if(o!==void 0&&n.raw_data)f.fee_limit=o,t.fee_limit=o;if(y){let A=eH(y);f.data=A,t.data=A}if(T){let A=n.raw_data.expiration+T*1000;f.expiration=A,t.expiration=A}if(Object.keys(f).length===0)return n;let{raw_data_hex:C,txID:H}=cH(n.raw_data_hex,f);return{...n,raw_data:{...n.raw_data,...t},raw_data_hex:C,txID:H}}function LA(n={}){let y="index"in n?n.index||0:0,T=GA("derivationPath"in n&&n.derivationPath?n.derivationPath:XA(lA[Qn.Tron],{index:y})),o,f=!1;function t(){if(f)return Promise.resolve(o);return o=Ow(n).with({phrase:L0.string},({phrase:U})=>Sw({derivationPath:T,phrase:U})).with({signer:L0.not(L0.nullish)},({signer:U})=>U).otherwise(()=>{return}),f=!0,Promise.resolve(o)}async function C(){let U=await t();if(!U)throw new Hn("toolbox_tron_no_signer");return U.getAddress()}async function H(U){let B=U||xw,q=await TT(),Y=B*q.energyFee,D=Math.ceil(Y*1.5);return Math.min(Math.max(D,1e7),150000000)}async function A({contractAddress:U,functionSelector:B,parameter:q,sender:Y,memo:D,expiration:Q}){let O=await M0({contractAddress:U,functionSelector:B,parameter:q,sender:Y}),R=await H(O),S=await CA({contractAddress:U,feeLimit:R,functionSelector:B,ownerAddress:Y,parameter:q});return qA({expiration:Q,feeLimit:R,memo:D,transaction:S})}async function _(U){if(!Rn(U))return[rn.from({chain:Qn.Tron})];try{let B=await TA(U);if(!B)return[rn.from({chain:Qn.Tron})];let q=[rn.from({chain:Qn.Tron,fromBaseDecimal:6,value:String(B.balance)})],Y=B.trc20?.find((D)=>(Q0 in D));if(Y){let D=Y[Q0];q.push(rn.from({asset:`TRON.USDT-${Q0}`,fromBaseDecimal:6,value:D}))}return q}catch(B){return wA({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${B instanceof Error?B.message:B}`}),[rn.from({chain:Qn.Tron})]}}async function G({recipient:U,assetValue:B,memo:q,expiration:Y}){if(!Rn(U))throw new Hn("toolbox_tron_token_transfer_failed",{message:"invalid address"});let D=await t();if(!D)throw new Hn("toolbox_tron_no_signer");try{let Q=await C(),O=await l({assetValue:B,expiration:Y,memo:q,recipient:U,sender:Q}),R=await D.signTransaction(O),S=await Py(R);if(!S)throw new Hn("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return S}catch(Q){throw new Hn("toolbox_tron_token_transfer_failed",{message:Q instanceof Error?Q.message:String(Q)})}}function M({requiredBandwidth:U,resources:B,feePerUnit:q}){let Y=Math.max(0,B.free+B.total-B.used);return U>Y?(U-Y)*q:0}async function w({recipient:U,senderAddress:B}){let[q,Y,D]=await Promise.all([TT(),B0(U),W0(B)]),Q=Y?0:q.createAccountFee,O=M({feePerUnit:q.bandwidthFee,requiredBandwidth:Rw,resources:D.bandwidth});return rn.from({chain:Qn.Tron,fromBaseDecimal:UA.TRON,value:Q+O})}async function X({assetValue:U,recipient:B,senderAddress:q}){let Y=U.address;if(!Y)throw new Hn("toolbox_tron_invalid_token_identifier",{identifier:U.toString()});let[D,Q,O,R]=await Promise.all([TT(),B0(B),W0(q),M0({contractAddress:Y,functionSelector:"transfer(address,uint256)",parameter:eo([{type:"address",value:B},{type:"uint256",value:U.getBaseValue("string")}]),sender:q})]),S=Q?0:D.createAccountFee,k=M({feePerUnit:D.bandwidthFee,requiredBandwidth:Fw,resources:O.bandwidth}),I=Math.max(0,O.energy.total-O.energy.used),b=R>I?(R-I)*D.energyFee:0;return rn.from({chain:Qn.Tron,fromBaseDecimal:UA.TRON,value:S+k+b})}async function W({assetValue:U,recipient:B,sender:q}){let Y=await t();try{let D=q?q:Y?await C():void 0;if(!D)return U.isGasAsset?rn.from({chain:Qn.Tron,value:0.1}):rn.from({chain:Qn.Tron,value:15});return U.isGasAsset?w({recipient:B,senderAddress:D}):X({assetValue:U,recipient:B,senderAddress:D})}catch(D){throw wA({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${D instanceof Error?D.message:D}`}),new Hn("toolbox_fee_estimation_failed",{chain:Qn.Tron,error:D})}}async function l({recipient:U,assetValue:B,memo:q,sender:Y,expiration:D}){if(!Rn(U)||!Rn(Y))throw new Hn("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(B.isGasAsset){let O=await tA({amount:B.getBaseValue("number"),from:Y,to:U});return qA({expiration:D,memo:q,transaction:O})}let Q=B.address;if(!Q)throw new Hn("toolbox_tron_invalid_token_identifier",{identifier:B.toString()});return A({contractAddress:Q,expiration:D,functionSelector:"transfer(address,uint256)",memo:q,parameter:eo([{type:"address",value:U},{type:"uint256",value:B.getBaseValue("string")}]),sender:Y})}async function Z(U){so(U);let B=await t();if(!B)throw new Hn("toolbox_tron_no_signer");return B.signTransaction(U)}async function z(U){let B=await Z(U);return Py(B)}function L({assetAddress:U,spenderAddress:B,from:q}){return AA({assetAddress:U,owner:q,spender:B})}async function N({assetAddress:U,spenderAddress:B,from:q,amount:Y}){let D=await L({assetAddress:U,from:q,spenderAddress:B});if(!Y)return D>0n;return D>=BigInt(Y)}async function J({assetAddress:U,spenderAddress:B,amount:q,from:Y}){if(!Rn(U)||!Rn(B))throw new Hn("toolbox_tron_approve_failed");let D=await t();if(!D)throw new Hn("toolbox_tron_no_signer");let Q=Y||await C(),O=q!==void 0?BigInt(q).toString():pw;try{let R=await A({contractAddress:U,functionSelector:"approve(address,uint256)",parameter:eo([{type:"address",value:B},{type:"uint256",value:O}]),sender:Q}),S=await D.signTransaction(R),k=await Py(S);if(!k)throw new Hn("toolbox_tron_approve_failed");return k}catch(R){if(R instanceof Hn)throw R;throw new Hn("toolbox_tron_approve_failed",{error:R})}}return{approve:J,broadcastTransaction:Py,createTransaction:l,estimateTransactionFee:W,getAddress:C,getApprovedAmount:L,getBalance:_,getRpcUrl:()=>Dw(Qn.Tron),isApproved:N,signAndBroadcastTransaction:z,signTransaction:Z,transfer:G,validateAddress:Rn}}var WA,Rw=268,xw=65000,Fw=345,Q0="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",pw="115792089237316195423570985008687907853269984665640564039457584007913129639935";var QA=p(()=>{iH();_A();l0();WA=Rn});var Z0={};nn(Z0,{validateTronAddress:()=>WA,getTronToolbox:()=>LA,getTronPrivateKeyFromMnemonic:()=>MA});var J0=p(()=>{QA()});import{AssetValue as Iy,Chain as Co,derivationPathToString as kw,getChainConfig as uw,getRPCUrl as Pw,NetworkDerivationPath as Iw,SwapKitError as Ho}from"@swapkit/helpers";import{match as $w,P as Ew}from"ts-pattern";function tT(n){if(!n||typeof n!=="string"||!n.startsWith("G")||n.length!==56)return!1;return bw.test(n)}async function vw(n){if(!tT(n))return!1;try{let{StrKey:y}=await import("@stellar/stellar-sdk");return y.isValidEd25519PublicKey(n)}catch{return!1}}function ZA(n={}){let y,T=n.derivationPath||Iw[Co.Stellar],o=kw(T.slice(0,3));async function f({phrase:l,path:Z}){let{HDKey:z}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),{Keypair:N}=await import("@stellar/stellar-sdk"),J=L(l),B=z.fromMasterSeed(J).derive(Z,!0);return N.fromRawEd25519Seed(Buffer.from(B.privateKey))}async function t(){if(y)return y;let l=$w(n).with({phrase:Ew.string},({phrase:Z})=>Z).otherwise(()=>{return});if(!l)throw new Ho("toolbox_stellar_no_signer");return y=await f({path:o,phrase:l}),y}async function C(){let{Horizon:l}=await import("@stellar/stellar-sdk"),Z=await Pw(Co.Stellar);return new l.Server(Z)}async function H(){try{return(await t()).publicKey()}catch{return""}}async function A(l){let Z=l||await H();if(!Z)throw new Ho("toolbox_stellar_account_not_found");try{return(await(await C()).loadAccount(Z)).balances.map((N)=>{if(N.asset_type==="native")return Iy.from({chain:Co.Stellar,value:N.balance});let J="asset_code"in N?N.asset_code:"",U="asset_issuer"in N?N.asset_issuer:"";return Iy.from({asset:`${Co.Stellar}.${J}-${U}`,asyncTokenLookup:!1,value:N.balance})})}catch{return[Iy.from({chain:Co.Stellar,value:0})]}}async function _({recipient:l,assetValue:Z,memo:z,sender:L}){if(z){if(new TextEncoder().encode(z).length>28)throw new Ho("helpers_invalid_memo_type")}if(!await vw(l))throw new Ho("core_transaction_invalid_recipient_address");let J=L||await H();if(!J)throw new Ho("toolbox_stellar_no_signer");let{Asset:U,Memo:B,Networks:q,Operation:Y,TransactionBuilder:D}=await import("@stellar/stellar-sdk"),Q=await C(),O=await Q.fetchBaseFee(),R=await Q.loadAccount(J),S=new D(R,{fee:String(O),networkPassphrase:q.PUBLIC});if(Z.isGasAsset)try{await Q.loadAccount(l),S.addOperation(Y.payment({amount:Z.getValue("string"),asset:U.native(),destination:l}))}catch{S.addOperation(Y.createAccount({destination:l,startingBalance:Z.getValue("string")}))}else S.addOperation(Y.payment({amount:Z.getValue("string"),asset:new U(Z.symbol,Z.address),destination:l}));if(z)S.addMemo(B.text(z));return S.setTimeout(30).build()}async function G(l){let{TransactionBuilder:Z,Networks:z}=await import("@stellar/stellar-sdk"),L=await t(),N=Z.fromXDR(l.toXDR(),z.PUBLIC);return N.sign(L),N}async function M(l){try{let Z=await C(),{hash:z}=await Z.submitTransaction(l);return z}catch(Z){throw new Ho("toolbox_stellar_broadcast_error",Z)}}async function w({recipient:l,assetValue:Z,memo:z}){let L=await t(),N=L.publicKey(),J=await _({assetValue:Z,memo:z,recipient:l,sender:N});J.sign(L);try{return(await(await C()).submitTransaction(J)).hash}catch(U){if(U instanceof Ho)throw U;throw new Ho("toolbox_stellar_transaction_failed",U)}}async function X(l){let Z=await G(l);return M(Z)}async function W(){let{baseDecimal:l}=uw(Co.Stellar);try{let L=(await(await C()).feeStats()).fee_charged.p50;return Iy.from({chain:Co.Stellar,fromBaseDecimal:l,value:L})}catch{return Iy.from({chain:Co.Stellar,fromBaseDecimal:l,value:"100"})}}return{broadcastTransaction:M,createTransaction:_,estimateTransactionFee:W,getAddress:H,getBalance:A,signAndBroadcastTransaction:X,signTransaction:G,transfer:w,validateAddress:tT}}var bw;var JA=p(()=>{bw=/^G[A-Z2-7]{55}$/});var CT={};nn(CT,{validateStellarAddress:()=>tT,getStellarToolbox:()=>ZA});var HT=p(()=>{JA()});import{AssetValue as Vw,Chain as $,CosmosChains as Y0,EVMChains as N0,FeeOption as jw,SwapKitError as Kw,UTXOChains as NA}from"@swapkit/helpers";async function AX(){let{match:n}=await import("ts-pattern"),{validateAptosAddress:y}=await Promise.resolve().then(() => (Ey(),$y)),{validateEVMAddress:T}=await Promise.resolve().then(() => (uT(),HC)),{validateCardanoAddress:o}=await Promise.resolve().then(() => (vT(),bT)),{getCosmosAddressValidator:f}=await Promise.resolve().then(() => (Wf(),Xf)),{validateHyperCoreAddress:t}=await Promise.resolve().then(() => (Wt(),Xt)),{validateSolanaAddress:C}=await Promise.resolve().then(() => (Zt(),Qt)),{validateStarknetAddress:H}=await Promise.resolve().then(() => (zf(),Nf)),{validateSuiAddress:A}=await Promise.resolve().then(() => (Rf(),Of)),{validateTonAddress:_}=await Promise.resolve().then(() => (pf(),Ff)),{getUTXOAddressValidator:G}=await Promise.resolve().then(() => (it(),ct)),{validateNearAddress:M}=await Promise.resolve().then(() => (H0(),C0)),{validateRadixAddress:w}=await Promise.resolve().then(() => (U0(),_0)),{validateRippleAddress:X}=await Promise.resolve().then(() => (q0(),w0)),{validateTronAddress:W}=await Promise.resolve().then(() => (J0(),Z0)),{validateStellarAddress:l}=await Promise.resolve().then(() => (HT(),CT));return function({address:z,chain:L}){return n(L).with(...N0,()=>T(z)).with(...NA,(J)=>{return G(J)(z)}).with(...Y0,(J)=>{return f(J)(z)}).with($.Aptos,()=>y(z)).with($.Radix,()=>w(z)).with($.HyperCore,()=>t(z)).with($.Near,()=>M(z)).with($.Ripple,()=>X(z)).with($.Solana,()=>C(z)).with($.Stellar,()=>l(z)).with($.Starknet,()=>H(z)).with($.Sui,()=>A(z)).with($.Ton,()=>_(z)).with($.Tron,()=>W(z)).with($.Cardano,()=>o(z)).otherwise(()=>!1)}}function _X(n){return async function(T){let{match:o}=await import("ts-pattern");return o(n).returnType().with(...N0,async(f)=>{let t=await YA(f),C=await t.createTransaction(T),H="feeOptionKey"in T?T.feeOptionKey:jw.Fast;return t.estimateTransactionFee({...C,feeOption:H})}).with($.Bitcoin,$.BitcoinCash,$.Dogecoin,$.Dash,$.Litecoin,$.Solana,$.Ripple,$.Tron,$.Near,$.Cardano,$.HyperCore,async(f)=>{return(await YA(f)).estimateTransactionFee(T)}).with($.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (Ey(),$y));return f().estimateTransactionFee(T)}).with($.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (zf(),Nf));return(await f()).estimateTransactionFee(T)}).with($.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (HT(),CT));return f().estimateTransactionFee()}).with($.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (Rf(),Of));return f().estimateTransactionFee(T)}).with($.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (pf(),Ff));return f().estimateTransactionFee(T)}).with(...Y0,async()=>{let{estimateTransactionFee:f}=await Promise.resolve().then(() => (Wf(),Xf));return f(T)}).otherwise(async()=>Vw.from({chain:n}))}}async function YA(n,y){let{match:T}=await import("ts-pattern");return T(n).returnType().with(...N0,async()=>{let{getEvmToolboxAsync:o}=await Promise.resolve().then(() => (kT(),TC));return await o(n,y)}).with(...NA,async()=>{let{getUtxoToolbox:o}=await Promise.resolve().then(() => (it(),ct));return o(n,y)}).with(...Y0,async()=>{let{getCosmosToolbox:o}=await Promise.resolve().then(() => (Wf(),Xf));return o(n,y)}).with($.Aptos,async()=>{let{getAptosToolbox:o}=await Promise.resolve().then(() => (Ey(),$y));return o(y)}).with($.HyperCore,async()=>{let{getHyperCoreToolbox:o}=await Promise.resolve().then(() => (Wt(),Xt));return o(y)}).with($.Radix,async()=>{let{getRadixToolbox:o}=await Promise.resolve().then(() => (U0(),_0));return o(y)}).with($.Ripple,async()=>{let{getRippleToolbox:o}=await Promise.resolve().then(() => (q0(),w0));return o(y)}).with($.Solana,async()=>{let{getSolanaToolbox:o}=await Promise.resolve().then(() => (Zt(),Qt));return o(y)}).with($.Stellar,async()=>{let{getStellarToolbox:o}=await Promise.resolve().then(() => (HT(),CT));return o(y)}).with($.Starknet,async()=>{let{getStarknetToolbox:o}=await Promise.resolve().then(() => (zf(),Nf));return o(y)}).with($.Sui,async()=>{let{getSuiToolbox:o}=await Promise.resolve().then(() => (Rf(),Of));return o(y)}).with($.Tron,async()=>{let{getTronToolbox:o}=await Promise.resolve().then(() => (J0(),Z0));return o(y)}).with($.Near,async()=>{let{getNearToolbox:o}=await Promise.resolve().then(() => (H0(),C0));return o(y)}).with($.Cardano,async()=>{let{getCardanoToolbox:o}=await Promise.resolve().then(() => (vT(),bT));return o(y)}).with($.Ton,async()=>{let{getTONToolbox:o}=await Promise.resolve().then(() => (pf(),Ff));return o(y)}).otherwise(()=>{throw new Kw("toolbox_not_supported",{chain:n})})}export{YA as getToolbox,_X as getFeeEstimator,AX as getAddressValidator};
1
+ var IU=Object.defineProperty;var PU=(y)=>y;function tU(y,n){this[y]=PU.bind(null,n)}var yy=(y,n)=>{for(var o in n)IU(y,o,{get:n[o],enumerable:!0,configurable:!0,set:tU.bind(n,o)})};var I=(y,n)=>()=>(y&&(n=y(y=0)),n);var F=((y)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(y,{get:(n,o)=>(typeof require<"u"?require:n)[o]}):y)(function(y){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+y+'" is not supported')});import{AssetValue as nn,Chain as py,derivationPathToString as pU,getChainConfig as Q0,getRPCUrlSync as xC,NetworkDerivationPath as EU,SwapKitError as Ty}from"@swapkit/helpers";import{match as FC,P as Z0}from"ts-pattern";function Df(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let n=y.slice(2);if(n.length===0||n.length>64)return!1;return VU.test(n)}function $C({derivationPath:y,provider:n,...o}={}){let f,T=pU(y||EU[py.Aptos],{allHardened:!0});async function C(){if(f)return f;return f=await FC(o).with({phrase:Z0.string},async({phrase:Q})=>{let{Ed25519Account:B}=await import("@aptos-labs/ts-sdk");return B.fromDerivationPath({mnemonic:Q,path:T})}).with({signer:Z0.any},({signer:Q})=>Q).otherwise(()=>{return}),f}async function H(){let{Aptos:Q,AptosConfig:B}=await import("@aptos-labs/ts-sdk"),D=new B({fullnode:n||xC(py.Aptos)});return new Q(D)}async function U(){return(await C())?.accountAddress.toString()||""}async function _(Q){let B=Q||await U();if(!B)throw new Ty("toolbox_aptos_address_required");let{baseDecimal:D,chain:L}=Q0(py.Aptos);try{let w=await H(),N=await w.getAccountAPTAmount({accountAddress:B}),z=[nn.from({chain:L,fromBaseDecimal:D,value:N.toString()})],J=await w.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:B}}}});for(let Y of J){if(Y.asset_type===qf.COIN_TYPE||Number(Y.amount)<=0)continue;let R=Y.asset_type;if(R){let q=("metadata"in Y&&typeof Y.metadata==="object"&&Y.metadata!==null?Y.metadata:void 0)?.decimals??D;z.push(nn.from({asset:`${py.Aptos}.APT-${R}`,fromBaseDecimal:q,value:String(Y.amount)}))}}return z}catch{return[nn.from({chain:L})]}}async function A(Q){if(!Q){let{baseDecimal:J}=Q0(py.Aptos),Y=n||xC(py.Aptos),R=await fetch(`${Y}/estimate_gas_price`),{gas_estimate:l}=await R.json();return nn.from({chain:py.Aptos,fromBaseDecimal:J,value:String(l)})}let B=await C();if(!B)throw new Ty("toolbox_aptos_no_signer");let D=await Z(Q),L=await H(),[w]=await L.transaction.simulate.simple({signerPublicKey:B.publicKey,transaction:D});if(!w)throw new Ty("toolbox_aptos_transaction_creation_error");let N=BigInt(w.gas_used)*BigInt(w.gas_unit_price),{baseDecimal:z}=Q0(py.Aptos);return nn.from({chain:py.Aptos,fromBaseDecimal:z,value:N.toString()})}async function Z({recipient:Q,assetValue:B,maxGasAmount:D,sender:L}){if(!Df(Q))throw new Ty("core_transaction_invalid_recipient_address");let w=L||await U();if(!w)throw new Ty("toolbox_aptos_no_sender");let{AccountAddress:N}=await import("@aptos-labs/ts-sdk"),z=await H(),J=N.from(w);try{let Y=B.isGasAsset?qf.TRANSFER:qf.FUNGIBLE_STORE_TRANSFER,R=FC({address:B?.address,isGasAsset:B.isGasAsset}).with({isGasAsset:!0},()=>[N.from(Q),B.getBaseValue("bigint")]).with({address:Z0.string},({address:l})=>[N.from(l),N.from(Q),B.getBaseValue("bigint")]).otherwise(()=>null);if(!R)throw new Ty("toolbox_aptos_missing_asset_type");return z.transaction.build.simple({data:{function:Y,functionArguments:R,typeArguments:B.isGasAsset?[]:[qf.FUNGIBLE_ASSET_METADATA]},options:D?{maxGasAmount:D}:void 0,sender:J})}catch(Y){if(Y instanceof Ty)throw Y;throw new Ty("toolbox_aptos_transaction_creation_error",Y)}}async function M(Q){let B=await C();if(!B)throw new Ty("toolbox_aptos_no_signer");return(await H()).transaction.sign({signer:B,transaction:Q})}async function W({assetValue:Q,maxGasAmount:B,recipient:D}){let L=await C();if(!L)throw new Ty("toolbox_aptos_no_signer");if(!Df(D))throw new Ty("core_transaction_invalid_recipient_address");try{let w=L.accountAddress.toString(),N=await Z({assetValue:Q,maxGasAmount:B,recipient:D,sender:w});return(await(await H()).signAndSubmitTransaction({signer:L,transaction:N})).hash}catch(w){if(w instanceof Ty)throw w;throw new Ty("toolbox_aptos_transaction_creation_error",w)}}async function G({senderAuthenticator:Q,transaction:B}){try{return(await(await H()).transaction.submit.simple({senderAuthenticator:Q,transaction:B})).hash}catch(D){throw new Ty("toolbox_aptos_broadcast_error",D)}}async function X(Q){let B=await M(Q);return G({senderAuthenticator:B,transaction:Q})}return{broadcastTransaction:G,createTransaction:Z,estimateTransactionFee:A,getAddress:U,getBalance:_,signAndBroadcastTransaction:X,signTransaction:M,transfer:W,validateAddress:Df}}function IC({provider:y}){return async function({assetValue:o,recipient:f}){if(!Df(f))throw new Ty("core_transaction_invalid_recipient_address");let{AccountAddress:T}=await import("@aptos-labs/ts-sdk");if(o.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[T.from(f).toString(),o.getBaseValue("string")],function:qf.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let C=o.address;if(!C)throw new Ty("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[C,T.from(f).toString(),o.getBaseValue("string")],function:qf.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[qf.FUNGIBLE_ASSET_METADATA]})).hash}}var qf,VU;var PC=I(()=>{qf={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},VU=/^[0-9a-fA-F]+$/});var vn={};yy(vn,{validateAptosAddress:()=>Df,getAptosToolbox:()=>$C,createAptosExtensionTransfer:()=>IC});var jn=I(()=>{PC()});import{AssetValue as tC,getChainConfig as bU}from"@swapkit/helpers";import{SwapKitApi as uU}from"@swapkit/helpers/api";function pC(){function y(){let n=Date.now(),o=J0||n;return J0=o,n>J0?n:o+1}return vU+y().toString(36)}function Xy(y){return async function(o,f=!0){let T=await uU.getChainBalance({address:o,chain:y,scamFilter:f}),{baseDecimal:C}=bU(y),H=T.map(({identifier:_,value:A,decimal:Z})=>{return new tC({decimal:Z||C,identifier:_,value:A})});if(!H.some((_)=>_.isGasAsset))return[tC.from({chain:y}),...H];return H}}var vU,J0=0;var Ey=I(()=>{vU=typeof process<"u"&&process.pid?process.pid.toString(36):""});function Tn(y){return{getBalance:Xy(y)}}function jU(y){return y}var Kn=I(()=>{Ey()});import{Chain as c,getChainConfig as B0,getRPCUrl as KU,SwapKitError as hn}from"@swapkit/helpers";import{getAddress as VC,Interface as hU,JsonRpcProvider as mU}from"ethers";import{match as bC}from"ts-pattern";function uC(y){return new mU(y)}async function z0(y,n){return uC(n||await KU(y))}function on(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function N0(y){let{explorerUrl:n,chainIdHex:o,rpcUrls:f}=B0(y);return function(){return y!==c.Ethereum?{...cU({chain:y}),blockExplorerUrls:[n],chainId:o,rpcUrls:f}:void 0}}function O0(y){return![c.Adi,c.Arbitrum,c.BinanceSmartChain].includes(y)}function cU({chain:y}){let{name:n,nativeCurrency:o,baseDecimal:f}=B0(y);return bC(y).with(c.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(c.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(c.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(c.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(c.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(c.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:c.Polygon}})).otherwise(()=>({chainName:n,nativeCurrency:{decimals:f,name:o,symbol:o}}))}async function w0(y,n){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let o={...n,nonce:n.nonce!==void 0?BigInt(n.nonce):void 0};return await y.authorize(o)}function vC(y,n){let o=n!==void 0?`index ${n}: `:"",f=(T,C)=>{throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:T,message:`${o}${C}`}})};bC(y).when(({chainId:T})=>typeof T!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:T})=>!gU(T),()=>f("address","address must be a valid checksummed address")).when(({nonce:T})=>typeof T!=="bigint"||T<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:T})=>!T,()=>f("signature","signature is required")).when(({signature:T})=>typeof T?.yParity!=="number"||![0,1].includes(T.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:T})=>!EC(T?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:T})=>!EC(T?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function jC(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:n})=>y[n]!=null).map(({key:n,type:o})=>({name:n,type:o}))}function M0(y){return y.charAt(0).toUpperCase()+y.slice(1)}function L0(y,n){if(y.isTuple()&&y.components){let o=M0(y.name);return n[o]=y.components.map((f)=>({name:f.name,type:L0(f,n)})),o}if(y.isArray()){let o=y.arrayChildren;if(o?.isTuple()&&o.components){let f=M0(y.name.replace(/s$/,""));return n[f]=o.components.map((T)=>({name:T.name,type:L0(T,n)})),`${f}[]`}return`${o?.type??"bytes"}[]`}return y.type}function Y0(y,n){if(typeof y==="bigint")return y;if(n?.isTuple()&&typeof y?.toObject==="function"){let o=y.toObject(),f={};for(let[T,C]of(n.components??[]).entries())f[C.name]=Y0(o[C.name]??y[T],C);return f}if(Array.isArray(y)){let o=n?.arrayChildren;return y.map((f)=>Y0(f,o??void 0))}return y}function iU({chain:y,abi:n,data:o,to:f}){let C=new hU(n).parseTransaction({data:o});if(!C)throw new hn({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let H={},U=M0(C.name);H[U]=C.fragment.inputs.map((W)=>({name:W.name,type:L0(W,H)}));let _={};for(let[W,G]of C.fragment.inputs.entries())_[G.name]=Y0(C.args[W],G);let{chainId:A}=B0(y),Z={chainId:Number(A),verifyingContract:VC(f)},M=jC(Z);return{domain:Z,message:_,primaryType:U,types:{EIP712Domain:M,...H}}}function D0(y,n){if(!Array.isArray(y)||y.length===0)throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[o,f]of y.entries())if(vC(f,o),n!==void 0&&f.chainId!==n)throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${o}: authorization chainId (${f.chainId}) does not match transaction chainId (${n})`}})}var EC=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),gU=(y)=>{try{return typeof y==="string"&&!!VC(y)}catch{return!1}};var Cn=()=>{};var KC;var hC=I(()=>{KC=[{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 dU,applyFeeMultiplierToBigInt as Wy,Chain as Oy,EVMChains as rU,FeeOption as v,isGasAsset as aU,SwapKitError as h,SwapKitNumber as mn}from"@swapkit/helpers";import{erc20ABI as Hn}from"@swapkit/helpers/contracts";import{BrowserProvider as sU,Contract as mC,getAddress as cn,Interface as cC}from"ethers";import{match as gC}from"ts-pattern";function Rf({chain:y=Oy.Ethereum,provider:n,signer:o,isEIP1559Compatible:f=!0}){return{approve:T2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),approvedAmount:rC({chain:y,provider:n}),broadcastTransaction:n.broadcastTransaction,call:x0({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),createApprovalTx:U2({chain:y,provider:n,signer:o}),createContract:k0({chain:y,provider:n}),createContractTxObject:Gf({chain:y,provider:n}),createTransaction:R0({chain:y,provider:n,signer:o}),createTransferTx:R0({chain:y,provider:n,signer:o}),EIP1193SendTransaction:lf(n),estimateCall:aC({provider:n,signer:o}),estimateGasLimit:C2({chain:y,provider:n,signer:o}),estimateGasPrices:Xf({chain:y,isEIP1559Compatible:f,provider:n}),estimateTransactionFee:_2({chain:y,isEIP1559Compatible:f,provider:n}),getAddress:()=>{return o?o.getAddress():void 0},getBalance:Tn(y).getBalance,getNetworkParams:N0(y),isApproved:n2({chain:y,provider:n}),sendTransaction:sC({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),signAuthorization:H2({signer:o}),signMessage:o?(T)=>o.signMessage(T):void 0,signTypedData:o?({domain:T,types:C,value:H})=>o.signTypedData(T,C,H):void 0,transfer:o2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),validateAddress:_n}}function _n(y){try{return cn(y),!0}catch{return!1}}function kf(y){return y instanceof sU}function An(y,n,o){return new mC(y,cC.from(n),o)}function k0({provider:y}){return function(o,f){return new mC(o,cC.from(f),y)}}function l0({abi:y,funcName:n}){let o=y.find((f)=>f.name===n);if(!o)throw new h("toolbox_evm_no_abi_fragment",{funcName:n});return o.stateMutability&&eU.includes(o.stateMutability)}function iC(y){return cn(y)}function lf(y){return function({value:o,...f}){if(!kf(y))throw new h("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:T,gasPrice:C,maxFeePerGas:H,maxPriorityFeePerGas:U,..._}=f;return y.send("eth_sendTransaction",[{..._,value:on(BigInt(o||0))}])}}function dC(y,n){let o=Sf(y,n);if(o)return cn(o.toLowerCase());throw new h("toolbox_evm_invalid_gas_asset_address")}function Sf({chain:y,symbol:n,ticker:o},f){try{let T=y===Oy.BinanceSmartChain&&n==="BNB"&&o==="BNB",C=y===Oy.Hyperevm&&n==="HYPE"&&o==="HYPE",H=y===f&&n===f&&o===f,U=f2.includes(y)&&n==="ETH"&&o==="ETH";if(H||T||C||U)return S0[f];return cn(n.slice(o.length+1).replace(/^0X/,""))}catch{return null}}function Gf({provider:y}){return async({contractAddress:n,abi:o,funcName:f,funcParams:T=[],txOverrides:C})=>An(n,o,y).getFunction(f).populateTransaction(...T.concat(C).filter((H)=>typeof H<"u"))}function Xf({chain:y,provider:n,isEIP1559Compatible:o=!0}){return gC(y).with(Oy.Gnosis,()=>{return async function(){try{let{gasPrice:T,maxPriorityFeePerGas:C}=await n.getFeeData();if(!T||C===null)throw new h("toolbox_evm_no_fee_data");return{[v.Average]:{maxFeePerGas:Wy(T,v.Average),maxPriorityFeePerGas:Wy(C,v.Average)},[v.Fast]:{maxFeePerGas:Wy(T,v.Fast),maxPriorityFeePerGas:Wy(C,v.Fast)},[v.Fastest]:{maxFeePerGas:Wy(T,v.Fastest),maxPriorityFeePerGas:Wy(C,v.Fastest)}}}catch(T){throw new h("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).with(Oy.Arbitrum,()=>{return async function(){try{let{gasPrice:T}=await n.getFeeData();if(!T)throw new h("toolbox_evm_no_fee_data");let C=T*12n/10n;return{[v.Average]:{gasPrice:C},[v.Fast]:{gasPrice:Wy(C,v.Fast)},[v.Fastest]:{gasPrice:Wy(C,v.Fastest)}}}catch(T){throw new h("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:C,gasPrice:H}=await n.getFeeData();if(o){if(T===null||C===null)throw new h("toolbox_evm_no_fee_data");return{[v.Average]:{maxFeePerGas:T,maxPriorityFeePerGas:C},[v.Fast]:{maxFeePerGas:Wy(T,v.Fast),maxPriorityFeePerGas:Wy(C,v.Fast)},[v.Fastest]:{maxFeePerGas:Wy(T,v.Fastest),maxPriorityFeePerGas:Wy(C,v.Fastest)}}}if(!H)throw new h("toolbox_evm_no_gas_price");return{[v.Average]:{gasPrice:H},[v.Fast]:{gasPrice:Wy(H,v.Fast)},[v.Fastest]:{gasPrice:Wy(H,v.Fastest)}}}catch(T){throw new h("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}})}function x0({provider:y,isEIP1559Compatible:n,signer:o,chain:f}){return async function({callProvider:C,contractAddress:H,abi:U,funcName:_,funcParams:A=[],txOverrides:Z={},feeOption:M=v.Fast}){let W=C||y;if(!H)throw new h("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let G=l0({abi:U,funcName:_});if(G&&kf(W)&&o){let B=Gf({chain:f,provider:W}),D=Z?.from||await o?.getAddress(),L=await B({abi:U,contractAddress:H,funcName:_,funcParams:A,txOverrides:{...Z,from:D}});return lf(W)(L)}let X=An(H,U,W);if(G){if(!o)throw new h("toolbox_evm_no_signer");let B=Z?.from||await o.getAddress();if(!B)throw new h("toolbox_evm_no_signer_address");let D=X.connect(o),L=Xf({chain:f,isEIP1559Compatible:n,provider:y}),{maxFeePerGas:w,maxPriorityFeePerGas:N,gasPrice:z}=(await L())[M],J=await X.getFunction(_).estimateGas(...A,Z),Y=await D[_](...A,{...Z,gasLimit:J,gasPrice:z,maxFeePerGas:w,maxPriorityFeePerGas:N,nonce:Z?.nonce||await W.getTransactionCount(B)});return typeof Y?.hash==="string"?Y?.hash:Y}let Q=await X[_]?.(...A);return typeof Q?.hash==="string"?Q?.hash:Q}}function rC({provider:y,chain:n}){return function({assetAddress:f,spenderAddress:T,from:C}){return x0({chain:n,isEIP1559Compatible:!0,provider:y})({abi:Hn,contractAddress:f,funcName:"allowance",funcParams:[C,T]})}}function n2({provider:y,chain:n}){return async function({assetAddress:f,spenderAddress:T,from:C,amount:H=Un}){let U=await rC({chain:n,provider:y})({assetAddress:f,from:C,spenderAddress:T});return mn.fromBigInt(U).gte(mn.fromBigInt(BigInt(H)))}}function T2({signer:y,isEIP1559Compatible:n=!0,provider:o,chain:f}){return async function({assetAddress:C,spenderAddress:H,feeOptionKey:U=v.Fast,amount:_,gasLimitFallback:A,from:Z,nonce:M}){let W=[H,BigInt(_||Un)],G=await y?.getAddress()||Z,X={abi:Hn,contractAddress:C,funcName:"approve",funcParams:W,signer:y,txOverrides:{from:G}};if(kf(o)){let B=Gf({chain:f,provider:o}),D=lf(o),L=await B(X);return D(L)}return x0({chain:f,isEIP1559Compatible:n,provider:o,signer:y})({...X,feeOption:U,funcParams:W,txOverrides:{from:G,gasLimit:A?BigInt(A.toString()):void 0,nonce:M}})}}function o2({signer:y,isEIP1559Compatible:n=!0,provider:o}){return async function({assetValue:T,memo:C,recipient:H,feeOptionKey:U=v.Fast,sender:_,...A}){let{hexlify:Z,toUtf8Bytes:M}=await import("ethers"),W=T.getBaseValue("bigint"),G=T.chain,X=_||await y?.getAddress(),Q=sC({chain:G,isEIP1559Compatible:n,provider:o,signer:y});if(!X)throw new h("toolbox_evm_no_from_address");if(T.isGasAsset){let z={...A,data:Z(M(C||"")),feeOptionKey:U,from:X,to:H,value:W};return Q(z)}if(!Sf(T,G))throw new h("toolbox_evm_no_contract_address");let{maxFeePerGas:D,maxPriorityFeePerGas:L,gasPrice:w}=(await Xf({chain:G,isEIP1559Compatible:n,provider:o})())[U],N=await R0({chain:G,provider:o,signer:y})({assetValue:T,data:Z(M(C||"")),gasPrice:w,maxFeePerGas:D,maxPriorityFeePerGas:L,memo:C,recipient:H,sender:X});return Q(N)}}function aC({provider:y,signer:n}){return function({contractAddress:f,abi:T,funcName:C,funcParams:H=[],txOverrides:U}){if(!f)throw new h("toolbox_evm_no_contract_address");let _=An(f,T,y);return n?_.connect(n).getFunction(C).estimateGas(...H,U):_.getFunction(C).estimateGas(...H,U)}}function C2({provider:y,signer:n}){return async function({assetValue:f,recipient:T,memo:C,data:H,sender:U,funcName:_,funcParams:A,txOverrides:Z}){let M=f.bigIntValue,W=f.isGasAsset?null:Sf(f,f.chain);if(W&&_)return aC({provider:y,signer:n})({abi:Hn,contractAddress:W,funcName:_,funcParams:A,txOverrides:Z});let{hexlify:G,toUtf8Bytes:X}=await import("ethers");return y.estimateGas({data:H?H:C?G(X(C)):void 0,from:U,to:T,value:M})}}function H2({signer:y}){if(!y)return;return(n)=>w0(y,n)}function sC({provider:y,signer:n,isEIP1559Compatible:o=!0,chain:f}){return async function({feeOptionKey:C=v.Fast,...H}){let{from:U,to:_,data:A,value:Z,...M}=H;if(!n)throw new h("toolbox_evm_no_signer");if(!_)throw new h("toolbox_evm_no_to_address");let W={...M,data:A||"0x",from:U,to:_,value:BigInt(Z||0)};if(kf(y))return lf(y)(W);let G=U||await n.getAddress(),X=H.nonce||await y.getTransactionCount(G),Q=(await y.getNetwork()).chainId,B=$0(W,o);if(B==="eip7702")D0(W.authorizations||[],Q);let D=gC(B).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),L={...W,chainId:Q,nonce:X,type:D,...B==="eip7702"&&{authorizationList:W.authorizations}},w=Xf({chain:f,isEIP1559Compatible:o,provider:y}),z=B!=="legacy"&&!(W.maxFeePerGas&&W.maxPriorityFeePerGas)||!W.gasPrice?Object.entries((await w())[C]).reduce((Y,[R,l])=>({...Y,[R]:on(BigInt(l))}),{}):{},J;try{J=on(W.gasLimit||await y.estimateGas(L)*11n/10n)}catch(Y){throw new h("toolbox_evm_error_estimating_gas_limit",{error:Y})}try{let Y={...L,gasLimit:J,...z};try{return(await n.sendTransaction(Y)).hash}catch{let R=await n.signTransaction({...Y,from:G});return(await y.broadcastTransaction(R)).hash}}catch(Y){throw new h("toolbox_evm_error_sending_transaction",{error:Y})}}}function R0({provider:y,signer:n}){return async function({assetValue:f,memo:T,recipient:C,data:H,sender:U,maxFeePerGas:_,maxPriorityFeePerGas:A,gasPrice:Z,...M}){let W=f.getBaseValue("bigint"),G=f.chain,X=U||await n?.getAddress();if(!X)throw new h("toolbox_evm_no_from_address");if(aU(f)){let{hexlify:D,toUtf8Bytes:L}=await import("ethers");return{...M,data:H||D(L(T||"")),from:X,to:C,value:W}}let Q=Sf(f,G);if(!Q)throw new h("toolbox_evm_no_contract_address");return Gf({chain:f.chain,provider:y})({abi:Hn,contractAddress:Q,funcName:"transfer",funcParams:[C,W],txOverrides:{from:X,gasPrice:Z,maxFeePerGas:_,maxPriorityFeePerGas:A}})}}function U2({provider:y,signer:n,chain:o}){return async function({assetAddress:T,spenderAddress:C,amount:H,from:U}){let _=await n?.getAddress()||U,A=Gf({chain:o,provider:y}),Z=["bigint","number"].includes(typeof H)?H:H||Un;return await A({abi:Hn,contractAddress:T,funcName:"approve",funcParams:[C,BigInt(Z)],txOverrides:{from:_}})}}function _2({provider:y,isEIP1559Compatible:n=!0,chain:o}){return async function({feeOption:T=v.Fast,...C}){let U=await Xf({chain:o,isEIP1559Compatible:n,provider:y})(),_=await y.estimateGas(C),A=dU.from({chain:o}),{gasPrice:Z,maxFeePerGas:M,maxPriorityFeePerGas:W}=U[T];if(!n&&Z)return A.set(mn.fromBigInt(Z*_,A.decimal));if(M&&W){let G=(M+W)*_;return A.set(mn.fromBigInt(G,A.decimal))}throw new h("toolbox_evm_no_gas_price")}}var Un,eU,y2,S0,f2,gn=(y)=>y.type===4||(y.authorizations?.length??0)>0,F0=(y)=>!gn(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),$0=(y,n=!0)=>{if(gn(y))return"eip7702";if(F0(y)||n)return"eip1559";return"legacy"};var dn=I(()=>{Kn();Cn();Un=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");eU=["payable","nonpayable"];y2=rU.reduce((y,n)=>{return y[n]="0x0000000000000000000000000000000000000000",y},{}),S0={...y2,[Oy.Optimism]:"0x4200000000000000000000000000000000000042",[Oy.Polygon]:"0x0000000000000000000000000000000000001010"},f2=[Oy.Arbitrum,Oy.Aurora,Oy.Base,Oy.Optimism]});import{Chain as i,FeeOption as A2}from"@swapkit/helpers";import{HDNodeWallet as q2}from"ethers";import{match as G2,P as eC}from"ts-pattern";function rn(y){let n=d(i.Ethereum)(y);async function o(f,T="0x5ba1e12693dc8f9c48aad8770482f4739beed696",C="aggregate",H=A2.Fast){let U=await n.createContractTxObject({abi:KC,contractAddress:T,funcName:C,funcParams:[f]});return n.sendTransaction({...U,feeOptionKey:H})}return{...n,multicall:o}}function d(y){return function({provider:o,...f}){let T=O0(y),C=G2(f).with({phrase:eC.string},({phrase:U})=>q2.fromPhrase(U).connect(o)).with({signer:eC.any},({signer:U})=>U).otherwise(()=>{return});return Rf({chain:y,isEIP1559Compatible:T,provider:o,signer:C})}}var an,sn,en,yT,fT,nT,TT,y1,oT,CT,HT,UT,_T,AT,qn,qT,GT,XT,WT;var I0=I(()=>{hC();Cn();dn();an=d(i.Adi),sn=d(i.Arbitrum),en=d(i.Aurora),yT=d(i.Avalanche),fT=d(i.Base),nT=d(i.Berachain),TT=d(i.BinanceSmartChain),y1=d(i.Botanix),oT=d(i.Core),CT=d(i.Corn),HT=d(i.Cronos),UT=d(i.Gnosis),_T=d(i.Hyperevm),AT=d(i.Polygon),qn=d(i.Sonic),qT=d(i.Unichain),GT=d(i.XLayer),XT=d(i.Monad),WT=d(i.MegaETH)});var f1;var n1=I(()=>{f1=[{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 xf,Chain as W2,FeeOption as Vy,SwapKitError as P0}from"@swapkit/helpers";import{Contract as Q2,HDNodeWallet as Z2}from"ethers";import{match as J2,P as T1}from"ts-pattern";function t0(y){return new Q2(M2,f1,y)}function o1(y){return async function(){let o=t0(y);if(o&&"l1BaseFee"in o)return await o?.l1BaseFee();return}}function C1(y){return async function({from:o,to:f,nonce:T,...C}){let{Transaction:H}=await import("ethers");if(!f)throw new P0("toolbox_evm_invalid_transaction",{error:"Missing to address"});return H.from({...C,authorizationList:C.authorizationList,nonce:T?T:o?await y.getTransactionCount(o):0,to:f}).serialized}}function H1(y){return async function(o){let f=t0(y),T=await C1(y)(o);if(f&&"getL1Fee"in f)return f.getL1Fee(T)}}function U1(y){return async function(o){let T=(await y.getFeeData()).gasPrice??0n,C=await y.estimateGas(o);return T*C}}function L2(y){return async function(o){let f=await H1(y)(o)??0n,T=await U1(y)(o);return f+T}}function Y2(y){return async function(o){let f=t0(y),T=await C1(y)(o);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(T)}}function B2(y){return async function(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:f,gasPrice:T}=await y.getFeeData(),C=await o1(y)(),H=T;if(!(o&&f))throw new P0("toolbox_evm_no_fee_data");return{[Vy.Average]:{gasPrice:H,l1GasPrice:C,maxFeePerGas:o,maxPriorityFeePerGas:f},[Vy.Fast]:{gasPrice:xf(H,Vy.Fast),l1GasPrice:xf(C||0n,Vy.Fast),maxFeePerGas:o,maxPriorityFeePerGas:xf(f,Vy.Fast)},[Vy.Fastest]:{gasPrice:xf(H,Vy.Fastest),l1GasPrice:xf(C||0n,Vy.Fastest),maxFeePerGas:o,maxPriorityFeePerGas:xf(f,Vy.Fastest)}}}catch(o){throw new P0("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}}function QT({provider:y,...n}){let o=J2(n).with({phrase:T1.string},({phrase:C})=>Z2.fromPhrase(C).connect(y)).with({signer:T1.any},({signer:C})=>C).otherwise(()=>{return}),f=Rf({provider:y,signer:o}),T=o1(y);return{...f,estimateGasPrices:B2(y),estimateL1Gas:Y2(y),estimateL1GasCost:H1(y),estimateL2GasCost:U1(y),estimateTotalGasCost:L2(y),getBalance:Tn(W2.Optimism).getBalance,getL1GasPrice:T}}var M2="0x420000000000000000000000000000000000000f";var p0=I(()=>{Kn();n1();dn()});var A1={};yy(A1,{validateEVMAddress:()=>_n,toChecksumAddress:()=>iC,isStateChangingCall:()=>l0,isEIP7702Transaction:()=>gn,isEIP1559Transaction:()=>F0,isBrowserProvider:()=>kf,getTokenAddress:()=>Sf,getEvmToolboxAsync:()=>_1,getEvmToolbox:()=>E0,getEstimateGasPrices:()=>Xf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>lf,getCreateContractTxObject:()=>Gf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>dC,createContract:()=>An,XLayerToolbox:()=>GT,UNIToolbox:()=>qT,SONICToolbox:()=>qn,OPToolbox:()=>QT,MONADToolbox:()=>XT,MEGAETHToolbox:()=>WT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>AT,HYPEREVMToolbox:()=>_T,GNOToolbox:()=>UT,ETHToolbox:()=>rn,ContractAddress:()=>S0,CROToolbox:()=>HT,CORNToolbox:()=>CT,COREToolbox:()=>oT,BotanixToolbox:()=>y1,BaseEVMToolbox:()=>Rf,BSCToolbox:()=>TT,BERAToolbox:()=>nT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>en,ARBToolbox:()=>sn,ADIToolbox:()=>an});import{Chain as g}from"@swapkit/helpers";import{match as z2}from"ts-pattern";function E0(y,n){return z2(y).with(g.Adi,()=>an(n)).with(g.Arbitrum,()=>sn(n)).with(g.Aurora,()=>en(n)).with(g.Avalanche,()=>yT(n)).with(g.Base,()=>fT(n)).with(g.Berachain,()=>nT(n)).with(g.BinanceSmartChain,()=>TT(n)).with(g.Botanix,()=>qn(n)).with(g.Core,()=>oT(n)).with(g.Corn,()=>CT(n)).with(g.Cronos,()=>HT(n)).with(g.Ethereum,()=>rn(n)).with(g.Gnosis,()=>UT(n)).with(g.Hyperevm,()=>_T(n)).with(g.Optimism,()=>QT(n)).with(g.Polygon,()=>AT(n)).with(g.Sonic,()=>qn(n)).with(g.Unichain,()=>qT(n)).with(g.XLayer,()=>GT(n)).with(g.Monad,()=>XT(n)).with(g.MegaETH,()=>WT(n)).exhaustive()}async function _1(y,n){let o={...n,provider:n?.provider||await z0(y)};return E0(y,o)}var V0=I(()=>{Cn();I0();p0();dn();I0();p0()});var q1;var G1=I(()=>{((o)=>{o.Test="goerli";o.Main="homestead"})(q1||={})});var X1={};yy(X1,{validateEVMAddress:()=>_n,validateAuthorizations:()=>D0,validateAuthorization:()=>vC,toHexString:()=>on,toChecksumAddress:()=>iC,signAuthorization:()=>w0,parseEIP712FromEVMTx:()=>iU,isStateChangingCall:()=>l0,isEIP7702Transaction:()=>gn,isEIP1559Transaction:()=>F0,isBrowserProvider:()=>kf,getTokenAddress:()=>Sf,getProviderSync:()=>uC,getProvider:()=>z0,getNetworkParams:()=>N0,getIsEIP1559Compatible:()=>O0,getEvmToolboxAsync:()=>_1,getEvmToolbox:()=>E0,getEvmApi:()=>Tn,getEstimateGasPrices:()=>Xf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>lf,getCreateContractTxObject:()=>Gf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>dC,createCustomEvmApi:()=>jU,createContract:()=>An,buildEIP712DomainType:()=>jC,XLayerToolbox:()=>GT,UNIToolbox:()=>qT,SONICToolbox:()=>qn,OPToolbox:()=>QT,MONADToolbox:()=>XT,MEGAETHToolbox:()=>WT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>AT,HYPEREVMToolbox:()=>_T,GNOToolbox:()=>UT,EthNetwork:()=>q1,ETHToolbox:()=>rn,ContractAddress:()=>S0,CROToolbox:()=>HT,CORNToolbox:()=>CT,COREToolbox:()=>oT,BotanixToolbox:()=>y1,BaseEVMToolbox:()=>Rf,BSCToolbox:()=>TT,BERAToolbox:()=>nT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>en,ARBToolbox:()=>sn,ADIToolbox:()=>an});var b0=I(()=>{Kn();Cn();V0();G1()});import{bech32 as N2}from"@scure/base";import{mnemonicToSeed as O2}from"@scure/bip39";import{Bip32PrivateKey as w2}from"@stricahq/bip32ed25519";import{Transaction as D2,types as j0,address as R2,crypto as u0,utils as W1}from"@stricahq/typhonjs";import{AssetValue as Ff,Chain as Wf,getChainConfig as k2,SwapKitError as Gn}from"@swapkit/helpers";import Jy from"bignumber.js";async function K0(y,n){let o=await fetch(`${M1}${y}`,{...n,headers:{project_id:J1,...n?.headers}});if(!o.ok)throw Error(`Blockfrost API error: ${o.status} ${o.statusText}`);return o.json()}async function L1(y){try{return await K0(`/addresses/${y}/utxos`)}catch{return[]}}async function S2(){return(await K0("/blocks/latest")).slot}async function x2(){let y=await K0("/epochs/latest/parameters"),n={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new Jy(y.collateral_percent),languageView:n,lovelacePerUtxoWord:new Jy(0),maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new Jy(y.min_fee_a),minFeeB:new Jy(y.min_fee_b),minFeeRefScriptCostPerByte:new Jy(15),priceMem:new Jy(y.price_mem),priceSteps:new Jy(y.price_step),stakeKeyDeposit:new Jy(2000000),utxoCostPerByte:new Jy(y.coins_per_utxo_size)}}async function Z1(y){let n=await fetch(`${M1}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:J1},method:"POST"});if(!n.ok){let o=await n.text();throw Error(`Transaction submission failed: ${o}`)}return n.json()}function F2(y,n){return y.map((o)=>{let f=o.amount.find((H)=>H.unit==="lovelace"),T=f?new Jy(f.quantity):new Jy(0),C=o.amount.filter((H)=>H.unit!=="lovelace").map((H)=>({amount:new Jy(H.quantity),assetName:H.unit.slice(56),policyId:H.unit.slice(0,56)}));return{address:n,amount:T,index:o.output_index,tokens:C,txId:o.tx_hash}})}async function $2(y){try{let n=await L1(y),o=0n,f=new Map;for(let H of n){if(!H.amount||!Array.isArray(H.amount))continue;for(let U of H.amount){let{unit:_,quantity:A}=U;if(_==="lovelace")o+=BigInt(A);else{let Z=f.get(_)||0n;f.set(_,Z+BigInt(A))}}}let T=[],{baseDecimal:C}=k2(Wf.Cardano);if(o>0n)T.push(Ff.from({chain:Wf.Cardano,fromBaseDecimal:C,value:o.toString()}));for(let[H,U]of f)T.push(Ff.from({asset:`${Wf.Cardano}.${H}`,value:U.toString()}));if(T.length===0)return[Ff.from({chain:Wf.Cardano})];return T}catch(n){let o=n instanceof Error?n.message:String(n);return console.error(`Cardano balance fetch error: ${o}`),[Ff.from({chain:Wf.Cardano})]}}function Y1(y){if(!y||typeof y!=="string")return!1;try{let n=N2.decode(y,120);return n.prefix==="addr"||n.prefix==="addr_test"}catch{return!1}}async function I2(y,n=0,o=0){let f=await O2(y,""),C=(await w2.fromEntropy(Buffer.from(f.slice(0,64)))).derive(v0+1852).derive(v0+1815).derive(v0+n),H=C.derive(0).derive(o),U=H.toBip32PublicKey().toPublicKey().toBytes(),_=u0.hash28(U),Z=C.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),M=u0.hash28(Z),W={hash:_,type:j0.HashType.ADDRESS},G={hash:M,type:j0.HashType.ADDRESS},Q=new R2.BaseAddress(l2,W,G).getBech32(),B=H.toPrivateKey();return{getAddress:()=>Q,publicKey:U,publicKeyHash:_,signTransaction:async(D)=>{try{let L=await import("@stricahq/cbors"),w=Buffer.from(D,"hex"),N=L.Decoder.decode(w),[z,J,Y,R]=N.value,l=L.Encoder.encode(z),q=u0.hash32(l),O=B.sign(q),k=J instanceof Map?J:new Map,S=k.get(Q1)||[];S.push([U,O]),k.set(Q1,S);let x=[z,k,Y,R];return L.Encoder.encode(x).toString("hex")}catch(L){throw new Gn("toolbox_cardano_sign_transaction_failed",{message:String(L)})}}}}function P2(y){let n,o,f;async function T(){if(!f)f=await x2();return f}async function C(){if(n!==void 0)return n;if(y&&"phrase"in y&&y.phrase){let G=y.index??0;return n=await I2(y.phrase,0,G),n}if(y&&"signer"in y&&y.signer)return n=y.signer,n;return}async function H(){if(o)return o;let G=await C();if(!G)return"";if("getAddress"in G)return o=await G.getAddress(),o;return""}async function U(G){let X=G||await H();if(!X)throw new Gn("core_wallet_connection_not_found");return $2(X)}async function _(G){if(G)try{let{tx:D}=await A(G),L=D.getFee();return Ff.from({chain:Wf.Cardano,fromBaseDecimal:6,value:L.toString()})}catch{}let X=await T(),Q=400,B=X.minFeeB.plus(X.minFeeA.times(Q));return Ff.from({chain:Wf.Cardano,fromBaseDecimal:6,value:B.toString()})}async function A({sender:G="",recipient:X,assetValue:Q,memo:B,pureLovelaceOnly:D=!1}){let L=G||await H();if(!L)throw new Gn("core_wallet_connection_not_found");let[w,N,z]=await Promise.all([L1(L),S2(),T()]),J=w.filter((b)=>D?b.amount.every((j)=>j.unit==="lovelace"):b.amount.some((j)=>j.unit==="lovelace")).sort((b,j)=>{let e=b.amount.some((r)=>r.unit!=="lovelace"),_y=j.amount.some((r)=>r.unit!=="lovelace");if(e===_y)return 0;return e?1:-1}),Y=W1.getAddressFromString(L),R=W1.getAddressFromString(X),l=F2(J,Y),q=new Jy(Q.getBaseValue("string")),O=[{address:R,amount:q,tokens:[]}],k;if(B){let b=new Map;b.set("msg",[B]),k={metadata:[{data:b,label:674}]}}let S={...z,minFeeB:z.minFeeB.plus(z.minFeeA.times(4))},t=new D2({protocolParams:S}).paymentTransaction({auxiliaryData:k,changeAddress:Y,inputs:l,outputs:O,ttl:N+3600}),{payload:V}=t.buildTransaction();return{tx:t,unsignedTx:V}}async function Z(G){let X=await C();if(!X||!("signTransaction"in X))throw new Gn("core_wallet_connection_not_found");return X.signTransaction(G)}async function M({recipient:G,assetValue:X,memo:Q}){let B=await C();if(!B||!("signTransaction"in B))throw new Gn("core_wallet_connection_not_found");let{unsignedTx:D}=await A({assetValue:X,memo:Q,recipient:G,sender:await H()}),L=await Z(D);return await Z1(L)}async function W(G){let X=await Z(G);return await Z1(X)}return{createTransaction:A,estimateTransactionFee:_,getAddress:H,getBalance:U,signAndBroadcastTransaction:W,signTransaction:Z,transfer:M,validateAddress:Y1}}var J1="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",M1="https://cardano-mainnet.blockfrost.io/api/v0",l2,v0=2147483648,Q1=0;var B1=I(()=>{l2=j0.NetworkId.MAINNET});var h0={};yy(h0,{validateCardanoAddress:()=>Y1,getCardanoToolbox:()=>P2});var m0=I(()=>{B1()});import{base64 as JT,bech32 as ZT}from"@scure/base";import{SwapKitError as t2}from"@swapkit/helpers";function Xn(y){return JT.encode(Uint8Array.from(ZT.fromWords(ZT.decode(y).words)))}function Wn(y,n="thor"){return ZT.encode(n,ZT.toWords(JT.decode(y)))}function p2(y){return JT.encode(y)}function E2(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new t2("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return JT.decode(y)}var c0=()=>{};import{AssetValue as g0,Chain as u,getChainConfig as Fy,getRPCUrl as V2,SwapKitError as z1}from"@swapkit/helpers";function by(y){switch(y){case u.Maya:return{amount:[],gas:"10000000000"};case u.THORChain:return{amount:[],gas:"500000000"};case u.Kujira:return w1;case u.Noble:return D1;default:return O1}}async function uy(y){let n=await import("@cosmjs/stargate"),o=n.StargateClient??n.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return o.connect({headers:f,url:y})}async function Qf(y,n,o={}){let f=await import("@cosmjs/stargate"),T=f.SigningStargateClient??f.default?.SigningStargateClient,C=f.GasPrice??f.default?.GasPrice,H=typeof o==="string"?o:"0.0003uatom",U=typeof o==="string"?{}:o;return T.connectWithSigner(y,n,{gasPrice:C.fromString(H),...U})}async function d0(y,n){let o=await import("@cosmjs/stargate");return(o.SigningStargateClient??o.default?.SigningStargateClient).offline(y,n)}async function r0({sender:y,recipient:n,assetValue:o,memo:f="",feeRate:T,sequence:C,accountNumber:H}){let{chain:U,chainId:_}=o,A=await V2(U),M=await(await uy(A)).getAccount(y);if(!M)throw new z1("toolbox_cosmos_account_not_found",{sender:y});let W=g0.from({chain:U}),G=dy(W.symbol),X=by(U),Q=G&&T?{amount:[{amount:T.toString(),denom:G}],gas:X.gas}:X,B={amount:[{amount:o.getBaseValue("string"),denom:dy(o.symbol)}],fromAddress:y,toAddress:n};return{accountNumber:H??M.accountNumber,chainId:_,fee:Q,memo:f,msgs:[{typeUrl:b2(U),value:B}],sequence:C??M.sequence}}var i0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",N1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",O1,w1,D1,dy=(y,n=!1)=>{if(n)return y.toLowerCase();switch(y){case"uUSK":case"USK":return i0;case"uYUM":case"YUM":return N1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return y}},Qn=({symbol:y,chain:n})=>{if(n===u.Maya)return(y.toUpperCase()!=="CACAO"?y:`${u.Maya}.${y}`).toUpperCase();if(n===u.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${u.THORChain}.${y}`:y).toUpperCase();return dy(y,!1)},b2=(y)=>{switch(y){case u.Maya:case u.THORChain:return"/types.MsgSend";case u.Cosmos:case u.Kujira:case u.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new z1("toolbox_cosmos_not_supported",{chain:y})}},u2,a0=(y,n)=>{let o=u2[y.toLowerCase()];if(!o)return g0.from({asset:y,fromBaseDecimal:8,value:n});let{chain:f,asset:T,decimals:C}=o,H=f?{chain:f}:{asset:T};return g0.from({...H,fromBaseDecimal:C,value:n})};var Zn=I(()=>{O1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},w1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},D1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};u2={atom:{chain:u.Cosmos,decimals:Fy(u.Cosmos).baseDecimal},cacao:{chain:u.Maya,decimals:10},kuji:{chain:u.Kujira,decimals:Fy(u.Kujira).baseDecimal},maya:{asset:`${u.Maya}.${u.Maya}`,decimals:4},rune:{chain:u.THORChain,decimals:Fy(u.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Fy(u.THORChain).baseDecimal},uatom:{chain:u.Cosmos,decimals:Fy(u.Cosmos).baseDecimal},ukuji:{chain:u.Kujira,decimals:Fy(u.Kujira).baseDecimal},usdc:{chain:u.Noble,decimals:Fy(u.Noble).baseDecimal},uusdc:{chain:u.Noble,decimals:Fy(u.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Fy(u.THORChain).baseDecimal},[i0.toLowerCase()]:{asset:`${u.Kujira}.USK`,decimals:Fy(u.Kujira).baseDecimal}}});var R1={};yy(R1,{$root:()=>$});import fy from"protobufjs/minimal.js";var p,Yy,P,$;var k1=I(()=>{p=fy.Reader,Yy=fy.Writer,P=fy.util,$=fy.roots.default||(fy.roots.default={});$.common=(()=>{let y={};return y.Asset=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.chain="",n.prototype.symbol="",n.prototype.ticker="",n.prototype.synth=!1,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))T.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))T.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))T.uint32(32).bool(f.synth);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Asset;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.chain=f.string();break;case 2:H.symbol=f.string();break;case 3:H.ticker=f.string();break;case 4:H.synth=f.bool();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!P.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!P.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!P.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Asset)return f;let T=new $.common.Asset;if(f.chain!=null)T.chain=String(f.chain);if(f.symbol!=null)T.symbol=String(f.symbol);if(f.ticker!=null)T.ticker=String(f.ticker);if(f.synth!=null)T.synth=Boolean(f.synth);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.chain="",C.symbol="",C.ticker="",C.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))C.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))C.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))C.synth=f.synth;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.Coin=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.asset=null,n.prototype.amount="",n.prototype.decimals=P.Long?P.Long.fromBits(0,0,!1):0,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))$.common.Asset.encode(f.asset,T.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))T.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))T.uint32(24).int64(f.decimals);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Coin;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.asset=$.common.Asset.decode(f,f.uint32());break;case 2:H.amount=f.string();break;case 3:H.decimals=f.int64();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let T=$.common.Asset.verify(f.asset);if(T)return"asset."+T}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!P.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!P.isInteger(f.decimals)&&!(f.decimals&&P.isInteger(f.decimals.low)&&P.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Coin)return f;let T=new $.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");T.asset=$.common.Asset.fromObject(f.asset)}if(f.amount!=null)T.amount=String(f.amount);if(f.decimals!=null){if(P.Long)(T.decimals=P.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")T.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")T.decimals=f.decimals;else if(typeof f.decimals==="object")T.decimals=new P.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)if(C.asset=null,C.amount="",P.Long){let H=new P.Long(0,0,!1);C.decimals=T.longs===String?H.toString():T.longs===Number?H.toNumber():H}else C.decimals=T.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))C.asset=$.common.Asset.toObject(f.asset,T);if(f.amount!=null&&f.hasOwnProperty("amount"))C.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")C.decimals=T.longs===String?String(f.decimals):f.decimals;else C.decimals=T.longs===String?P.Long.prototype.toString.call(f.decimals):T.longs===Number?new P.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.PubKeySet=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.secp256k1="",n.prototype.ed25519="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))T.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))T.uint32(18).string(f.ed25519);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.PubKeySet;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.secp256k1=f.string();break;case 2:H.ed25519=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!P.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!P.isString(f.ed25519))return"ed25519: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.PubKeySet)return f;let T=new $.common.PubKeySet;if(f.secp256k1!=null)T.secp256k1=String(f.secp256k1);if(f.ed25519!=null)T.ed25519=String(f.ed25519);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.secp256k1="",C.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))C.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))C.ed25519=f.ed25519;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.Tx=(()=>{function n(o){if(this.coins=[],this.gas=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.id="",n.prototype.chain="",n.prototype.fromAddress="",n.prototype.toAddress="",n.prototype.coins=P.emptyArray,n.prototype.gas=P.emptyArray,n.prototype.memo="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))T.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(34).string(f.toAddress);if(f.coins?.length)for(let C=0;C<f.coins.length;++C)$.common.Coin.encode(f.coins[C],T.uint32(42).fork()).ldelim();if(f.gas?.length)for(let C=0;C<f.gas.length;++C)$.common.Coin.encode(f.gas[C],T.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(58).string(f.memo);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Tx;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.id=f.string();break;case 2:H.chain=f.string();break;case 3:H.fromAddress=f.string();break;case 4:H.toAddress=f.string();break;case 5:if(!H.coins?.length)H.coins=[];H.coins.push($.common.Coin.decode(f,f.uint32()));break;case 6:if(!H.gas?.length)H.gas=[];H.gas.push($.common.Coin.decode(f,f.uint32()));break;case 7:H.memo=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!P.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!P.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!P.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!P.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=$.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let T=0;T<f.gas.length;++T){let C=$.common.Coin.verify(f.gas[T]);if(C)return"gas."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!P.isString(f.memo))return"memo: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Tx)return f;let T=new $.common.Tx;if(f.id!=null)T.id=String(f.id);if(f.chain!=null)T.chain=String(f.chain);if(f.fromAddress!=null)T.fromAddress=String(f.fromAddress);if(f.toAddress!=null)T.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Tx.coins: object expected");T.coins[C]=$.common.Coin.fromObject(f.coins[C])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");T.gas=[];for(let C=0;C<f.gas.length;++C){if(typeof f.gas[C]!=="object")throw TypeError(".common.Tx.gas: object expected");T.gas[C]=$.common.Coin.fromObject(f.gas[C])}}if(f.memo!=null)T.memo=String(f.memo);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[],C.gas=[];if(T.defaults)C.id="",C.chain="",C.fromAddress="",C.toAddress="",C.memo="";if(f.id!=null&&f.hasOwnProperty("id"))C.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=f.toAddress;if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=$.common.Coin.toObject(f.coins[H],T)}if(f.gas?.length){C.gas=[];for(let H=0;H<f.gas.length;++H)C.gas[H]=$.common.Coin.toObject(f.gas[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.Fee=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=P.emptyArray,n.prototype.poolDeduct="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)$.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))T.uint32(18).string(f.poolDeduct);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Fee;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push($.common.Coin.decode(f,f.uint32()));break;case 2:H.poolDeduct=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=$.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!P.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Fee)return f;let T=new $.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Fee.coins: object expected");T.coins[C]=$.common.Coin.fromObject(f.coins[C])}}if(f.poolDeduct!=null)T.poolDeduct=String(f.poolDeduct);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults)C.poolDeduct="";if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=$.common.Coin.toObject(f.coins[H],T)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))C.poolDeduct=f.poolDeduct;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.ProtoUint=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.value="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))T.uint32(10).string(f.value);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.ProtoUint;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.value=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!P.isString(f.value))return"value: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.ProtoUint)return f;let T=new $.common.ProtoUint;if(f.value!=null)T.value=String(f.value);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.value="";if(f.value!=null&&f.hasOwnProperty("value"))C.value=f.value;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y})();$.types=(()=>{let y={};return y.MsgDeposit=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=P.emptyArray,n.prototype.memo="",n.prototype.signer=P.newBuffer([]),n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)$.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))T.uint32(26).bytes(f.signer);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.types.MsgDeposit;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push($.common.Coin.decode(f,f.uint32()));break;case 2:H.memo=f.string();break;case 3:H.signer=f.bytes();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=$.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!P.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||P.isString(f.signer)))return"signer: buffer expected"}return null},n.fromObject=function(f){if(f instanceof $.types.MsgDeposit)return f;let T=new $.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");T.coins[C]=$.common.Coin.fromObject(f.coins[C])}}if(f.memo!=null)T.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")P.base64.decode(f.signer,T.signer=P.newBuffer(P.base64.length(f.signer)),0);else if(f.signer.length)T.signer=f.signer}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults){if(C.memo="",T.bytes===String)C.signer="";else if(C.signer=[],T.bytes!==Array)C.signer=P.newBuffer(C.signer)}if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=$.common.Coin.toObject(f.coins[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))C.signer=T.bytes===String?P.base64.encode(f.signer,0,f.signer.length):T.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.MsgSend=(()=>{function n(o){if(this.amount=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.fromAddress=P.newBuffer([]),n.prototype.toAddress=P.newBuffer([]),n.prototype.amount=P.emptyArray,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let C=0;C<f.amount.length;++C)$.cosmos.base.v1beta1.Coin.encode(f.amount[C],T.uint32(26).fork()).ldelim();return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.types.MsgSend;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.fromAddress=f.bytes();break;case 2:H.toAddress=f.bytes();break;case 3:if(!H.amount?.length)H.amount=[];H.amount.push($.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||P.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||P.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let T=0;T<f.amount.length;++T){let C=$.cosmos.base.v1beta1.Coin.verify(f.amount[T]);if(C)return"amount."+C}}return null},n.fromObject=function(f){if(f instanceof $.types.MsgSend)return f;let T=new $.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")P.base64.decode(f.fromAddress,T.fromAddress=P.newBuffer(P.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)T.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")P.base64.decode(f.toAddress,T.toAddress=P.newBuffer(P.base64.length(f.toAddress)),0);else if(f.toAddress.length)T.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");T.amount=[];for(let C=0;C<f.amount.length;++C){if(typeof f.amount[C]!=="object")throw TypeError(".types.MsgSend.amount: object expected");T.amount[C]=$.cosmos.base.v1beta1.Coin.fromObject(f.amount[C])}}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.amount=[];if(T.defaults){if(T.bytes===String)C.fromAddress="";else if(C.fromAddress=[],T.bytes!==Array)C.fromAddress=P.newBuffer(C.fromAddress);if(T.bytes===String)C.toAddress="";else if(C.toAddress=[],T.bytes!==Array)C.toAddress=P.newBuffer(C.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=T.bytes===String?P.base64.encode(f.fromAddress,0,f.fromAddress.length):T.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=T.bytes===String?P.base64.encode(f.toAddress,0,f.toAddress.length):T.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){C.amount=[];for(let H=0;H<f.amount.length;++H)C.amount[H]=$.cosmos.base.v1beta1.Coin.toObject(f.amount[H],T)}return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y})();$.cosmos=(()=>{let y={};return y.base=(()=>{let n={};return n.v1beta1=(()=>{let o={};return o.Coin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.Coin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!P.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!P.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.Coin)return C;let H=new $.cosmos.base.v1beta1.Coin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o.DecCoin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.DecCoin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!P.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!P.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.DecCoin)return C;let H=new $.cosmos.base.v1beta1.DecCoin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o.IntProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.int="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.int!=null&&Object.hasOwnProperty.call(C,"int"))H.uint32(10).string(C.int);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.IntProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.int=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.int!=null&&C.hasOwnProperty("int")){if(!P.isString(C.int))return"int: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.IntProto)return C;let H=new $.cosmos.base.v1beta1.IntProto;if(C.int!=null)H.int=String(C.int);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.int="";if(C.int!=null&&C.hasOwnProperty("int"))U.int=C.int;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o.DecProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.dec="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.dec!=null&&Object.hasOwnProperty.call(C,"dec"))H.uint32(10).string(C.dec);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.DecProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.dec=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.dec!=null&&C.hasOwnProperty("dec")){if(!P.isString(C.dec))return"dec: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.DecProto)return C;let H=new $.cosmos.base.v1beta1.DecProto;if(C.dec!=null)H.dec=String(C.dec);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.dec="";if(C.dec!=null&&C.hasOwnProperty("dec"))U.dec=C.dec;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o})(),n})(),y})()});import{Chain as v2}from"@swapkit/helpers";async function Zf(){let{$root:y}=await Promise.resolve().then(() => (k1(),R1)),n=await import("@cosmjs/proto-signing"),o=n.Registry??n.default?.Registry,f=await import("@cosmjs/stargate"),T=f.defaultRegistryTypes??f.default?.defaultRegistryTypes;return new o([...T,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function ry(y){let n=await import("@cosmjs/stargate"),o=n.AminoTypes??n.default?.AminoTypes,f=y===v2.THORChain?"thorchain":"mayachain";return new o({"/types.MsgDeposit":{aminoType:`${f}/MsgDeposit`,fromAmino:({signer:T,...C})=>({...C,signer:Xn(T)}),toAmino:({signer:T,...C})=>({...C,signer:Wn(T)})},"/types.MsgSend":{aminoType:`${f}/MsgSend`,fromAmino:({from_address:T,to_address:C,...H})=>({...H,fromAddress:Xn(T),toAddress:Xn(C)}),toAmino:({fromAddress:T,toAddress:C,...H})=>({...H,from_address:Wn(T),to_address:Wn(C)})}})}var s0=I(()=>{c0()});import{AssetValue as j2,Chain as MT,getChainConfig as l1,getRPCUrl as S1,SwapKitError as K2}from"@swapkit/helpers";function fo(y){let{assetValue:n,recipient:o,memo:f,sender:T,asSignable:C,asAminoMessage:H}=y;if(o)return F1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,recipient:o,sender:T});return $1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,sender:T})}async function F1({sender:y,recipient:n,assetValue:o,memo:f="",asSignable:T=!0,asAminoMessage:C=!1,sequence:H,accountNumber:U}){let _=o.chain,A=await S1(_),Z=await x1({rpcUrl:A,sender:y}),{chainId:M}=l1(_),W=e0({assetValue:o,recipient:n,sender:y}),G=T?await ay(C?W:sy(W),_):W;return{accountNumber:U||Z.accountNumber,chainId:M,fee:by(_),memo:f,msgs:[G],sequence:H||Z.sequence}}async function $1({sender:y,assetValue:n,memo:o="",asSignable:f=!0,asAminoMessage:T=!1,sequence:C,accountNumber:H}){let U=n.chain,_=await S1(U),A=await x1({rpcUrl:_,sender:y}),{chainId:Z}=l1(U),M=yo({assetValue:n,memo:o,sender:y}),W=f?await ay(T?M:sy(M),U):M;return{accountNumber:H||A.accountNumber,chainId:Z,fee:by(U),memo:o,msgs:[W],sequence:C||A.sequence}}function sy(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((n)=>{let o=j2.from({asset:n.asset}),f=(o.isSynthetic?o.symbol.split("/")?.[1]:o.symbol)?.toUpperCase(),T=(o.isSynthetic?o.symbol.split("/")?.[0]:o.chain)?.toUpperCase();return{...n,asset:{chain:T,symbol:f,synth:o.isSynthetic,ticker:o.ticker}}})}}}async function Jn({chain:y,memo:n,msgs:o}){let f=await Zf(),T=await ry(y),C={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:n,messages:o.map((H)=>T.fromAmino(H))}};return f.encode(C)}var h2,m2,e0=({sender:y,recipient:n,assetValue:o})=>{return{type:`${o.chain===MT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:o.getBaseValue("string"),denom:dy(o.symbol,!0)}],from_address:y,to_address:n}}},yo=({sender:y,assetValue:n,memo:o=""})=>{return{type:`${n.chain===MT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:n.getBaseValue("string"),asset:Qn(n)}],memo:o,signer:y}}},LT=({sender:y,recipient:n,assetValue:o,memo:f})=>{return!n?yo({assetValue:o,memo:f,sender:y}):e0({assetValue:o,recipient:n,sender:y})},ay=async(y,n)=>{return(await ry(n)).fromAmino(y)},x1=async({rpcUrl:y,sender:n})=>{let f=await(await uy(y)).getAccount(n);if(!f)throw new K2("toolbox_cosmos_account_not_found",{sender:n});return f};var I1=I(()=>{Zn();s0();h2=by(MT.THORChain).gas,m2=by(MT.Maya).gas});var P1=()=>{};var t1=I(()=>{P1()});var no=I(()=>{c0();I1();s0();t1()});import{stringToPath as c2}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as g2}from"@cosmjs/proto-signing";import{base64 as Co,bech32 as To}from"@scure/base";import{AssetValue as Ho,applyFeeMultiplier as p1,Chain as oy,CosmosChainPrefixes as j1,DerivationPath as i2,derivationPathToString as E1,FeeOption as Uo,getChainConfig as d2,getRPCUrl as Mn,NetworkDerivationPath as r2,SwapKitError as $f,SwapKitNumber as oo,updateDerivationPath as a2}from"@swapkit/helpers";import{SwapKitApi as K1}from"@swapkit/helpers/api";import{match as s2,P as V1}from"ts-pattern";async function Ao(y,n){try{let f=(await K1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}async function _o({phrase:y,prefix:n,...o}){let f="derivationPath"in o?o.derivationPath:`${i2[o.chain]}/${o.index}`;return await g2.fromMnemonic(y,{hdPaths:[c2(f)],prefix:n})}async function e2({privateKey:y,prefix:n}){let o=await import("@cosmjs/proto-signing");return(o.DirectSecp256k1Wallet??o.default?.DirectSecp256k1Wallet).fromKey(y,n)}function h1(y){return async function({signature:o,message:f,address:T}){let C=await y(T);if(!C?.pubkey)throw new $f("toolbox_cosmos_verify_signature_no_pubkey");let H=await import("@cosmjs/crypto"),U=H.Secp256k1Signature??H.default?.Secp256k1Signature,_=H.Secp256k1??H.default?.Secp256k1,A=U.fromFixedLength(Co.decode(o));return _.verifySignature(A,Co.decode(f),C.pubkey.value)}}function Ln({chain:y,...n}){let o=j1[y],f="index"in n?n.index||0:0,T=E1("derivationPath"in n&&n.derivationPath?n.derivationPath:a2(r2[y],{index:f})),C;async function H(){if(C)return C;return C=await s2(n).with({phrase:V1.string},({phrase:G})=>_o({derivationPath:T,phrase:G,prefix:o})).with({signer:V1.any},({signer:G})=>G).otherwise(()=>{return}),C}async function U(G){let X=await Mn(y);return(await uy(X)).getAccount(G)}async function _(){let G=await H(),[X]=await G?.getAccounts()||[];return X?.address}async function A(){let G=await H(),[X]=await G?.getAccounts()||[];if(!X?.pubkey)throw new $f("toolbox_cosmos_signer_not_defined");return Co.encode(X?.pubkey)}async function Z(G){let X=await H(),Q=await _(),B=await Mn(y);if(!(X&&Q))throw new $f("toolbox_cosmos_signer_not_defined");return await(await Qf(B,X)).sign(Q,G.msgs,G.fee,G.memo,{accountNumber:G.accountNumber,chainId:G.chainId,sequence:G.sequence})}async function M(G){let X=await H(),Q=await _(),B=await Mn(y);if(!(X&&Q))throw new $f("toolbox_cosmos_signer_not_defined");let L=await(await Qf(B,X)).signAndBroadcast(Q,G.msgs,G.fee,G.memo);if(L.code!==0)throw new $f("core_swap_transaction_error",{code:L.code,message:L.rawLog});return L.transactionHash}async function W({recipient:G,assetValue:X,memo:Q="",feeRate:B,feeOptionKey:D=Uo.Fast}){let L=await H(),w=await _();if(!(L&&w))throw new $f("toolbox_cosmos_signer_not_defined");let N=await Mn(y),z=Ho.from({chain:y}),J=Qn(z),Y=B||n_((await u1(y,b1[y]))[D],J),R=await Qf(N,L),l=dy(X.symbol),q=[{amount:X.getBaseValue("string"),denom:l}],{transactionHash:O}=await R.sendTokens(w,G,q,Y,Q);return O}return{createPrivateKeyFromPhrase:o_(T),createTransaction:r0,fetchFeeRateFromSwapKit:Ao,getAccount:U,getAddress:_,getBalance:async(G,X)=>{let Q=await v1(y)(G),B=await Promise.all(Q.filter(({denom:D})=>D&&!D.includes("IBC/")&&!([oy.THORChain,oy.Maya].includes(y)&&D.split("-").length>2)).map(({denom:D,amount:L})=>{let w=[oy.THORChain,oy.Maya].includes(y)&&(D.includes("/")||D.includes("˜"))?`${y}.${D}`:D;return a0(w,L)}));if(B.length===0)return[Ho.from({chain:y})];return B},getBalanceAsDenoms:v1(y),getFees:()=>u1(y,b1[y]),getPubKey:A,getSignerFromPhrase:({phrase:G,derivationPath:X})=>_o({derivationPath:E1(X),index:f,phrase:G,prefix:o}),getSignerFromPrivateKey:async(G)=>{let X=await import("@cosmjs/proto-signing");return(X.DirectSecp256k1Wallet??X.default?.DirectSecp256k1Wallet).fromKey(G,o)},signAndBroadcastTransaction:M,signTransaction:Z,transfer:W,validateAddress:m1(y),verifySignature:h1(U)}}async function y_(y,n){try{let f=(await K1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}function f_({assetValue:{chain:y}}){return Ho.from({chain:y,value:T_(y)})}async function u1(y,n){let{chainId:o,baseDecimal:f}=d2(y),T=await Ao(o,n);return{average:oo.fromBigInt(BigInt(T),f),fast:oo.fromBigInt(BigInt(p1(T,Uo.Fast,!0)),f),fastest:oo.fromBigInt(BigInt(p1(T,Uo.Fastest,!0)),f)}}function n_(y,n){return{amount:[{amount:y.getBaseValue("string"),denom:n}],gas:"200000"}}function T_(y){return{[oy.Cosmos]:0.007,[oy.Kujira]:0.02,[oy.Noble]:0.01,[oy.THORChain]:0.02,[oy.Maya]:0.02,[oy.Harbor]:0.02}[y]||0}function m1(y){let n=j1[y];return function(f){if(!f.startsWith(n))return!1;try{let{prefix:T,words:C}=To.decode(f);return To.encode(T,C)===f.toLocaleLowerCase()}catch{return!1}}}function v1(y){return async function(o){let f=await Mn(y);return(await(await uy(f)).getAllBalances(o)).map((U)=>({...U,denom:U.denom.includes("/")?U.denom.toUpperCase():U.denom}))}}function o_(y){return async function(o){let f=await import("@cosmjs/crypto"),T=f.stringToPath??f.default?.stringToPath,C=f.Slip10Curve??f.default?.Slip10Curve,H=f.Slip10??f.default?.Slip10,U=f.EnglishMnemonic??f.default?.EnglishMnemonic,_=f.Bip39??f.default?.Bip39,A=new U(o),Z=await _.mnemonicToSeed(A),{privkey:M}=H.derivePath(C.Secp256k1,Z,T(y));return M}}var b1;var YT=I(()=>{Zn();b1={[oy.Cosmos]:1000,[oy.Kujira]:1000,[oy.Noble]:1000,[oy.THORChain]:5000000,[oy.Maya]:5000000,[oy.Harbor]:5000000}});import{base64 as Jf}from"@scure/base";import{Chain as C_,CosmosChainPrefixes as H_,derivationPathToString as U_,FeeOption as qo,getChainConfig as __,getRPCUrl as r1,NetworkDerivationPath as A_,RequestClient as q_,SKConfig as c1,SwapKitError as If,SwapKitNumber as g1,updateDerivationPath as G_}from"@swapkit/helpers";import{match as i1,P as d1}from"ts-pattern";function X_({prefix:y,derivationPath:n}){return async function(f,T=0){let C=await import("@cosmjs/amino"),H=C.Secp256k1HdWallet??C.default?.Secp256k1HdWallet,U=await import("@cosmjs/crypto"),_=U.stringToPath??U.default?.stringToPath;return H.fromMnemonic(f,{hdPaths:[_(`${n}/${T}`)],prefix:y})}}function W_(y){return Jf.encode(y)}function Q_(y){return async function({wallet:o,tx:f}){let{msgs:T,accountNumber:C,sequence:H,chainId:U,fee:_,memo:A}=typeof f==="string"?JSON.parse(f):f,Z=(await o.getAccounts())?.[0]?.address||"",M=await ry(y),W=await Zf(),G=await d0(o,{aminoTypes:M,registry:W}),X=[];for(let D of T){let L=await ay(D,y);X.push(L)}let{signatures:[Q]}=await G.sign(Z,X,_,A,{accountNumber:C,chainId:U,sequence:H});return{bodyBytes:await Jn({chain:y,memo:A,msgs:T.map(sy)}),signature:W_(Q)}}}function Z_({prefix:y,chain:n}){return async function(f,T,C,H,U){let _=await r1(n),{encodeSecp256k1Pubkey:A,pubkeyToAddress:Z}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:M}=(await import("@cosmjs/stargate")).default,{sequence:W,fee:G}=JSON.parse(f),X=await a1(C,H),Q=T.map((L)=>[Z(A(Jf.decode(L.pubKey)),y),Jf.decode(L.signature)]),B=await uy(_),{transactionHash:D}=await B.broadcastTx(M(X,W,G,U,new Map(Q)));return D}}async function a1(y,n,o=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:T}=(await import("@cosmjs/amino")).default;return f(y.map((C)=>T(Jf.decode(C))),n,o)}function J_(y){return Jf.decode(y)}async function M_({privateKey:y,message:n}){let{Secp256k1:o}=(await import("@cosmjs/crypto")).default,f=await o.createSignature(Jf.decode(n),y);return Jf.encode(Buffer.concat([f.r(32),f.s(32)]))}function Go({chain:y,...n}){let{isStagenet:o}=c1.get("envs"),f=c1.get("thornodeUrls"),T=y===C_.Maya,C=i1({isMayachain:T,isStagenet:o}).with({isMayachain:!0},({isStagenet:L})=>L?f.MAYA_STAGENET:f.MAYA).otherwise(({isStagenet:L})=>L?f.THOR_STAGENET:f.THOR),H=`${o?"s":""}${H_[y]}`,U="index"in n?n.index||0:0,_="derivationPath"in n&&n.derivationPath?n.derivationPath:G_(A_[y],{index:U}),A=Ln({chain:y,...n}),Z=by(y),M;function W(){return M??=i1(n).with({phrase:d1.string},({phrase:L})=>A.getSignerFromPhrase({derivationPath:_,phrase:L})).with({signer:d1.any},({signer:L})=>Promise.resolve(L)).otherwise(()=>Promise.resolve(void 0)),M}async function G(){let L=await r1(y),w=await W();if(!w)throw new If("toolbox_cosmos_no_signer");let N=await Zf(),z=await ry(y),J=await Qf(L,w,{aminoTypes:z,registry:N});return{signer:w,signingClient:J}}async function X({fee:L,memo:w,msgs:N}){let{signer:z,signingClient:J}=await G(),Y=(await z.getAccounts())?.[0]?.address;if(!Y)throw new If("toolbox_cosmos_signer_not_defined");let R=await J.signAndBroadcast(Y,N,L,w);if(R.code!==0)throw new If("core_swap_transaction_error",{code:R.code,message:R.rawLog});return R.transactionHash}async function Q(){let L,w=`${C}/${T?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:N}}=await q_.get(w);if(!N||Number.isNaN(N)||N<0)throw new If("toolbox_cosmos_invalid_fee",{nativeFee:N.toString()});L=new g1(N)}catch{L=new g1({decimal:__(y).baseDecimal,value:T?1:0.02})}return{[qo.Average]:L,[qo.Fast]:L,[qo.Fastest]:L}}async function B({assetValue:L,memo:w="",recipient:N}){let{TxRaw:z}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:J,signingClient:Y}=await G(),R=(await J.getAccounts())?.[0]?.address;if(!R)throw new If("toolbox_cosmos_no_signer");let l="signAmino"in J,q=LT({assetValue:L,memo:w,recipient:N,sender:R});if(l){let S=await ay(q,y),{signatures:x,authInfoBytes:t}=await Y.sign(R,[S],Z,w),V=z.encode({authInfoBytes:t,bodyBytes:await Jn({chain:y,memo:w,msgs:[q].map(sy)}),signatures:x}).finish();return(await Y.broadcastTx(V)).transactionHash}let O=sy(q),k=await ay(O,y);return X({fee:Z,memo:w,msgs:[k]})}async function D(L){let{signer:w,signingClient:N}=await G(),z=(await w.getAccounts())?.[0]?.address;if(!z)throw new If("toolbox_cosmos_signer_not_defined");return N.sign(z,L.msgs,L.fee,L.memo,{accountNumber:L.accountNumber,chainId:L.chainId,sequence:L.sequence})}return{...A,broadcastMultisigTx:Z_({chain:y,prefix:H}),buildAminoMsg:LT,buildEncodedTxBody:Jn,convertToSignable:ay,createDefaultAminoTypes:()=>ry(y),createDefaultRegistry:Zf,createMultisig:a1,createTransaction:fo,deposit:B,getFees:Q,importSignature:J_,parseAminoMessageForDirectSigning:sy,pubkeyToAddress:async(L)=>{let{pubkeyToAddress:w}=(await import("@cosmjs/amino")).default;return w(L,H)},secp256k1HdWalletFromMnemonic:X_({derivationPath:U_(_),prefix:H}),signAndBroadcastTransaction:X,signMultisigTx:Q_(y),signTransaction:D,signWithPrivateKey:M_,transfer:B}}var Xo=I(()=>{no();Zn();YT()});import{Chain as Yn,SwapKitError as L_}from"@swapkit/helpers";var Y_=(y,n)=>{switch(y){case Yn.Cosmos:case Yn.Kujira:case Yn.Noble:return Ln({chain:y,...n});case Yn.Maya:case Yn.THORChain:return Go({chain:y,...n});default:throw new L_("toolbox_cosmos_not_supported",{chain:y})}};var s1=I(()=>{YT();Xo();YT();Xo()});var BT={};yy(BT,{verifySignature:()=>h1,transferMsgAmino:()=>e0,toBase64:()=>p2,parseAminoMessageForDirectSigning:()=>sy,getSignerFromPrivateKey:()=>e2,getSignerFromPhrase:()=>_o,getMsgSendDenom:()=>dy,getFeeRateFromSwapKit:()=>y_,getDenomWithChain:()=>Qn,getDefaultChainFee:()=>by,getCosmosToolbox:()=>Y_,getCosmosAddressValidator:()=>m1,getAssetFromDenom:()=>a0,fromBase64:()=>E2,fetchFeeRateFromSwapKit:()=>Ao,estimateTransactionFee:()=>f_,depositMsgAmino:()=>yo,createTransaction:()=>fo,createThorchainToolbox:()=>Go,createStargateClient:()=>uy,createSigningStargateClient:()=>Qf,createOfflineStargateClient:()=>d0,createDefaultRegistry:()=>Zf,createDefaultAminoTypes:()=>ry,createCosmosToolbox:()=>Ln,cosmosCreateTransaction:()=>r0,convertToSignable:()=>ay,buildTransferTx:()=>F1,buildEncodedTxBody:()=>Jn,buildDepositTx:()=>$1,buildAminoMsg:()=>LT,bech32ToBase64:()=>Xn,base64ToBech32:()=>Wn,YUM_KUJIRA_FACTORY_DENOM:()=>N1,USK_KUJIRA_FACTORY_DENOM:()=>i0,THORCHAIN_GAS_VALUE:()=>h2,MAYA_GAS_VALUE:()=>m2,DEFAULT_NOBLE_FEE_MAINNET:()=>D1,DEFAULT_KUJI_FEE_MAINNET:()=>w1,DEFAULT_COSMOS_FEE_MAINNET:()=>O1});var zT=I(()=>{no();s1();Zn()});function B_({builder:y,grouping:n="na",orders:o}){return{builder:y,grouping:n,orders:o,type:"order"}}function z_({cancels:y}){return{cancels:y,type:"cancel"}}function N_({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function O_({oid:y,order:n}){return{oid:y,order:n,type:"modify"}}function w_({modifies:y}){return{modifies:y,type:"batchModify"}}function D_({asset:y,isCross:n,leverage:o}){return{asset:y,isCross:n,leverage:o,type:"updateLeverage"}}function R_({asset:y,isBuy:n,ntli:o}){return{asset:y,isBuy:n,ntli:o,type:"updateIsolatedMargin"}}function k_({asset:y,leverage:n}){return{asset:y,leverage:n,type:"topUpIsolatedOnlyMargin"}}function l_({time:y}){return{time:y,type:"scheduleCancel"}}function S_({amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T}){return{amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T,type:"usdClassTransfer"}}function x_({amount:y,destination:n,destinationDex:o,fromSubAccount:f,hyperliquidChain:T,nonce:C,signatureChainId:H,sourceDex:U,token:_}){return{amount:y,destination:n,destinationDex:o,fromSubAccount:f,hyperliquidChain:T,nonce:C,signatureChainId:H,sourceDex:U,token:_,type:"sendAsset"}}function F_({agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T}){return{agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T,type:"approveAgent"}}function $_({builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T}){return{builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T,type:"approveBuilderFee"}}function I_({hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,validator:T,wei:C}){return{hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,type:"tokenDelegate",validator:T,wei:C}}import{SwapKitError as Wo}from"@swapkit/helpers";import{keccak256 as P_,Signature as t_}from"ethers";function Qy(...y){let n=y.reduce((T,C)=>T+C.length,0),o=new Uint8Array(n),f=0;for(let T of y)o.set(T,f),f+=T.length;return o}function v_(y,n,o){if(o<n)return new Uint8Array([y+o]);if(o<=255)return new Uint8Array([y+n,o]);if(o<=65535)return new Uint8Array([y+n+1,o>>8,o&255]);return new Uint8Array([y+n+2,o>>>24&255,o>>>16&255,o>>>8&255,o&255])}function ey(y,n){let o=new Uint8Array(n),f=y;for(let T=n-1;T>=0;T-=1)o[T]=Number(f&0xffn),f>>=8n;return o}function e1(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return Qy(new Uint8Array([205]),ey(y,2));if(y<=0xffffffffn)return Qy(new Uint8Array([206]),ey(y,4));return Qy(new Uint8Array([207]),ey(y,8))}if(y>=-32n)return new Uint8Array([256+Number(y)]);if(y>=-128n)return new Uint8Array([208,256+Number(y)]);if(y>=-32768n)return Qy(new Uint8Array([209]),ey(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return Qy(new Uint8Array([210]),ey(BigInt.asUintN(32,y),4));return Qy(new Uint8Array([211]),ey(BigInt.asUintN(64,y),8))}function nH(y){let n=u_.encode(y);if(n.length<32)return Qy(new Uint8Array([160+n.length]),n);return Qy(v_(217,0,n.length),n)}function j_(y){let n=y.map((f)=>Qo(f)),o=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Qy(o,...n)}function K_(y){let n=Object.entries(y).filter(([,f])=>typeof f<"u"),o=n.length<16?new Uint8Array([128+n.length]):n.length<=65535?new Uint8Array([222,n.length>>8,n.length&255]):new Uint8Array([223,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return Qy(o,...n.flatMap(([f,T])=>[nH(f),Qo(T)]))}function Qo(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return nH(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new Wo("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return e1(BigInt(y))}if(typeof y==="bigint")return e1(y);if(y instanceof Uint8Array){let n=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Qy(n,y)}if(Array.isArray(y))return j_(y);if(typeof y==="object")return K_(y);throw new Wo("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function h_(y){let n=y.startsWith("0x")?y.slice(2):y;if(n.length%2!==0||/[^a-fA-F0-9]/u.test(n))throw new Wo("helpers_invalid_params",{hexValue:y});let o=new Uint8Array(n.length/2);for(let f=0;f<n.length;f+=2)o[f/2]=Number.parseInt(n.slice(f,f+2),16);return o}function TH(y){return{domain:p_,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...E_.Agent]}}}function oH(y){let n=b_[y.type],o=V_[y.type],{type:f,...T}=y;return{domain:{chainId:Number.parseInt(T.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:yH,version:"1"},message:{...T,hyperliquidChain:T.hyperliquidChain||fH},primaryType:n,types:{[n]:o}}}function CH(y){let n=t_.from(y);return{r:n.r,s:n.s,v:n.v}}function HH(y,n,{expiresAfter:o,vaultAddress:f}={}){let T=Qo(y),C=ey(BigInt(n),8),H=f?Qy(new Uint8Array([1]),h_(f.toLowerCase())):new Uint8Array([0]),U=typeof o==="number"?Qy(new Uint8Array([0]),ey(BigInt(o),8)):new Uint8Array;return P_(Qy(T,C,H,U))}function UH(y){let n=y.hyperliquidChain||fH;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:n};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:n};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:n};case"tokenDelegate":return{...y,hyperliquidChain:n,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:n};default:return y}}var yH="0x0000000000000000000000000000000000000000",p_,E_,fH="Mainnet",V_,b_,u_;var _H=I(()=>{p_={chainId:1337,name:"Exchange",verifyingContract:yH,version:"1"},E_={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},V_={approveAgent:[{name:"hyperliquidChain",type:"string"},{name:"agentAddress",type:"address"},{name:"agentName",type:"string"},{name:"nonce",type:"uint64"}],approveBuilderFee:[{name:"hyperliquidChain",type:"string"},{name:"maxFeeRate",type:"string"},{name:"builder",type:"address"},{name:"nonce",type:"uint64"}],sendAsset:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"sourceDex",type:"string"},{name:"destinationDex",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"fromSubAccount",type:"string"},{name:"nonce",type:"uint64"}],tokenDelegate:[{name:"hyperliquidChain",type:"string"},{name:"validator",type:"address"},{name:"wei",type:"uint64"},{name:"isUndelegate",type:"bool"},{name:"nonce",type:"uint64"}],usdClassTransfer:[{name:"hyperliquidChain",type:"string"},{name:"amount",type:"string"},{name:"toPerp",type:"bool"},{name:"nonce",type:"uint64"}]},b_={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},u_=new TextEncoder});import{AssetValue as Mo,Chain as m_,derivationPathToString as c_,getChainConfig as GH,getRPCUrl as g_,NetworkDerivationPath as i_,RequestClient as Pf,SwapKitError as tf,updateDerivationPath as d_}from"@swapkit/helpers";import{HDNodeWallet as r_}from"ethers";import{match as a_,P as Zo}from"ts-pattern";function wy(y,n){if(!Yo(y))throw new tf(n,{address:y});return y.toLowerCase()}async function Mf(y){let n=await NT();return Pf.post(`${n}/info`,{json:y})}function o8({dex:y,user:n}){return Mf({...y?{dex:y}:{},type:"clearinghouseState",user:wy(n,"helpers_invalid_params")})}function C8({user:y}){return Mf({type:"spotClearinghouseState",user:wy(y,"helpers_invalid_params")})}function H8({dex:y,user:n}){return Mf({...y?{dex:y}:{},type:"openOrders",user:wy(n,"helpers_invalid_params")})}function U8({dex:y,user:n}){return Mf({...y?{dex:y}:{},type:"frontendOpenOrders",user:wy(n,"helpers_invalid_params")})}function _8({oidOrCloid:y,user:n}){return Mf({oid:y,type:"orderStatus",user:wy(n,"helpers_invalid_params")})}function A8({aggregateByTime:y,user:n}){return Mf({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:wy(n,"helpers_invalid_params")})}function q8({aggregateByTime:y,endTime:n,startTime:o,user:f}){return Mf({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof n==="number"?{endTime:n}:{},startTime:o,type:"userFillsByTime",user:wy(f,"helpers_invalid_params")})}function AH({coin:y,token:n,value:o,spotMeta:f}){if(!o||Number(o)<=0)return null;let T=y?.toUpperCase()||`TOKEN-${n||"UNKNOWN"}`,C=s_[T]||XH,H=f?.tokens?.find((_)=>_.name===y||n!==void 0&&_.index===Number(n)),U=H?`${$y}.${T}-${H.name}:${H.tokenId}`:`${$y}.${T}`;return new Mo({decimal:C,identifier:U,value:o})}function G8(y){let n=new Map;for(let o of y){let f=o.toString({includeSynthProtocol:!0}),T=n.get(f);n.set(f,T?T.add(o):o)}if(![...n.values()].some((o)=>o.isGasAsset||o.ticker==="HYPE")){let o=Mo.from({chain:$y,value:0});n.set(o.toString({includeSynthProtocol:!0}),o)}return[...n.values()]}async function NT(){try{return await g_($y)}catch{let[y]=GH($y).rpcUrls;if(!y)throw new tf("helpers_chain_no_public_or_set_rpc_url",{chain:$y});return y}}async function Lo(){return`${await NT()}/exchange`}function X8(y){let n=T8[y.type],{type:o,...f}=y,T=n8[o];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:f8,version:"1"},message:f,primaryType:n,types:{[n]:T}}}async function WH({action:y,expiresAfter:n,nonce:o,vaultAddress:f}){let T=o||Date.now(),C=f?wy(f,"helpers_invalid_params"):void 0,H=await Lo(),U=HH(y,T,{expiresAfter:n,vaultAddress:C});return{action:y,endpoint:H,expiresAfter:n,nonce:T,typedData:TH(U),vaultAddress:C}}async function QH({action:y,nonce:n,signatureChainId:o}){let f=n||y.nonce||Date.now(),T=o||y.signatureChainId||"0xa4b1",C=UH({...y,nonce:f,signatureChainId:T});return{action:C,endpoint:await Lo(),nonce:f,typedData:oH(C)}}async function Jo({assetValue:y,recipient:n,sender:o,signatureChainId:f,time:T}){let C=wy(n,"core_transaction_invalid_recipient_address"),H=wy(o,"core_transaction_invalid_sender_address"),U=await Lo(),_=y.getValue("string"),A=T||Date.now(),Z=y.address;if(!Z)throw new tf("helpers_invalid_params",{asset:y.toString(),from:H});let M={amount:_,destination:C,hyperliquidChain:e_,signatureChainId:f||y8,time:A,token:Z,type:"spotSend"};return{action:M,endpoint:U,nonce:A,typedData:X8(M)}}async function qH(y){let n=await Pf.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(n.status!=="ok")throw new tf("core_transaction_failed",{response:n});return n}async function W8(y,n){let o=await NT(),f=n-5000;for(let T=0;T<5;T++){if(T>0)await new Promise((C)=>setTimeout(C,1000));try{let C=await Pf.post(`${o}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),H=Array.isArray(C)?C.find((U)=>U.time&&U.time>=n&&(U.delta?.type==="spotTransfer"||U.delta?.type==="internalTransfer")):void 0;if(H?.hash)return H.hash}catch{}}return""}function Yo(y){return y.startsWith("0x")&&_n(y)}function Q8(y){let n=Xy($y),o=y&&"index"in y?y.index||0:0,f=c_(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:d_(i_[$y],{index:o})),T,C=!1;function H(){if(C)return T;return T=a_(y).with({phrase:Zo.string},({phrase:W})=>{return r_.fromPhrase(W,void 0,f)}).with({signer:Zo.not(Zo.nullish)},({signer:W})=>W).otherwise(()=>{return}),C=!0,T}async function U(){let W=H();return W?await W.getAddress():""}async function _(W){let G=H();if(!G)throw new tf("toolbox_hypercore_no_signer");let X=await G.signTypedData(W.typedData.domain,W.typedData.types,W.typedData.message);return{action:W.action,endpoint:W.endpoint,nonce:W.nonce,signature:CH(X),..."expiresAfter"in W?{expiresAfter:W.expiresAfter}:{},..."vaultAddress"in W?{vaultAddress:W.vaultAddress}:{}}}async function A(W){let G=wy(W,"helpers_invalid_params");try{let X=await NT(),[Q,B,D]=await Promise.all([Pf.post(`${X}/info`,{json:{type:"spotClearinghouseState",user:G}}),Pf.post(`${X}/info`,{json:{type:"clearinghouseState",user:G}}),Pf.post(`${X}/info`,{json:{type:"spotMeta"}})]),L=(Q.spotState?.balances||Q.balances||[]).map(({coin:N,token:z,total:J})=>AH({coin:N,spotMeta:D,token:z,value:J})).filter((N)=>!!N),w=AH({coin:"USDC",spotMeta:D,value:B.withdrawable||B.marginSummary?.accountValue||B.marginSummary?.totalRawUsd});return G8(w?[...L,w]:L)}catch{return n(G)}}async function Z(W){let G=H();if(!G)throw new tf("toolbox_hypercore_no_signer");let X=W.sender||await G.getAddress(),Q=await Jo({...W,feeRate:0,sender:X}),B=await _(Q);return await qH(B),W8(X,Q.nonce)}function M(){return Mo.from({chain:$y,value:0})}return{broadcastTransaction:qH,createL1ActionRequest:WH,createTransaction:Jo,createUserSignedActionRequest:QH,estimateTransactionFee:M,getAddress:U,getBalance:A,getState:{clearinghouse:o8,frontendOpenOrders:U8,openOrders:H8,orderStatus:_8,spotClearinghouse:C8,userFills:A8,userFillsByTime:q8},signTransaction:_,transfer:Z,validateAddress:Yo}}var $y,XH,s_,e_="Mainnet",y8="0xa4b1",f8="0x0000000000000000000000000000000000000000",n8,T8;var ZH=I(()=>{b0();Ey();_H();$y=m_.HyperCore,{baseDecimal:XH}=GH($y),s_={HYPE:XH,USDC:6,USDT:6},n8={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},T8={spotSend:"HyperliquidTransaction:SpotSend"}});var Bo={};yy(Bo,{validateHyperCoreAddress:()=>Yo,getHyperCoreToolbox:()=>Q8,createUserSignedActionRequest:()=>QH,createTransaction:()=>Jo,createL1ActionRequest:()=>WH,buildUsdClassTransferAction:()=>S_,buildUpdateLeverageAction:()=>D_,buildUpdateIsolatedMarginAction:()=>R_,buildTopUpIsolatedOnlyMarginAction:()=>k_,buildTokenDelegateAction:()=>I_,buildSendAssetAction:()=>x_,buildScheduleCancelAction:()=>l_,buildOrderAction:()=>B_,buildModifyAction:()=>O_,buildCancelByCloidAction:()=>N_,buildCancelAction:()=>z_,buildBatchModifyAction:()=>w_,buildApproveBuilderFeeAction:()=>$_,buildApproveAgentAction:()=>F_});var zo=I(()=>{ZH()});import{PublicKey as yf}from"@solana/web3.js";import{AssetValue as OT,Chain as jy,DerivationPath as Z8,derivationPathToString as J8,getChainConfig as YH,getRPCUrl as M8,NetworkDerivationPath as L8,SwapKitError as pf,updateDerivationPath as Y8}from"@swapkit/helpers";import{match as B8,P as JH}from"ts-pattern";async function BH(y){let n=OT.from({address:y,chain:jy.Solana});if(n.symbol!=="UNKNOWN")return{decimals:n.decimal||0,id:y,logoURI:n.getIconUrl(),name:n.symbol,symbol:n.ticker};let o=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(o);if(!f.ok)return null;let T=await f.json();if(!Array.isArray(T)||T.length===0)return null;return T.find((H)=>H.id===y)||null}catch{return null}}async function z8(y){let n=await vy(),{PublicKey:o}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),T=new o(y),{baseDecimal:C}=YH(jy.Solana),H=await n.getBalance(T),U=[OT.from({chain:jy.Solana,fromBaseDecimal:C,value:H||0})],_=await n.getParsedTokenAccountsByOwner(T,{programId:f});for(let{account:A}of _.value){let Z=A.data.parsed.info,M=Z.mint,W=Z.tokenAmount.amount;if(Number(W)===0)continue;let G=await BH(M),X=G?.symbol||"UNKNOWN",Q=G?.decimals||Z.tokenAmount.decimals;U.push(OT.from({asset:`${jy.Solana}.${X}-${M}`,fromBaseDecimal:Q,value:W}))}return U}function Oo(y){try{let n=new yf(y);return yf.isOnCurve(n.toBytes())}catch{return!1}}function N8(y){let n=y&&"index"in y?y.index||0:0,o=J8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:Y8(L8[jy.Solana],{index:n})),f;async function T(){if(f)return f;return f=await B8(y).with({phrase:JH.string},({phrase:H})=>No({derivationPath:o,phrase:H})).with({signer:JH.any},({signer:H})=>H).otherwise(()=>{return}),f}async function C(){let H=await T();return H?.publicKey?LH(H.publicKey):""}return{broadcastTransaction:wT(vy),createKeysForPath:No,createTransaction:wo(vy),createTransactionFromInstructions:R8,estimateTransactionFee:O8(vy),getAddress:C,getAddressFromPubKey:LH,getBalance:Xy(jy.Solana),getBalanceFromRPC:z8,getConnection:vy,getPubkeyFromAddress:(H)=>new yf(H),signAndBroadcastTransaction:async(H)=>{let U=await MH(vy,T)(H);return wT(vy)(U)},signTransaction:MH(vy,T),transfer:k8(vy,T),validateAddress:Oo}}function O8(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let H=await y(),_=(await wo(y)({assetValue:o,isProgramDerivedAddress:T,memo:f,recipient:n,sender:C})).compileMessage(),A=await H.getFeeForMessage(_);if(A.value===null)throw new pf("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:Z}=YH(jy.Solana);return OT.from({chain:jy.Solana,fromBaseDecimal:Z,value:A.value})}}async function vy(){let{Connection:y}=await import("@solana/web3.js"),n=await M8(jy.Solana);return new y(n,{commitment:"confirmed",fetchMiddleware:(o,f,T)=>{let C={};for(let[H,U]of Object.entries(f?.headers??{})){let _=H.toLowerCase();if(_!=="pragma"&&_!=="solana-client")C[H]=U}T(o,{...f,headers:C})}})}function w8(y){return async({assetValue:n,recipient:o,sender:f,isProgramDerivedAddress:T})=>{let C=await y(),H=new yf(f);if(n.isGasAsset){let{Transaction:U,SystemProgram:_}=await import("@solana/web3.js");return new U().add(_.transfer({fromPubkey:H,lamports:n.getBaseValue("number"),toPubkey:new yf(o)}))}if(n.address)return D8({amount:n.getBaseValue("number"),connection:C,decimals:n.decimal,from:H,isProgramDerivedAddress:T,recipient:o,tokenAddress:n.address});return}}async function D8({tokenAddress:y,recipient:n,from:o,connection:f,amount:T,decimals:C,isProgramDerivedAddress:H}){let{getAssociatedTokenAddress:U,getAccount:_,createAssociatedTokenAccountInstruction:A,createTransferCheckedInstruction:Z}=await import("@solana/spl-token"),{Transaction:M}=await import("@solana/web3.js"),W=new M,G=new yf(y),X=await U(G,o),Q=new yf(n),B=await U(G,Q,H),D=!1;try{await _(f,B),D=!0}catch{}if(!D)W.add(A(o,B,Q,G));return W.add(Z(X,G,B,o,T,C)),W}function wo(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let{createMemoInstruction:H}=await import("@solana/spl-memo"),U=new yf(C);if(!(T||Oo(n)))throw new pf("core_transaction_invalid_recipient_address");let _=await y(),A=await w8(y)({assetValue:o,isProgramDerivedAddress:T,recipient:n,sender:C});if(!A)throw new pf("core_transaction_invalid_sender_address");if(f)A.add(H(f));let Z=await _.getLatestBlockhash();return A.recentBlockhash=Z.blockhash,A.feePayer=U,A}}async function R8({instructions:y}){let{Transaction:n}=await import("@solana/web3.js"),o=new n().add(...y);if(!o)throw new pf("core_transaction_invalid_sender_address");return o}function k8(y,n){return async({recipient:o,assetValue:f,memo:T,isProgramDerivedAddress:C})=>{let H=await n();if(!H)throw new pf("core_transaction_invalid_sender_address");let U=H.publicKey?.toString()??(await H.connect()).publicKey.toString(),_=await wo(y)({assetValue:f,isProgramDerivedAddress:C,memo:T,recipient:o,sender:U});if("signTransaction"in H){let A=await H.signTransaction(_);return wT(y)(A)}return _.sign(H),wT(y)(_)}}function wT(y){return async(n)=>{return(await y()).sendRawTransaction(n.serialize())}}function MH(y,n){return async(o)=>{let f=await n();if(!f)throw new pf("toolbox_solana_no_signer");let{VersionedTransaction:T}=await import("@solana/web3.js");if(!(o instanceof T)){let H=await(await y()).getLatestBlockhash();o.recentBlockhash=H.blockhash,o.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(o);return o.sign([f]),o}}async function No({phrase:y,derivationPath:n=Z8.SOL}){let{HDKey:o}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:T}=await import("@solana/web3.js"),C=f(y),H=o.fromMasterSeed(C);return T.fromSeed(H.derive(n,!0).privateKey)}function LH(y){return y.toString()}var zH=I(()=>{Ey()});var Do={};yy(Do,{validateSolanaAddress:()=>Oo,getSolanaToolbox:()=>N8,fetchTokenMetaData:()=>BH,createKeysForPath:()=>No});var Ro=I(()=>{zH()});import{AssetValue as DT,Chain as RT,DerivationPath as OH,derivationPathToString as l8,getChainConfig as S8,getRPCUrl as So,NetworkDerivationPath as x8,SwapKitError as By,updateDerivationPath as F8}from"@swapkit/helpers";import{match as ko,P as Ef}from"ts-pattern";function kT(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function lT({phrase:y,derivationPath:n=OH.STRK}){let{HDKey:o}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:T,hash:C,encode:H,CallData:U}=await import("starknet"),_=f(y),Z=o.fromMasterSeed(_).derive(n);if(!Z.privateKey)throw new By("toolbox_starknet_no_signer");let M=H.addHexPrefix(Buffer.from(Z.privateKey).toString("hex")),W=T.starkCurve.grindKey(M),G=H.addHexPrefix(W),X=T.starkCurve.getStarkKey(G),Q=U.compile([X,0]);return{address:C.calculateContractAddressFromHash(X,xo,Q,0),privateKey:G,publicKey:X}}async function Fo({phrase:y,derivationPath:n=OH.STRK}){let{Account:o,RpcProvider:f}=await import("starknet"),{privateKey:T,address:C}=await lT({derivationPath:n,phrase:y}),H=await So(RT.Starknet),U=new f({nodeUrl:H});return new o({address:C,provider:U,signer:T})}function wH(y){let n=RT.Starknet,o=y&&"index"in y?y.index||0:0,f=l8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:F8(x8[n],{index:o})),T,C,H;async function U(){if(C)return C;let{RpcProvider:z}=await import("starknet"),J=await So(n);return C=new z({nodeUrl:J}),C}async function _(z){let J=await U(),Y=z||await W();if(!Y)return!1;try{return await J.getClassHashAt(Y),!0}catch(R){if(R instanceof Error&&R.message.includes("Contract not found"))return!1;let l=R;if(l?.code===20||l?.code===19)return!1;throw R}}async function A(){let{CallData:z,hash:J}=await import("starknet"),Y=await U(),R=await M();if(!R)throw new By("toolbox_starknet_no_signer");if(!H)throw new By({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await _())return R.address;let q=z.compile([H,0]);if(J.calculateContractAddressFromHash(H,xo,q,0).toLowerCase()!==R.address.toLowerCase())throw new By({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let k={addressSalt:H,classHash:xo,constructorCalldata:q},{transaction_hash:S}=await R.deployAccount(k);return await Y.waitForTransaction(S),S}async function Z(){if(!await _()){if(!H)throw new By({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await A()}}async function M(){if(T)return T;return T=await ko(y).with({phrase:Ef.string},async({phrase:z})=>{let{Account:J,RpcProvider:Y}=await import("starknet"),{privateKey:R,address:l,publicKey:q}=await lT({derivationPath:f,phrase:z});H=q;let O=await So(RT.Starknet),k=new Y({nodeUrl:O});return new J({address:l,provider:k,signer:R})}).with({address:Ef.string,privateKey:Ef.string},async({privateKey:z,address:J})=>{let{Account:Y}=await import("starknet"),R=await U();return new Y({address:J,provider:R,signer:z})}).with({signer:Ef.instanceOf(Object)},({signer:z})=>z).otherwise(()=>{return}),T}async function W(){return(await M())?.address??""}async function G(z){let J=await U(),{uint256:Y,CallData:R}=await import("starknet"),l=[],q=[lo,NH];for(let O of q)try{let[k="0",S="0"]=await J.callContract({calldata:R.compile({account:z}),contractAddress:O,entrypoint:"balanceOf"}),x=Y.uint256ToBN({high:k,low:S});ko(O).with(lo,()=>{l.push(DT.from({chain:n,value:x}))}).with(NH,()=>{if(x>0n)l.push(DT.from({asset:`${n}.ETH-${O}`,value:x}))}).otherwise(()=>{})}catch{}return l}async function X({recipient:z,assetValue:J}){let{CallData:Y,uint256:R}=await import("starknet");if(!kT(z))throw new By("core_transaction_invalid_recipient_address",{address:z});let l=J.isGasAsset?lo:J.address;if(!l)throw new By("toolbox_starknet_invalid_address",{address:l,assetValue:J});let q=R.bnToUint256(J.getBaseValue("bigint"));return[{calldata:Y.compile([z,q]),contractAddress:l,entrypoint:"transfer"}]}async function Q({recipient:z,assetValue:J,sender:Y}){let{baseDecimal:R}=S8(RT.Starknet),l=await M(),q=await ko({sender:Y,signer:l}).with({sender:Ef.string},async({sender:O})=>{let{Account:k}=await import("starknet"),S=await U();return new k({address:O,provider:S,signer:"0x0"})}).with({signer:Ef.nonNullable},({signer:O})=>O).otherwise((O)=>{throw new By({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:O}})});try{let O=await X({assetValue:J,recipient:z}),k=await q.estimateInvokeFee(O);if(k?.overall_fee)return DT.from({chain:n,fromBaseDecimal:R,value:k.overall_fee})}catch(O){throw new By("toolbox_starknet_fee_estimation_failed",O)}return DT.from({chain:n,value:"0.00001"})}async function B({recipient:z,assetValue:J,memo:Y}){let R=await M();if(!R)throw new By("toolbox_starknet_no_signer");await Z();let l=await X({assetValue:J,memo:Y,recipient:z});return(await R.execute(l)).transaction_hash}async function D(z){let J=await M();if(!J)throw new By("toolbox_starknet_no_signer");let Y=await J.signMessage(z);return Array.isArray(Y)?Y:[Y.r.toString(),Y.s.toString()]}async function L(z){let J=await M();if(!J)throw new By("toolbox_starknet_no_signer");return await Z(),(await J.execute(z)).transaction_hash}function w(z){return L(z)}function N(z,J=!0){try{return Xy(n)(z,J)}catch{return G(z)}}return{broadcastTransaction:L,createKeysForPath:Fo,createTransaction:X,deployAccount:A,estimateTransactionFee:Q,getAddress:W,getBalance:N,getProvider:U,isAccountDeployed:_,signAndBroadcastTransaction:w,signMessage:D,transfer:B,validateAddress:kT}}var lo="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",NH="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",xo="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var DH=I(()=>{Ey()});var ST={};yy(ST,{validateStarknetAddress:()=>kT,starknetCreateKeysForPath:()=>Fo,getStarknetToolbox:()=>wH,deriveStarknetKeys:()=>lT});var xT=I(()=>{DH()});import{isValidSuiAddress as $8}from"@mysten/sui/utils";import{AssetValue as Vf,Chain as FT,getChainConfig as I8,SwapKitError as Dy}from"@swapkit/helpers";import{match as P8,P as RH}from"ts-pattern";async function lH(y,n,o,f=[],T){let C=await y.getCoins({coinType:o,cursor:T,owner:n}),H=[...f,...C.data];return C.hasNextPage?lH(y,n,o,H,C.nextCursor):H}function t8(y,n,o){let f=n.reduce((_,A)=>_+BigInt(A.balance),0n);if(f<o)throw new Dy("toolbox_sui_insufficient_balance",{available:f.toString(),required:o.toString()});let{ids:T}=n.reduce((_,A)=>{if(_.total>=o)return _;return{ids:[..._.ids,A.coinObjectId],total:_.total+BigInt(A.balance)}},{ids:[],total:0n}),C=T[0],H=T.slice(1);if(H.length>0)y.mergeCoins(C,H);let[U]=y.splitCoins(C,[o]);return U}function SH(y){try{return $8(y)}catch{return!1}}function kH(y){return"signWithIntent"in y}function p8({provider:y,...n}={}){let o;async function f(){if(o)return o;return o=await P8(n).with({phrase:RH.string},async({phrase:X})=>{let{Ed25519Keypair:Q}=await import("@mysten/sui/keypairs/ed25519");return Q.deriveKeypair(X)}).with({signer:RH.any},({signer:X})=>X).otherwise(()=>{return}),o}async function T(X=y){let{SuiClient:Q,getFullnodeUrl:B}=await import("@mysten/sui/client");return new Q({url:X||B("mainnet")})}async function C(){return(await f())?.toSuiAddress()||""}function H(X){try{let Q=Vf.from({address:X,chain:FT.Sui});return{asset:Q.toString(),decimals:Q.decimal}}catch{}return null}async function U(X){let Q=X||await C();if(!Q)throw new Dy("toolbox_sui_address_required");let{baseDecimal:B,chain:D}=I8(FT.Sui);try{let L=await T(),{totalBalance:w}=await L.getBalance({owner:Q}),N=[Vf.from({chain:D,fromBaseDecimal:B,value:w})],z=await L.getAllBalances({owner:Q});for(let{coinType:J,totalBalance:Y}of z){if(J==="0x2::sui::SUI"||Number(Y)<=0)continue;let R=H(J);if(R)N.push(Vf.from({asset:R.asset,fromBaseDecimal:R.decimals,value:Y}))}return N}catch{return[Vf.from({chain:D})]}}async function _(X){let Q=Vf.from({chain:FT.Sui,value:"0.01"});if(!X)return Q;try{let B=await T(),{txBytes:D}=await A(X),{effects:{status:L,gasUsed:w}}=await B.dryRunTransactionBlock({transactionBlock:D});if(L.status!=="success")return Q;let N=Number(w.computationCost)+Number(w.storageCost)-Number(w.storageRebate);return Vf.from({chain:FT.Sui,value:N.toString()})}catch{return Q}}async function A({recipient:X,assetValue:Q,gasBudget:B,sender:D}){let{Transaction:L}=await import("@mysten/sui/transactions"),w=D||await C();if(!w)throw new Dy("toolbox_sui_no_sender");try{let N=new L;if(N.setSender(w),Q.isGasAsset||Q.symbol==="SUI"){let[Y]=N.splitCoins(N.gas,[Q.getBaseValue("string")]);N.transferObjects([Y],X)}else{let Y=Q.address;if(!Y)throw new Dy("toolbox_sui_missing_coin_type");let R=await T(),l=Q.getBaseValue("bigint"),q=await lH(R,w,Y);if(!q.length)throw new Dy("toolbox_sui_no_coins_found",{coinType:Y});let O=t8(N,q,l);N.transferObjects([O],X)}if(B)N.setGasBudget(B);let z=await T(),J=await N.build({client:z});return{tx:N,txBytes:J}}catch(N){if(N instanceof Dy)throw N;throw new Dy("toolbox_sui_transaction_creation_error",{error:N})}}async function Z(X){let Q=await f();if(!Q)throw new Dy("toolbox_sui_no_signer");if(X instanceof Uint8Array)return Q.signTransaction(X);let{txBytes:B}="tx"in X?X:await A(X);return Q.signTransaction(B)}async function M({assetValue:X,gasBudget:Q,recipient:B}){let D=await f();if(!D)throw new Dy("toolbox_sui_no_signer");let L=D.toSuiAddress()||await C();if(!L)throw new Dy("toolbox_sui_no_sender");let{txBytes:w}=await A({assetValue:X,gasBudget:Q,recipient:B,sender:L}),N=await T();if(!kH(D)){let J=await D.signTransaction(w),{digest:Y}=await N.executeTransactionBlock({signature:J.signature,transactionBlock:J.bytes});return Y}let{digest:z}=await N.signAndExecuteTransaction({signer:D,transaction:w});return z}async function W(X){let Q=await T(),{digest:B}=await Q.executeTransactionBlock({signature:X.signature,transactionBlock:X.bytes});return B}async function G(X){let Q=await f();if(!Q)throw new Dy("toolbox_sui_no_signer");let B=await T(),D;if(typeof X==="string")D=Uint8Array.from(Buffer.from(X,"base64"));else if(X instanceof Uint8Array)D=X;else D=await X.build({client:B});if(!kH(Q)){let w=await Q.signTransaction(D),{digest:N}=await B.executeTransactionBlock({signature:w.signature,transactionBlock:w.bytes});return N}let{digest:L}=await B.signAndExecuteTransaction({signer:Q,transaction:D});return L}return{broadcastTransaction:W,createTransaction:A,estimateTransactionFee:_,getAddress:C,getBalance:U,signAndBroadcastTransaction:G,signTransaction:Z,transfer:M,validateAddress:SH}}var xH=()=>{};var $T={};yy($T,{validateSuiAddress:()=>SH,getSuiToolbox:()=>p8});var IT=I(()=>{xH()});import{getHttpEndpoint as E8}from"@orbs-network/ton-access";import{AssetValue as V8,Chain as zn,getChainConfig as b8,getRPCUrl as u8,SwapKitError as Bn,SwapKitNumber as v8}from"@swapkit/helpers";import{mnemonicToWalletKey as j8}from"@ton/crypto";import{Address as Ky,beginCell as $o,Cell as FH,external as K8,internal as h8,JettonMaster as m8,loadStateInit as c8,SendMode as $H,storeMessage as g8,TonClient as i8,toNano as pH,WalletContractV4 as d8}from"@ton/ton";import{match as IH,P as Io}from"ts-pattern";async function yA(){let y=Date.now();if(PT&&y-tH<e8)return PT;try{return PT=await E8(),tH=y,PT}catch{return u8(zn.Ton)}}function fA(y={}){let n,o,f;async function T(){if(!n){let N=y.provider??await yA();n=new i8({endpoint:N})}return n}async function C(){return(await U()).address.toString()}async function H(){if(f)return f;return f=await IH(y).with({phrase:Io.string},async({phrase:N})=>j8(N.split(" "))).with({signer:Io.any},({signer:N})=>N).otherwise(()=>{return}),f}async function U(N){if(!o||N){let z=await H(),J=await T(),Y=N||z;if(!Y)throw new Bn("core_wallet_connection_not_found");let R=d8.create({publicKey:Y.publicKey,workchain:0});o=J.open(R)}return o}let _=Xy(zn.Ton);async function A({assetValue:N,recipient:z,memo:J,sender:Y}){if(N.isGasAsset){let V=J?w(J).toBoc().toString("base64"):void 0;return[{address:z,amount:N.getBaseValue("string"),payload:V}]}let R=N.address;if(!R)throw new Bn({errorKey:"core_swap_contract_not_found",info:{asset:N.toString()}});let l=Y??await C(),q=await D({jettonMasterAddress:R,ownerAddress:l}),O=Ky.parse(z),k=Ky.parse(l),S=N.getBaseValue("bigint"),x=J?w(J):void 0,t=L({destinationAddress:O,forwardPayload:x,jettonAmount:S,responseAddress:k});return[{address:q.toString(),amount:s8.toString(),payload:t.toBoc().toString("base64")}]}function Z({sender:N,...z}){return A({...z,sender:N})}function M(N){return N.map((z)=>{let J=z.payload?FH.fromBase64(z.payload):void 0,Y=z.stateInit?c8(FH.fromBase64(z.stateInit).asSlice()):void 0,R=Ky.parse(z.address),l=Ky.isFriendly(z.address)?Ky.parseFriendly(z.address).isBounceable:!0;return h8({body:J,bounce:l,init:Y,to:R,value:BigInt(z.amount)})})}async function W(N){let z=await H(),J=await U();if(!J||!z)throw new Bn("core_wallet_connection_not_found");let Y=await T(),{state:R}=await Y.getContractState(J.address),l=R==="active",q=l?await J.getSeqno():0,O=J.createTransfer({messages:M(N),secretKey:z.secretKey,sendMode:PH,seqno:q}),k=K8({body:O,init:l?void 0:J.init,to:J.address});return $o().store(g8(k)).endCell()}async function G(N){return await(await T()).sendFile(N.toBoc()),N.hash().toString("hex")}async function X(N){let z=await W(N);return G(z)}async function Q({assetValue:N,recipient:z,memo:J}){let Y=await Z({assetValue:N,memo:J,recipient:z});return X(Y)}async function B({sender:N,...z}){let{baseDecimal:J}=b8(zn.Ton),Y=await IH(N).with(Io.string,(q)=>{return Ky.parseFriendly(q).address}).otherwise(async()=>{return(await U()).address});if(!Y)throw new Bn("toolbox_fee_estimation_failed",{chain:zn.Ton});let R=V8.from({chain:zn.Ton,value:"0.01"}),l=await T();try{let q=await Z({sender:N,...z}),O=await H(),k=await U();if(!k||!O)return R;let S=await k.getSeqno(),x=k.createTransfer({messages:M(q),secretKey:O.secretKey,sendMode:PH,seqno:S}),{source_fees:t}=await l.estimateExternalMessageFee(Y,{body:x,ignoreSignature:!0,initCode:null,initData:null}),V=t.in_fwd_fee+t.storage_fee+t.gas_fee+t.fwd_fee;return R.set(v8.fromBigInt(BigInt(V),J))}catch{return R}}async function D({jettonMasterAddress:N,ownerAddress:z}){try{let J=await T(),Y=Ky.parse(N),R=Ky.parse(z);return await J.open(m8.create(Y)).getWalletAddress(R)}catch{throw new Bn({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:N,ownerAddress:z}})}}function L({jettonAmount:N,destinationAddress:z,responseAddress:J,forwardAmount:Y=a8,forwardPayload:R}){let l=$o().storeUint(r8,32).storeUint(0,64).storeCoins(N).storeAddress(z).storeAddress(J).storeBit(0).storeCoins(Y);if(R)l.storeBit(1).storeRef(R);else l.storeBit(0);return l.endCell()}function w(N){return $o().storeUint(0,32).storeStringTail(N).endCell()}return{broadcastTransaction:G,createTransaction:Z,estimateTransactionFee:B,getAddress:C,getBalance:_,getJettonWalletAddress:D,sign:W,signAndBroadcastTransaction:X,transfer:Q,validateAddress:EH}}function EH(y){try{return Ky.parse(y),!0}catch{return!1}}var r8=260734629,a8,s8,PH,e8=60000,PT,tH=0;var VH=I(()=>{Ey();a8=pH("0.01"),s8=pH("0.05"),PH=$H.PAY_GAS_SEPARATELY+$H.IGNORE_ERRORS});var tT={};yy(tT,{validateTonAddress:()=>EH,getTONToolbox:()=>fA});var pT=I(()=>{VH()});import{NetworkDerivationPath as nA}from"@swapkit/helpers";function Ry(y,n){if(!Number.isInteger(n)||n<0)throw RangeError(`${y} must be a non-negative integer, got: ${n}`)}function ff({accountIndex:y,chain:n,derivationPath:o}){if(y!==void 0)Ry("accountIndex",y);let f=[...o?.slice(0,3)??nA[n].slice(0,3)];if(y!==void 0)f[2]=y;return f}function bf({accountIndex:y,change:n=!1,chain:o,derivationPath:f,index:T}){return Ry("index",T),[...ff({accountIndex:y,chain:o,derivationPath:f}),Number(n),T]}function Lf(y){return y[2]??0}function bH({deriveAddress:y,getBalance:n,getUtxos:o}){async function f(U){let{accountIndex:_,count:A,startIndex:Z=0,change:M=!1}=U;if(Ry("count",A),A<1)throw RangeError("count must be at least 1");Ry("startIndex",Z);let W=[];for(let G=0;G<A;G++){let X=await y({accountIndex:_,change:M,index:Z+G});if(X)W.push(X)}return W}async function T(U){let{gapLimit:_=20,change:A=!1}=U??{},Z=[],M=0,W=0;while(M<_){let G=await y({change:A,index:W});if(!G)break;if((await n(G.address)).some((B)=>B.getValue("number")>0))Z.push(G),M=0;else M++;W++}return Z}async function C(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),Z=[..._,...A],M=await Promise.all(Z.map(async(G)=>{let Q=(await n(G.address)).reduce((B,D)=>B+D.getValue("number"),0);return{...G,balance:Q}})),W=M.reduce((G,X)=>G+X.balance,0);return{addresses:M,total:W}}async function H(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),Z=[..._,...A];return(await Promise.all(Z.map(async(W)=>{return(await o(W.address)).map((X)=>({...X,address:W.address,derivationIndex:W.index,isChange:W.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:C,getAggregatedUtxos:H,scanForAddresses:T}}var Nn=()=>{};import{Chain as Cy,getRPCUrl as TA,RequestClient as ET,SKConfig as oA,SwapKitError as Iy,warnOnce as CA}from"@swapkit/helpers";import{NETWORKS as uf}from"@swapkit/utxo-signer";async function HA({chain:y,txHash:n}){let o=`${On(y)}/push/transaction`,f=JSON.stringify({data:n});try{let T=await ET.post(o,{body:f,headers:{"Content-Type":"application/json"}});if(T.context.code!==200)throw new Iy("toolbox_utxo_broadcast_failed",{error:T.context.error||"Transaction broadcast failed"});return T.data?.transaction_hash||n}catch(T){let C=await TA(y);if(C){let H=JSON.stringify({id:pC(),jsonrpc:"2.0",method:"sendrawtransaction",params:[n]}),U=await ET.post(C,{body:H,headers:{"Content-Type":"application/json"}});if(U.error)throw new Iy("toolbox_utxo_broadcast_failed",{error:U.error?.message});if(U.result.includes('"code":-26'))throw new Iy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return U.result}throw T}}function On(y){return`https://api.blockchair.com/${UA(y)}`}function uH(y){switch(y){case Cy.Bitcoin:return 5;case Cy.Dogecoin:return 1e4;case Cy.Litecoin:return 1;case Cy.Zcash:return 1;default:return 2}}function UA(y){switch(y){case Cy.BitcoinCash:return"bitcoin-cash";case Cy.Litecoin:return"litecoin";case Cy.Dash:return"dash";case Cy.Dogecoin:return"dogecoin";case Cy.Zcash:return"zcash";case Cy.Polkadot:return"polkadot";default:return"bitcoin"}}async function _A(y){try{let{feePerKb:n}=await ET.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),o=n/1000;return Math.max(o,uH(y))}catch{return uH(y)}}async function VT(y,n){let o=await ET.get(`${y}${n?`${y.includes("?")?"&":"?"}key=${n}`:""}`);if(!o||o.context.code!==200)throw new Iy("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return o.data}async function jH({address:y,chain:n,apiKey:o}){if(!y)throw new Iy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await VT(`${On(n)}/dashboards/address/${y}?transaction_details=true`,o))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function AA({address:y,chain:n,apiKey:o}){return(await jH({address:y,apiKey:o,chain:n}))?.address.balance||0}async function KH({chain:y,apiKey:n,txHash:o}){if(!o)throw new Iy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await VT(`${On(y)}/raw/transaction/${o}`,n))?.[o]?.raw_transaction||""}catch(f){let T=f instanceof Error?f.message:String(f);return console.error(`Failed to fetch raw transaction: ${T}`),""}}async function GA({chain:y,apiKey:n,txHash:o}){if(!o)throw new Iy("toolbox_utxo_invalid_params",{error:"TxHash is required"});let T=(await VT(`${On(y)}/dashboards/transaction/${o}`,n))?.[o];if(!T)throw new Iy("toolbox_utxo_tx_not_found",{txHash:o});let{transaction:C,inputs:H,outputs:U}=T,_=H.map((Z)=>Z.spending_sequence),A=C.is_rbf===!0||_.some((Z)=>Z<qA);return{blockId:C.block_id,confirmed:C.block_id!==-1,fee:C.fee,inputs:H,isRBF:A,outputs:U,sequences:_,size:C.size,txid:C.hash,weight:C.weight}}async function XA({chain:y,address:n,apiKey:o,offset:f=0,limit:T=30}){return(await VT(`${On(y)}/outputs?q=recipient(${n}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${T}&offset=${f}`,o)).map(({is_spent:_,script_hex:A,block_id:Z,transaction_hash:M,index:W,value:G,spending_signature_hex:X})=>({hash:M,index:W,is_confirmed:Z!==-1,is_spent:_,script_hex:A,txHex:X,value:G}))}function WA(y){return y.reduce((n,o)=>n+o.value,0)}function vH(y,n){let o=[...y].sort((f,T)=>T.value-f.value);if(n){let f=[],T=0;for(let C of o)if(f.push(C),T+=C.value,T>=n)break;return f}return o}async function hH({chain:y,address:n,apiKey:o,targetValue:f,accumulativeValue:T=0,offset:C=0,limit:H=30}){if(!n)throw new Iy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let U=await XA({address:n,apiKey:o,chain:y,limit:H,offset:C,targetValue:f}),A=U.length<H,Z=U.filter(({is_spent:B})=>!B),M=WA(Z),W=T+M,G=f&&W>=f;if(A||G)return vH(Z,f);let X=await hH({accumulativeValue:W,address:n,apiKey:o,chain:y,limit:H,offset:C+H,targetValue:f}),Q=[...Z,...X];return vH(Q,f)}catch(U){let _=U instanceof Error?U.message:String(U);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function QA({address:y,chain:n,apiKey:o,fetchTxHex:f=!0,targetValue:T}){let C=await hH({address:y,apiKey:o,chain:n,targetValue:T}),H=[];for(let{hash:U,index:_,script_hex:A,value:Z}of C){let M;if(f)M=await KH({apiKey:o,chain:n,txHash:U});H.push({address:y,hash:U,index:_,txHex:M,value:Z,witnessUtxo:{script:Buffer.from(A,"hex"),value:Z}})}return H}function a(y){let n=oA.get("apiKeys").blockchair||"";return CA({condition:!n,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(o)=>HA({chain:y,txHash:o}),getAddressData:(o)=>jH({address:o,apiKey:n,chain:y}),getBalance:(o)=>AA({address:o,apiKey:n,chain:y}),getRawTx:(o)=>KH({apiKey:n,chain:y,txHash:o}),getSuggestedTxFee:()=>_A(y),getTransactionDetails:(o)=>GA({apiKey:n,chain:y,txHash:o}),getUtxos:(o)=>QA({...o,apiKey:n,chain:y})}}function ZA(y){return y}function JA(){return function(n){switch(n){case Cy.Bitcoin:return uf.bitcoin;case Cy.BitcoinCash:return uf.bitcoinCash;case Cy.Dash:return uf.dash;case Cy.Litecoin:return uf.litecoin;case Cy.Dogecoin:return uf.dogecoin;case Cy.Zcash:return uf.zcash;default:throw new Iy("toolbox_utxo_not_supported",{chain:n})}}}var qA=4294967294;var mH=I(()=>{Ey()});import{CashAddrType as bT,decodeCashAddr as MA,encodeCashAddr as LA}from"@swapkit/utxo-signer";function zA(y,n,o){return LA({hash:o,prefix:y,type:YA[n]})}function NA(y){let n=MA(y),o=BA[n.type];if(!o)throw Error(`Unknown CashAddr type: ${n.type}`);return{hash:n.hash,prefix:n.prefix,type:o}}var YA,BA,Po;var cH=I(()=>{YA={P2PKH:bT.P2PKH,P2SH:bT.P2SH},BA={[bT.P2PKH]:"P2PKH",[bT.P2SH]:"P2SH"};Po={decode:NA,encode:zA}});import{sha256 as OA}from"@noble/hashes/sha2.js";import{createBase58check as wA}from"@scure/base";import{SwapKitError as iH}from"@swapkit/helpers";function po(y){try{return uT(y),!0}catch{return!1}}function Eo(y){return uT(y)?.network}function hy(y){let n=uT(y);if(n?.format==="legacy")return y;return kA(n)}function wn(y){let n=uT(y);return lA(n)}function uT(y){try{let n=DA(y);if(n)return n}catch{}try{let n=RA(y);if(n)return n}catch{}throw new iH("toolbox_utxo_invalid_address",{address:y})}function DA(y){try{let n=dH.decode(y);if(n.length!==21)throw new iH("toolbox_utxo_invalid_address",{address:y});let o=n[0],f=Array.prototype.slice.call(n,1);switch(o){case Yf.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case Yf.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case Yf.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case Yf.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case Yf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case Yf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function RA(y){if(y.indexOf(":")!==-1)try{return gH(y)}catch{}else{let n=["bitcoincash","bchtest","bchreg"];for(let o of n)try{return gH(`${o}:${y}`)}catch{}}return}function gH(y){try{let{hash:n,prefix:o,type:f}=Po.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(n,0),network:o==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function kA(y){let n=Yf.legacy[y.network][y.type],o=Buffer.alloc(1+y.hash.length);return o[0]=n,o.set(y.hash,1),dH.encode(o)}function lA(y){let n=y.network==="mainnet"?"bitcoincash":"bchtest",o=y.type==="p2pkh"?"P2PKH":"P2SH",f=new Uint8Array(y.hash);return Po.encode(n,o,f)}var dH,to,Yf;var rH=I(()=>{cH();dH=wA(OA);((o)=>{o.Mainnet="mainnet";o.Testnet="testnet"})(to||={});Yf={["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 SA}from"@swapkit/helpers";import{Script as xA}from"@swapkit/utxo-signer";function My(y){let n=new Uint8Array(Buffer.from(y,"utf8"));return xA.encode(["RETURN",n])}var FA=1000,jT=10,KT=2,aH=10,$A=41,IA=107,hT,vT,Dn,vf=(y)=>{if(y.startsWith("bc1")||y.startsWith("tb1")||y.startsWith("ltc1")||y.startsWith("tltc1"))return"P2WPKH";if(y.startsWith("1")||y.startsWith("m")||y.startsWith("n")||y.startsWith("bitcoincash:q")||y.startsWith("bitcoincash:p")||y.startsWith("q")||y.startsWith("p")||y.startsWith("L")||y.startsWith("M")||y.startsWith("3")||y.startsWith("D")||y.startsWith("A")||y.startsWith("9")||y.startsWith("X")||y.startsWith("7")||y.startsWith("y")||y.startsWith("t1")||y.startsWith("t3")||y.startsWith("tm"))return"P2PKH";throw new SA("toolbox_utxo_invalid_address",{address:y})},Bf=({inputs:y,outputs:n,feeRate:o})=>{let f=y[0]&&"address"in y[0]&&y[0].address?vf(y[0].address):"P2PKH",C=(o?y.filter((A)=>A.value>=vT["type"in A&&A.type?A.type:"P2PKH"]*Math.ceil(o)):y).reduce((A,Z)=>A+nf(Z),0),H=n?.reduce((A,Z)=>A+Rn(Z),0)||Dn[f],U=jT+C+H;return f==="P2WPKH"?Math.ceil(U+KT/4):U},nf=(y)=>{if("type"in y&&y.type)return vT[y.type];if("address"in y&&y.address)return vT[vf(y.address)];return $A+IA},Rn=(y,n)=>{if(y?.script)return aH+y.script.length+(y.script.length>=74?2:1);if(n)return Dn[n];if("address"in y&&y.address)return Dn[vf(y.address)];return Dn.P2PKH};var Vo=I(()=>{((o)=>{o.P2PKH="P2PKH";o.P2WPKH="P2WPKH"})(hT||={});vT={["P2PKH"]:148,["P2WPKH"]:68},Dn={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as zf,SwapKitError as PA}from"@swapkit/helpers";function kn(y){switch(y){case zf.Bitcoin:case zf.BitcoinCash:return 550;case zf.Dash:case zf.Litecoin:return 5500;case zf.Dogecoin:return 1e5;case zf.Zcash:return 546;default:throw new PA("toolbox_utxo_not_supported",{chain:y})}}function ky({inputs:y,outputs:n,feeRate:o=1,chain:f=zf.Bitcoin,changeAddress:T=""}){let C=y[0]&&"address"in y[0]&&y[0].address?vf(y[0].address):"P2PKH",H=y.filter((X)=>nf(X)*o<=X.value),_=C==="P2WPKH"?Math.ceil(KT/4):0,A=jT+_+n.reduce((X,Q)=>X+Rn(Q),0),Z=n.reduce((X,Q)=>X+Q.value,0),M=A*o,W=0,G=[];for(let X of H){let Q=nf(X),B=o*Q;M+=B,W+=X.value,G.push(X);let D=M+Z;if(W<D)continue;let L=W-D,w=o*Rn({address:T,value:0});if(L>w){let N=w+M,z=W-(Z+Math.ceil(N));if(z>Math.max(nf({value:0})*o,kn(f)))return{fee:Math.ceil(N),inputs:G,outputs:n.concat({address:T,value:z})}}return{fee:Math.ceil(M),inputs:G,outputs:n}}return{fee:Math.ceil(o*Bf({inputs:y,outputs:n}))}}var sH=I(()=>{Vo()});var jf=I(()=>{mH();rH();sH();Vo()});import{Address as tA,ZCASH_NETWORK as pA}from"@swapkit/utxo-signer";function Nf(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function Tf(y){let n=Nf(y);return po(n)&&Eo(n)==="mainnet"}function Kf(y){try{if(y.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let o=tA(pA).decode(y);return o.type==="pkh"||o.type==="sh"}catch{return!1}}var ln=I(()=>{jf()});import{secp256k1 as EA}from"@noble/curves/secp256k1.js";import{hex as Of}from"@scure/base";import{HDKey as n5}from"@scure/bip32";import{mnemonicToSeedSync as uo}from"@scure/bip39";import{AssetValue as mT,applyFeeMultiplier as eH,Chain as s,derivationPathToString as Sn,FeeOption as Py,NetworkDerivationPath as T5,SwapKitError as m,SwapKitNumber as VA,updateDerivationPath as bA,warnOnce as uA}from"@swapkit/helpers";import{Address as vA,BCHSigHash as vo,CashAddrPrefix as jA,CashAddrType as KA,encodeCashAddr as hA,NETWORKS as hf,p2pkh as y5,p2wpkh as mA,RBF_SEQUENCE as cA,SigHash as o5,Transaction as bo,WIF as C5}from"@swapkit/utxo-signer";import{match as H5}from"ts-pattern";function jo({address:y,chain:n}){return H5(n).with(s.BitcoinCash,()=>Tf(y)).with(s.Zcash,()=>Kf(y)).otherwise(()=>{try{return vA(Ay(n)).decode(y),!0}catch{return!1}})}function Ay(y){return H5(y).with(s.Bitcoin,()=>hf.bitcoin).with(s.BitcoinCash,()=>hf.bitcoinCash).with(s.Dash,()=>hf.dash).with(s.Dogecoin,()=>hf.dogecoin).with(s.Litecoin,()=>hf.litecoin).with(s.Zcash,()=>hf.zcash).exhaustive()}function gA({phrase:y,derivationPath:n,network:o,seed:f}){let T=f??uo(y),H=n5.fromMasterSeed(T,o.bip32).derive(n);if(!H.privateKey)throw new m("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return H.privateKey}function f5(y){return EA.getPublicKey(y,!0)}function Fn({publicKey:y,chain:n,network:o}){if(n===s.BitcoinCash){let C=y5(y,o);if(!C.hash)throw new m("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return hA({hash:C.hash,prefix:jA.MAINNET,type:KA.P2PKH}).replace(/^bitcoincash:/,"")}let T=!xn.includes(n)?mA(y,o):y5(y,o);if(!T.address)throw new m("toolbox_utxo_invalid_address",{error:"Could not derive address"});return T.address}function mf({phrase:y,derivationPath:n,chain:o,wif:f,seed:T}){let C=Ay(o);if(f){let A=C5(C).decode(f),Z=f5(A);return{privateKey:A,publicKey:Z}}if(!y)throw new m("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let H=n||Sn(T5[o]),U=gA({derivationPath:H,network:C,phrase:y,seed:T}),_=f5(U);return{privateKey:U,publicKey:_}}function iA(y,n){return C5(Ay(n)).encode(y)}function dA({phrase:y,derivationPath:n,chain:o,seed:f}){let T=n.split("/");if(T.length<4)throw new m("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${T.length}): ${n}`});let C=Ay(o),H=f??uo(y),U=n5.fromMasterSeed(H,C.bip32),_=T.slice(0,4).join("/");return U.derive(_)}function of({inputs:y,outputs:n,chain:o,tx:f,sender:T,compiledMemo:C,enableRBF:H=!1}){let U=Ay(o),_=!xn.includes(o),A=H?cA:void 0,Z=new Set;for(let M of y){let W=`${M.hash}:${M.index}`;if(Z.has(W))throw new m("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});Z.add(W);let G=typeof M.hash==="string"?Of.decode(M.hash):M.hash;if(_&&M.witnessUtxo)f.addInput({index:M.index,sequence:A,txid:G,witnessUtxo:{amount:BigInt(M.witnessUtxo.value),script:M.witnessUtxo.script}});else if(M.txHex)f.addInput({index:M.index,nonWitnessUtxo:Of.decode(M.txHex),sequence:A,txid:G,...o===s.BitcoinCash?{sighashType:vo.ALL}:{}});else throw new m("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let M of n){let W="address"in M&&M.address?M.address:T;if(o===s.BitcoinCash)W=hy(W);if(M.script){if(C)f.addOutput({amount:0n,script:C})}else f.addOutputAddress(W,BigInt(M.value),U)}return{inputs:y,tx:f}}async function cf(y){let n=await a(y).getSuggestedTxFee();return{[Py.Average]:n,[Py.Fast]:eH(n,Py.Fast),[Py.Fastest]:eH(n,Py.Fastest)}}async function U5({assetValue:y,recipient:n,memo:o,sender:f,fetchTxHex:T=!1}){let C=y.chain,H=(await cf(C))[Py.Fastest],U=T||xn.includes(C),_=y.getBaseValue("number"),A=Math.ceil(_+H*5000);return{inputs:await a(C).getUtxos({address:f,fetchTxHex:U,targetValue:A}),outputs:[{address:n,value:_},...o?[{address:"",script:My(o),value:0}]:[]]}}async function _5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T,fetchTxHex:C=!1,enableRBF:H=!1}){let U=y.chain,_=o?My(o):null,A=await U5({assetValue:y,fetchTxHex:C,memo:o,recipient:n,sender:T}),{inputs:Z,outputs:M}=ky({...A,chain:U,feeRate:f});if(!(Z&&M))throw new m("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let W=new bo({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:G,tx:X}=of({chain:U,compiledMemo:_,enableRBF:H,inputs:Z,outputs:M,sender:T,tx:W});return{inputs:G,tx:X,utxos:A.inputs}}async function A5({assetValue:y,feeOptionKey:n=Py.Fast,feeRate:o,memo:f,sender:T,recipient:C}){let H=y.chain,U=await U5({assetValue:y,memo:f,recipient:C,sender:T}),_=o?Math.floor(o):(await cf(H))[n];return ky({...U,chain:H,feeRate:_})}function rA(y){return async function({from:o,memo:f,feeRate:T,feeOptionKey:C=Py.Fast,recipients:H=1}){let U=await a(y).getAddressData(o),_=T?Math.ceil(T):(await cf(y))[C],A=U?.utxo.map((Q)=>({...Q,hash:"",type:"P2PKH"})).filter((Q)=>Q.value>Math.max(kn(y),nf(Q)*_));if(!A?.length)return mT.from({chain:y});let Z=BigInt(A.reduce((Q,B)=>Q+B.value,0)),M=mT.from({chain:y,value:Z}),W=typeof H==="number"?Array.from({length:H},()=>({address:o,value:0})):H;if(f)W.push({address:o,script:My(f),value:0});let G=Bf({inputs:A,outputs:W}),X=mT.from({chain:y,value:BigInt(G*_)});return M.sub(X)}}function aA(y){return async function(o){let{fee:f}=await A5(o);return mT.from({chain:y,value:VA.fromBigInt(BigInt(f),8).getValue("string")})}}function sA({chain:y,phrase:n,derivationPath:o,seed:f}){let T=Ay(y),{privateKey:C,publicKey:H}=mf({chain:y,derivationPath:o,phrase:n,seed:f}),U=y===s.BitcoinCash?[vo.ALL]:[o5.ALL];return{getAddress:()=>Fn({chain:y,network:T,publicKey:H}),privateKey:C,publicKey:H,signTransaction:(_)=>{return _.sign(C,U),_}}}function eA(y,n){return async function({memo:f,recipient:T,feeOptionKey:C,feeRate:H,assetValue:U,enableRBF:_=!1}){let A=await n?.getAddress();if(!(n&&A))throw new m("toolbox_utxo_no_signer");if(!T)throw new m("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});uA({condition:_&&!cT.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let Z=_&&cT.includes(y),M=H||(await cf(y))[C||Py.Fast],{tx:W}=await _5({assetValue:U,enableRBF:Z,feeRate:M,memo:f,recipient:T,sender:A}),G=await n.signTransaction(W);return G.finalize(),a(y).broadcastTx(Of.encode(G.extract()))}}function Ko(y){return(n)=>jo({address:n,chain:y})}function ho(y){let n=Ay(y);return function(f){if(!f)throw new m("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return Fn({chain:y,network:n,publicKey:f.publicKey})}}function Cf({chain:y,...n}){let o="phrase"in n?n.phrase:void 0,f="index"in n?n.index||0:0,T=o?uo(o):void 0,C="derivationPath"in n&&n.derivationPath?n.derivationPath:bA(T5[y],{index:f}),H=Sn(C),U=o?sA({chain:y,derivationPath:H,phrase:o,seed:T}):void 0,_="signer"in n?n.signer:void 0,A=U||_,Z=o?mf({chain:y,derivationPath:H,phrase:o,seed:T}):void 0;function M(){if(A)return A.getAddress();return Promise.resolve(void 0)}function W(q){if(!o)return;let O=ff({accountIndex:q,chain:y,derivationPath:C});return dA({chain:y,derivationPath:Sn(O),phrase:o,seed:T})}let G=W();function X(){if(!G)return;return G.publicExtendedKey}function Q({accountIndex:q}={}){let O=q===void 0?G:W(q);if(!O)return;let k=ff({accountIndex:q,chain:y,derivationPath:C});return{accountIndex:Lf(k),path:Sn(k),xpub:O.publicExtendedKey}}function B({accountIndex:q,index:O,change:k=!1}){let S=q===void 0?G:W(q);if(!S)return;let x=bf({accountIndex:q,chain:y,change:k,derivationPath:C,index:O}),t=Ay(y),V=S.deriveChild(Number(k)).deriveChild(O);if(!V.publicKey)throw new m("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let b=Fn({chain:y,network:t,publicKey:V.publicKey}),j=Of.encode(V.publicKey);return{accountIndex:Lf(x),address:b,change:k,index:O,path:Sn(x),pubkey:j}}async function D(q){if(!cT.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let O=await a(y).getTransactionDetails(q);return{canReplace:O.isRBF&&!O.confirmed,confirmed:O.confirmed,enabled:O.isRBF,fee:O.fee,sequences:O.sequences,supported:!0}}async function L({txid:q,newFeeRate:O,recipient:k,memo:S}){if(!cT.includes(y))throw new m("toolbox_utxo_rbf_not_supported",{chain:y});let x=await a(y).getTransactionDetails(q);if(!x.isRBF)throw new m("toolbox_utxo_tx_not_replaceable",{txid:q});if(x.confirmed)throw new m("toolbox_utxo_tx_already_confirmed",{blockId:x.blockId,txid:q});let t=x.inputs.reduce((ny,iy)=>ny+iy.value,0),b=x.outputs.find((ny)=>ny.recipient===k)?.value||0;if(b===0)throw new m("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let j=await Promise.all(x.inputs.map(async(ny)=>{let iy=await a(y).getRawTx(ny.transaction_hash);return{hash:ny.transaction_hash,index:ny.index,txHex:iy,value:ny.value,witnessUtxo:void 0}})),e=S?My(S):null,_y=Bf({feeRate:O,inputs:j.map((ny)=>({...ny,type:"P2WPKH"})),outputs:[{address:k,value:b}]}),r=Math.ceil(_y*O);if(r<=x.fee)throw new m("toolbox_utxo_rbf_fee_too_low",{newFee:r,originalFee:x.fee});let Ny=r-x.fee,Gy=b-Ny;if(Gy<=0)throw new m("toolbox_utxo_rbf_insufficient_change");let xy=new bo({allowLegacyWitnessUtxo:!0,version:1}),_f=[{address:k,value:Gy},...S?[{address:"",script:My(S),value:0}]:[]],Af=t-Gy-r,gy=await M();if(Af>kn(y)&&gy)_f.push({address:gy,value:Af});return of({chain:y,compiledMemo:e,inputs:j,outputs:_f,sender:gy||k,tx:xy}),{feeDelta:Ny,newFee:r,originalFee:x.fee,tx:xy}}async function w({txid:q,newFeeRate:O,recipient:k,memo:S}){let{tx:x,originalFee:t,newFee:V}=await L({memo:S,newFeeRate:O,recipient:k,txid:q}),b=await R(x);b.finalize();let j=await a(y).broadcastTx(Of.encode(b.extract()));return{newFee:V,originalFee:t,txid:j}}function N({accountIndex:q,index:O,change:k=!1}){Ry("index",O);let S=q===void 0?G:W(q);if(!S)return;return S.deriveChild(Number(k)).deriveChild(O).privateKey||void 0}function z({tx:q,inputDerivations:O}){if(!G)throw new m("toolbox_utxo_no_signer");let k=y===s.BitcoinCash?[vo.ALL]:[o5.ALL];for(let S=0;S<O.length;S++){let x=O[S];if(!x)continue;let{derivationIndex:t,isChange:V}=x,b=N({change:V,index:t});if(!b)throw new m("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${S} at index ${t}`});q.signIdx(b,S,k)}return q}async function J({utxos:q,recipient:O,assetValue:k,memo:S,feeRate:x,feeOptionKey:t,changeAddress:V}){if(!G)throw new m("toolbox_utxo_no_signer");let b=x||(await cf(y))[t||Py.Fast],j=S?My(S):null,e=[{address:O,value:k.getBaseValue("number")}];if(j)e.push({address:"",script:j,value:0});let _y=q.map(({hash:gy,index:ny,value:iy,txHex:$U,witnessUtxo:W0})=>({hash:gy,index:ny,txHex:$U,value:iy,witnessUtxo:W0?{script:W0.script,value:W0.value}:void 0})),{inputs:r,outputs:Ny}=ky({chain:y,feeRate:b,inputs:_y,outputs:e});if(!(r&&Ny))throw new m("toolbox_utxo_insufficient_balance",{assetValue:k,sender:"multiple addresses"});let Gy=new bo({allowLegacyWitnessUtxo:!0,version:1}),xy=q[0]?.address,_f=V||await M()||xy||O;of({chain:y,compiledMemo:j,inputs:r,outputs:Ny,sender:_f,tx:Gy});let Af=r.map((gy)=>{let ny=q.find((iy)=>iy.hash===gy.hash&&iy.index===gy.index);return ny?{derivationIndex:ny.derivationIndex,isChange:ny.isChange}:{derivationIndex:0,isChange:!1}});return z({inputDerivations:Af,tx:Gy}),Gy.finalize(),a(y).broadcastTx(Of.encode(Gy.extract()))}function Y({address:q,gapLimit:O=20}){if(!G)return;for(let k=0;k<O;k++){let S=B({change:!1,index:k}),x=B({change:!0,index:k}),t=S?.address===q?!1:x?.address===q;if(S?.address===q||x?.address===q)return{change:t,index:k}}return}function R(q){if(!A)throw new m("toolbox_utxo_no_signer");return A.signTransaction(q)}async function l(q){let O=await R(q);return O.finalize(),await a(y).broadcastTx(Of.encode(O.extract()))}return{accumulative:ky,broadcastTx:(q)=>a(y).broadcastTx(q),bumpFee:w,calculateTxSize:Bf,createKeysForPath:(q)=>mf({...q,chain:y}),createReplacementTransaction:L,createTransaction:_5,deriveAddressAtIndex:B,derivePrivateKeyAtIndex:N,estimateMaxSendableAmount:rA(y),estimateTransactionFee:aA(y),getAddress:M,getAddressFromKeys:ho(y),getBalance:Xy(y),getExtendedPublicKey:X,getExtendedPublicKeyInfo:Q,getFeeRates:()=>cf(y),getInputsOutputsFee:A5,getNetworkForChain:()=>Ay(y),getPrivateKeyFromMnemonic:(q)=>iA(mf({...q,chain:y}).privateKey,y),isRBFEnabled:D,keys:Z,resolveDerivationIndex:Y,signAndBroadcastTransaction:l,signTransaction:R,signTransactionWithMultipleKeys:z,transfer:eA(y,A),transferFromMultipleAddresses:J,validateAddress:Ko(y)}}var xn,cT;var gf=I(()=>{Ey();Nn();jf();ln();xn=[s.Dash,s.Dogecoin,s.Zcash,s.BitcoinCash],cT=[s.Bitcoin]});import{hex as q5}from"@scure/base";import{Chain as yq,derivationPathToString as fq,FeeOption as nq,NetworkDerivationPath as Tq,SwapKitError as my,updateDerivationPath as oq}from"@swapkit/helpers";import{BCHSigHash as Cq,CashAddrPrefix as G5,CashAddrType as X5,encodeCashAddr as W5,NETWORKS as Hq,p2pkh as Q5,Transaction as Z5}from"@swapkit/utxo-signer";function $n(y){return Nf(wn(y))}function Uq(y){let n=Ay(ty);function o(T){return T.sign(y.privateKey,[Cq.ALL]),T}function f(){let T=Q5(y.publicKey,n);if(!T.hash)throw new my("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let C=W5({hash:T.hash,prefix:G5.MAINNET,type:X5.P2PKH});return Promise.resolve(C.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:o}}function mo(y){let n="phrase"in y?y.phrase:void 0,o="index"in y?y.index||0:0,f=fq("derivationPath"in y&&y.derivationPath?y.derivationPath:oq(Tq[ty],{index:o})),T=n?mf({chain:ty,derivationPath:f,phrase:n}):void 0,C=T?Uq(T):("signer"in y)?y.signer:void 0;function H(){return Promise.resolve(C?.getAddress())}let{getBalance:U,getFeeRates:_,broadcastTx:A,...Z}=Cf({chain:ty});function M(X,Q=!0){return U(Nf(wn(X)))}function W(X){if(!C)throw new my("toolbox_utxo_no_signer");return C.signTransaction(X)}async function G(X){let Q=await W(X);return Q.finalize(),await A(q5.encode(Q.extract()))}return{...Z,broadcastTx:A,buildTx:Aq,createTransaction:J5,getAddress:H,getAddressFromKeys:qq,getBalance:M,getFeeRates:_,signAndBroadcastTransaction:G,signTransaction:W,stripPrefix:Nf,stripToCashAddress:$n,transfer:_q({broadcastTx:A,getFeeRates:_,signer:C}),validateAddress:Tf}}async function J5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){if(!Tf(n))throw new my("toolbox_utxo_invalid_address",{address:n});let C=Math.ceil(y.getBaseValue("number")+f*7500),H=await a(ty).getUtxos({address:$n(T),fetchTxHex:!0,targetValue:C}),U=o?My(o):null,_=[],A=hy(n);if(_.push({address:A,value:y.getBaseValue("number")}),U)_.push({script:U,value:0});let{inputs:Z,outputs:M}=ky({chain:ty,feeRate:f,inputs:H,outputs:_});if(!(Z&&M))throw new my("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let W=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!U,version:1}),G=hy(T),{inputs:X,tx:Q}=of({chain:ty,compiledMemo:U,inputs:Z,outputs:M.map((B)=>("address"in B)&&B.address?{...B,address:hy(B.address)}:B),sender:G,tx:W});return{inputs:X,tx:Q,utxos:Z}}function _q({broadcastTx:y,getFeeRates:n,signer:o}){return async function({recipient:T,assetValue:C,feeOptionKey:H=nq.Fast,...U}){let _=await o?.getAddress();if(!(o&&_))throw new my("toolbox_utxo_no_signer");if(!T)throw new my("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let A=U.feeRate||(await n())[H],{tx:Z}=await J5({...U,assetValue:C,feeRate:A,recipient:T,sender:_}),M=await o.signTransaction(Z);return M.finalize(),y(q5.encode(M.extract()))}}async function Aq({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){let C=wn(n);if(!Tf(C))throw new my("toolbox_utxo_invalid_address",{address:C});let H=Math.ceil(y.getBaseValue("number")+f*7500),U=await a(ty).getUtxos({address:$n(T),fetchTxHex:!0,targetValue:H}),_=Number(f.toFixed(0)),A=o?My(o):null,Z=[];if(Z.push({address:hy(n),value:y.getBaseValue("number")}),A)Z.push({script:A,value:0});let{inputs:M,outputs:W}=ky({chain:ty,feeRate:_,inputs:U,outputs:Z});if(!(M&&W))throw new my("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let G=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:X,tx:Q}=of({chain:ty,compiledMemo:A,inputs:M,outputs:W,sender:hy(T),tx:G});return{inputs:X,tx:Q,utxos:U}}function qq(y){let n=Hq.bitcoinCash,o=Q5(y.publicKey,n);if(!o.hash)throw new my("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return W5({hash:o.hash,prefix:G5.MAINNET,type:X5.P2PKH}).replace(/^bitcoincash:/,"")}var ty;var gT=I(()=>{jf();gf();ln();ty=yq.BitcoinCash});import{createBase58check as Gq,hex as Xq}from"@scure/base";import{HDKey as Y5}from"@scure/bip32";import{mnemonicToSeedSync as B5}from"@scure/bip39";import{Chain as iT,derivationPathToString as Wq,FeeOption as Qq,NetworkDerivationPath as Zq,SKConfig as z5,SwapKitError as In,updateDerivationPath as Jq}from"@swapkit/helpers";import{Address as Mq,createZcashTransaction as Lq,OutScript as Yq,PCZT as Bq,utils as N5,WIF as zq,ZCASH_NETWORK as Nq,ZCASH_TEST_NETWORK as Oq,ZcashConsensusBranchId as wq,ZcashSigHash as M5,ZcashVersionGroupId as Dq}from"@swapkit/utxo-signer";import{match as Rq,P as co}from"ts-pattern";function O5(){let{isStagenet:y}=z5.get("envs");return y?Oq:Nq}function lq(y){return kq.encode(y)}function Sq({phrase:y,derivationPath:n}){let o=B5(y),T=Y5.fromMasterSeed(o).derive(n);if(!T.privateKey||!T.publicKey)throw new In("toolbox_utxo_invalid_params");let{privateKey:C,publicKey:H}=T,U=N5.hash160(H),{isStagenet:_}=z5.get("envs"),A=_?new Uint8Array([29,37]):new Uint8Array([28,184]),Z=new Uint8Array(A.length+U.length);Z.set(A,0),Z.set(U,A.length);let M=lq(Z);return{getAddress:()=>Promise.resolve(M),signTransaction:(W)=>{if(W instanceof Bq)return W.signAllInputs(C,H,M5.ALL),W.finalizeAllInputs(),Promise.resolve(W.extract());return W.signAllInputs(C,H,M5.ALL),Promise.resolve(W)}}}function xq({inputs:y,outputs:n,tx:o,sender:f,compiledMemo:T}){let C=O5();for(let H of y){let U=Mq(C).decode(f),_=Yq.encode(U);o.addInput({index:H.index,script:_,sequence:4294967295,txid:Xq.decode(H.hash),value:BigInt(H.value)})}for(let H of n){let U="address"in H&&H.address?H.address:f,_=H.script;if(_&&!T)continue;if(_&&T)o.addOutput({amount:0n,script:T});else o.addOutputAddress(U,BigInt(H.value),C)}return{inputs:y,tx:o}}async function L5(y){let{assetValue:n,recipient:o,memo:f,feeRate:T,sender:C,fetchTxHex:H}=y,U=f?My(f):null,_=await a(iT.Zcash).getUtxos({address:C,fetchTxHex:H!==!1}),A=[{address:o,value:Number(n.getBaseValue("string"))},...U?[{script:U,value:0}]:[]],{inputs:Z,outputs:M}=ky({chain:iT.Zcash,changeAddress:C,feeRate:T,inputs:_,outputs:A});if(!(Z&&M))throw new In("toolbox_utxo_insufficient_balance",{assetValue:n,sender:C});let W=Lq({consensusBranchId:wq.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:Dq.SAPLING}),{tx:G,inputs:X}=xq({compiledMemo:U,inputs:Z,outputs:M,sender:C,tx:W});return{inputs:X,outputs:M,tx:G}}function go(y){let n=Rq(y).with({signer:co.not(co.nullish)},({signer:_})=>_).with({phrase:co.string},({phrase:_,derivationPath:A,index:Z=0})=>{let M=A||Zq[iT.Zcash]||[44,133,0,0,0],W=Jq(M,{index:Z}),G=Wq(W);return Sq({derivationPath:G,phrase:_})}).otherwise(()=>{return}),o=Cf({chain:iT.Zcash,signer:n});async function f(_){if(!n)throw new In("toolbox_utxo_no_signer");return await n.signTransaction(_)}async function T(_){let A=await f(_);return o.broadcastTx(A.toHex())}async function C({recipient:_,assetValue:A,feeOptionKey:Z=Qq.Fast,...M}){let W=await n?.getAddress();if(!(n&&W))throw new In("toolbox_utxo_no_signer");let G=M.feeRate||(await o.getFeeRates())[Z],{tx:X}=await L5({...M,assetValue:A,feeRate:G,recipient:_,sender:W}),B=(await n.signTransaction(X)).toHex();return o.broadcastTx(B)}function H({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let Z=B5(_),W=Y5.fromMasterSeed(Z).derive(A);if(!W.privateKey||!W.publicKey)throw new In("toolbox_utxo_invalid_params");return{privateKey:W.privateKey,publicKey:W.publicKey}}function U({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let Z=H({derivationPath:A,phrase:_}),M=O5();return zq(M).encode(Z.privateKey)}return{...o,createKeysForPath:H,createTransaction:L5,getPrivateKeyFromMnemonic:U,signAndBroadcastTransaction:T,signTransaction:f,transfer:C,validateAddress:Kf}}var kq;var io=I(()=>{jf();gf();ln();kq=Gq(N5.sha256)});import{hex as Fq}from"@scure/base";import{HDKey as $q}from"@scure/bip32";import{derivationPathToString as Iq}from"@swapkit/helpers";function w5({xpub:y,chain:n,count:o,startIndex:f=0,accountIndex:T}){if(Ry("count",o),o<1)throw RangeError("count must be at least 1");Ry("startIndex",f);let C=Ay(n),H=$q.fromExtendedKey(y,C.bip32),U=ff({accountIndex:T,chain:n}),_=Lf(U),A=[];for(let Z of[!1,!0]){let M=H.deriveChild(Number(Z));for(let W=0;W<o;W++){let G=f+W,X=M.deriveChild(G);if(!X.publicKey)continue;let Q=bf({accountIndex:T,chain:n,change:Z,index:G});A.push({accountIndex:_,address:Fn({chain:n,network:C,publicKey:X.publicKey}),change:Z,index:G,path:Iq(Q),pubkey:Fq.encode(X.publicKey)})}}return A}var D5=I(()=>{Nn();gf()});import{Chain as df,SwapKitError as Pq}from"@swapkit/helpers";function tq(y,n){switch(y){case df.BitcoinCash:return mo(n||{});case df.Zcash:return go(n);case df.Bitcoin:case df.Dogecoin:case df.Litecoin:case df.Dash:return Cf({chain:y,...n});default:throw new Pq("toolbox_utxo_not_supported",{chain:y})}}var R5=I(()=>{gT();gf();io();Nn();D5();gT();ln()});var ro={};yy(ro,{validateZcashAddress:()=>Kf,validateUtxoAddress:()=>jo,validateBchAddress:()=>Tf,toLegacyAddress:()=>hy,toCashAddress:()=>wn,stripToCashAddress:()=>$n,stripPrefix:()=>Nf,nonSegwitChains:()=>xn,isValidAddress:()=>po,getUtxoToolbox:()=>tq,getUtxoNetwork:()=>JA,getUtxoApi:()=>a,getUTXOAddressValidator:()=>Ko,getUTXOAddressPath:()=>bf,getUTXOAccountPath:()=>ff,getUTXOAccountIndexFromPath:()=>Lf,getScriptTypeForAddress:()=>vf,getOutputSize:()=>Rn,getNetworkForChain:()=>Ay,getInputSize:()=>nf,getDustThreshold:()=>kn,detectAddressNetwork:()=>Eo,deriveAddressesFromXpub:()=>w5,createZcashToolbox:()=>go,createUTXOToolbox:()=>Cf,createHDWalletHelpers:()=>bH,createCustomUtxoApi:()=>ZA,createBCHToolbox:()=>mo,compileMemo:()=>My,calculateTxSize:()=>Bf,assertDerivationIndex:()=>Ry,addressFromKeysGetter:()=>ho,addInputsAndOutputs:()=>of,accumulative:()=>ky,UtxoNetwork:()=>to,UTXOScriptType:()=>hT,TX_OVERHEAD:()=>jT,SEGWIT_MARKER_FLAG_WEIGHT:()=>KT,OutputSizes:()=>Dn,OP_RETURN_OVERHEAD:()=>aH,MIN_TX_FEE:()=>FA,InputSizes:()=>vT});var ao=I(()=>{gf();Nn();jf();R5();gT();io()});import{KeyPairSigner as pq}from"@near-js/signers";import{derivationPathToString as Eq,SwapKitError as Vq}from"@swapkit/helpers";import*as k5 from"near-seed-phrase";function Pn(y){return y.length>=2&&y.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(y)}async function dT(y){let{KeyPair:n}=await import("@near-js/crypto"),o=y.index||0,f=y.derivationPath?Eq(y.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:T}=k5.parseSeedPhrase(y.phrase,f),C=n.fromString(T);return S5(C)}async function so(y){let{KeyPair:n}=await import("@near-js/crypto"),o=n.fromString(y);return S5(o)}function S5(y){return new l5(y)}async function rT(y,n){let f=(await y.query({account_id:n,finality:"final",request_type:"view_access_key_list"})).keys.find((U)=>U.access_key.permission==="FullAccess");if(!f)throw new Vq("toolbox_near_no_public_key_found");let{PublicKey:T}=await import("@near-js/crypto"),C=T.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:C}}var l5;var eo=I(()=>{l5=class l5 extends pq{#y;constructor(y){super(y);this.#y=y}getAddress(){let y=this.#y.getPublicKey(),n=Buffer.from(y.data).toString("hex");return Promise.resolve(n)}}});function yC(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function fC(y){return"contractId"in y&&"methodName"in y}function nC(y){return"actions"in y}function TC(y){return"newAccountId"in y}function oC(y){return"contractCode"in y}function CC(y){return"customEstimator"in y}function HC(y){let n=0;for(let o of y)switch(o.enum){case"transfer":n+=Number(Hy.SIMPLE_TRANSFER);break;case"functionCall":n+=Number(Hy.CONTRACT_CALL);break;case"createAccount":n+=Number(Hy.ACCOUNT_CREATION);break;case"deployContract":n+=Number(Hy.CONTRACT_DEPLOYMENT);break;case"addKey":n+=Number(Hy.ACCESS_KEY_ADDITION);break;case"deleteKey":n+=Number(Hy.ACCESS_KEY_DELETION);break;case"stake":n+=Number(Hy.STAKE);break;default:n+=Number(Hy.CONTRACT_CALL)}return n.toString()}function UC(y){if(y==="ft_transfer"||y==="ft_transfer_call")return Hy.TOKEN_TRANSFER;if(y==="storage_deposit")return Hy.STORAGE_DEPOSIT;return Hy.CONTRACT_CALL}function bq(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function uq(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var Hy;var _C=I(()=>{Hy={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 AC({account:y,contractId:n,viewMethods:o,changeMethods:f}){let{Contract:T}=await import("@near-js/accounts");return new T(y,n,{changeMethods:f,useLocalViewExecution:!0,viewMethods:o})}import{JsonRpcProvider as vq}from"@near-js/providers";import{AssetValue as qC,Chain as rf,getRPCUrl as x5,SwapKitError as Zy}from"@swapkit/helpers";import{match as F5,P as $5}from"ts-pattern";function jq(y){let n;async function o(){if(n)return n;return n=await F5(y).with({phrase:$5.string},async(q)=>{return await dT(q)}).with({signer:$5.any},({signer:q})=>q).otherwise(()=>{return}),n}async function f(){let q=await x5(rf.Near);return new vq({url:q})}async function T(q){let{Account:O}=await import("@near-js/accounts"),k=await f(),S=await o(),x=q||await C();return new O(x,k,S)}async function C(){let q=await o();if(!q)throw new Zy("toolbox_near_no_signer");return await q.getAddress()}async function H(q){return(await N({changeMethods:[],contractId:q.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:q.accountId})}async function U(q){let k=[await W({args:{account_id:q.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await W({args:{amount:q.assetValue.getBaseValue("string"),memo:q.memo||null,receiver_id:q.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return z({actions:k,receiverId:q.contractId})}async function _(q){if(!await o())throw new Zy("toolbox_near_no_signer");let{assetValue:k,recipient:S,memo:x}=q,t=await C();if(!k.isGasAsset&&k.address){if(!await H({accountId:S,contractId:k.address}))return U({assetValue:k,contractId:k.address,memo:x,recipient:S})}let V=await A({...q,sender:t});return Q(V)}async function A({recipient:q,assetValue:O,memo:k,attachedDeposit:S,sender:x,functionCall:t}){let V=await f();if(!Pn(q))throw new Zy("toolbox_near_invalid_address",{recipient:q});if(!Pn(x))throw new Zy("toolbox_near_invalid_address",{sender:x});if(t)return M({...t,sender:x});if(!O.isGasAsset){let Af=O.address;if(!Af)throw new Zy("toolbox_near_missing_contract_address");return M({args:{amount:O.getBaseValue("string"),memo:k||null,receiver_id:q},attachedDeposit:S||"1",contractId:Af,gas:"250000000000000",methodName:"ft_transfer",sender:x})}let{publicKey:b,nonce:j}=await rT(V,x),e=O.getBaseValue("bigint"),{actionCreators:_y,createTransaction:r}=await import("@near-js/transactions"),{baseDecode:Ny}=await import("@near-js/utils"),Gy=[_y.transfer(e)];if(k&&S)Gy.push(_y.functionCall("memo",{memo:k},BigInt("250000000000000"),BigInt(S)));let xy=await V.block({finality:"final"}),_f=Ny(xy.header.hash);return r(x,b,q,j+1,Gy,_f)}function Z(q){let O=q.encode();return Buffer.from(O).toString("base64")}async function M({args:q,attachedDeposit:O,contractId:k,gas:S,methodName:x,sender:t}){let V=await f(),{publicKey:b,nonce:j}=await rT(V,t),{createTransaction:e,actionCreators:_y}=await import("@near-js/transactions"),{baseDecode:r}=await import("@near-js/utils"),Ny=await V.block({finality:"final"}),Gy=r(Ny.header.hash),xy=[_y.functionCall(x,Buffer.from(JSON.stringify(q)),BigInt(S),BigInt(O))];return e(t,b,k,j+1,xy,Gy)}async function W(q){let{actionCreators:O}=await import("@near-js/transactions");return O.functionCall(q.methodName,Buffer.from(JSON.stringify(q.args)),BigInt(q.gas),BigInt(q.attachedDeposit))}async function G(q){let O=await o();if(!O)throw new Zy("toolbox_near_no_signer");let[k,S]=await O.signTransaction(q);return S}async function X(q){return(await(await f()).sendTransaction(q)).transaction.hash}async function Q(q){let O=await o();if(!O)throw new Zy("toolbox_near_no_signer");try{let k=await G(q);return await X(k)}catch{return O.signAndSendTransactions?.({transactions:[q]})}}async function B(q){let O=await o();if("assetValue"in q){let S=await D();try{let x=await x5(rf.Near),t=await fetch(x,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:V}}=await t.json(),{execution:b,send_sir:j}=V.transaction_costs.action_receipt_creation_config,{execution:e,send_sir:_y}=V.transaction_costs.action_creation_config.transfer_cost,r=BigInt(_y)+BigInt(e),Ny=BigInt(j)+BigInt(b),xy=(r+Ny)*BigInt(S.toString());return qC.from({chain:rf.Near,value:xy})}catch(x){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",x);let t=BigInt("115123062500"),V=BigInt("108059500000"),j=(t+V)*BigInt(S.toString());return qC.from({chain:rf.Near,value:j})}}let k=O?await T():void 0;return J(q,k)}async function D(){let q=await f();try{return await q.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function L(q,O,k){if(!await o())throw new Zy("toolbox_near_no_signer");let x=await T(),{formatNearAmount:t}=await import("@near-js/utils"),{PublicKey:V}=await import("@near-js/crypto"),b=t(k)||"0";return(await x.createAccount(q,V.fromString(O),BigInt(b))).transaction.hash}async function w(q){let O=await o();try{if(!O)throw new Zy("toolbox_near_no_signer");let{actionCreators:k}=await import("@near-js/transactions"),{contractId:S,methodName:x,args:t,deposit:V}=q,b=await T(),j=await J({args:t||{},contractId:S,methodName:x}),e=k.functionCall(x,t||{},j.getBaseValue("bigint"),BigInt(V||"1"));return(await b.signAndSendTransaction({actions:[e],receiverId:S})).transaction_outcome.id}catch(k){throw new Zy("toolbox_near_transfer_failed",{error:k})}}async function N(q){let O=await T();return AC({account:O,changeMethods:q.changeMethods,contractId:q.contractId,viewMethods:q.viewMethods})}async function z(q){if(!await o())throw new Zy("toolbox_near_no_signer");if(q.actions.length===0)throw new Zy("toolbox_near_empty_batch");return(await(await T()).signAndSendTransaction({actions:q.actions,receiverId:q.receiverId})).transaction.hash}async function J(q,O){let k=await F5(q).when(yC,()=>Hy.SIMPLE_TRANSFER).when(fC,(x)=>UC(x.methodName)).when(nC,(x)=>HC(x.actions)).when(TC,()=>Hy.ACCOUNT_CREATION).when(oC,()=>Hy.CONTRACT_DEPLOYMENT).when(CC,(x)=>{if(!O)throw new Zy("toolbox_near_no_account");return x.customEstimator(O)}).otherwise(()=>{throw new Zy("toolbox_near_invalid_gas_params")}),S=BigInt(k)*BigInt(1000000000000);return qC.from({chain:rf.Near,value:S})}function Y(q,O){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),J(q,O)}async function R(){let q=await f();try{return(await q.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function l(){let q=await o();return q?(await q.getPublicKey()).toString():""}return{broadcastTransaction:X,callFunction:w,createAction:W,createContract:N,createContractFunctionCall:M,createSubAccount:L,createTransaction:A,estimateGas:Y,estimateGasLimit:J,estimateTransactionFee:B,executeBatchTransaction:z,getAddress:C,getBalance:Xy(rf.Near),getGasPrice:R,getNearProvider:f,getPublicKey:l,getSignerFromPhrase:dT,getSignerFromPrivateKey:so,serializeTransaction:Z,signAndBroadcastTransaction:Q,signTransaction:G,transfer:_,validateAddress:Pn}}var GC=I(()=>{Ey();eo();_C()});var I5=I(()=>{GC()});var XC={};yy(XC,{validateNearAddress:()=>Pn,tgasToGas:()=>bq,isSimpleTransfer:()=>yC,isCustomEstimator:()=>CC,isContractDeployment:()=>oC,isContractCall:()=>fC,isBatchTransaction:()=>nC,isAccountCreation:()=>TC,getNearToolbox:()=>jq,getNearSignerFromPrivateKey:()=>so,getNearSignerFromPhrase:()=>dT,getFullAccessPublicKey:()=>rT,getContractMethodGas:()=>UC,gasToTGas:()=>uq,estimateBatchGas:()=>HC,createNearContract:()=>AC,GAS_COSTS:()=>Hy});var WC=I(()=>{eo();_C();GC();I5()});var ZC={};yy(ZC,{validateRadixAddress:()=>t5,getRadixToolbox:()=>aq});import{GatewayApiClient as Kq}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as hq}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as P5,Chain as QC,SKConfig as mq,SwapKitError as cq}from"@swapkit/helpers";function t5(y){return y.startsWith("account_rdx1")&&y.length===66}function gq({networkApi:y}){return async function(o){let f=await iq({address:o,networkApi:y}),T=await dq({networkApi:y,resources:f});if(!T.some((H)=>H.isGasAsset))return[P5.from({chain:QC.Radix}),...T];return T}}async function iq({address:y,networkApi:n}){let o=!0,f,T=[],C=await rq(n);while(o){let H={address:y,at_ledger_state:{state_version:C},cursor:f,limit_per_page:100},U=await n.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:H});if(T=T.concat(U.items),U.next_cursor)f=U.next_cursor;else o=!1}return T}async function dq({resources:y,networkApi:n}){let o=[],f=50,T=[];for(let C=0;C<y.length;C+=50)T.push(y.slice(C,C+50));for(let C of T){let H=C.map((A)=>A.resource_address),U=await n.state.getEntityDetailsVaultAggregated(H),_=new Map;for(let A of U)if(A.details!==void 0){let Z=A.metadata?.items.find((W)=>W.key==="symbol"),M=Z?.value.typed.type==="String"?Z.value.typed.value:"?";if(A.details.type==="FungibleResource")_.set(A.address,{decimals:A.details.divisibility,symbol:M})}for(let A of C)if(A.aggregation_level==="Global"){let Z=_.get(A.resource_address)||{decimals:0,symbol:"?"},M=P5.from({asset:Z.symbol!==QC.Radix?`${QC.Radix}.${Z.symbol}-${A.resource_address}`:"XRD.XRD",value:A.amount});o.push(M)}}return o}async function rq(y){return(await y.status.getCurrent()).ledger_state.state_version}function aq({dappConfig:y}={}){let n=y||mq.get("integrations").radix,o=hq({...n,networkId:n.network?.networkId||1}),f=Kq.initialize(o.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:gq({networkApi:f}),networkApi:f,signAndBroadcast:()=>{throw new cq("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:t5}}var JC=()=>{};import{SwapKitError as sq}from"@swapkit/helpers";function aT(y){return/^[0-9A-Fa-f]{40}$/.test(y)}function tn(y){if(aT(y))return y.toUpperCase();if(y.length<=3){let o=Buffer.from(y.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${o}${"0".repeat(10)}`.toUpperCase()}let n=Buffer.from(y).toString("hex").toUpperCase();if(n.length>40)throw new sq({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return n.padEnd(40,"0")}function eq(y){if(!aT(y))return y;if(y.toUpperCase().startsWith("00")){let n=y.slice(24,30);try{let o=Buffer.from(n,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(o)&&o.length>0)return o}catch{}return y.toUpperCase()}try{let n=y.replace(/0+$/,""),o=n.length%2===0?n:`${n}0`,f=Buffer.from(o,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function af(y){if(aT(y))return y.toUpperCase();if(y.length<=3)return y;return tn(y)}var sT=()=>{};import{RequestClient as yG,warnOnce as fG}from"@swapkit/helpers";async function nG(y,n){let o=af(y),f=eT.find((T)=>af(T.currency)===o&&T.issuer===n);if(f)return f;try{let T=await yG.get(`https://api.xrplmeta.org/token/${y}:${n}`);if(T)return{currency:y,decimals:15,description:T.desc,domain:T.domain,icon:T.icon,issuer:n,name:T.name,verified:T.self_assessment?.is_regulated||T.self_assessment?.is_licensed}}catch(T){fG({condition:!0,id:`xrpl_token_lookup_${y}_${n}`,warning:`Failed to fetch XRPL token info for ${y}:${n}: ${T}`})}return{currency:y,decimals:15,issuer:n,verified:!1}}function TG(y){return eT.filter((n)=>n.issuer===y)}function oG(y,n){let o=af(y);return eT.some((f)=>af(f.currency)===o&&f.issuer===n)}var eT;var p5=I(()=>{sT();eT=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var MC={};yy(MC,{validateRippleAddress:()=>n0,parseXrplTokenIdentifier:()=>K5,normalizeCurrency:()=>af,isKnownToken:()=>oG,isHexCurrency:()=>aT,hexToCurrency:()=>eq,hashes:()=>GG,getXrplTokenInfo:()=>nG,getRippleToolbox:()=>qG,getKnownTokensByIssuer:()=>TG,formatXrplTokenIdentifier:()=>h5,currencyToHex:()=>tn,XRPL_TOKEN_ERROR_CODES:()=>f0,XRPL_KNOWN_TOKENS:()=>eT});import{AssetValue as y0,Chain as ly,getChainConfig as E5,getRPCUrl as CG,SwapKitError as qy}from"@swapkit/helpers";import{match as V5,P as b5}from"ts-pattern";import{Client as HG,isValidAddress as j5,Wallet as UG,xrpToDrops as _G}from"xrpl";import{hashes as GG}from"xrpl";function K5(y){let n=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!n?.[1]||!n?.[2])return null;if(!j5(n[2]))return null;return{currency:n[1],issuer:n[2]}}function h5(y,n){return`${ly.Ripple}.${y}-${n}`}function AG(y){if(y.isGasAsset)return _G(y.getValue("string"));let n=K5(y.toString());if(!n)throw new qy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:n.currency,issuer:n.issuer,value:y.getValue("string")}}function v5(y){let n=UG.fromMnemonic(y);return{getAddress:()=>Promise.resolve(n.address),signTransaction:(o)=>Promise.resolve(n.sign(o))}}function n0(y){return j5(y)}function qG(y={}){let n=V5(y).with({phrase:b5.string},({phrase:L})=>v5(L)).with({signer:b5.any},({signer:L})=>L).otherwise(()=>{return}),o;async function f(){let L=await CG(ly.Ripple);if(!L)throw new qy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:ly.Ripple}});let w=new HG(L);return await w.connect(),w}async function T(){if(o){let L=await o.catch(()=>null);if(L?.isConnected())return L}return o=f(),o}let C=()=>{if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});return n.getAddress()},H=async(L)=>{let w=L||await C(),{baseDecimal:N}=E5(ly.Ripple),z=await T();try{let[J,Y]=await Promise.all([z.request({account:w,command:"account_info"}),z.request({account:w,command:"account_lines"})]),R=J.result.account_data.Balance,l=[y0.from({chain:ly.Ripple,fromBaseDecimal:N,value:R})];for(let q of Y.result.lines){let O=h5(q.currency,q.account);if(Number.parseFloat(q.balance)!==0)l.push(y0.from({asset:O,asyncTokenLookup:!1,value:q.balance}))}return l}catch(J){if(J.data?.error_code===u5.ACCOUNT_NOT_FOUND)return[y0.from({chain:ly.Ripple,value:0})];throw new qy({errorKey:"toolbox_ripple_get_balance_error",info:{address:w,error:J}})}},U=async()=>{let{baseDecimal:L}=E5(ly.Ripple),z=(await(await T()).request({command:"fee"})).result.drops.open_ledger_fee;return y0.from({chain:ly.Ripple,fromBaseDecimal:L,value:z})};async function _(L){let w=L||await C(),N=await T();try{return(await N.request({account:w,command:"account_lines"})).result.lines.map((J)=>({account:J.account,authorized:J.authorized??!1,balance:J.balance,currency:J.currency,freeze:J.freeze??!1,freezePeer:J.freeze_peer??!1,limit:J.limit,limitPeer:J.limit_peer,noRipple:J.no_ripple??!1,noRipplePeer:J.no_ripple_peer??!1,peerAuthorized:J.peer_authorized??!1,qualityIn:J.quality_in??0,qualityOut:J.quality_out??0}))}catch(z){if(z.data?.error_code===u5.ACCOUNT_NOT_FOUND)return[];throw new qy({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:w,error:z}})}}async function A({address:L,currency:w,issuer:N}){let z=await _(L),J=tn(w);return z.some((Y)=>{return tn(Y.currency)===J&&Y.account===N})}async function Z({currency:L,issuer:w,limit:N,sender:z}){let J=z||await C();if(!n0(w))throw new qy({errorKey:"core_transaction_invalid_recipient_address",info:{address:w}});let Y=Number.parseFloat(N);if(Number.isNaN(Y)||Y<0)throw new qy({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:N}});let R=await T(),l={Account:J,LimitAmount:{currency:L,issuer:w,value:N},TransactionType:"TrustSet"};return R.autofill(l)}async function M({assetValue:L,recipient:w,memo:N,sender:z,destinationTag:J,extendBySeconds:Y=150}){if(!n0(w))throw new qy({errorKey:"core_transaction_invalid_recipient_address"});let R=z||await C();if(L.chain!==ly.Ripple)throw new qy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:L.toString()}});let l=AG(L),q={Account:R,Amount:l,Destination:w,TransactionType:"Payment",...J!==void 0&&{DestinationTag:J}};if(N)q.Memos=[{Memo:{MemoData:Buffer.from(N).toString("hex")}}];let k=await(await T()).autofill(q);if(k.LastLedgerSequence&&Y>0)k.LastLedgerSequence+=Math.ceil(Y/4);return k}function W(L){if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});return n.signTransaction(L)}async function G(L){let N=await(await T()).submitAndWait(L),{result:z}=N;if(z.validated)return z.hash;let J=z.meta?.TransactionResult,Y=V5(J).with(f0.tecNO_LINE,()=>"No trust line exists for this token").with(f0.tecPATH_DRY,()=>"Payment path could not deliver funds").with(f0.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new qy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:ly.Ripple,...Y?{reason:Y}:{txResult:J}}})}let X=async(L)=>{try{let w=await W(L);return G(w.tx_blob)}catch(w){if(w instanceof qy)throw w;throw new qy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:ly.Ripple,error:w}})}};async function Q(L){if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});let w=await n.getAddress(),N=await M({...L,sender:w}),z=await W(N);return G(z.tx_blob)}async function B(L){if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});let w=await n.getAddress(),N=await Z({...L,sender:w}),z=await W(N);return G(z.tx_blob)}function D(){let L=o;if(o=null,L)L.then((w)=>{if(w?.isConnected())return w.disconnect();return}).catch((w)=>{console.warn("XRPL Cleanup failed silently:",w)})}return{broadcastTransaction:G,createSigner:v5,createTransaction:M,disconnect:D,estimateTransactionFee:U,getAddress:C,getBalance:H,getTrustLines:_,hasTrustLine:A,setTrustLine:Z,setTrustLineAndBroadcast:B,signAndBroadcastTransaction:X,signTransaction:W,transfer:Q,validateAddress:n0}}var u5,f0;var LC=I(()=>{sT();sT();p5();u5={ACCOUNT_NOT_FOUND:19},f0={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});import{sha256 as XG}from"@noble/hashes/sha2.js";import{bytesToHex as m5,hexToBytes as c5}from"@noble/hashes/utils.js";import{SwapKitError as sf}from"@swapkit/helpers";function YC(y,n){let o=0n,f=0n,T=n;while(T<y.length&&T-n<10){let C=y[T++];if(C===void 0)break;if(o|=BigInt(C&127)<<f,f+=7n,(C&128)===0)return[o,T]}throw new sf("toolbox_tron_transaction_creation_failed")}function pn(y){let n=[],o=y<0n?y+2n**64n:y;while(o>=128n)n.push(Number(o&0x7fn)|128),o>>=7n;return n.push(Number(o)),n}function T0(y,n,o){let f=y.get(n);if(f)f.push(o);else y.set(n,[o])}function JG(y){let n=new Map,o=0;while(o<y.length){let[f,T]=YC(y,o);o=T;let C=Number(f>>3n),H=Number(f&7n);if(H===o0){let[U,_]=YC(y,o);o=_,T0(n,C,{data:new Uint8Array(pn(U)),wireType:o0})}else if(H===C0){let[U,_]=YC(y,o);o=_;let A=Number(U);if(A<0||o+A>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let Z=y.slice(o,o+A);o+=A,T0(n,C,{data:Z,wireType:C0})}else if(H===g5){if(o+8>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+8);o+=8,T0(n,C,{data:U,wireType:g5})}else if(H===i5){if(o+4>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+4);o+=4,T0(n,C,{data:U,wireType:i5})}else throw new sf("toolbox_tron_transaction_creation_failed")}return n}function MG(y){let n=[];for(let[C,H]of[...y.entries()].sort(([U],[_])=>U-_))for(let{wireType:U,data:_}of H){let A=BigInt(C<<3|U);if(n.push(new Uint8Array(pn(A))),U===C0)n.push(new Uint8Array(pn(BigInt(_.length))));n.push(_)}let o=n.reduce((C,H)=>C+H.length,0),f=new Uint8Array(o),T=0;for(let C of n)f.set(C,T),T+=C.length;return f}function d5(y,n){if(!y||y.length%2!==0)throw new sf("toolbox_tron_transaction_creation_failed");let o=c5(y),f=JG(o);if(n.expiration!==void 0)f.set(WG,[{data:new Uint8Array(pn(BigInt(n.expiration))),wireType:o0}]);if(n.data!==void 0)f.set(QG,[{data:c5(n.data),wireType:C0}]);if(n.fee_limit!==void 0)f.set(ZG,[{data:new Uint8Array(pn(BigInt(n.fee_limit))),wireType:o0}]);let T=MG(f),C=m5(T),H=m5(XG(T));return{raw_data_hex:C,txID:H}}var o0=0,g5=1,C0=2,i5=5,WG=8,QG=10,ZG=18;var r5=()=>{};import{secp256k1 as a5}from"@noble/curves/secp256k1.js";import{sha256 as s5}from"@noble/hashes/sha2.js";import{keccak_256 as LG}from"@noble/hashes/sha3.js";import{bytesToHex as ef,hexToBytes as H0}from"@noble/hashes/utils.js";import{createBase58check as YG}from"@scure/base";import{SwapKitError as e5}from"@swapkit/helpers";function Sy(y){if(typeof y!=="string")return!1;try{let n=U0.decode(y);return n.length===21&&n[0]===yU}catch{return!1}}function fU(y){return ef(U0.decode(y))}function zG(y){return U0.decode(y).slice(1)}function nU(y){let n=a5.getPublicKey(H0(y),!1),o=LG(n.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=yU,f.set(o,1),U0.encode(f)}function TU({txID:y,privateKey:n}){let o=a5.sign(H0(y),H0(n),{format:"recovered",prehash:!1}),f=o[0]??0,T=ef(o.slice(1,33)),C=ef(o.slice(33,65)),H=(f+27).toString(16).padStart(2,"0");return T+C+H}function yn({txID:y,raw_data_hex:n}){let o=ef(s5(H0(n)));if(y!==o)throw new e5("toolbox_tron_invalid_transaction_integrity",{expected:o,txID:y})}function NG(y){return`000000000000000000000000${ef(zG(y))}`}function OG(y){let n=typeof y==="bigint"?y:BigInt(y);if(n<0n||n>=BG)throw new e5("toolbox_tron_invalid_token_identifier",{identifier:n.toString()});return n.toString(16).padStart(64,"0")}function fn(y){return y.map(({type:n,value:o})=>n==="address"?NG(o):OG(BigInt(o))).join("")}function oU(y){return ef(new TextEncoder().encode(y))}var U0,yU=65,BG;var BC=I(()=>{U0=YG(s5),BG=2n**256n});import{Chain as wG,getRPCUrlSync as DG,SwapKitError as Ly,warnOnce as _0}from"@swapkit/helpers";function HU(){try{return DG(wG.Tron)}catch{return CU}}function UU(){let y=new AbortController,n=setTimeout(()=>y.abort(),xG);return{cleanup:()=>clearTimeout(n),signal:y.signal}}async function wf(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${HU()}${y}`,{body:JSON.stringify(n),headers:{"Content-Type":"application/json"},method:"POST",signal:o});if(!T.ok)throw new Ly("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function _U(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${n??HU()}${y}`,{headers:{"Content-Type":"application/json"},signal:o});if(!T.ok)throw new Ly("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function AU(y){if(!Sy(y))throw new Ly("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let n=await _U(`/v1/accounts/${y}`,CU);if(!(n.success&&n.data)||n.data.length===0)return;let o;try{o=fU(y).toLowerCase()}catch{o=y.toLowerCase()}let f=n.data.find((T)=>T.address.toLowerCase()===o);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(n){if(n instanceof Ly)throw n;throw new Ly("toolbox_tron_trongrid_api_error",{address:y,message:n instanceof Error?n.message:"Unknown error"})}}async function qU({from:y,to:n,amount:o}){let T=await wf("/wallet/createtransaction",{amount:o,owner_address:y,to_address:n,visible:!0});if(!T.txID||!T.raw_data_hex||!T.raw_data)throw new Ly("toolbox_tron_transaction_creation_failed");let H=T.raw_data?.contract?.[0]?.parameter?.value;if(H?.to_address!==n||H?.owner_address!==y||H?.amount!==o)throw new Ly("toolbox_tron_transaction_creation_failed");return yn(T),T}async function GU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f,feeLimit:T,callValue:C=0}){let H=await wf("/wallet/triggersmartcontract",{call_value:C,contract_address:n,fee_limit:T,function_selector:o,owner_address:y,parameter:f,visible:!0});if(!H.result.result||!H.transaction?.txID||!H.transaction?.raw_data_hex)throw new Ly("toolbox_tron_transaction_creation_failed");let _=H.transaction.raw_data?.contract?.[0]?.parameter?.value;if(_?.contract_address!==n||_?.owner_address!==y)throw new Ly("toolbox_tron_transaction_creation_failed");return yn(H.transaction),H.transaction}function XU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return wf("/wallet/triggerconstantcontract",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}function FG({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return wf("/wallet/estimateenergy",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}async function En(y){try{let{result:n,txid:o}=await wf("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!n||!o)throw new Ly("toolbox_tron_token_transfer_failed");return o}catch(n){throw new Ly("toolbox_tron_broadcast_failed",{error:n})}}async function Vn(){let y={};try{let{chainParameter:n}=await _U("/wallet/getchainparameters");for(let o of n)y[o.key]=o.value}catch(n){_0({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${n instanceof Error?n.message:n}`})}return{bandwidthFee:y.getTransactionFee??RG,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??kG,energyFee:y.getEnergyFee??lG,memoFee:y.getMemoFee??SG}}async function zC(y){try{let n=await wf("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(n.freeNetLimit??600)-(n.freeNetUsed??0),total:n.NetLimit??0,used:n.NetUsed??0},energy:{total:n.EnergyLimit??0,used:n.EnergyUsed??0}}}catch(n){return _0({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${n instanceof Error?n.message:n}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function bn(y){try{let n=await wf("/wallet/getaccount",{address:y,visible:!0});return n&&Object.keys(n).length>0}catch{return!1}}async function NC(y){try{let n=await FG({...y,ownerAddress:y.sender}),o=n.energy_required??n.energyRequired;if(n.result&&!n.result.result)throw new Ly("toolbox_tron_trongrid_api_error",{message:n.result.message||"estimateenergy failed"});if(o!==void 0){if(Number.isFinite(o)&&o>0)return o;throw new Ly("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(n){_0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${n instanceof Error?n.message:n}`})}try{let{energy_used:n}=await XU({...y,ownerAddress:y.sender});return n}catch(n){return _0({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy, using default: ${n instanceof Error?n.message:n}`}),65000}}async function WU({assetAddress:y,owner:n,spender:o}){let f=fn([{type:"address",value:n},{type:"address",value:o}]),C=(await XU({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:o,parameter:f})).constant_result?.[0];if(!C)return 0n;try{return BigInt(`0x${C}`)}catch{return 0n}}var CU="https://api.trongrid.io",RG=1000,kG=1e6,lG=420,SG=1e6,xG=30000;var QU=I(()=>{BC()});import{bytesToHex as $G}from"@noble/hashes/utils.js";import{HDKey as IG}from"@scure/bip32";import{mnemonicToSeedSync as PG}from"@scure/bip39";import{AssetValue as cy,BaseDecimal as A0,Chain as zy,derivationPathToString as BU,getRPCUrl as tG,NetworkDerivationPath as zU,SwapKitError as Uy,updateDerivationPath as NU,warnOnce as ZU}from"@swapkit/helpers";import{match as pG,P as OC}from"ts-pattern";function wU({phrase:y,derivationPath:n}){let o=IG.fromMasterSeed(PG(y)).derive(n);if(!o.privateKey)throw new Uy("toolbox_tron_no_signer");return $G(o.privateKey)}function DU({phrase:y,derivationPath:n,index:o}){let f=n||BU(NU(zU[zy.Tron],{index:o||0}));return wU({derivationPath:f,phrase:y})}function VG({phrase:y,derivationPath:n}){let o=wU({derivationPath:n,phrase:y}),f=nU(o);return{getAddress:()=>Promise.resolve(f),signTransaction:(T)=>{yn(T);let C=TU({privateKey:o,txID:T.txID});return Promise.resolve({...T,signature:[C]})}}}function YU({transaction:y,memo:n,expiration:o,feeLimit:f}){let T={},C={};if(f!==void 0&&y.raw_data)T.fee_limit=f,C.fee_limit=f;if(n){let _=oU(n);T.data=_,C.data=_}if(o){let _=y.raw_data.expiration+o*1000;T.expiration=_,C.expiration=_}if(Object.keys(T).length===0)return y;let{raw_data_hex:H,txID:U}=d5(y.raw_data_hex,T);return{...y,raw_data:{...y.raw_data,...C},raw_data_hex:H,txID:U}}function RU(y={}){let n="index"in y?y.index||0:0,o=BU("derivationPath"in y&&y.derivationPath?y.derivationPath:NU(zU[zy.Tron],{index:n})),f,T=!1;function C(){if(T)return Promise.resolve(f);return f=pG(y).with({phrase:OC.string},({phrase:J})=>VG({derivationPath:o,phrase:J})).with({signer:OC.not(OC.nullish)},({signer:J})=>J).otherwise(()=>{return}),T=!0,Promise.resolve(f)}async function H(){let J=await C();if(!J)throw new Uy("toolbox_tron_no_signer");return J.getAddress()}async function U(J,Y){let R=J||MU,l=Y??(await Vn()).energyFee,q=R*l,O=Math.ceil(q*1.5);return Math.min(Math.max(O,1e7),150000000)}async function _({contractAddress:J,functionSelector:Y,parameter:R,sender:l,memo:q,expiration:O,extraEnergy:k=0}){let S=await NC({contractAddress:J,functionSelector:Y,parameter:R,sender:l}),x=await U(S+k),t=await GU({contractAddress:J,feeLimit:x,functionSelector:Y,ownerAddress:l,parameter:R});return YU({expiration:O,feeLimit:x,memo:q,transaction:t})}async function A(J){if(!Sy(J))return[cy.from({chain:zy.Tron})];try{let Y=await AU(J);if(!Y)return[cy.from({chain:zy.Tron})];let R=[cy.from({chain:zy.Tron,fromBaseDecimal:6,value:String(Y.balance)})],l=Y.trc20?.find((q)=>(DC in q));if(l){let q=l[DC];R.push(cy.from({asset:`TRON.USDT-${DC}`,fromBaseDecimal:6,value:q}))}return R}catch(Y){return ZU({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${Y instanceof Error?Y.message:Y}`}),[cy.from({chain:zy.Tron})]}}async function Z({recipient:J,assetValue:Y,memo:R,expiration:l}){if(!Sy(J))throw new Uy("toolbox_tron_token_transfer_failed",{message:"invalid address"});let q=await C();if(!q)throw new Uy("toolbox_tron_no_signer");try{let O=await H(),k=await B({assetValue:Y,expiration:l,memo:R,recipient:J,sender:O}),S=await q.signTransaction(k),x=await En(S);if(!x)throw new Uy("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return x}catch(O){throw new Uy("toolbox_tron_token_transfer_failed",{message:O instanceof Error?O.message:String(O)})}}function M({requiredBandwidth:J,resources:Y,feePerUnit:R}){let l=Math.max(0,Y.free+Y.total-Y.used);return J>l?(J-l)*R:0}async function W({memo:J,recipient:Y,senderAddress:R}){let[l,q,O]=await Promise.all([Vn(),bn(Y),zC(R)]),k=q?0:l.createAccountFee,S=M({feePerUnit:l.bandwidthFee,requiredBandwidth:JU,resources:O.bandwidth}),x=J?l.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:k+S+x})}async function G({assetValue:J,memo:Y,recipient:R,senderAddress:l}){let q=J.address;if(!q)throw new Uy("toolbox_tron_invalid_token_identifier",{identifier:J.toString()});let[O,k,S,x]=await Promise.all([Vn(),bn(R),zC(l),NC({contractAddress:q,functionSelector:"transfer(address,uint256)",parameter:fn([{type:"address",value:R},{type:"uint256",value:J.getBaseValue("string")}]),sender:l})]),V=x+(k?0:wC),b=M({feePerUnit:O.bandwidthFee,requiredBandwidth:LU,resources:S.bandwidth}),j=Math.max(0,S.energy.total-S.energy.used),e=V>j?(V-j)*O.energyFee:0,_y=Y?O.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:b+e+_y})}async function X({assetValue:J,memo:Y,recipient:R}){let[l,q]=await Promise.all([Vn(),bn(R)]);if(J.isGasAsset){let x=q?0:l.createAccountFee,t=Y?l.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:x+JU*l.bandwidthFee+t})}let k=await U(MU+(q?0:wC),l.energyFee),S=Y?l.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:k+LU*l.bandwidthFee+S})}async function Q({assetValue:J,memo:Y,recipient:R,sender:l}){let q=await C();try{let O=l?l:q?await H():void 0;if(!O)return X({assetValue:J,memo:Y,recipient:R});return J.isGasAsset?W({memo:Y,recipient:R,senderAddress:O}):G({assetValue:J,memo:Y,recipient:R,senderAddress:O})}catch(O){throw ZU({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${O instanceof Error?O.message:O}`}),new Uy("toolbox_fee_estimation_failed",{chain:zy.Tron,error:O})}}async function B({recipient:J,assetValue:Y,memo:R,sender:l,expiration:q}){if(!Sy(J)||!Sy(l))throw new Uy("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(Y.isGasAsset){let S=await qU({amount:Y.getBaseValue("number"),from:l,to:J});return YU({expiration:q,memo:R,transaction:S})}let O=Y.address;if(!O)throw new Uy("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let k=await bn(J);return _({contractAddress:O,expiration:q,extraEnergy:k?0:wC,functionSelector:"transfer(address,uint256)",memo:R,parameter:fn([{type:"address",value:J},{type:"uint256",value:Y.getBaseValue("string")}]),sender:l})}async function D(J){yn(J);let Y=await C();if(!Y)throw new Uy("toolbox_tron_no_signer");return Y.signTransaction(J)}async function L(J){let Y=await D(J);return En(Y)}function w({assetAddress:J,spenderAddress:Y,from:R}){return WU({assetAddress:J,owner:R,spender:Y})}async function N({assetAddress:J,spenderAddress:Y,from:R,amount:l}){let q=await w({assetAddress:J,from:R,spenderAddress:Y});if(!l)return q>0n;return q>=BigInt(l)}async function z({assetAddress:J,spenderAddress:Y,amount:R,from:l}){if(!Sy(J)||!Sy(Y))throw new Uy("toolbox_tron_approve_failed");let q=await C();if(!q)throw new Uy("toolbox_tron_no_signer");let O=l||await H(),k=R!==void 0?BigInt(R).toString():EG;try{let S=await _({contractAddress:J,functionSelector:"approve(address,uint256)",parameter:fn([{type:"address",value:Y},{type:"uint256",value:k}]),sender:O}),x=await q.signTransaction(S),t=await En(x);if(!t)throw new Uy("toolbox_tron_approve_failed");return t}catch(S){if(S instanceof Uy)throw S;throw new Uy("toolbox_tron_approve_failed",{error:S})}}return{approve:z,broadcastTransaction:En,createTransaction:B,estimateTransactionFee:Q,getAddress:H,getApprovedAmount:w,getBalance:A,getRpcUrl:()=>tG(zy.Tron),isApproved:N,signAndBroadcastTransaction:L,signTransaction:D,transfer:Z,validateAddress:Sy}}var OU,JU=268,MU=65000,wC=25000,LU=345,DC="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",EG="115792089237316195423570985008687907853269984665640564039457584007913129639935";var kU=I(()=>{r5();QU();BC();OU=Sy});var RC={};yy(RC,{validateTronAddress:()=>OU,getTronToolbox:()=>RU,getTronPrivateKeyFromMnemonic:()=>DU});var kC=I(()=>{kU()});import{AssetValue as un,Chain as Hf,derivationPathToString as bG,getChainConfig as uG,getRPCUrl as vG,NetworkDerivationPath as jG,SwapKitError as Uf}from"@swapkit/helpers";import{match as KG,P as hG}from"ts-pattern";function q0(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return mG.test(y)}async function cG(y){if(!q0(y))return!1;try{let{StrKey:n}=await import("@stellar/stellar-sdk");return n.isValidEd25519PublicKey(y)}catch{return!1}}function lU(y={}){let n,o=y.derivationPath||jG[Hf.Stellar],f=bG(o.slice(0,3));async function T({phrase:Q,path:B}){let{HDKey:D}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),{Keypair:w}=await import("@stellar/stellar-sdk"),N=L(Q),J=D.fromMasterSeed(N).derive(B,!0);return w.fromRawEd25519Seed(Buffer.from(J.privateKey))}async function C(){if(n)return n;let Q=KG(y).with({phrase:hG.string},({phrase:B})=>B).otherwise(()=>{return});if(!Q)throw new Uf("toolbox_stellar_no_signer");return n=await T({path:f,phrase:Q}),n}async function H(){let{Horizon:Q}=await import("@stellar/stellar-sdk"),B=await vG(Hf.Stellar);return new Q.Server(B)}async function U(){try{return(await C()).publicKey()}catch{return""}}async function _(Q){let B=Q||await U();if(!B)throw new Uf("toolbox_stellar_account_not_found");try{return(await(await H()).loadAccount(B)).balances.map((w)=>{if(w.asset_type==="native")return un.from({chain:Hf.Stellar,value:w.balance});let N="asset_code"in w?w.asset_code:"",z="asset_issuer"in w?w.asset_issuer:"";return un.from({asset:`${Hf.Stellar}.${N}-${z}`,asyncTokenLookup:!1,value:w.balance})})}catch{return[un.from({chain:Hf.Stellar,value:0})]}}async function A({recipient:Q,assetValue:B,memo:D,sender:L}){if(D){if(new TextEncoder().encode(D).length>28)throw new Uf("helpers_invalid_memo_type")}if(!await cG(Q))throw new Uf("core_transaction_invalid_recipient_address");let N=L||await U();if(!N)throw new Uf("toolbox_stellar_no_signer");let{Asset:z,Memo:J,Networks:Y,Operation:R,TransactionBuilder:l}=await import("@stellar/stellar-sdk"),q=await H(),O=await q.fetchBaseFee(),k=await q.loadAccount(N),S=new l(k,{fee:String(O),networkPassphrase:Y.PUBLIC});if(B.isGasAsset)try{await q.loadAccount(Q),S.addOperation(R.payment({amount:B.getValue("string"),asset:z.native(),destination:Q}))}catch{S.addOperation(R.createAccount({destination:Q,startingBalance:B.getValue("string")}))}else S.addOperation(R.payment({amount:B.getValue("string"),asset:new z(B.symbol,B.address),destination:Q}));if(D)S.addMemo(J.text(D));return S.setTimeout(30).build()}async function Z(Q){let{TransactionBuilder:B,Networks:D}=await import("@stellar/stellar-sdk"),L=await C(),w=B.fromXDR(Q.toXDR(),D.PUBLIC);return w.sign(L),w}async function M(Q){try{let B=await H(),{hash:D}=await B.submitTransaction(Q);return D}catch(B){throw new Uf("toolbox_stellar_broadcast_error",B)}}async function W({recipient:Q,assetValue:B,memo:D}){let L=await C(),w=L.publicKey(),N=await A({assetValue:B,memo:D,recipient:Q,sender:w});N.sign(L);try{return(await(await H()).submitTransaction(N)).hash}catch(z){if(z instanceof Uf)throw z;throw new Uf("toolbox_stellar_transaction_failed",z)}}async function G(Q){let B=await Z(Q);return M(B)}async function X(){let{baseDecimal:Q}=uG(Hf.Stellar);try{let L=(await(await H()).feeStats()).fee_charged.p50;return un.from({chain:Hf.Stellar,fromBaseDecimal:Q,value:L})}catch{return un.from({chain:Hf.Stellar,fromBaseDecimal:Q,value:"100"})}}return{broadcastTransaction:M,createTransaction:A,estimateTransactionFee:X,getAddress:U,getBalance:_,signAndBroadcastTransaction:G,signTransaction:Z,transfer:W,validateAddress:q0}}var mG;var SU=I(()=>{mG=/^G[A-Z2-7]{55}$/});var G0={};yy(G0,{validateStellarAddress:()=>q0,getStellarToolbox:()=>lU});var X0=I(()=>{SU()});import{AssetValue as gG,Chain as E,CosmosChains as lC,EVMChains as SC,FeeOption as iG,SwapKitError as dG,UTXOChains as FU}from"@swapkit/helpers";async function QQ(){let{match:y}=await import("ts-pattern"),{validateAptosAddress:n}=await Promise.resolve().then(() => (jn(),vn)),{validateEVMAddress:o}=await Promise.resolve().then(() => (b0(),X1)),{validateCardanoAddress:f}=await Promise.resolve().then(() => (m0(),h0)),{getCosmosAddressValidator:T}=await Promise.resolve().then(() => (zT(),BT)),{validateHyperCoreAddress:C}=await Promise.resolve().then(() => (zo(),Bo)),{validateSolanaAddress:H}=await Promise.resolve().then(() => (Ro(),Do)),{validateStarknetAddress:U}=await Promise.resolve().then(() => (xT(),ST)),{validateSuiAddress:_}=await Promise.resolve().then(() => (IT(),$T)),{validateTonAddress:A}=await Promise.resolve().then(() => (pT(),tT)),{getUTXOAddressValidator:Z}=await Promise.resolve().then(() => (ao(),ro)),{validateNearAddress:M}=await Promise.resolve().then(() => (WC(),XC)),{validateRadixAddress:W}=await Promise.resolve().then(() => (JC(),ZC)),{validateRippleAddress:G}=await Promise.resolve().then(() => (LC(),MC)),{validateTronAddress:X}=await Promise.resolve().then(() => (kC(),RC)),{validateStellarAddress:Q}=await Promise.resolve().then(() => (X0(),G0));return function({address:D,chain:L}){return y(L).with(...SC,()=>o(D)).with(...FU,(N)=>{return Z(N)(D)}).with(...lC,(N)=>{return T(N)(D)}).with(E.Aptos,()=>n(D)).with(E.Radix,()=>W(D)).with(E.HyperCore,()=>C(D)).with(E.Near,()=>M(D)).with(E.Ripple,()=>G(D)).with(E.Solana,()=>H(D)).with(E.Stellar,()=>Q(D)).with(E.Starknet,()=>U(D)).with(E.Sui,()=>_(D)).with(E.Ton,()=>A(D)).with(E.Tron,()=>X(D)).with(E.Cardano,()=>f(D)).otherwise(()=>!1)}}function ZQ(y){return async function(o){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...SC,async(T)=>{let C=await xU(T),H=await C.createTransaction(o),U="feeOptionKey"in o?o.feeOptionKey:iG.Fast;return C.estimateTransactionFee({...H,feeOption:U})}).with(E.Bitcoin,E.BitcoinCash,E.Dogecoin,E.Dash,E.Litecoin,E.Solana,E.Ripple,E.Tron,E.Near,E.Cardano,E.HyperCore,async(T)=>{return(await xU(T)).estimateTransactionFee(o)}).with(E.Aptos,async()=>{let{getAptosToolbox:T}=await Promise.resolve().then(() => (jn(),vn));return T().estimateTransactionFee(o)}).with(E.Starknet,async()=>{let{getStarknetToolbox:T}=await Promise.resolve().then(() => (xT(),ST));return(await T()).estimateTransactionFee(o)}).with(E.Stellar,async()=>{let{getStellarToolbox:T}=await Promise.resolve().then(() => (X0(),G0));return T().estimateTransactionFee()}).with(E.Sui,async()=>{let{getSuiToolbox:T}=await Promise.resolve().then(() => (IT(),$T));return T().estimateTransactionFee(o)}).with(E.Ton,async()=>{let{getTONToolbox:T}=await Promise.resolve().then(() => (pT(),tT));return T().estimateTransactionFee(o)}).with(...lC,async()=>{let{estimateTransactionFee:T}=await Promise.resolve().then(() => (zT(),BT));return T(o)}).otherwise(async()=>gG.from({chain:y}))}}async function xU(y,n){let{match:o}=await import("ts-pattern");return o(y).returnType().with(...SC,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (V0(),A1));return await f(y,n)}).with(...FU,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (ao(),ro));return f(y,n)}).with(...lC,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (zT(),BT));return f(y,n)}).with(E.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (jn(),vn));return f(n)}).with(E.HyperCore,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (zo(),Bo));return f(n)}).with(E.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (JC(),ZC));return f(n)}).with(E.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (LC(),MC));return f(n)}).with(E.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => (Ro(),Do));return f(n)}).with(E.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (X0(),G0));return f(n)}).with(E.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (xT(),ST));return f(n)}).with(E.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (IT(),$T));return f(n)}).with(E.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (kC(),RC));return f(n)}).with(E.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (WC(),XC));return f(n)}).with(E.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (m0(),h0));return f(n)}).with(E.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (pT(),tT));return f(n)}).otherwise(()=>{throw new dG("toolbox_not_supported",{chain:y})})}export{xU as getToolbox,ZQ as getFeeEstimator,QQ as getAddressValidator};