@swapkit/toolboxes 4.3.9 → 4.13.1

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 (266) hide show
  1. package/dist/LICENSE +246 -0
  2. package/dist/src/aptos/index.cjs +1 -0
  3. package/dist/src/aptos/index.js +1 -0
  4. package/dist/src/cardano/index.cjs +1 -4
  5. package/dist/src/cardano/index.js +1 -4
  6. package/dist/src/cosmos/index.cjs +1 -4
  7. package/dist/src/cosmos/index.js +1 -4
  8. package/dist/src/evm/index.cjs +1 -4
  9. package/dist/src/evm/index.js +1 -4
  10. package/dist/src/index.cjs +1 -5
  11. package/dist/src/index.js +1 -5
  12. package/dist/src/near/index.cjs +1 -4
  13. package/dist/src/near/index.js +1 -4
  14. package/dist/src/radix/index.cjs +1 -4
  15. package/dist/src/radix/index.js +1 -4
  16. package/dist/src/ripple/index.cjs +1 -4
  17. package/dist/src/ripple/index.js +1 -4
  18. package/dist/src/solana/index.cjs +1 -4
  19. package/dist/src/solana/index.js +1 -4
  20. package/dist/src/starknet/index.cjs +1 -0
  21. package/dist/src/starknet/index.js +1 -0
  22. package/dist/src/stellar/index.cjs +1 -0
  23. package/dist/src/stellar/index.js +1 -0
  24. package/dist/src/substrate/index.cjs +1 -4
  25. package/dist/src/substrate/index.js +1 -4
  26. package/dist/src/sui/index.cjs +1 -4
  27. package/dist/src/sui/index.js +1 -4
  28. package/dist/src/ton/index.cjs +1 -4
  29. package/dist/src/ton/index.js +1 -4
  30. package/dist/src/tron/index.cjs +1 -4
  31. package/dist/src/tron/index.js +1 -4
  32. package/dist/src/utxo/index.cjs +1 -5
  33. package/dist/src/utxo/index.js +1 -5
  34. package/dist/types/aptos/index.d.ts +3 -0
  35. package/dist/types/aptos/index.d.ts.map +1 -0
  36. package/dist/types/aptos/toolbox.d.ts +21 -0
  37. package/dist/types/aptos/toolbox.d.ts.map +1 -0
  38. package/dist/types/aptos/types.d.ts +27 -0
  39. package/dist/types/aptos/types.d.ts.map +1 -0
  40. package/dist/types/cardano/toolbox.d.ts +19 -22
  41. package/dist/types/cardano/toolbox.d.ts.map +1 -1
  42. package/dist/types/cardano/types.d.ts +8 -3
  43. package/dist/types/cardano/types.d.ts.map +1 -1
  44. package/dist/types/cosmos/thorchainUtils/addressFormat.d.ts.map +1 -1
  45. package/dist/types/cosmos/thorchainUtils/messages.d.ts +3 -3
  46. package/dist/types/cosmos/thorchainUtils/messages.d.ts.map +1 -1
  47. package/dist/types/cosmos/toolbox/cosmos.d.ts +11 -9
  48. package/dist/types/cosmos/toolbox/cosmos.d.ts.map +1 -1
  49. package/dist/types/cosmos/toolbox/thorchain.d.ts +6 -51
  50. package/dist/types/cosmos/toolbox/thorchain.d.ts.map +1 -1
  51. package/dist/types/cosmos/types.d.ts +2 -2
  52. package/dist/types/cosmos/types.d.ts.map +1 -1
  53. package/dist/types/evm/helpers.d.ts +34 -1
  54. package/dist/types/evm/helpers.d.ts.map +1 -1
  55. package/dist/types/evm/toolbox/baseEVMToolbox.d.ts +14 -7
  56. package/dist/types/evm/toolbox/baseEVMToolbox.d.ts.map +1 -1
  57. package/dist/types/evm/toolbox/evm.d.ts +236 -96
  58. package/dist/types/evm/toolbox/evm.d.ts.map +1 -1
  59. package/dist/types/evm/toolbox/index.d.ts +3 -2
  60. package/dist/types/evm/toolbox/index.d.ts.map +1 -1
  61. package/dist/types/evm/toolbox/op.d.ts +13 -8
  62. package/dist/types/evm/toolbox/op.d.ts.map +1 -1
  63. package/dist/types/evm/types.d.ts +49 -27
  64. package/dist/types/evm/types.d.ts.map +1 -1
  65. package/dist/types/index.d.ts +31 -25
  66. package/dist/types/index.d.ts.map +1 -1
  67. package/dist/types/near/helpers/core.d.ts +1 -1
  68. package/dist/types/near/helpers/core.d.ts.map +1 -1
  69. package/dist/types/near/index.d.ts +1 -1
  70. package/dist/types/near/index.d.ts.map +1 -1
  71. package/dist/types/near/toolbox.d.ts +13 -10
  72. package/dist/types/near/toolbox.d.ts.map +1 -1
  73. package/dist/types/near/types/index.d.ts +4 -0
  74. package/dist/types/near/types/index.d.ts.map +1 -0
  75. package/dist/types/near/types/toolbox.d.ts +2 -0
  76. package/dist/types/near/types/toolbox.d.ts.map +1 -1
  77. package/dist/types/radix/index.d.ts +7 -7
  78. package/dist/types/radix/index.d.ts.map +1 -1
  79. package/dist/types/ripple/currency.d.ts +5 -0
  80. package/dist/types/ripple/currency.d.ts.map +1 -0
  81. package/dist/types/ripple/index.d.ts +60 -17
  82. package/dist/types/ripple/index.d.ts.map +1 -1
  83. package/dist/types/ripple/tokens.d.ts +15 -0
  84. package/dist/types/ripple/tokens.d.ts.map +1 -0
  85. package/dist/types/solana/index.d.ts +1 -1
  86. package/dist/types/solana/index.d.ts.map +1 -1
  87. package/dist/types/solana/toolbox.d.ts +12 -10
  88. package/dist/types/solana/toolbox.d.ts.map +1 -1
  89. package/dist/types/starknet/index.d.ts +5 -0
  90. package/dist/types/starknet/index.d.ts.map +1 -0
  91. package/dist/types/starknet/toolbox.d.ts +34 -0
  92. package/dist/types/starknet/toolbox.d.ts.map +1 -0
  93. package/dist/types/starknet/types.d.ts +26 -0
  94. package/dist/types/starknet/types.d.ts.map +1 -0
  95. package/dist/types/stellar/index.d.ts +3 -0
  96. package/dist/types/stellar/index.d.ts.map +1 -0
  97. package/dist/types/stellar/toolbox.d.ts +21 -0
  98. package/dist/types/stellar/toolbox.d.ts.map +1 -0
  99. package/dist/types/stellar/types.d.ts +10 -0
  100. package/dist/types/stellar/types.d.ts.map +1 -0
  101. package/dist/types/substrate/balance.d.ts +3 -3
  102. package/dist/types/substrate/balance.d.ts.map +1 -1
  103. package/dist/types/substrate/substrate.d.ts +22 -97
  104. package/dist/types/substrate/substrate.d.ts.map +1 -1
  105. package/dist/types/substrate/types.d.ts +2 -2
  106. package/dist/types/substrate/types.d.ts.map +1 -1
  107. package/dist/types/sui/toolbox.d.ts +17 -8
  108. package/dist/types/sui/toolbox.d.ts.map +1 -1
  109. package/dist/types/sui/types.d.ts +11 -3
  110. package/dist/types/sui/types.d.ts.map +1 -1
  111. package/dist/types/ton/toolbox.d.ts +23 -13
  112. package/dist/types/ton/toolbox.d.ts.map +1 -1
  113. package/dist/types/ton/types.d.ts +9 -8
  114. package/dist/types/ton/types.d.ts.map +1 -1
  115. package/dist/types/tron/helpers/proto.d.ts +9 -0
  116. package/dist/types/tron/helpers/proto.d.ts.map +1 -0
  117. package/dist/types/tron/helpers/trongrid.d.ts +43 -3
  118. package/dist/types/tron/helpers/trongrid.d.ts.map +1 -1
  119. package/dist/types/tron/helpers/utils.d.ts +17 -0
  120. package/dist/types/tron/helpers/utils.d.ts.map +1 -0
  121. package/dist/types/tron/index.d.ts +4 -5
  122. package/dist/types/tron/index.d.ts.map +1 -1
  123. package/dist/types/tron/toolbox.d.ts +20 -18
  124. package/dist/types/tron/toolbox.d.ts.map +1 -1
  125. package/dist/types/tron/types.d.ts +31 -57
  126. package/dist/types/tron/types.d.ts.map +1 -1
  127. package/dist/types/types.d.ts +6 -0
  128. package/dist/types/types.d.ts.map +1 -1
  129. package/dist/types/utxo/hdWallet.d.ts +33 -0
  130. package/dist/types/utxo/hdWallet.d.ts.map +1 -0
  131. package/dist/types/utxo/helpers/api.d.ts +49 -1
  132. package/dist/types/utxo/helpers/api.d.ts.map +1 -1
  133. package/dist/types/utxo/helpers/bchaddrjs.d.ts.map +1 -1
  134. package/dist/types/utxo/helpers/cashaddr.d.ts +13 -0
  135. package/dist/types/utxo/helpers/cashaddr.d.ts.map +1 -0
  136. package/dist/types/utxo/helpers/coinselect.d.ts +9 -5
  137. package/dist/types/utxo/helpers/coinselect.d.ts.map +1 -1
  138. package/dist/types/utxo/helpers/txSize.d.ts +4 -3
  139. package/dist/types/utxo/helpers/txSize.d.ts.map +1 -1
  140. package/dist/types/utxo/index.d.ts +2 -1
  141. package/dist/types/utxo/index.d.ts.map +1 -1
  142. package/dist/types/utxo/toolbox/bitcoinCash.d.ts +75 -15
  143. package/dist/types/utxo/toolbox/bitcoinCash.d.ts.map +1 -1
  144. package/dist/types/utxo/toolbox/index.d.ts +6 -5
  145. package/dist/types/utxo/toolbox/index.d.ts.map +1 -1
  146. package/dist/types/utxo/toolbox/params.d.ts +8 -16
  147. package/dist/types/utxo/toolbox/params.d.ts.map +1 -1
  148. package/dist/types/utxo/toolbox/utxo.d.ts +135 -46
  149. package/dist/types/utxo/toolbox/utxo.d.ts.map +1 -1
  150. package/dist/types/utxo/toolbox/validators.d.ts +1 -1
  151. package/dist/types/utxo/toolbox/validators.d.ts.map +1 -1
  152. package/dist/types/utxo/toolbox/zcash.d.ts +63 -10
  153. package/dist/types/utxo/toolbox/zcash.d.ts.map +1 -1
  154. package/dist/types/utxo/types.d.ts +78 -15
  155. package/dist/types/utxo/types.d.ts.map +1 -1
  156. package/package.json +43 -53
  157. package/dist/src/cardano/index.cjs.map +0 -11
  158. package/dist/src/cardano/index.js.map +0 -11
  159. package/dist/src/cosmos/index.cjs.map +0 -20
  160. package/dist/src/cosmos/index.js.map +0 -20
  161. package/dist/src/evm/index.cjs.map +0 -20
  162. package/dist/src/evm/index.js.map +0 -20
  163. package/dist/src/index.cjs.map +0 -67
  164. package/dist/src/index.js.map +0 -67
  165. package/dist/src/near/index.cjs.map +0 -16
  166. package/dist/src/near/index.js.map +0 -16
  167. package/dist/src/radix/index.cjs.map +0 -10
  168. package/dist/src/radix/index.js.map +0 -10
  169. package/dist/src/ripple/index.cjs.map +0 -10
  170. package/dist/src/ripple/index.js.map +0 -10
  171. package/dist/src/solana/index.cjs.map +0 -11
  172. package/dist/src/solana/index.js.map +0 -11
  173. package/dist/src/substrate/index.cjs.map +0 -13
  174. package/dist/src/substrate/index.js.map +0 -13
  175. package/dist/src/sui/index.cjs.map +0 -11
  176. package/dist/src/sui/index.js.map +0 -11
  177. package/dist/src/ton/index.cjs.map +0 -11
  178. package/dist/src/ton/index.js.map +0 -11
  179. package/dist/src/tron/index.cjs.map +0 -13
  180. package/dist/src/tron/index.js.map +0 -13
  181. package/dist/src/utxo/index.cjs.map +0 -21
  182. package/dist/src/utxo/index.js.map +0 -21
  183. package/dist/types/tron/helpers/trc20.abi.d.ts +0 -156
  184. package/dist/types/tron/helpers/trc20.abi.d.ts.map +0 -1
  185. package/src/__tests__/address-validation-all-chains.test.ts +0 -162
  186. package/src/__tests__/addressValidator.test.ts +0 -162
  187. package/src/cardano/__tests__/toolbox.test.ts +0 -48
  188. package/src/cardano/index.ts +0 -2
  189. package/src/cardano/toolbox.ts +0 -168
  190. package/src/cardano/types.ts +0 -10
  191. package/src/cosmos/__tests__/toolbox.test.ts +0 -95
  192. package/src/cosmos/index.ts +0 -4
  193. package/src/cosmos/thorchainUtils/addressFormat.ts +0 -22
  194. package/src/cosmos/thorchainUtils/index.ts +0 -4
  195. package/src/cosmos/thorchainUtils/messages.ts +0 -212
  196. package/src/cosmos/thorchainUtils/registry.ts +0 -43
  197. package/src/cosmos/thorchainUtils/types/MsgCompiled.ts +0 -2800
  198. package/src/cosmos/thorchainUtils/types/client-types.ts +0 -54
  199. package/src/cosmos/thorchainUtils/types/index.ts +0 -1
  200. package/src/cosmos/toolbox/cosmos.ts +0 -345
  201. package/src/cosmos/toolbox/index.ts +0 -35
  202. package/src/cosmos/toolbox/thorchain.ts +0 -249
  203. package/src/cosmos/types.ts +0 -48
  204. package/src/cosmos/util.ts +0 -214
  205. package/src/evm/__tests__/address-validation.test.ts +0 -84
  206. package/src/evm/__tests__/ethereum.test.ts +0 -137
  207. package/src/evm/__tests__/signMessage.test.ts +0 -60
  208. package/src/evm/api.ts +0 -10
  209. package/src/evm/contracts/eth/multicall.ts +0 -165
  210. package/src/evm/contracts/op/gasOracle.ts +0 -145
  211. package/src/evm/helpers.ts +0 -71
  212. package/src/evm/index.ts +0 -4
  213. package/src/evm/toolbox/baseEVMToolbox.ts +0 -698
  214. package/src/evm/toolbox/evm.ts +0 -66
  215. package/src/evm/toolbox/index.ts +0 -44
  216. package/src/evm/toolbox/op.ts +0 -143
  217. package/src/evm/types.ts +0 -146
  218. package/src/index.ts +0 -260
  219. package/src/near/__tests__/core.test.ts +0 -70
  220. package/src/near/helpers/core.ts +0 -85
  221. package/src/near/helpers/gasEstimation.ts +0 -96
  222. package/src/near/helpers/nep141.ts +0 -50
  223. package/src/near/index.ts +0 -21
  224. package/src/near/toolbox.ts +0 -421
  225. package/src/near/types/contract.ts +0 -32
  226. package/src/near/types/nep141.ts +0 -34
  227. package/src/near/types/toolbox.ts +0 -55
  228. package/src/near/types.ts +0 -44
  229. package/src/radix/index.ts +0 -138
  230. package/src/ripple/index.ts +0 -179
  231. package/src/solana/index.ts +0 -36
  232. package/src/solana/toolbox.ts +0 -409
  233. package/src/substrate/balance.ts +0 -88
  234. package/src/substrate/index.ts +0 -2
  235. package/src/substrate/substrate.ts +0 -281
  236. package/src/substrate/types.ts +0 -115
  237. package/src/sui/__tests__/toolbox.test.ts +0 -86
  238. package/src/sui/index.ts +0 -2
  239. package/src/sui/toolbox.ts +0 -166
  240. package/src/sui/types.ts +0 -11
  241. package/src/ton/__tests__/toolbox.test.ts +0 -67
  242. package/src/ton/index.ts +0 -2
  243. package/src/ton/toolbox.ts +0 -136
  244. package/src/ton/types.ts +0 -13
  245. package/src/tron/__tests__/toolbox.test.ts +0 -221
  246. package/src/tron/helpers/trc20.abi.ts +0 -107
  247. package/src/tron/helpers/trongrid.ts +0 -53
  248. package/src/tron/index.ts +0 -21
  249. package/src/tron/toolbox.ts +0 -585
  250. package/src/tron/types.ts +0 -83
  251. package/src/types.ts +0 -28
  252. package/src/utils.ts +0 -34
  253. package/src/utxo/__tests__/zcash-integration.test.ts +0 -97
  254. package/src/utxo/helpers/api.ts +0 -471
  255. package/src/utxo/helpers/bchaddrjs.ts +0 -166
  256. package/src/utxo/helpers/coinselect.ts +0 -92
  257. package/src/utxo/helpers/index.ts +0 -4
  258. package/src/utxo/helpers/txSize.ts +0 -137
  259. package/src/utxo/index.ts +0 -6
  260. package/src/utxo/toolbox/bitcoinCash.ts +0 -243
  261. package/src/utxo/toolbox/index.ts +0 -59
  262. package/src/utxo/toolbox/params.ts +0 -18
  263. package/src/utxo/toolbox/utxo.ts +0 -439
  264. package/src/utxo/toolbox/validators.ts +0 -36
  265. package/src/utxo/toolbox/zcash.ts +0 -242
  266. package/src/utxo/types.ts +0 -39
package/dist/src/index.js CHANGED
@@ -1,5 +1 @@
1
- var q2=Object.create;var{getPrototypeOf:Q2,defineProperty:mf,getOwnPropertyNames:B2}=Object;var Y2=Object.prototype.hasOwnProperty;var H=(T,x,N)=>{N=T!=null?q2(Q2(T)):{};let y=x||!T||!T.__esModule?mf(N,"default",{value:T,enumerable:!0}):N;for(let f of B2(T))if(!Y2.call(y,f))mf(y,f,{get:()=>T[f],enumerable:!0});return y};var yy=(T,x)=>{for(var N in x)mf(T,N,{get:x[N],enumerable:!0,configurable:!0,set:(y)=>x[N]=()=>y})};var k=(T,x)=>()=>(T&&(x=T(T=0)),x);var U=((T)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(T,{get:(x,N)=>(typeof require<"u"?require:x)[N]}):T)(function(T){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+T+'" is not supported')});import{AssetValue as $1,getChainConfig as z2}from"@swapkit/helpers";import{SwapKitApi as W2}from"@swapkit/helpers/api";function K1(){function T(){let x=Date.now(),N=cf||x;return cf=N,x>cf?x:N+1}return H2+T().toString(36)}function ry(T){return async function(N,y=!0){let f=await W2.getChainBalance({address:N,chain:T,scamFilter:y}),{baseDecimal:G}=z2(T),L=f.map(({identifier:_,value:Z,decimal:q})=>{return new $1({decimal:q||G,identifier:_,value:Z})});if(!L.some((_)=>_.isGasAsset))return[$1.from({chain:T}),...L];return L}}var H2,cf=0;var WT=k(()=>{H2=typeof process<"u"&&process.pid?process.pid.toString(36):""});function HT(T){return{getBalance:ry(T)}}function U2(T){return T}var gT=k(()=>{WT()});import{Chain as p,getChainConfig as n1,getRPCUrl as M2}from"@swapkit/helpers";import{match as I2}from"ts-pattern";async function ny(T,x){let{JsonRpcProvider:N}=await import("ethers");return new N(x||await M2(T))}function UT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function tf(T){let{explorerUrl:x,chainIdHex:N,rpcUrls:y}=n1(T);return function(){return T!==p.Ethereum?{...R2({chain:T}),blockExplorerUrls:[x],chainId:N,rpcUrls:y}:void 0}}function gf(T){return![p.Arbitrum,p.BinanceSmartChain].includes(T)}function R2({chain:T}){let{name:x,nativeCurrency:N,baseDecimal:y}=n1(T);return I2(T).with(p.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:y,name:"Avalanche",symbol:T}})).with(p.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:y,name:"Berachain",symbol:"BERA"}})).with(p.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:y,name:"OKB",symbol:"OKB"}})).with(p.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:y,name:"Binance Coin",symbol:"BNB"}})).with(p.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:y,name:"xDAI",symbol:"XDAI"}})).with(p.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:p.Ethereum}})).with(p.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:y,name:"Polygon",symbol:p.Polygon}})).otherwise(()=>({chainName:x,nativeCurrency:{decimals:y,name:N,symbol:N}}))}var ay=()=>{};var u1;var b1=k(()=>{u1=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as w2,applyFeeMultiplierToBigInt as _y,Chain as qy,EVMChains as C2,FeeOption as b,isGasAsset as O2,SwapKitError as o,SwapKitNumber as dT}from"@swapkit/helpers";import{erc20ABI as MT}from"@swapkit/helpers/contracts";import{BrowserProvider as E2,Contract as j1,getAddress as iT,Interface as h1}from"ethers";import{match as k2}from"ts-pattern";function sy({chain:T=qy.Ethereum,provider:x,signer:N,isEIP1559Compatible:y=!0}){return{approve:l2({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),approvedAmount:m1({chain:T,provider:x}),broadcastTransaction:x.broadcastTransaction,call:y0({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),createApprovalTx:$2({chain:T,provider:x,signer:N}),createContract:af({chain:T,provider:x}),createContractTxObject:uy({chain:T,provider:x}),createTransaction:df({chain:T,provider:x,signer:N}),createTransferTx:df({chain:T,provider:x,signer:N}),EIP1193SendTransaction:yT(x),estimateCall:c1({provider:x,signer:N}),estimateGasLimit:F2({chain:T,provider:x,signer:N}),estimateGasPrices:by({chain:T,isEIP1559Compatible:y,provider:x}),estimateTransactionFee:K2({chain:T,isEIP1559Compatible:y,provider:x}),getAddress:()=>{return N?N.getAddress():void 0},getBalance:HT(T).getBalance,getNetworkParams:tf(T),isApproved:v2({chain:T,provider:x}),sendTransaction:t1({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),signMessage:N?(f)=>N.signMessage(f):void 0,transfer:A2({chain:T,isEIP1559Compatible:y,provider:x,signer:N}),validateAddress:(f)=>rf({address:f})}}function rf({address:T}){try{return iT(T),!0}catch{return!1}}function ey(T){return T instanceof E2}function RT(T,x,N){return new j1(T,h1.from(x),N)}function af({provider:T}){return function(N,y){return new j1(N,h1.from(y),T)}}function sf({abi:T,funcName:x}){let N=T.find((y)=>y.name===x);if(!N)throw new o("toolbox_evm_no_abi_fragment",{funcName:x});return N.stateMutability&&D2.includes(N.stateMutability)}function o1(T){return iT(T)}function yT(T){return function({value:N,...y}){if(!ey(T))throw new o("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:f,gasPrice:G,maxFeePerGas:L,maxPriorityFeePerGas:X,..._}=y;return T.send("eth_sendTransaction",[{..._,value:UT(BigInt(N||0))}])}}function p1(T,x){let N=TT(T,x);if(N)return iT(N.toLowerCase());throw new o("toolbox_evm_invalid_gas_asset_address")}function TT({chain:T,symbol:x,ticker:N},y){try{let f=T===qy.BinanceSmartChain&&x==="BNB"&&N==="BNB",G=T===y&&x===y&&N===y,L=S2.includes(T)&&x==="ETH"&&N==="ETH";if(G||f||L)return ef[y];return iT(x.slice(N.length+1).replace(/^0X/,""))}catch{return null}}function uy({provider:T}){return async({contractAddress:x,abi:N,funcName:y,funcParams:f=[],txOverrides:G})=>RT(x,N,T).getFunction(y).populateTransaction(...f.concat(G).filter((L)=>typeof L<"u"))}function by({chain:T,provider:x,isEIP1559Compatible:N=!0}){return k2(T).with(qy.Gnosis,()=>{return async function(){try{let{gasPrice:f,maxPriorityFeePerGas:G}=await x.getFeeData();if(!f||G===null)throw new o("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:_y(f,b.Average),maxPriorityFeePerGas:_y(G,b.Average)},[b.Fast]:{maxFeePerGas:_y(f,b.Fast),maxPriorityFeePerGas:_y(G,b.Fast)},[b.Fastest]:{maxFeePerGas:_y(f,b.Fastest),maxPriorityFeePerGas:_y(G,b.Fastest)}}}catch(f){throw new o("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).with(qy.Arbitrum,()=>{return async function(){try{let{gasPrice:f}=await x.getFeeData();if(!f)throw new o("toolbox_evm_no_fee_data");return{[b.Average]:{gasPrice:f},[b.Fast]:{gasPrice:f},[b.Fastest]:{gasPrice:f}}}catch(f){throw new o("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:f,maxPriorityFeePerGas:G,gasPrice:L}=await x.getFeeData();if(N){if(f===null||G===null)throw new o("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:f,maxPriorityFeePerGas:G},[b.Fast]:{maxFeePerGas:_y(f,b.Fast),maxPriorityFeePerGas:_y(G,b.Fast)},[b.Fastest]:{maxFeePerGas:_y(f,b.Fastest),maxPriorityFeePerGas:_y(G,b.Fastest)}}}if(!L)throw new o("toolbox_evm_no_gas_price");return{[b.Average]:{gasPrice:L},[b.Fast]:{gasPrice:_y(L,b.Fast)},[b.Fastest]:{gasPrice:_y(L,b.Fastest)}}}catch(f){throw new o("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}})}function y0({provider:T,isEIP1559Compatible:x,signer:N,chain:y}){return async function({callProvider:G,contractAddress:L,abi:X,funcName:_,funcParams:Z=[],txOverrides:q={},feeOption:Q=b.Fast}){let J=G||T;if(!L)throw new o("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let B=sf({abi:X,funcName:_});if(B&&ey(J)&&N){let M=uy({chain:y,provider:J}),I=q?.from||await N?.getAddress(),O=await M({abi:X,contractAddress:L,funcName:_,funcParams:Z,txOverrides:{...q,from:I}});return yT(J)(O)}let Y=RT(L,X,J);if(B){if(!N)throw new o("toolbox_evm_no_signer");let M=q?.from||await N.getAddress();if(!M)throw new o("toolbox_evm_no_signer_address");let I=Y.connect(N),O=by({chain:y,isEIP1559Compatible:x,provider:T}),{maxFeePerGas:l,maxPriorityFeePerGas:S,gasPrice:F}=(await O())[Q],j=await Y.getFunction(_).estimateGas(...Z,q),d=await I[_](...Z,{...q,gasLimit:j,gasPrice:F,maxFeePerGas:l,maxPriorityFeePerGas:S,nonce:q?.nonce||await J.getTransactionCount(M)});return typeof d?.hash==="string"?d?.hash:d}let W=await Y[_]?.(...Z);return typeof W?.hash==="string"?W?.hash:W}}function m1({provider:T,chain:x}){return function({assetAddress:y,spenderAddress:f,from:G}){return y0({chain:x,isEIP1559Compatible:!0,provider:T})({abi:MT,contractAddress:y,funcName:"allowance",funcParams:[G,f]})}}function v2({provider:T,chain:x}){return async function({assetAddress:y,spenderAddress:f,from:G,amount:L=IT}){let X=await m1({chain:x,provider:T})({assetAddress:y,from:G,spenderAddress:f});return dT.fromBigInt(X).gte(dT.fromBigInt(BigInt(L)))}}function l2({signer:T,isEIP1559Compatible:x=!0,provider:N,chain:y}){return async function({assetAddress:G,spenderAddress:L,feeOptionKey:X=b.Fast,amount:_,gasLimitFallback:Z,from:q,nonce:Q}){let J=[L,BigInt(_||IT)],B=await T?.getAddress()||q,Y={abi:MT,contractAddress:G,funcName:"approve",funcParams:J,signer:T,txOverrides:{from:B}};if(ey(N)){let M=uy({chain:y,provider:N}),I=yT(N),O=await M(Y);return I(O)}return y0({chain:y,isEIP1559Compatible:x,provider:N,signer:T})({...Y,feeOption:X,funcParams:J,txOverrides:{from:B,gasLimit:Z?BigInt(Z.toString()):void 0,nonce:Q}})}}function A2({signer:T,isEIP1559Compatible:x=!0,provider:N}){return async function({assetValue:f,memo:G,recipient:L,feeOptionKey:X=b.Fast,sender:_,...Z}){let{hexlify:q,toUtf8Bytes:Q}=await import("ethers"),J=f.getBaseValue("bigint"),B=f.chain,Y=_||await T?.getAddress(),W=t1({chain:B,isEIP1559Compatible:x,provider:N,signer:T});if(!Y)throw new o("toolbox_evm_no_from_address");if(f.isGasAsset){let F={...Z,data:q(Q(G||"")),feeOptionKey:X,from:Y,to:L,value:J};return W(F)}if(!TT(f,B))throw new o("toolbox_evm_no_contract_address");let{maxFeePerGas:I,maxPriorityFeePerGas:O,gasPrice:l}=(await by({chain:B,isEIP1559Compatible:x,provider:N})())[X],S=await df({chain:B,provider:N,signer:T})({assetValue:f,data:q(Q(G||"")),gasPrice:l,maxFeePerGas:I,maxPriorityFeePerGas:O,memo:G,recipient:L,sender:Y});return W(S)}}function c1({provider:T,signer:x}){return function({contractAddress:y,abi:f,funcName:G,funcParams:L=[],txOverrides:X}){if(!y)throw new o("toolbox_evm_no_contract_address");let _=RT(y,f,T);return x?_.connect(x).getFunction(G).estimateGas(...L,X):_.getFunction(G).estimateGas(...L,X)}}function F2({provider:T,signer:x}){return async function({assetValue:y,recipient:f,memo:G,data:L,sender:X,funcName:_,funcParams:Z,txOverrides:q}){let Q=y.bigIntValue,J=y.isGasAsset?null:TT(y,y.chain);if(J&&_)return c1({provider:T,signer:x})({abi:MT,contractAddress:J,funcName:_,funcParams:Z,txOverrides:q});let{hexlify:B,toUtf8Bytes:Y}=await import("ethers");return T.estimateGas({data:L?L:G?B(Y(G)):void 0,from:X,to:f,value:Q})}}function t1({provider:T,signer:x,isEIP1559Compatible:N=!0,chain:y}){return async function({feeOptionKey:G=b.Fast,...L}){let{from:X,to:_,data:Z,value:q,...Q}=L;if(!x)throw new o("toolbox_evm_no_signer");if(!_)throw new o("toolbox_evm_no_to_address");let J={...Q,data:Z||"0x",from:X,to:_,value:BigInt(q||0)};if(ey(T))return yT(T)(J);let B=X||await x.getAddress(),Y=L.nonce||await T.getTransactionCount(B),W=(await T.getNetwork()).chainId,M=V2(J)||N,I=by({chain:y,isEIP1559Compatible:N,provider:T}),O=M&&!(J.maxFeePerGas&&J.maxPriorityFeePerGas)||!J.gasPrice?Object.entries((await I())[G]).reduce((S,[F,j])=>({...S,[F]:UT(BigInt(j))}),{}):{},l;try{l=UT(J.gasLimit||await T.estimateGas(J)*11n/10n)}catch(S){throw new o("toolbox_evm_error_estimating_gas_limit",{error:S})}try{let S={...J,chainId:W,gasLimit:l,nonce:Y,type:M?2:0,...O};try{return(await x.sendTransaction(S)).hash}catch{let F=await x.signTransaction({...S,from:B});return(await T.broadcastTransaction(F)).hash}}catch(S){throw new o("toolbox_evm_error_sending_transaction",{error:S})}}}function df({provider:T,signer:x}){return async function({assetValue:y,memo:f,recipient:G,data:L,sender:X,maxFeePerGas:_,maxPriorityFeePerGas:Z,gasPrice:q,...Q}){let J=y.getBaseValue("bigint"),B=y.chain,Y=X||await x?.getAddress();if(!Y)throw new o("toolbox_evm_no_from_address");if(O2(y)){let{hexlify:I,toUtf8Bytes:O}=await import("ethers");return{...Q,data:L||I(O(f||"")),from:Y,to:G,value:J}}let W=TT(y,B);if(!W)throw new o("toolbox_evm_no_contract_address");return uy({chain:y.chain,provider:T})({abi:MT,contractAddress:W,funcName:"transfer",funcParams:[G,J],txOverrides:{from:Y,gasPrice:q,maxFeePerGas:_,maxPriorityFeePerGas:Z}})}}function $2({provider:T,signer:x,chain:N}){return async function({assetAddress:f,spenderAddress:G,amount:L,from:X}){let _=await x?.getAddress()||X,Z=uy({chain:N,provider:T}),q=["bigint","number"].includes(typeof L)?L:L||IT;return await Z({abi:MT,contractAddress:f,funcName:"approve",funcParams:[G,BigInt(q)],txOverrides:{from:_}})}}function K2({provider:T,isEIP1559Compatible:x=!0}){return async function({feeOption:y=b.Fast,chain:f,...G}){let X=await by({chain:f,isEIP1559Compatible:x,provider:T})(),_=await T.estimateGas(G),Z=w2.from({chain:f}),{gasPrice:q,maxFeePerGas:Q,maxPriorityFeePerGas:J}=X[y];if(!x&&q)return Z.set(dT.fromBigInt(q*_,Z.decimal));if(Q&&J){let B=(Q+J)*_;return Z.set(dT.fromBigInt(B,Z.decimal))}throw new o("toolbox_evm_no_gas_price")}}var IT,D2,P2,ef,S2,V2=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var rT=k(()=>{gT();ay();IT=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");D2=["payable","nonpayable"];P2=C2.reduce((T,x)=>{return T[x]="0x0000000000000000000000000000000000000000",T},{}),ef={...P2,[qy.Optimism]:"0x4200000000000000000000000000000000000042",[qy.Polygon]:"0x0000000000000000000000000000000000001010"},S2=[qy.Arbitrum,qy.Aurora,qy.Base,qy.Optimism]});import{Chain as c,FeeOption as n2,getRPCUrl as u2}from"@swapkit/helpers";import{match as b2,P as g1}from"ts-pattern";async function aT({provider:T,...x}){let N=await t(c.Ethereum)({provider:T,...x});async function y(f,G="0x5ba1e12693dc8f9c48aad8770482f4739beed696",L="aggregate",X=n2.Fast){let _=await N.createContractTxObject({abi:u1,contractAddress:G,funcName:L,funcParams:[f]});return N.sendTransaction({..._,feeOptionKey:X})}return{...N,multicall:y}}function t(T){return async function({provider:N,...y}){let{HDNodeWallet:f}=await import("ethers"),G=await u2(T),L=N||await ny(T,G),X=gf(T),_=b2(y).with({phrase:g1.string},({phrase:q})=>f.fromPhrase(q).connect(L)).with({signer:g1.any},({signer:q})=>q).otherwise(()=>{return});return sy({chain:T,isEIP1559Compatible:X,provider:L,signer:_})}}var sT,eT,yf,Tf,ff,xf,d1,Gf,Nf,Lf,Xf,_f,Zf,wT,Jf,qf,Qf,Bf;var T0=k(()=>{b1();ay();rT();sT=t(c.Arbitrum),eT=t(c.Aurora),yf=t(c.Avalanche),Tf=t(c.Base),ff=t(c.Berachain),xf=t(c.BinanceSmartChain),d1=t(c.Botanix),Gf=t(c.Core),Nf=t(c.Corn),Lf=t(c.Cronos),Xf=t(c.Gnosis),_f=t(c.Hyperevm),Zf=t(c.Polygon),wT=t(c.Sonic),Jf=t(c.Unichain),qf=t(c.XLayer),Qf=t(c.Monad),Bf=t(c.MegaETH)});var i1;var r1=k(()=>{i1=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as fT,Chain as a1,FeeOption as Uy,getRPCUrl as h2,SwapKitError as f0}from"@swapkit/helpers";import{Contract as o2,HDNodeWallet as p2}from"ethers";import{match as m2,P as s1}from"ts-pattern";function x0(T){return new o2(c2,i1,T)}function e1(T){return async function(){let N=x0(T);if(N&&"l1BaseFee"in N)return await N?.l1BaseFee();return}}function y5(T){return async function({from:N,to:y,nonce:f,...G}){let{Transaction:L}=await import("ethers");if(!y)throw new f0("toolbox_evm_invalid_transaction",{error:"Missing to address"});return L.from({...G,authorizationList:G.authorizationList,nonce:f?f:N?await T.getTransactionCount(N):0,to:y}).serialized}}function T5(T){return async function(N){let y=x0(T),f=await y5(T)(N);if(y&&"getL1Fee"in y)return y.getL1Fee(f)}}function f5(T){return async function(N){let y=await T.send("eth_gasPrice",[]),f=await T.estimateGas(N);return y.mul(f)}}function t2(T){return async function(N){let y=await T5(T)(N),f=await f5(T)(N);return y.add(f)}}function g2(T){return async function(N){let y=x0(T),f=await y5(T)(N);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(f)}}async function d2(T){try{let{maxFeePerGas:x,maxPriorityFeePerGas:N,gasPrice:y}=await T.getFeeData(),f=await e1(T)(),G=y;if(!(x&&N))throw new f0("toolbox_evm_no_fee_data");return{[Uy.Average]:{gasPrice:G,l1GasPrice:f,maxFeePerGas:x,maxPriorityFeePerGas:N},[Uy.Fast]:{gasPrice:fT(G,Uy.Fast),l1GasPrice:fT(f||0n,Uy.Fast),maxFeePerGas:x,maxPriorityFeePerGas:fT(N,Uy.Fast)},[Uy.Fastest]:{gasPrice:fT(G,Uy.Fastest),l1GasPrice:fT(f||0n,Uy.Fastest),maxFeePerGas:x,maxPriorityFeePerGas:fT(N,Uy.Fastest)}}}catch(x){throw new f0("toolbox_evm_gas_estimation_error",{error:x.msg??x.toString()})}}async function Yf({provider:T,...x}){let N=a1.Optimism,y=await h2(N),f=T||await ny(N,y),G=m2(x).with({phrase:s1.string},({phrase:_})=>p2.fromPhrase(_).connect(f)).with({signer:s1.any},({signer:_})=>_).otherwise(()=>{return}),L=sy({provider:f,signer:G}),X=e1(f);return{...L,estimateGasPrices:d2(f),estimateL1Gas:g2(f),estimateL1GasCost:T5(f),estimateL2GasCost:f5(f),estimateTotalGasCost:t2(f),getBalance:HT(a1.Optimism).getBalance,getL1GasPrice:X}}var c2="0x420000000000000000000000000000000000000f";var G0=k(()=>{gT();r1();ay();rT()});var G5={};yy(G5,{toChecksumAddress:()=>o1,isStateChangingCall:()=>sf,isBrowserProvider:()=>ey,getTokenAddress:()=>TT,getEvmToolbox:()=>x5,getEstimateGasPrices:()=>by,getEIP1193SendTransaction:()=>yT,getCreateContractTxObject:()=>uy,getCreateContract:()=>af,getChecksumAddressFromAsset:()=>p1,evmValidateAddress:()=>rf,createContract:()=>RT,XLayerToolbox:()=>qf,UNIToolbox:()=>Jf,SONICToolbox:()=>wT,OPToolbox:()=>Yf,MONADToolbox:()=>Qf,MEGAETHToolbox:()=>Bf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>Zf,HYPEREVMToolbox:()=>_f,GNOToolbox:()=>Xf,ETHToolbox:()=>aT,ContractAddress:()=>ef,CROToolbox:()=>Lf,CORNToolbox:()=>Nf,COREToolbox:()=>Gf,BotanixToolbox:()=>d1,BaseEVMToolbox:()=>sy,BSCToolbox:()=>xf,BERAToolbox:()=>ff,BASEToolbox:()=>Tf,AVAXToolbox:()=>yf,AURORAToolbox:()=>eT,ARBToolbox:()=>sT});import{Chain as m}from"@swapkit/helpers";import{match as i2}from"ts-pattern";async function x5(T,x){let N={...x,provider:x?.provider||await ny(T)};return i2(T).returnType().with(m.Arbitrum,()=>sT(N)).with(m.Aurora,()=>eT(N)).with(m.Avalanche,()=>yf(N)).with(m.Base,()=>Tf(N)).with(m.Berachain,()=>ff(N)).with(m.BinanceSmartChain,()=>xf(N)).with(m.Botanix,()=>wT(N)).with(m.Core,()=>Gf(N)).with(m.Corn,()=>Nf(N)).with(m.Cronos,()=>Lf(N)).with(m.Ethereum,()=>aT(N)).with(m.Gnosis,()=>Xf(N)).with(m.Hyperevm,()=>_f(N)).with(m.Optimism,()=>Yf(N)).with(m.Polygon,()=>Zf(N)).with(m.Sonic,()=>wT(N)).with(m.Unichain,()=>Jf(N)).with(m.XLayer,()=>qf(N)).with(m.Monad,()=>Qf(N)).with(m.MegaETH,()=>Bf(N)).exhaustive()}var N0=k(()=>{ay();T0();G0();rT();T0();G0()});var N5;var L5=k(()=>{((N)=>{N.Test="goerli";N.Main="homestead"})(N5||={})});var X5={};yy(X5,{toHexString:()=>UT,toChecksumAddress:()=>o1,isStateChangingCall:()=>sf,isBrowserProvider:()=>ey,getTokenAddress:()=>TT,getProvider:()=>ny,getNetworkParams:()=>tf,getIsEIP1559Compatible:()=>gf,getEvmToolbox:()=>x5,getEvmApi:()=>HT,getEstimateGasPrices:()=>by,getEIP1193SendTransaction:()=>yT,getCreateContractTxObject:()=>uy,getCreateContract:()=>af,getChecksumAddressFromAsset:()=>p1,evmValidateAddress:()=>rf,createCustomEvmApi:()=>U2,createContract:()=>RT,XLayerToolbox:()=>qf,UNIToolbox:()=>Jf,SONICToolbox:()=>wT,OPToolbox:()=>Yf,MONADToolbox:()=>Qf,MEGAETHToolbox:()=>Bf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>Zf,HYPEREVMToolbox:()=>_f,GNOToolbox:()=>Xf,EthNetwork:()=>N5,ETHToolbox:()=>aT,ContractAddress:()=>ef,CROToolbox:()=>Lf,CORNToolbox:()=>Nf,COREToolbox:()=>Gf,BotanixToolbox:()=>d1,BaseEVMToolbox:()=>sy,BSCToolbox:()=>xf,BERAToolbox:()=>ff,BASEToolbox:()=>Tf,AVAXToolbox:()=>yf,AURORAToolbox:()=>eT,ARBToolbox:()=>sT});var _5=k(()=>{gT();ay();N0();L5()});import{AssetValue as OT,Chain as xT,getChainConfig as r2,SwapKitError as CT}from"@swapkit/helpers";import{match as a2,P as Z5}from"ts-pattern";async function L0(){let{BlockfrostProvider:T}=await import("@meshsdk/core"),x="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS";return new T("mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS")}async function e2(T){try{let{MeshWallet:x}=await import("@meshsdk/core"),N=await L0(),y=new x({fetcher:N,key:{address:T,type:"address"},networkId:1});await y.init();let f=await y.getBalance(),G=[];for(let L of f)if(L.unit===s2){let{baseDecimal:X}=r2(xT.Cardano);G.push(OT.from({chain:xT.Cardano,fromBaseDecimal:X,value:L.quantity}))}else G.push(OT.from({asset:`${xT.Cardano}.${L.unit}`,value:L.quantity}));if(G.length===0)return[OT.from({chain:xT.Cardano})];return G}catch(x){let N=x instanceof Error?x.message:String(x);return console.error(`Cardano balance fetch error: ${N}`),[OT.from({chain:xT.Cardano})]}}async function J5(){let{deserializeAddress:T}=await import("@meshsdk/core");return(x)=>{try{return T(x),!0}catch{return!1}}}async function yG(T){let x=await J5(),N=await a2(T).with({phrase:Z5.string},async({phrase:q})=>{let{MeshWallet:Q}=await import("@meshsdk/core"),J=await L0(),B=new Q({fetcher:J,key:{type:"mnemonic",words:q.split(" ")},networkId:1,submitter:J});return await B.init(),B}).with({signer:Z5.any},({signer:q})=>q).otherwise(()=>{return}),y=N&&"getChangeAddress"in N?await N.getChangeAddress():"";function f(){return y||""}function G(q){let Q=q||f();if(!Q)throw new CT("core_wallet_connection_not_found");return e2(Q)}function L(){return Promise.resolve(OT.from({chain:xT.Cardano,value:"0.01"}))}async function X({recipient:q,assetValue:Q,memo:J}){if(!N||!("getChangeAddress"in N))throw new CT("core_wallet_connection_not_found");let{Transaction:B}=await import("@meshsdk/core"),[,Y]=Q.symbol.split("-");if(!Q.isGasAsset&&!Y)throw new CT("core_wallet_connection_not_found");let W=new B({initiator:N});if(W.sendAssets({address:q},[{quantity:Q.getBaseValue("string"),unit:Q.isGasAsset?"lovelace":Q.symbol}]),J)W.setMetadata(0,J);let M=await W.build();return{tx:W,unsignedTx:M}}function _(q){if(!N||!("getChangeAddress"in N))throw new CT("core_wallet_connection_not_found");return N.signTx(q)}async function Z({recipient:q,assetValue:Q,memo:J}){if(!N||!("getChangeAddress"in N))throw new CT("core_wallet_connection_not_found");let{unsignedTx:B}=await X({assetValue:Q,memo:J,recipient:q}),Y=await _(B);return await(await L0()).submitTx(Y)}return{createTransaction:X,estimateTransactionFee:L,getAddress:f,getBalance:G,signTransaction:_,transfer:Z,validateAddress:x}}var s2="lovelace";var q5=()=>{};var X0={};yy(X0,{getCardanoToolbox:()=>yG,getCardanoAddressValidator:()=>J5});var _0=k(()=>{q5()});import{base64 as Q5,bech32 as zf}from"@scure/base";import{SwapKitError as TG}from"@swapkit/helpers";import{fromByteArray as fG,toByteArray as xG}from"base64-js";function ET(T){return Q5.encode(Uint8Array.from(zf.fromWords(zf.decode(T).words)))}function kT(T,x="thor"){return zf.encode(x,zf.toWords(Q5.decode(T)))}function GG(T){return fG(T)}function NG(T){if(!T.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new TG("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return xG(T)}var Z0=()=>{};import{AssetValue as J0,Chain as K,getChainConfig as Qy,getRPCUrl as LG,SwapKitError as B5}from"@swapkit/helpers";function Iy(T){switch(T){case K.Maya:return{amount:[],gas:"10000000000"};case K.THORChain:return{amount:[],gas:"500000000"};case K.Kujira:return W5;case K.Noble:return H5;default:return z5}}async function Ry(T){let x=await import("@cosmjs/stargate"),N=x.StargateClient??x.default?.StargateClient,y=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return N.connect({headers:y,url:T})}async function NT(T,x,N={}){let y=await import("@cosmjs/stargate"),f=y.SigningStargateClient??y.default?.SigningStargateClient,G=y.GasPrice??y.default?.GasPrice,L=typeof N==="string"?N:"0.0003uatom",X=typeof N==="string"?{}:N;return f.connectWithSigner(T,x,{gasPrice:G.fromString(L),...X})}async function Q0(T,x){let N=await import("@cosmjs/stargate");return(N.SigningStargateClient??N.default?.SigningStargateClient).offline(T,x)}async function B0({sender:T,recipient:x,assetValue:N,memo:y="",feeRate:f,sequence:G,accountNumber:L}){let{chain:X,chainId:_}=N,Z=await LG(X),Q=await(await Ry(Z)).getAccount(T);if(!Q)throw new B5("toolbox_cosmos_account_not_found",{sender:T});let J=J0.from({chain:X}),B=My(J.symbol),Y=Iy(X),W=B&&f?{amount:[{amount:f.toString(),denom:B}],gas:Y.gas}:Y,M={amount:[{amount:N.getBaseValue("string"),denom:My(N.symbol)}],fromAddress:T,toAddress:x};return{accountNumber:L??Q.accountNumber,chainId:_,fee:W,memo:y,msgs:[{typeUrl:XG(X),value:M}],sequence:G??Q.sequence}}var q0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",Y5="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",z5,W5,H5,My=(T,x=!1)=>{if(x)return T.toLowerCase();switch(T){case"uUSK":case"USK":return q0;case"uYUM":case"YUM":return Y5;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return T}},GT=({symbol:T,chain:x})=>{if(x===K.Maya)return(T.toUpperCase()!=="CACAO"?T:`${K.Maya}.${T}`).toUpperCase();if(x===K.THORChain)return(["RUNE","TCY","RUJI"].includes(T.toUpperCase())?`${K.THORChain}.${T}`:T).toUpperCase();return My(T,!1)},XG=(T)=>{switch(T){case K.Maya:case K.THORChain:return"/types.MsgSend";case K.Cosmos:case K.Kujira:case K.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new B5("toolbox_cosmos_not_supported",{chain:T})}},_G,Y0=(T,x)=>{let N=_G[T.toLowerCase()];if(!N)return J0.from({asset:T,fromBaseDecimal:8,value:x});let{chain:y,asset:f,decimals:G}=N,L=y?{chain:y}:{asset:f};return J0.from({...L,fromBaseDecimal:G,value:x})};var DT=k(()=>{z5={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},W5={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},H5={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};_G={atom:{chain:K.Cosmos,decimals:Qy(K.Cosmos).baseDecimal},cacao:{chain:K.Maya,decimals:10},kuji:{chain:K.Kujira,decimals:Qy(K.Kujira).baseDecimal},maya:{asset:`${K.Maya}.${K.Maya}`,decimals:4},rune:{chain:K.THORChain,decimals:Qy(K.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Qy(K.THORChain).baseDecimal},uatom:{chain:K.Cosmos,decimals:Qy(K.Cosmos).baseDecimal},ukuji:{chain:K.Kujira,decimals:Qy(K.Kujira).baseDecimal},usdc:{chain:K.Noble,decimals:Qy(K.Noble).baseDecimal},uusdc:{chain:K.Noble,decimals:Qy(K.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Qy(K.THORChain).baseDecimal},[q0.toLowerCase()]:{asset:`${K.Kujira}.USK`,decimals:Qy(K.Kujira).baseDecimal}}});var U5={};yy(U5,{$root:()=>w});import r from"protobufjs/minimal.js";var P,Zy,E,w;var M5=k(()=>{P=r.Reader,Zy=r.Writer,E=r.util,w=r.roots.default||(r.roots.default={});w.common=(()=>{let T={};return T.Asset=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.chain="",x.prototype.symbol="",x.prototype.ticker="",x.prototype.synth=!1,x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))f.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))f.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))f.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))f.uint32(32).bool(y.synth);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Asset;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.chain=y.string();break;case 2:L.symbol=y.string();break;case 3:L.ticker=y.string();break;case 4:L.synth=y.bool();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.chain!=null&&y.hasOwnProperty("chain")){if(!E.isString(y.chain))return"chain: string expected"}if(y.symbol!=null&&y.hasOwnProperty("symbol")){if(!E.isString(y.symbol))return"symbol: string expected"}if(y.ticker!=null&&y.hasOwnProperty("ticker")){if(!E.isString(y.ticker))return"ticker: string expected"}if(y.synth!=null&&y.hasOwnProperty("synth")){if(typeof y.synth!=="boolean")return"synth: boolean expected"}return null},x.fromObject=function(y){if(y instanceof w.common.Asset)return y;let f=new w.common.Asset;if(y.chain!=null)f.chain=String(y.chain);if(y.symbol!=null)f.symbol=String(y.symbol);if(y.ticker!=null)f.ticker=String(y.ticker);if(y.synth!=null)f.synth=Boolean(y.synth);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.defaults)G.chain="",G.symbol="",G.ticker="",G.synth=!1;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.symbol!=null&&y.hasOwnProperty("symbol"))G.symbol=y.symbol;if(y.ticker!=null&&y.hasOwnProperty("ticker"))G.ticker=y.ticker;if(y.synth!=null&&y.hasOwnProperty("synth"))G.synth=y.synth;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.Coin=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.asset=null,x.prototype.amount="",x.prototype.decimals=E.Long?E.Long.fromBits(0,0,!1):0,x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))w.common.Asset.encode(y.asset,f.uint32(10).fork()).ldelim();if(y.amount!=null&&Object.hasOwnProperty.call(y,"amount"))f.uint32(18).string(y.amount);if(y.decimals!=null&&Object.hasOwnProperty.call(y,"decimals"))f.uint32(24).int64(y.decimals);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Coin;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.asset=w.common.Asset.decode(y,y.uint32());break;case 2:L.amount=y.string();break;case 3:L.decimals=y.int64();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.asset!=null&&y.hasOwnProperty("asset")){let f=w.common.Asset.verify(y.asset);if(f)return"asset."+f}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!E.isString(y.amount))return"amount: string expected"}if(y.decimals!=null&&y.hasOwnProperty("decimals")){if(!E.isInteger(y.decimals)&&!(y.decimals&&E.isInteger(y.decimals.low)&&E.isInteger(y.decimals.high)))return"decimals: integer|Long expected"}return null},x.fromObject=function(y){if(y instanceof w.common.Coin)return y;let f=new w.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");f.asset=w.common.Asset.fromObject(y.asset)}if(y.amount!=null)f.amount=String(y.amount);if(y.decimals!=null){if(E.Long)(f.decimals=E.Long.fromValue(y.decimals)).unsigned=!1;else if(typeof y.decimals==="string")f.decimals=Number.parseInt(y.decimals,10);else if(typeof y.decimals==="number")f.decimals=y.decimals;else if(typeof y.decimals==="object")f.decimals=new E.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber()}return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.defaults)if(G.asset=null,G.amount="",E.Long){let L=new E.Long(0,0,!1);G.decimals=f.longs===String?L.toString():f.longs===Number?L.toNumber():L}else G.decimals=f.longs===String?"0":0;if(y.asset!=null&&y.hasOwnProperty("asset"))G.asset=w.common.Asset.toObject(y.asset,f);if(y.amount!=null&&y.hasOwnProperty("amount"))G.amount=y.amount;if(y.decimals!=null&&y.hasOwnProperty("decimals"))if(typeof y.decimals==="number")G.decimals=f.longs===String?String(y.decimals):y.decimals;else G.decimals=f.longs===String?E.Long.prototype.toString.call(y.decimals):f.longs===Number?new E.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber():y.decimals;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.PubKeySet=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.secp256k1="",x.prototype.ed25519="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))f.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))f.uint32(18).string(y.ed25519);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.PubKeySet;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.secp256k1=y.string();break;case 2:L.ed25519=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1")){if(!E.isString(y.secp256k1))return"secp256k1: string expected"}if(y.ed25519!=null&&y.hasOwnProperty("ed25519")){if(!E.isString(y.ed25519))return"ed25519: string expected"}return null},x.fromObject=function(y){if(y instanceof w.common.PubKeySet)return y;let f=new w.common.PubKeySet;if(y.secp256k1!=null)f.secp256k1=String(y.secp256k1);if(y.ed25519!=null)f.ed25519=String(y.ed25519);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.defaults)G.secp256k1="",G.ed25519="";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1"))G.secp256k1=y.secp256k1;if(y.ed25519!=null&&y.hasOwnProperty("ed25519"))G.ed25519=y.ed25519;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.Tx=(()=>{function x(N){if(this.coins=[],this.gas=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.id="",x.prototype.chain="",x.prototype.fromAddress="",x.prototype.toAddress="",x.prototype.coins=E.emptyArray,x.prototype.gas=E.emptyArray,x.prototype.memo="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))f.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))f.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))f.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))f.uint32(34).string(y.toAddress);if(y.coins?.length)for(let G=0;G<y.coins.length;++G)w.common.Coin.encode(y.coins[G],f.uint32(42).fork()).ldelim();if(y.gas?.length)for(let G=0;G<y.gas.length;++G)w.common.Coin.encode(y.gas[G],f.uint32(50).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))f.uint32(58).string(y.memo);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Tx;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.id=y.string();break;case 2:L.chain=y.string();break;case 3:L.fromAddress=y.string();break;case 4:L.toAddress=y.string();break;case 5:if(!L.coins?.length)L.coins=[];L.coins.push(w.common.Coin.decode(y,y.uint32()));break;case 6:if(!L.gas?.length)L.gas=[];L.gas.push(w.common.Coin.decode(y,y.uint32()));break;case 7:L.memo=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.id!=null&&y.hasOwnProperty("id")){if(!E.isString(y.id))return"id: string expected"}if(y.chain!=null&&y.hasOwnProperty("chain")){if(!E.isString(y.chain))return"chain: string expected"}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!E.isString(y.fromAddress))return"fromAddress: string expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!E.isString(y.toAddress))return"toAddress: string expected"}if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let f=0;f<y.coins.length;++f){let G=w.common.Coin.verify(y.coins[f]);if(G)return"coins."+G}}if(y.gas!=null&&y.hasOwnProperty("gas")){if(!Array.isArray(y.gas))return"gas: array expected";for(let f=0;f<y.gas.length;++f){let G=w.common.Coin.verify(y.gas[f]);if(G)return"gas."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!E.isString(y.memo))return"memo: string expected"}return null},x.fromObject=function(y){if(y instanceof w.common.Tx)return y;let f=new w.common.Tx;if(y.id!=null)f.id=String(y.id);if(y.chain!=null)f.chain=String(y.chain);if(y.fromAddress!=null)f.fromAddress=String(y.fromAddress);if(y.toAddress!=null)f.toAddress=String(y.toAddress);if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Tx.coins: array expected");f.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Tx.coins: object expected");f.coins[G]=w.common.Coin.fromObject(y.coins[G])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");f.gas=[];for(let G=0;G<y.gas.length;++G){if(typeof y.gas[G]!=="object")throw TypeError(".common.Tx.gas: object expected");f.gas[G]=w.common.Coin.fromObject(y.gas[G])}}if(y.memo!=null)f.memo=String(y.memo);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.arrays||f.defaults)G.coins=[],G.gas=[];if(f.defaults)G.id="",G.chain="",G.fromAddress="",G.toAddress="",G.memo="";if(y.id!=null&&y.hasOwnProperty("id"))G.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=y.toAddress;if(y.coins?.length){G.coins=[];for(let L=0;L<y.coins.length;++L)G.coins[L]=w.common.Coin.toObject(y.coins[L],f)}if(y.gas?.length){G.gas=[];for(let L=0;L<y.gas.length;++L)G.gas[L]=w.common.Coin.toObject(y.gas[L],f)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.Fee=(()=>{function x(N){if(this.coins=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.coins=E.emptyArray,x.prototype.poolDeduct="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)w.common.Coin.encode(y.coins[G],f.uint32(10).fork()).ldelim();if(y.poolDeduct!=null&&Object.hasOwnProperty.call(y,"poolDeduct"))f.uint32(18).string(y.poolDeduct);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.Fee;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:if(!L.coins?.length)L.coins=[];L.coins.push(w.common.Coin.decode(y,y.uint32()));break;case 2:L.poolDeduct=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let f=0;f<y.coins.length;++f){let G=w.common.Coin.verify(y.coins[f]);if(G)return"coins."+G}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!E.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},x.fromObject=function(y){if(y instanceof w.common.Fee)return y;let f=new w.common.Fee;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Fee.coins: array expected");f.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Fee.coins: object expected");f.coins[G]=w.common.Coin.fromObject(y.coins[G])}}if(y.poolDeduct!=null)f.poolDeduct=String(y.poolDeduct);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.arrays||f.defaults)G.coins=[];if(f.defaults)G.poolDeduct="";if(y.coins?.length){G.coins=[];for(let L=0;L<y.coins.length;++L)G.coins[L]=w.common.Coin.toObject(y.coins[L],f)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))G.poolDeduct=y.poolDeduct;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.ProtoUint=(()=>{function x(N){if(N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.value="",x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))f.uint32(10).string(y.value);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.common.ProtoUint;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.value=y.string();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.value!=null&&y.hasOwnProperty("value")){if(!E.isString(y.value))return"value: string expected"}return null},x.fromObject=function(y){if(y instanceof w.common.ProtoUint)return y;let f=new w.common.ProtoUint;if(y.value!=null)f.value=String(y.value);return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.defaults)G.value="";if(y.value!=null&&y.hasOwnProperty("value"))G.value=y.value;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T})();w.types=(()=>{let T={};return T.MsgDeposit=(()=>{function x(N){if(this.coins=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.coins=E.emptyArray,x.prototype.memo="",x.prototype.signer=E.newBuffer([]),x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)w.common.Coin.encode(y.coins[G],f.uint32(10).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))f.uint32(18).string(y.memo);if(y.signer!=null&&Object.hasOwnProperty.call(y,"signer"))f.uint32(26).bytes(y.signer);return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.types.MsgDeposit;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:if(!L.coins?.length)L.coins=[];L.coins.push(w.common.Coin.decode(y,y.uint32()));break;case 2:L.memo=y.string();break;case 3:L.signer=y.bytes();break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let f=0;f<y.coins.length;++f){let G=w.common.Coin.verify(y.coins[f]);if(G)return"coins."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!E.isString(y.memo))return"memo: string expected"}if(y.signer!=null&&y.hasOwnProperty("signer")){if(!(y.signer&&typeof y.signer.length==="number"||E.isString(y.signer)))return"signer: buffer expected"}return null},x.fromObject=function(y){if(y instanceof w.types.MsgDeposit)return y;let f=new w.types.MsgDeposit;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".types.MsgDeposit.coins: array expected");f.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");f.coins[G]=w.common.Coin.fromObject(y.coins[G])}}if(y.memo!=null)f.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")E.base64.decode(y.signer,f.signer=E.newBuffer(E.base64.length(y.signer)),0);else if(y.signer.length)f.signer=y.signer}return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.arrays||f.defaults)G.coins=[];if(f.defaults){if(G.memo="",f.bytes===String)G.signer="";else if(G.signer=[],f.bytes!==Array)G.signer=E.newBuffer(G.signer)}if(y.coins?.length){G.coins=[];for(let L=0;L<y.coins.length;++L)G.coins[L]=w.common.Coin.toObject(y.coins[L],f)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))G.signer=f.bytes===String?E.base64.encode(y.signer,0,y.signer.length):f.bytes===Array?Array.prototype.slice.call(y.signer):y.signer;return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T.MsgSend=(()=>{function x(N){if(this.amount=[],N){for(let y=Object.keys(N),f=0;f<y.length;++f)if(N[y[f]]!=null)this[y[f]]=N[y[f]]}}return x.prototype.fromAddress=E.newBuffer([]),x.prototype.toAddress=E.newBuffer([]),x.prototype.amount=E.emptyArray,x.create=function(y){return new x(y)},x.encode=function(y,f){if(!f)f=Zy.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))f.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))f.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let G=0;G<y.amount.length;++G)w.cosmos.base.v1beta1.Coin.encode(y.amount[G],f.uint32(26).fork()).ldelim();return f},x.encodeDelimited=function(y,f){return this.encode(y,f).ldelim()},x.decode=function(y,f){if(!(y instanceof P))y=P.create(y);let G=f===void 0?y.len:y.pos+f,L=new w.types.MsgSend;while(y.pos<G){let X=y.uint32();switch(X>>>3){case 1:L.fromAddress=y.bytes();break;case 2:L.toAddress=y.bytes();break;case 3:if(!L.amount?.length)L.amount=[];L.amount.push(w.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(X&7);break}}return L},x.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},x.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!(y.fromAddress&&typeof y.fromAddress.length==="number"||E.isString(y.fromAddress)))return"fromAddress: buffer expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!(y.toAddress&&typeof y.toAddress.length==="number"||E.isString(y.toAddress)))return"toAddress: buffer expected"}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!Array.isArray(y.amount))return"amount: array expected";for(let f=0;f<y.amount.length;++f){let G=w.cosmos.base.v1beta1.Coin.verify(y.amount[f]);if(G)return"amount."+G}}return null},x.fromObject=function(y){if(y instanceof w.types.MsgSend)return y;let f=new w.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")E.base64.decode(y.fromAddress,f.fromAddress=E.newBuffer(E.base64.length(y.fromAddress)),0);else if(y.fromAddress.length)f.fromAddress=y.fromAddress}if(y.toAddress!=null){if(typeof y.toAddress==="string")E.base64.decode(y.toAddress,f.toAddress=E.newBuffer(E.base64.length(y.toAddress)),0);else if(y.toAddress.length)f.toAddress=y.toAddress}if(y.amount){if(!Array.isArray(y.amount))throw TypeError(".types.MsgSend.amount: array expected");f.amount=[];for(let G=0;G<y.amount.length;++G){if(typeof y.amount[G]!=="object")throw TypeError(".types.MsgSend.amount: object expected");f.amount[G]=w.cosmos.base.v1beta1.Coin.fromObject(y.amount[G])}}return f},x.toObject=function(y,f){if(!f)f={};let G={};if(f.arrays||f.defaults)G.amount=[];if(f.defaults){if(f.bytes===String)G.fromAddress="";else if(G.fromAddress=[],f.bytes!==Array)G.fromAddress=E.newBuffer(G.fromAddress);if(f.bytes===String)G.toAddress="";else if(G.toAddress=[],f.bytes!==Array)G.toAddress=E.newBuffer(G.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=f.bytes===String?E.base64.encode(y.fromAddress,0,y.fromAddress.length):f.bytes===Array?Array.prototype.slice.call(y.fromAddress):y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=f.bytes===String?E.base64.encode(y.toAddress,0,y.toAddress.length):f.bytes===Array?Array.prototype.slice.call(y.toAddress):y.toAddress;if(y.amount?.length){G.amount=[];for(let L=0;L<y.amount.length;++L)G.amount[L]=w.cosmos.base.v1beta1.Coin.toObject(y.amount[L],f)}return G},x.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},x})(),T})();w.cosmos=(()=>{let T={};return T.base=(()=>{let x={};return x.v1beta1=(()=>{let N={};return N.Coin=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))L.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))L.uint32(18).string(G.amount);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.Coin;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.denom=G.string();break;case 2:_.amount=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!E.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!E.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof w.cosmos.base.v1beta1.Coin)return G;let L=new w.cosmos.base.v1beta1.Coin;if(G.denom!=null)L.denom=String(G.denom);if(G.amount!=null)L.amount=String(G.amount);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.denom="",X.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))X.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))X.amount=G.amount;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N.DecCoin=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))L.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))L.uint32(18).string(G.amount);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.DecCoin;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.denom=G.string();break;case 2:_.amount=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!E.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!E.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof w.cosmos.base.v1beta1.DecCoin)return G;let L=new w.cosmos.base.v1beta1.DecCoin;if(G.denom!=null)L.denom=String(G.denom);if(G.amount!=null)L.amount=String(G.amount);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.denom="",X.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))X.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))X.amount=G.amount;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N.IntProto=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.int="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.int!=null&&Object.hasOwnProperty.call(G,"int"))L.uint32(10).string(G.int);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.IntProto;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.int=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.int!=null&&G.hasOwnProperty("int")){if(!E.isString(G.int))return"int: string expected"}return null},y.fromObject=function(G){if(G instanceof w.cosmos.base.v1beta1.IntProto)return G;let L=new w.cosmos.base.v1beta1.IntProto;if(G.int!=null)L.int=String(G.int);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.int="";if(G.int!=null&&G.hasOwnProperty("int"))X.int=G.int;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N.DecProto=(()=>{function y(f){if(f){for(let G=Object.keys(f),L=0;L<G.length;++L)if(f[G[L]]!=null)this[G[L]]=f[G[L]]}}return y.prototype.dec="",y.create=function(G){return new y(G)},y.encode=function(G,L){if(!L)L=Zy.create();if(G.dec!=null&&Object.hasOwnProperty.call(G,"dec"))L.uint32(10).string(G.dec);return L},y.encodeDelimited=function(G,L){return this.encode(G,L).ldelim()},y.decode=function(G,L){if(!(G instanceof P))G=P.create(G);let X=L===void 0?G.len:G.pos+L,_=new w.cosmos.base.v1beta1.DecProto;while(G.pos<X){let Z=G.uint32();switch(Z>>>3){case 1:_.dec=G.string();break;default:G.skipType(Z&7);break}}return _},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.dec!=null&&G.hasOwnProperty("dec")){if(!E.isString(G.dec))return"dec: string expected"}return null},y.fromObject=function(G){if(G instanceof w.cosmos.base.v1beta1.DecProto)return G;let L=new w.cosmos.base.v1beta1.DecProto;if(G.dec!=null)L.dec=String(G.dec);return L},y.toObject=function(G,L){if(!L)L={};let X={};if(L.defaults)X.dec="";if(G.dec!=null&&G.hasOwnProperty("dec"))X.dec=G.dec;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,r.util.toJSONOptions)},y})(),N})(),x})(),T})()});import{Chain as ZG}from"@swapkit/helpers";async function jy(){let{$root:T}=await Promise.resolve().then(() => (M5(),U5)),x=await import("@cosmjs/proto-signing"),N=x.Registry??x.default?.Registry,y=await import("@cosmjs/stargate"),f=y.defaultRegistryTypes??y.default?.defaultRegistryTypes;return new N([...f,["/types.MsgSend",T.types.MsgSend],["/types.MsgDeposit",T.types.MsgDeposit]])}async function ky(T){let x=await import("@cosmjs/stargate"),N=x.AminoTypes??x.default?.AminoTypes,y=T===ZG.THORChain?"thorchain":"mayachain";return new N({"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,fromAmino:({signer:f,...G})=>({...G,signer:ET(f)}),toAmino:({signer:f,...G})=>({...G,signer:kT(f)})},"/types.MsgSend":{aminoType:`${y}/MsgSend`,fromAmino:({from_address:f,to_address:G,...L})=>({...L,fromAddress:ET(f),toAddress:ET(G)}),toAmino:({fromAddress:f,toAddress:G,...L})=>({...L,from_address:kT(f),to_address:kT(G)})}})}var z0=k(()=>{Z0()});import{AssetValue as JG,Chain as Wf,getChainConfig as I5,SwapKitError as qG}from"@swapkit/helpers";function U0(T){return function(N){let{assetValue:y,recipient:f,memo:G,sender:L,asSignable:X,asAminoMessage:_}=N;if(f)return w5(T)({asAminoMessage:_,asSignable:X,assetValue:y,memo:G,recipient:f,sender:L});return C5(T)({asAminoMessage:_,asSignable:X,assetValue:y,memo:G,sender:L})}}function Py(T){if(T.type==="thorchain/MsgSend"||T.type==="mayachain/MsgSend")return T;return{...T,value:{...T.value,coins:T.value.coins.map((x)=>{let N=JG.from({asset:x.asset}),y=(N.isSynthetic?N.symbol.split("/")?.[1]:N.symbol)?.toUpperCase(),f=(N.isSynthetic?N.symbol.split("/")?.[0]:N.chain)?.toUpperCase();return{...x,asset:{chain:f,symbol:y,synth:N.isSynthetic,ticker:N.ticker}}})}}}async function PT({chain:T,memo:x,msgs:N}){let y=await jy(),f=await ky(T),G={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:x,messages:N.map((L)=>f.fromAmino(L))}};return y.encode(G)}var QG,BG,W0=({sender:T,recipient:x,assetValue:N})=>{return{type:`${N.chain===Wf.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:N.getBaseValue("string"),denom:My(N.symbol,!0)}],from_address:T,to_address:x}}},H0=({sender:T,assetValue:x,memo:N=""})=>{return{type:`${x.chain===Wf.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:x.getBaseValue("string"),asset:GT(x)}],memo:N,signer:T}}},Hf=({sender:T,recipient:x,assetValue:N,memo:y})=>{return!x?H0({assetValue:N,memo:y,sender:T}):W0({assetValue:N,recipient:x,sender:T})},Dy=async(T,x)=>{return(await ky(x)).fromAmino(T)},R5=async({rpcUrl:T,sender:x})=>{let y=await(await Ry(T)).getAccount(x);if(!y)throw new qG("toolbox_cosmos_account_not_found",{sender:x});return y},w5=(T)=>async({sender:x,recipient:N,assetValue:y,memo:f="",asSignable:G=!0,asAminoMessage:L=!1,sequence:X,accountNumber:_})=>{let Z=await R5({rpcUrl:T,sender:x}),q=y.chain,{chainId:Q}=I5(q),J=W0({assetValue:y,recipient:N,sender:x}),B=G?await Dy(L?J:Py(J),q):J;return{accountNumber:_||Z.accountNumber,chainId:Q,fee:Iy(q),memo:f,msgs:[B],sequence:X||Z.sequence}},C5=(T)=>async({sender:x,assetValue:N,memo:y="",asSignable:f=!0,asAminoMessage:G=!1,sequence:L,accountNumber:X})=>{let _=await R5({rpcUrl:T,sender:x}),Z=N.chain,{chainId:q}=I5(Z),Q=H0({assetValue:N,memo:y,sender:x}),J=f?await Dy(G?Q:Py(Q),Z):Q;return{accountNumber:X||_.accountNumber,chainId:q,fee:Iy(Z),memo:y,msgs:[J],sequence:L||_.sequence}};var O5=k(()=>{DT();z0();QG=Iy(Wf.THORChain).gas,BG=Iy(Wf.Maya).gas});var E5=()=>{};var k5=k(()=>{E5()});var M0=k(()=>{Z0();O5();z0();k5()});import{base64 as O0,bech32 as I0}from"@scure/base";import{AssetValue as Uf,applyFeeMultiplier as D5,Chain as Ty,CosmosChainPrefixes as A5,DerivationPath as YG,derivationPathToString as P5,FeeOption as If,getChainConfig as zG,getRPCUrl as WG,NetworkDerivationPath as HG,SwapKitError as Mf,SwapKitNumber as R0,updateDerivationPath as UG}from"@swapkit/helpers";import{SwapKitApi as F5}from"@swapkit/helpers/api";import{match as MG,P as S5}from"ts-pattern";async function k0(T,x){try{let y=(await F5.getGasRate()).find((f)=>f.chainId===T)?.value;return y?Number.parseFloat(y):x}catch{return x}}async function E0({phrase:T,prefix:x,...N}){let y=await import("@cosmjs/proto-signing"),f=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,G=await import("@cosmjs/crypto"),L=G.stringToPath??G.default?.stringToPath,X="derivationPath"in N?N.derivationPath:`${YG[N.chain]}/${N.index}`;return f.fromMnemonic(T,{hdPaths:[L(X)],prefix:x})}async function IG({privateKey:T,prefix:x}){let N=await import("@cosmjs/proto-signing");return(N.DirectSecp256k1Wallet??N.default?.DirectSecp256k1Wallet).fromKey(T,x)}function V5(T){return async function({signature:N,message:y,address:f}){let G=await T(f);if(!G?.pubkey)throw new Mf("toolbox_cosmos_verify_signature_no_pubkey");let L=await import("@cosmjs/crypto"),X=L.Secp256k1Signature??L.default?.Secp256k1Signature,_=L.Secp256k1??L.default?.Secp256k1,Z=X.fromFixedLength(O0.decode(N));return _.verifySignature(Z,O0.decode(y),G.pubkey.value)}}async function ST({chain:T,...x}){let N=await WG(T),y=A5[T],f="index"in x?x.index||0:0,G=P5("derivationPath"in x&&x.derivationPath?x.derivationPath:UG(HG[T],{index:f})),L=await MG(x).with({phrase:S5.string},({phrase:J})=>E0({derivationPath:G,phrase:J,prefix:y})).with({signer:S5.any},({signer:J})=>J).otherwise(()=>{return});async function X(J){return(await Ry(N)).getAccount(J)}async function _(){let[J]=await L?.getAccounts()||[];return J?.address}async function Z(){let[J]=await L?.getAccounts()||[];if(!J?.pubkey)throw new Mf("toolbox_cosmos_signer_not_defined");return O0.encode(J?.pubkey)}async function q({recipient:J,assetValue:B,memo:Y="",feeRate:W,feeOptionKey:M=If.Fast}){let I=await _();if(!(L&&I))throw new Mf("toolbox_cosmos_signer_not_defined");let O=Uf.from({chain:T}),l=GT(O),S=W||v5((await C0(T,w0[T]))[M],l),F=await NT(N,L),j=My(B.symbol),d=B.getBaseValue("string"),{TxRaw:Gy}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),D={amount:[{amount:d,denom:j}],fromAddress:I,toAddress:J},v=await F.sign(I,[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:D}],S,Y),z=Gy.encode(v).finish();return Buffer.from(z).toString("hex")}async function Q({recipient:J,assetValue:B,memo:Y="",feeRate:W,feeOptionKey:M=If.Fast,dryRun:I=!1}){if(I)return q({assetValue:B,feeOptionKey:M,feeRate:W,memo:Y,recipient:J});let O=await _();if(!(L&&O))throw new Mf("toolbox_cosmos_signer_not_defined");let l=Uf.from({chain:T}),S=GT(l),F=W||v5((await C0(T,w0[T]))[M],S),j=await NT(N,L),d=My(B.symbol),Gy=[{amount:B.getBaseValue("string"),denom:d}],{transactionHash:D}=await j.sendTokens(O,J,Gy,F,Y);return D}return{createPrivateKeyFromPhrase:OG(G),createTransaction:B0,fetchFeeRateFromSwapKit:k0,getAccount:X,getAddress:_,getBalance:async(J,B)=>{let Y=await l5(N)(J),W=await Promise.all(Y.filter(({denom:M})=>M&&!M.includes("IBC/")).map(({denom:M,amount:I})=>{let O=[Ty.THORChain,Ty.Maya].includes(T)&&(M.includes("/")||M.includes("˜"))?`${T}.${M}`:M;return Y0(O,I)}));if(W.length===0)return[Uf.from({chain:T})];return W},getBalanceAsDenoms:l5(N),getFees:()=>C0(T,w0[T]),getPubKey:Z,getSignerFromPhrase:async({phrase:J,derivationPath:B})=>E0({derivationPath:P5(B),index:f,phrase:J,prefix:y}),getSignerFromPrivateKey:async(J)=>{let B=await import("@cosmjs/proto-signing");return(B.DirectSecp256k1Wallet??B.default?.DirectSecp256k1Wallet).fromKey(J,y)},signTransaction:q,transfer:Q,validateAddress:$5(T),verifySignature:V5(X)}}async function RG(T,x){try{let y=(await F5.getGasRate()).find((f)=>f.chainId===T)?.value;return y?Number.parseFloat(y):x}catch{return x}}function wG({assetValue:{chain:T}}){return Uf.from({chain:T,value:CG(T)})}async function C0(T,x){let{chainId:N,baseDecimal:y}=zG(T),f=await k0(N,x);return{average:R0.fromBigInt(BigInt(f),y),fast:R0.fromBigInt(BigInt(D5(f,If.Fast,!0)),y),fastest:R0.fromBigInt(BigInt(D5(f,If.Fastest,!0)),y)}}function v5(T,x){return{amount:[{amount:T.getBaseValue("string"),denom:x}],gas:"200000"}}function CG(T){return{[Ty.Cosmos]:0.007,[Ty.Kujira]:0.02,[Ty.Noble]:0.01,[Ty.THORChain]:0.02,[Ty.Maya]:0.02,[Ty.Harbor]:0.02}[T]||0}function $5(T){let x=A5[T];return function(y){if(!y.startsWith(x))return!1;try{let{prefix:f,words:G}=I0.decode(y);return I0.encode(f,G)===y.toLocaleLowerCase()}catch{return!1}}}function l5(T){return async function(N){return(await(await Ry(T)).getAllBalances(N)).map((L)=>({...L,denom:L.denom.includes("/")?L.denom.toUpperCase():L.denom}))}}function OG(T){return async function(N){let y=await import("@cosmjs/crypto"),f=y.stringToPath??y.default?.stringToPath,G=y.Slip10Curve??y.default?.Slip10Curve,L=y.Slip10??y.default?.Slip10,X=y.EnglishMnemonic??y.default?.EnglishMnemonic,_=y.Bip39??y.default?.Bip39,Z=new X(N),q=await _.mnemonicToSeed(Z),{privkey:Q}=L.derivePath(G.Secp256k1,q,f(T));return Q}}var w0;var Rf=k(()=>{DT();w0={[Ty.Cosmos]:1000,[Ty.Kujira]:1000,[Ty.Noble]:1000,[Ty.THORChain]:5000000,[Ty.Maya]:5000000,[Ty.Harbor]:5000000}});import{base64 as hy}from"@scure/base";import{Chain as EG,CosmosChainPrefixes as kG,derivationPathToString as DG,FeeOption as D0,getChainConfig as K5,getRPCUrl as PG,NetworkDerivationPath as SG,RequestClient as vG,SKConfig as lG,SwapKitError as n5,SwapKitNumber as u5,updateDerivationPath as AG}from"@swapkit/helpers";import{match as FG,P as b5}from"ts-pattern";function VG({prefix:T,derivationPath:x}){return async function(y,f=0){let G=await import("@cosmjs/amino"),L=G.Secp256k1HdWallet??G.default?.Secp256k1HdWallet,X=await import("@cosmjs/crypto"),_=X.stringToPath??X.default?.stringToPath;return L.fromMnemonic(y,{hdPaths:[_(`${x}/${f}`)],prefix:T})}}function $G(T){return hy.encode(T)}function KG(T){return async function({wallet:N,tx:y}){let{msgs:f,accountNumber:G,sequence:L,chainId:X,fee:_,memo:Z}=typeof y==="string"?JSON.parse(y):y,q=(await N.getAccounts())?.[0]?.address||"",Q=await ky(T),J=await jy(),B=await Q0(N,{aminoTypes:Q,registry:J}),Y=[];for(let I of f){let O=await Dy(I,T);Y.push(O)}let{signatures:[W]}=await B.sign(q,Y,_,Z,{accountNumber:G,chainId:X,sequence:L});return{bodyBytes:await PT({chain:T,memo:Z,msgs:f.map(Py)}),signature:$G(W)}}}function nG({prefix:T,rpcUrl:x}){return async function(y,f,G,L,X){let{encodeSecp256k1Pubkey:_,pubkeyToAddress:Z}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:q}=(await import("@cosmjs/stargate")).default,{sequence:Q,fee:J}=JSON.parse(y),B=await j5(G,L),Y=f.map((I)=>[Z(_(hy.decode(I.pubKey)),T),hy.decode(I.signature)]),W=await Ry(x),{transactionHash:M}=await W.broadcastTx(q(B,Q,J,X,new Map(Y)));return M}}async function j5(T,x,N=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:f}=(await import("@cosmjs/amino")).default;return y(T.map((G)=>f(hy.decode(G))),x,N)}function uG(T){return hy.decode(T)}async function bG({privateKey:T,message:x}){let{Secp256k1:N}=(await import("@cosmjs/crypto")).default,y=await N.createSignature(hy.decode(x),T);return hy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function P0({chain:T,...x}){let N=await PG(T),{nodeUrl:y}=K5(T),{isStagenet:f}=lG.get("envs"),G=T===EG.THORChain,L=`${f?"s":""}${kG[T]}`,X="index"in x?x.index||0:0,_="derivationPath"in x&&x.derivationPath?x.derivationPath:AG(SG[T],{index:X}),Z=await ST({chain:T,...x}),q=await FG(x).with({phrase:b5.string},({phrase:Y})=>Z.getSignerFromPhrase({derivationPath:_,phrase:Y})).with({signer:b5.any},({signer:Y})=>Y).otherwise(()=>{return}),Q=Iy(T);async function J(){let Y,W=`${y}/${G?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:M}}=await vG.get(W);if(!M||Number.isNaN(M)||M<0)throw new n5("toolbox_cosmos_invalid_fee",{nativeFee:M.toString()});Y=new u5(M)}catch{Y=new u5({decimal:K5(T).baseDecimal,value:G?0.02:1})}return{[D0.Average]:Y,[D0.Fast]:Y,[D0.Fastest]:Y}}async function B({assetValue:Y,memo:W="",recipient:M}){let{TxRaw:I}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),O=(await q?.getAccounts())?.[0]?.address;if(!(O&&q))throw new n5("toolbox_cosmos_no_signer");let l="signAmino"in q,S=await jy(),F=await ky(T),j=await NT(N,q,{aminoTypes:F,registry:S}),d=Hf({assetValue:Y,memo:W,recipient:M,sender:O});if(l){let z=await Dy(d,T),{signatures:R,authInfoBytes:C}=await j.sign(O,[z],Q,W),A=I.encode({authInfoBytes:C,bodyBytes:await PT({chain:T,memo:W,msgs:[d].map(Py)}),signatures:R}).finish();return(await j.broadcastTx(A)).transactionHash}let Gy=Py(d),D=await Dy(Gy,T);return(await j.signAndBroadcast(O,[D],Q,W)).transactionHash}return{...Z,broadcastMultisigTx:nG({prefix:L,rpcUrl:N}),buildAminoMsg:Hf,buildEncodedTxBody:PT,convertToSignable:Dy,createDefaultAminoTypes:()=>ky(T),createDefaultRegistry:jy,createMultisig:j5,createTransaction:U0(N),deposit:B,getFees:J,importSignature:uG,parseAminoMessageForDirectSigning:Py,pubkeyToAddress:async(Y)=>{let{pubkeyToAddress:W}=(await import("@cosmjs/amino")).default;return W(Y,L)},secp256k1HdWalletFromMnemonic:VG({derivationPath:DG(_),prefix:L}),signMultisigTx:KG(T),signWithPrivateKey:bG,transfer:B}}var S0=k(()=>{M0();DT();Rf()});import{Chain as vT,SwapKitError as jG}from"@swapkit/helpers";var hG=(T,x)=>{switch(T){case vT.Cosmos:case vT.Kujira:case vT.Noble:return ST({chain:T,...x});case vT.Maya:case vT.THORChain:return P0({chain:T,...x});default:throw new jG("toolbox_cosmos_not_supported",{chain:T})}};var h5=k(()=>{Rf();S0();Rf();S0()});var wf={};yy(wf,{verifySignature:()=>V5,transferMsgAmino:()=>W0,toBase64:()=>GG,parseAminoMessageForDirectSigning:()=>Py,getSignerFromPrivateKey:()=>IG,getSignerFromPhrase:()=>E0,getMsgSendDenom:()=>My,getFeeRateFromSwapKit:()=>RG,getDenomWithChain:()=>GT,getDefaultChainFee:()=>Iy,getCreateTransaction:()=>U0,getCosmosValidateAddress:()=>$5,getCosmosToolbox:()=>hG,getAssetFromDenom:()=>Y0,fromBase64:()=>NG,fetchFeeRateFromSwapKit:()=>k0,estimateTransactionFee:()=>wG,depositMsgAmino:()=>H0,createThorchainToolbox:()=>P0,createStargateClient:()=>Ry,createSigningStargateClient:()=>NT,createOfflineStargateClient:()=>Q0,createDefaultRegistry:()=>jy,createDefaultAminoTypes:()=>ky,createCosmosToolbox:()=>ST,cosmosCreateTransaction:()=>B0,convertToSignable:()=>Dy,buildTransferTx:()=>w5,buildEncodedTxBody:()=>PT,buildDepositTx:()=>C5,buildAminoMsg:()=>Hf,bech32ToBase64:()=>ET,base64ToBech32:()=>kT,YUM_KUJIRA_FACTORY_DENOM:()=>Y5,USK_KUJIRA_FACTORY_DENOM:()=>q0,THORCHAIN_GAS_VALUE:()=>QG,MAYA_GAS_VALUE:()=>BG,DEFAULT_NOBLE_FEE_MAINNET:()=>H5,DEFAULT_KUJI_FEE_MAINNET:()=>W5,DEFAULT_COSMOS_FEE_MAINNET:()=>z5});var Cf=k(()=>{M0();h5();DT()});import{AssetValue as Of,Chain as Sy,DerivationPath as oG,derivationPathToString as pG,getChainConfig as m5,getRPCUrl as mG,NetworkDerivationPath as cG,SwapKitError as py,updateDerivationPath as tG}from"@swapkit/helpers";import{match as gG,P as o5}from"ts-pattern";async function c5(T){let x=Of.from({address:T,chain:Sy.Solana});if(x.symbol!=="UNKNOWN")return{decimals:x.decimal||0,id:T,logoURI:x.getIconUrl(),name:x.symbol,symbol:x.ticker};let N=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(T)}`;try{let y=await fetch(N);if(!y.ok)return null;let f=await y.json();if(!Array.isArray(f)||f.length===0)return null;return f.find((L)=>L.id===T)||null}catch{return null}}async function dG(T){let x=await oy(),{PublicKey:N}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),f=new N(T),{baseDecimal:G}=m5(Sy.Solana),L=await x.getBalance(f),X=[Of.from({chain:Sy.Solana,fromBaseDecimal:G,value:L||0})],_=await x.getParsedTokenAccountsByOwner(f,{programId:y});for(let{account:Z}of _.value){let q=Z.data.parsed.info,Q=q.mint,J=q.tokenAmount.amount;if(Number(J)===0)continue;let B=await c5(Q),Y=B?.symbol||"UNKNOWN",W=B?.decimals||q.tokenAmount.decimals;X.push(Of.from({asset:`${Sy.Solana}.${Y}-${Q}`,fromBaseDecimal:W,value:J}))}return X}async function A0(){let{PublicKey:T}=await import("@solana/web3.js");return(x)=>{try{let N=new T(x);return T.isOnCurve(N.toBytes())}catch{return!1}}}async function iG(T){let x=T&&"index"in T?T.index||0:0,N=pG(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:tG(cG[Sy.Solana],{index:x})),y=await gG(T).with({phrase:o5.string},({phrase:L})=>l0({derivationPath:N,phrase:L})).with({signer:o5.any},({signer:L})=>L).otherwise(()=>{return});function f(){return y?.publicKey?p5(y.publicKey):""}function G(L){let X=L||f();if(!X)throw new py("core_wallet_connection_not_found");return dG(X)}return{broadcastTransaction:v0(oy),createKeysForPath:l0,createTransaction:F0(oy),createTransactionFromInstructions:eG,estimateTransactionFee:rG(oy),getAddress:f,getAddressFromPubKey:p5,getAddressValidator:A0,getBalance:G,getConnection:oy,getPubkeyFromAddress:V0,signTransaction:TN(oy,y),transfer:yN(oy,y)}}function rG(T){return async({recipient:x,assetValue:N,memo:y,isProgramDerivedAddress:f,sender:G})=>{let L=await T(),_=(await F0(T)({assetValue:N,isProgramDerivedAddress:f,memo:y,recipient:x,sender:G})).compileMessage(),Z=await L.getFeeForMessage(_);if(Z.value===null)throw new py("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:q}=m5(Sy.Solana);return Of.from({chain:Sy.Solana,fromBaseDecimal:q,value:Z.value})}}async function oy(){let{Connection:T}=await import("@solana/web3.js"),x=await mG(Sy.Solana);return new T(x,"confirmed")}function aG(T){return async({assetValue:x,recipient:N,sender:y,isProgramDerivedAddress:f})=>{let G=await T(),L=await V0(y);if(x.isGasAsset){let{Transaction:X,SystemProgram:_,PublicKey:Z}=await import("@solana/web3.js");return new X().add(_.transfer({fromPubkey:L,lamports:x.getBaseValue("number"),toPubkey:new Z(N)}))}if(x.address)return sG({amount:x.getBaseValue("number"),connection:G,decimals:x.decimal,from:L,isProgramDerivedAddress:f,recipient:N,tokenAddress:x.address});return}}async function sG({tokenAddress:T,recipient:x,from:N,connection:y,amount:f,decimals:G,isProgramDerivedAddress:L}){let{getAssociatedTokenAddress:X,getAccount:_,createAssociatedTokenAccountInstruction:Z,createTransferCheckedInstruction:q}=await import("@solana/spl-token"),{Transaction:Q,PublicKey:J}=await import("@solana/web3.js"),B=new Q,Y=new J(T),W=await X(Y,N),M=new J(x),I=await X(Y,M,L),O=!1;try{await _(y,I),O=!0}catch{}if(!O)B.add(Z(N,I,M,Y));return B.add(q(W,Y,I,N,f,G)),B}function F0(T){return async({recipient:x,assetValue:N,memo:y,isProgramDerivedAddress:f,sender:G})=>{let{createMemoInstruction:L}=await import("@solana/spl-memo"),X=await V0(G),_=await A0();if(!(f||_(x)))throw new py("core_transaction_invalid_recipient_address");let Z=await T(),q=await aG(T)({assetValue:N,isProgramDerivedAddress:f,recipient:x,sender:G});if(!q)throw new py("core_transaction_invalid_sender_address");if(y)q.add(L(y));let Q=await Z.getLatestBlockhash();return q.recentBlockhash=Q.blockhash,q.feePayer=X,q}}async function eG({instructions:T}){let{Transaction:x}=await import("@solana/web3.js"),N=new x().add(...T);if(!N)throw new py("core_transaction_invalid_sender_address");return N}function yN(T,x){return async({recipient:N,assetValue:y,memo:f,isProgramDerivedAddress:G})=>{if(!x)throw new py("core_transaction_invalid_sender_address");let L=x.publicKey?.toString()??(await x.connect()).publicKey.toString(),X=await F0(T)({assetValue:y,isProgramDerivedAddress:G,memo:f,recipient:N,sender:L});if("signTransaction"in x){let _=await x.signTransaction(X);return v0(T)(_)}return X.sign(x),v0(T)(X)}}function v0(T){return async(x)=>{return(await T()).sendRawTransaction(x.serialize())}}function TN(T,x){return async(N)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!x)throw new py("toolbox_solana_no_signer");if(!(N instanceof y)){let G=await(await T()).getLatestBlockhash();N.recentBlockhash=G.blockhash,N.feePayer=x.publicKey||void 0}if("connect"in x)return await x.signTransaction(N);return await N.sign([x]),N}}async function l0({phrase:T,derivationPath:x=oG.SOL}){let{HDKey:N}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:y}=await import("@scure/bip39"),{Keypair:f}=await import("@solana/web3.js"),G=y(T),L=N.fromMasterSeed(G);return f.fromSeed(L.derive(x,!0).privateKey)}function p5(T){return T.toString()}async function V0(T){let{PublicKey:x}=await import("@solana/web3.js");return new x(T)}var t5=()=>{};var $0={};yy($0,{getSolanaToolbox:()=>iG,getSolanaAddressValidator:()=>A0,fetchTokenMetaData:()=>c5,createKeysForPath:()=>l0});var K0=k(()=>{t5()});import{AssetValue as lT,Chain as n0,getChainConfig as fN,SwapKitError as my}from"@swapkit/helpers";import{match as xN,P as g5}from"ts-pattern";async function d5(){let{isValidSuiAddress:T}=await import("@mysten/sui/utils");return function(N){try{return T(N)}catch{return!1}}}async function GN({provider:T,...x}={}){let N=await d5(),y=await xN(x).with({phrase:g5.string},async({phrase:Q})=>{let{Ed25519Keypair:J}=await import("@mysten/sui/keypairs/ed25519");return J.deriveKeypair(Q)}).with({signer:g5.any},({signer:Q})=>Q).otherwise(()=>{return});async function f(Q=T){let{SuiClient:J,getFullnodeUrl:B}=await import("@mysten/sui/client");return new J({url:Q||B("mainnet")})}function G(){return y?.toSuiAddress()||""}async function L(Q){let J=Q||G();if(!J)throw new my("toolbox_sui_address_required");let{baseDecimal:B,chain:Y}=fN(n0.Sui);try{let W=await f(),{totalBalance:M}=await W.getBalance({owner:J}),I=[lT.from({chain:Y,fromBaseDecimal:B,value:M})],O=await W.getAllBalances({owner:J});for(let{coinType:l,totalBalance:S}of O){if(l==="0x2::sui::SUI")continue;if(Number(S)>0){let F=l.split("::").pop()?.toUpperCase()||"UNKNOWN",j=`${Y}.${F}-${l}`;I.push(lT.from({asset:j,fromBaseDecimal:B,value:S}))}}return I}catch{return[lT.from({chain:Y})]}}async function X(Q){let J=lT.from({chain:n0.Sui,value:"0.01"});if(!Q)return J;try{let B=await f(),{txBytes:Y}=await _(Q),{effects:{status:W,gasUsed:M}}=await B.dryRunTransactionBlock({transactionBlock:Y});if(W.status!=="success")return J;let I=Number(M.computationCost)+Number(M.storageCost)-Number(M.storageRebate);return lT.from({chain:n0.Sui,value:I.toString()})}catch{return J}}async function _({recipient:Q,assetValue:J,gasBudget:B,sender:Y}){let{Transaction:W}=await import("@mysten/sui/transactions"),M=Y||G();if(!M)throw new my("toolbox_sui_no_sender");try{let I=new W;if(I.setSender(M),J.isGasAsset||J.symbol==="SUI"){let[S]=I.splitCoins(I.gas,[J.getBaseValue("string")]);I.transferObjects([S],Q)}else throw new my("toolbox_sui_custom_token_transfer_not_implemented");if(B)I.setGasBudget(B);let O=await f(),l=await I.build({client:O});return{tx:I,txBytes:l}}catch(I){throw new my("toolbox_sui_transaction_creation_error",{error:I})}}async function Z(Q){if(!y)throw new my("toolbox_sui_no_signer");if(Q instanceof Uint8Array)return y.signTransaction(Q);let{txBytes:J}="tx"in Q?Q:await _(Q);return y.signTransaction(J)}async function q({assetValue:Q,gasBudget:J,recipient:B}){if(!y)throw new my("toolbox_sui_no_signer");let Y=y.toSuiAddress()||G();if(!Y)throw new my("toolbox_sui_no_sender");let{txBytes:W}=await _({assetValue:Q,gasBudget:J,recipient:B,sender:Y}),M=await f(),{digest:I}=await M.signAndExecuteTransaction({signer:y,transaction:W});return I}return{createTransaction:_,estimateTransactionFee:X,getAddress:G,getBalance:L,signTransaction:Z,transfer:q,validateAddress:N}}var i5=()=>{};var Ef={};yy(Ef,{getSuiToolbox:()=>GN,getSuiAddressValidator:()=>d5});var kf=k(()=>{i5()});import{AssetValue as u0,Chain as AT,getChainConfig as r5,SwapKitError as FT,SwapKitNumber as NN}from"@swapkit/helpers";import{match as LN,P as a5}from"ts-pattern";async function XN(T={}){let{mnemonicToWalletKey:x}=await import("@ton/crypto"),{Address:N,TonClient:y,WalletContractV4:f}=await import("@ton/ton"),G=await s5(),L,X,_=await LN(T).with({phrase:a5.string},async({phrase:I})=>x(I.split(" "))).with({signer:a5.any},({signer:I})=>I).otherwise(()=>{return});function Z(){let{rpcUrls:I}=r5(AT.Ton),[O]=I;if(!L||L.parameters.endpoint!==O)L=new y({endpoint:O});return L}function q(I){if(!X||I){let O=Z(),l=I||_;if(!l)throw new FT("core_wallet_connection_not_found");let S=f.create({publicKey:l.publicKey,workchain:0});X=O.open(S)}return X}async function Q(I){let O=Z(),{baseDecimal:l}=r5(AT.Ton);try{let S=await O.getBalance(N.parse(I));return[u0.from({chain:AT.Ton,value:NN.fromBigInt(S,l)})]}catch{return[u0.from({chain:AT.Ton})]}}async function J({assetValue:I,recipient:O,memo:l}){let S=q();if(!S||!_)throw new FT("core_wallet_connection_not_found");let{toNano:F,comment:j,internal:d}=await import("@ton/ton"),Gy=await S.getSeqno(),D=F(I.getValue("string")),v=l?j(l):void 0;return S.createTransfer({messages:[d({body:v,to:O,value:D})],secretKey:_.secretKey,seqno:Gy})}async function B({assetValue:I,recipient:O,memo:l}){let S=q();if(!S||!_)throw new FT("core_wallet_connection_not_found");let F=await J({assetValue:I,memo:l,recipient:O});return await S.send(F),F.hash().toString()}async function Y(I){let O=q();if(!O)throw new FT("core_wallet_connection_not_found");try{return await O.send(I),I.hash().toString("hex")}catch(l){throw new FT("core_wallet_connection_not_found",{error:l})}}function W(){return q().address.toString()}function M(){return Promise.resolve(u0.from({chain:AT.Ton,value:"0.0001"}))}return{createTransaction:J,estimateTransactionFee:M,getAddress:W,getBalance:Q,sendTransaction:Y,transfer:B,validateAddress:G}}async function s5(){let{Address:T}=await import("@ton/ton");return function(N){try{return T.parse(N),!0}catch{return!1}}}var e5=()=>{};var Df={};yy(Df,{getTONToolbox:()=>XN,getTONAddressValidator:()=>s5});var Pf=k(()=>{e5()});var LT;var b0=k(()=>{LT=[{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}]});import{SwapKitError as _N}from"@swapkit/helpers";async function yx(T){let x=await import("tronweb"),N=x.TronWeb??x.default?.TronWeb;try{let y=await fetch(`${ZN}/v1/accounts/${T}`);if(!y.ok)throw Error(`TronGrid API error: ${y.status} ${y.statusText}`);let f=await y.json();if(!(f.success&&f.data)||f.data.length===0)throw Error("Invalid response from TronGrid API");let G;try{G=N.address.toHex(T).toLowerCase()}catch{G=T.toLowerCase()}let L=f.data.find((X)=>{return X.address.toLowerCase()===G});if(!L)return;return{balance:L.balance,trc20:L.trc20||[]}}catch(y){throw new _N("toolbox_tron_trongrid_api_error",{address:T,message:y instanceof Error?y.message:"Unknown error"})}}var ZN="https://api.trongrid.io";var Tx=()=>{};import{AssetValue as wy,BaseDecimal as fx,Chain as By,derivationPathToString as Nx,getRPCUrl as JN,NetworkDerivationPath as Lx,SwapKitError as fy,updateDerivationPath as Xx,warnOnce as j0}from"@swapkit/helpers";import{match as qN,P as xx}from"ts-pattern";async function h0(){let T=await import("tronweb"),x=T.TronWeb??T.default?.TronWeb;return(N)=>{return x.isAddress(N)}}async function _x({phrase:T,derivationPath:x,index:N}){let y=x||Nx(Xx(Lx[By.Tron],{index:N||0})),{HDKey:f}=await import("@scure/bip32"),{mnemonicToSeedSync:G}=await import("@scure/bip39"),L=G(T),_=f.fromMasterSeed(L).derive(y);if(!_.privateKey)throw new fy("toolbox_tron_no_signer");return Buffer.from(_.privateKey).toString("hex")}async function WN({phrase:T,derivationPath:x,tronWeb:N}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),G=f(T),X=y.fromMasterSeed(G).derive(x);if(!X.privateKey)throw new fy("toolbox_tron_no_signer");let _=Buffer.from(X.privateKey).toString("hex");N.setPrivateKey(_);let Z=N?.address.fromPrivateKey(_);return{getAddress:()=>Promise.resolve(typeof Z==="string"?Z:""),signTransaction:async(q)=>{return await N.trx.sign(q,_)}}}var QN=268,BN=13000,YN=345,Gx="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",zN="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",Zx=async(T={})=>{let x=await import("tronweb"),N=x.TronWeb??x.default?.TronWeb,y=await JN(By.Tron),f=void 0,G=new N({fullHost:y,headers:void 0}),L="index"in T?T.index||0:0,X=Nx("derivationPath"in T&&T.derivationPath?T.derivationPath:Xx(Lx[By.Tron],{index:L})),_=await qN(T).with({phrase:xx.string},async({phrase:D})=>WN({derivationPath:X,phrase:D,tronWeb:G})).with({signer:xx.any},({signer:D})=>Promise.resolve(D)).otherwise(()=>Promise.resolve(void 0)),Z=async()=>{if(!_)throw new fy("toolbox_tron_no_signer");return await _.getAddress()},q=()=>{return 1e8},Q=async()=>{try{let D=await G.trx.getChainParameters(),v={};for(let z of D)v[z.key]=z.value;return{bandwidthFee:v.getTransactionFee||1000,createAccountFee:v.getCreateAccountFee||1e5,energyFee:v.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},J=async(D)=>{try{let v=await G.trx.getAccount(D);return v&&Object.keys(v).length>0}catch{return!1}},B=async(D)=>{try{let v=await G.trx.getAccountResources(D);return{bandwidth:{free:v.freeNetLimit-v.freeNetUsed,total:v.NetLimit||0,used:v.NetUsed||0},energy:{total:v.EnergyLimit||0,used:v.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},Y=async(D,v)=>{try{let z=G.contract(LT,v);if(!z.methods?.balanceOf)return 0n;let[R]=await z.methods.balanceOf(D).call();return R?typeof R==="bigint"?R:BigInt(R):0n}catch(z){let R=z instanceof Error?z.message:String(z);return console.warn(`balanceOf() failed for ${v}: ${R}`),0n}},W=async(D,v)=>{try{G.setAddress(v);let z=G.contract(LT,D),[R,C]=await Promise.all([z.symbol().call().catch(()=>"UNKNOWN"),z.decimals().call().catch(()=>"18")]);return{decimals:Number(C??18),symbol:R??"UNKNOWN"}}catch(z){return j0({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${D}: ${z instanceof Error?z.message:z}`}),null}},M=async(D,v=!0)=>{let z=[wy.from({chain:By.Tron})];try{let R=await yx(D);if(R){let C=[];C.push(wy.from({chain:By.Tron,fromBaseDecimal:6,value:R.balance}));for(let A of R.trc20){let[u,n]=Object.entries(A)[0]||[];if(!(u&&n))continue;let $=await W(u,D);if(!$)continue;C.push(wy.from({asset:`TRON.${$.symbol}-${u}`,fromBaseDecimal:$.decimals,value:BigInt(n||0)}))}return C}return z}catch(R){j0({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${R instanceof Error?R.message:R}`});try{let C=[],A=await G.trx.getBalance(D);if(A&&Number(A)>0)C.push(wy.from({chain:By.Tron,fromBaseDecimal:6,value:A}));let u=await Y(D,Gx);if(u)C.push(wy.from({asset:`TRON.USDT-${Gx}`,fromBaseDecimal:6,value:u}));if(C.length===0)return z;return C}catch(C){let A=C instanceof Error?C.message:String(C);return console.error(`Tron balance fetch failed: ${A}`),z}}},I=async({recipient:D,assetValue:v,memo:z,expiration:R})=>{if(!_)throw new fy("toolbox_tron_no_signer");let C=await Z();G.setAddress(C);let A=await l({assetValue:v,expiration:R,memo:z,recipient:D,sender:C}),u=await _.signTransaction(A),{txid:n}=await G.trx.sendRawTransaction(u);if(!n)throw new fy("toolbox_tron_token_transfer_failed");return n},O=async({assetValue:D,recipient:v,sender:z})=>{let R=D.isGasAsset;try{let C=z?z:_?await Z():void 0;if(!C)return R?wy.from({chain:By.Tron,fromBaseDecimal:0,value:0.1}):wy.from({chain:By.Tron,fromBaseDecimal:0,value:15});let A=await Q(),n=await J(v)?0:A.createAccountFee,$=await B(C);if(R){let Ky=QN,mT=$.bandwidth.free+($.bandwidth.total-$.bandwidth.used),cT=0;if(Ky>mT)cT=(Ky-mT)*A.bandwidthFee;let tT=n+cT;return wy.from({chain:By.Tron,fromBaseDecimal:fx.TRON,value:tT})}let h=YN,i=BN,e=$.bandwidth.free+($.bandwidth.total-$.bandwidth.used),Ny=$.energy.total-$.energy.used,$y=0;if(h>e)$y=(h-e)*A.bandwidthFee;let pT=0;if(i>Ny)pT=(i-Ny)*A.energyFee;let pf=n+$y+pT;return wy.from({chain:By.Tron,fromBaseDecimal:fx.TRON,value:pf})}catch(C){throw j0({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${C instanceof Error?C.message:C}`}),new fy("toolbox_tron_fee_estimation_failed",{error:C})}},l=async(D)=>{let{recipient:v,assetValue:z,memo:R,sender:C,expiration:A}=D,u=z.isGasAsset,n=async({transaction:h,memo:i,expiration:e})=>{let Ny=i?await G.transactionBuilder.addUpdateData(h,i,"utf8"):h;return e?await G.transactionBuilder.extendExpiration(Ny,e):Ny};if(u){let h=await G.transactionBuilder.sendTrx(v,z.getBaseValue("number"),C);return n({expiration:A,memo:R,transaction:h})}G.setAddress(C);let $=z.address;if(!$)throw new fy("toolbox_tron_invalid_token_identifier",{identifier:z.toString()});try{let i=[{type:"address",value:v},{type:"uint256",value:z.getBaseValue("string")}],e={callValue:0,feeLimit:q()},{transaction:Ny}=await G.transactionBuilder.triggerSmartContract($,"transfer(address,uint256)",e,i,C);return n({expiration:A,memo:R,transaction:Ny})}catch(h){throw new fy("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction.",originalError:h instanceof Error?h.message:String(h)})}},S=async(D)=>{if(!_)throw new fy("toolbox_tron_no_signer");return await _.signTransaction(D)},F=async(D)=>{let{txid:v}=await G.trx.sendRawTransaction(D);return v},j=async({assetAddress:D,spenderAddress:v,from:z})=>{try{let R=G.contract(LT,D);if(!R.methods?.allowance)throw new fy("toolbox_tron_invalid_token_contract");let[C]=await R.methods.allowance(z,v).call();return C?typeof C==="bigint"?C:BigInt(C):0n}catch(R){throw new fy("toolbox_tron_allowance_check_failed",{error:R})}};return{approve:async({assetAddress:D,spenderAddress:v,amount:z,from:R})=>{if(!_)throw new fy("toolbox_tron_no_signer");let C=R||await Z(),A=z!==void 0?BigInt(z).toString():zN,u="approve(address,uint256)",n=[{type:"address",value:v},{type:"uint256",value:A}],h={callValue:0,feeLimit:q()};try{let{transaction:i}=await G.transactionBuilder.triggerSmartContract(D,u,h,n,C),e=await _.signTransaction(i),{txid:Ny}=await G.trx.sendRawTransaction(e);if(!Ny)throw new fy("toolbox_tron_approve_failed");return Ny}catch(i){throw new fy("toolbox_tron_approve_failed",{error:i})}},broadcastTransaction:F,createTransaction:l,estimateTransactionFee:O,getAddress:Z,getApprovedAmount:j,getBalance:M,isApproved:async({assetAddress:D,spenderAddress:v,from:z,amount:R})=>{let C=await j({assetAddress:D,from:z,spenderAddress:v});if(!R)return C>0n;let A=BigInt(R);return C>=A},signTransaction:S,transfer:I,tronWeb:G,validateAddress:await h0()}};var Jx=k(()=>{b0();Tx()});var o0={};yy(o0,{trc20ABI:()=>LT,getTronPrivateKeyFromMnemonic:()=>_x,getTronAddressValidator:()=>h0,createTronToolbox:()=>Zx});var p0=k(()=>{b0();Jx()});import{networks as HN}from"@bitgo/utxo-lib";import{Chain as a,getRPCUrl as UN,RequestClient as Sf,SKConfig as MN,SwapKitError as vy,warnOnce as IN}from"@swapkit/helpers";import{networks as RN}from"bitcoinjs-lib";import VT from"coininfo";async function wN({chain:T,txHash:x}){let N=`${vf(T)}/push/transaction`,y=JSON.stringify({data:x});try{let f=await Sf.post(N,{body:y,headers:{"Content-Type":"application/json"}});if(f.context.code!==200)throw new vy("toolbox_utxo_broadcast_failed",{error:f.context.error||"Transaction broadcast failed"});return f.data?.transaction_hash||x}catch(f){let G=await UN(T);if(G){let L=JSON.stringify({id:K1(),jsonrpc:"2.0",method:"sendrawtransaction",params:[x]}),X=await Sf.post(G,{body:L,headers:{"Content-Type":"application/json"}});if(X.error)throw new vy("toolbox_utxo_broadcast_failed",{error:X.error?.message});if(X.result.includes('"code":-26'))throw new vy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return X.result}throw f}}function vf(T){return`https://api.blockchair.com/${CN(T)}`}function qx(T){switch(T){case a.Bitcoin:return 5;case a.Dogecoin:return 1e4;case a.Litecoin:return 1;case a.Zcash:return 1;default:return 2}}function CN(T){switch(T){case a.BitcoinCash:return"bitcoin-cash";case a.Litecoin:return"litecoin";case a.Dash:return"dash";case a.Dogecoin:return"dogecoin";case a.Zcash:return"zcash";case a.Polkadot:return"polkadot";default:return"bitcoin"}}async function ON(T){try{let{feePerKb:x}=await Sf.get(`https://app.bitgo.com/api/v2/${T.toLowerCase()}/tx/fee`),N=x/1000;return Math.max(N,qx(T))}catch{return qx(T)}}async function m0(T,x){let N=await Sf.get(`${T}${x?`${T.includes("?")?"&":"?"}key=${x}`:""}`);if(!N||N.context.code!==200)throw new vy("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return N.data}async function Bx({address:T,chain:x,apiKey:N}){if(!T)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await m0(`${vf(x)}/dashboards/address/${T}?transaction_details=true`,N))[T]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function EN({address:T,chain:x,apiKey:N}){return(await Bx({address:T,apiKey:N,chain:x}))?.address.balance||0}async function Yx({chain:T,apiKey:x,txHash:N}){if(!N)throw new vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await m0(`${vf(T)}/raw/transaction/${N}`,x))?.[N]?.raw_transaction||""}catch(y){let f=y instanceof Error?y.message:String(y);return console.error(`Failed to fetch raw transaction: ${f}`),""}}async function kN({chain:T,address:x,apiKey:N,offset:y=0,limit:f=30}){return(await m0(`${vf(T)}/outputs?q=recipient(${x}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${f}&offset=${y}`,N)).map(({is_spent:_,script_hex:Z,block_id:q,transaction_hash:Q,index:J,value:B,spending_signature_hex:Y})=>({hash:Q,index:J,is_confirmed:q!==-1,is_spent:_,script_hex:Z,txHex:Y,value:B}))}function DN(T){return T.reduce((x,N)=>x+N.value,0)}function Qx(T,x){let N=[...T].sort((y,f)=>f.value-y.value);if(x){let y=[],f=0;for(let G of N)if(y.push(G),f+=G.value,f>=x)break;return y}return N}async function zx({chain:T,address:x,apiKey:N,targetValue:y,accumulativeValue:f=0,offset:G=0,limit:L=30}){if(!x)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let X=await kN({address:x,apiKey:N,chain:T,limit:L,offset:G,targetValue:y}),Z=X.length<L,q=X.filter(({is_spent:M})=>!M),Q=DN(q),J=f+Q,B=y&&J>=y;if(Z||B)return Qx(q,y);let Y=await zx({accumulativeValue:J,address:x,apiKey:N,chain:T,limit:L,offset:G+L,targetValue:y}),W=[...q,...Y];return Qx(W,y)}catch(X){let _=X instanceof Error?X.message:String(X);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function PN({address:T,chain:x,apiKey:N,fetchTxHex:y=!0,targetValue:f}){let G=await zx({address:T,apiKey:N,chain:x,targetValue:f}),L=[];for(let{hash:X,index:_,script_hex:Z,value:q}of G){let Q;if(y)Q=await Yx({apiKey:N,chain:x,txHash:X});L.push({address:T,hash:X,index:_,txHex:Q,value:q,witnessUtxo:{script:Buffer.from(Z,"hex"),value:q}})}return L}function Ly(T){let x=MN.get("apiKeys").blockchair||"";return IN({condition:!x,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(N)=>wN({chain:T,txHash:N}),getAddressData:(N)=>Bx({address:N,apiKey:x,chain:T}),getBalance:(N)=>EN({address:N,apiKey:x,chain:T}),getRawTx:(N)=>Yx({apiKey:x,chain:T,txHash:N}),getSuggestedTxFee:()=>ON(T),getUtxos:(N)=>PN({...N,apiKey:x,chain:T})}}function SN(T){return T}function Yy(){return function(x){switch(x){case a.Bitcoin:return RN.bitcoin;case a.BitcoinCash:return VT.bitcoincash.main.toBitcoinJS();case a.Dash:return VT.dash.main.toBitcoinJS();case a.Litecoin:return VT.litecoin.main.toBitcoinJS();case a.Dogecoin:{let N={private:70615956,public:70617039},y=VT.dogecoin.test;return y.versions.bip32=N,VT.dogecoin.main.toBitcoinJS()}case a.Zcash:return HN.zcash;default:throw new vy("toolbox_utxo_not_supported",{chain:x})}}}var Wx=k(()=>{WT()});import{SwapKitError as Ux}from"@swapkit/helpers";import Mx from"bs58check";import Ix from"cashaddrjs";function t0(T){try{return lf(T),!0}catch{return!1}}function g0(T){return lf(T)?.network}function XT(T){let x=lf(T);if(x?.format==="legacy")return T;return AN(x)}function $T(T){let x=lf(T);return FN(x)}function lf(T){try{let x=vN(T);if(x)return x}catch{}try{let x=lN(T);if(x)return x}catch{}throw new Ux("toolbox_utxo_invalid_address",{address:T})}function vN(T){try{let x=Mx.decode(T);if(x.length!==21)throw new Ux("toolbox_utxo_invalid_address",{address:T});let N=x[0],y=Array.prototype.slice.call(x,1);switch(N){case cy.legacy.mainnet.p2pkh:return{format:"legacy",hash:y,network:"mainnet",type:"p2pkh"};case cy.legacy.mainnet.p2sh:return{format:"legacy",hash:y,network:"mainnet",type:"p2sh"};case cy.legacy.testnet.p2pkh:return{format:"legacy",hash:y,network:"testnet",type:"p2pkh"};case cy.legacy.testnet.p2sh:return{format:"legacy",hash:y,network:"testnet",type:"p2sh"};case cy.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2pkh"};case cy.bitpay.mainnet.p2sh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function lN(T){if(T.indexOf(":")!==-1)try{return Hx(T)}catch{}else{let x=["bitcoincash","bchtest","bchreg"];for(let N of x)try{return Hx(`${N}:${T}`)}catch{}}return}function Hx(T){try{let{hash:x,prefix:N,type:y}=Ix.decode(T);return{format:"cashaddr",hash:Array.prototype.slice.call(x,0),network:N==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function AN(T){let x=cy.legacy[T.network][T.type],N=Buffer.alloc(1+T.hash.length);return N[0]=x,N.set(T.hash,1),Mx.encode(N)}function FN(T){let x=T.network==="mainnet"?"bitcoincash":"bchtest",N=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return Ix.encode(x,N,y)}var c0,cy;var Rx=k(()=>{((N)=>{N.Mainnet="mainnet";N.Testnet="testnet"})(c0||={});cy={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as VN}from"@swapkit/helpers";import{opcodes as $N,script as KN}from"bitcoinjs-lib";function zy(T){let x=Buffer.from(T,"utf8");return KN.compile([$N.OP_RETURN,x])}var nN=1000,Vf=10,wx=10,uN=41,bN=107,$f,Af,Ff,KT=(T)=>{if(T.startsWith("bc1")||T.startsWith("tb1")||T.startsWith("ltc1")||T.startsWith("tltc1"))return"P2WPKH";if(T.startsWith("1")||T.startsWith("m")||T.startsWith("n")||T.startsWith("bitcoincash:q")||T.startsWith("bitcoincash:p")||T.startsWith("q")||T.startsWith("p")||T.startsWith("L")||T.startsWith("M")||T.startsWith("3")||T.startsWith("D")||T.startsWith("A")||T.startsWith("9")||T.startsWith("X")||T.startsWith("7")||T.startsWith("y")||T.startsWith("t1")||T.startsWith("t3")||T.startsWith("tm"))return"P2PKH";throw new VN("toolbox_utxo_invalid_address",{address:T})},_T=({inputs:T,outputs:x,feeRate:N})=>{let y=T[0]&&"address"in T[0]&&T[0].address?KT(T[0].address):"P2PKH",f=T.filter((L)=>L.value>=Af["type"in L?L.type:"P2PKH"]*Math.ceil(N)).reduce((L,X)=>L+ly(X),0),G=x?.reduce((L,X)=>L+nT(X),0)||Ff[y];return Vf+f+G},ly=(T)=>{if("type"in T)return Af[T.type];if("address"in T&&T.address)return Af[KT(T.address)];return uN+bN},nT=(T,x)=>{if(T?.script)return wx+T.script.length+(T.script.length>=74?2:1);if(x)return Ff[x];return Ff.P2PKH};var d0=k(()=>{((N)=>{N.P2PKH="P2PKH";N.P2WPKH="P2WPKH"})($f||={});Af={["P2PKH"]:148,["P2WPKH"]:68},Ff={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as ty,SwapKitError as jN}from"@swapkit/helpers";function Kf(T){switch(T){case ty.Bitcoin:case ty.BitcoinCash:return 550;case ty.Dash:case ty.Litecoin:return 5500;case ty.Dogecoin:return 1e5;case ty.Zcash:return 546;default:throw new jN("toolbox_utxo_not_supported",{chain:T})}}function Wy({inputs:T,outputs:x,feeRate:N=1,chain:y=ty.Bitcoin,changeAddress:f=""}){let G=Math.ceil(N),L=T[0]&&"address"in T[0]&&T[0].address?KT(T[0].address):"P2PKH",X=T.filter((B)=>ly(B)*G<=B.value),_=Vf+x.reduce((B,Y)=>B+nT(Y,L),0),Z=x.reduce((B,Y)=>B+Y.value,0),q=_*G,Q=0,J=[];for(let B of X){let Y=ly(B),W=G*Y;q+=W,Q+=B.value,J.push(B);let M=q+Z;if(Q<M)continue;let I=Q-M,O=G*nT({address:"",value:0},L);if(I>O){let l=O+q,S=Q-(Z+l);if(S>Math.max(ly({})*G,Kf(y)))return{fee:l,inputs:J,outputs:x.concat({address:f,value:S})}}return{fee:q,inputs:J,outputs:x}}return{fee:G*_T({feeRate:G,inputs:T,outputs:x})}}var Cx=k(()=>{d0()});var ZT=k(()=>{Wx();Rx();Cx();d0()});import{networks as hN,address as oN}from"@bitgo/utxo-lib";import pN from"bs58check";function gy(T){return T.replace(/(bchtest:|bitcoincash:)/,"")}function Ay(T){let x=gy(T);return t0(x)&&g0(x)==="mainnet"}function JT(T){try{if(T.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let x=hN.zcash;try{return oN.toOutputScript(T,x),!0}catch{let N=pN.decode(T);if(N.length<21)return!1;let y=N[0];return y===x.pubKeyHash||y===x.scriptHash}}catch{return!1}}var uT=k(()=>{ZT()});import r0 from"@bitcoinerlab/secp256k1";import{ECPair as mN,HDNode as cN}from"@psf/bitcoincashjs-lib";import{HDKey as tN}from"@scure/bip32";import{mnemonicToSeedSync as Ox}from"@scure/bip39";import{AssetValue as i0,applyFeeMultiplier as Ex,Chain as Xy,DerivationPath as gN,derivationPathToString as dN,FeeOption as Cy,NetworkDerivationPath as iN,SwapKitError as Oy,SwapKitNumber as rN,updateDerivationPath as aN}from"@swapkit/helpers";import{address as sN,initEccLib as Dx,Psbt as eN,payments as kx}from"bitcoinjs-lib";import{ECPairFactory as yL}from"ecpair";function Px({inputs:T,outputs:x,chain:N,psbt:y,sender:f,compiledMemo:G}){for(let L of T){let X=!!L.witnessUtxo&&!bT.includes(N)&&{witnessUtxo:L.witnessUtxo},_=bT.includes(N)&&{nonWitnessUtxo:L.txHex?Buffer.from(L.txHex,"hex"):void 0};y.addInput({hash:L.hash,index:L.index,...X,..._})}for(let L of x){let X="address"in L&&L.address?L.address:f,_=L.script;if(_&&!G)continue;let Z=_?{script:G,value:0}:{address:X,value:L.value};Dx(r0),y.addOutput(Z)}return{inputs:T,psbt:y}}async function Sx({assetValue:T,recipient:x,memo:N,feeRate:y,sender:f,fetchTxHex:G=!1}){let L=T.chain,X=N?await zy(N):null,_=await Ax({assetValue:T,fetchTxHex:G,memo:N,recipient:x,sender:f}),{inputs:Z,outputs:q}=Wy({..._,chain:L,feeRate:y});if(!(Z&&q))throw new Oy("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let Q=await Yy(),J=new eN({network:Q(L)});if(L===Xy.Dogecoin)J.setMaximumFeeRate(650000000);let{psbt:B,inputs:Y}=await Px({chain:L,compiledMemo:X,inputs:Z,outputs:q,psbt:J,sender:f});return{inputs:Y,psbt:B,utxos:_.inputs}}async function vx(){let T=await Yy();return function({address:N,chain:y}){if(y===Xy.BitcoinCash)return Ay(N);if(y===Xy.Zcash)return JT(N);try{return Dx(r0),sN.toOutputScript(N,T(y)),!0}catch{return!1}}}async function TL({chain:T,phrase:x,derivationPath:N}){let y=(await jT(T))({derivationPath:N,phrase:x});async function f(L){return await L.signAllInputs(y),L}function G(){return a0(T)(y)}return{getAddress:G,signTransaction:f}}async function dy({chain:T,...x}){let N="phrase"in x?x.phrase:void 0,y="index"in x?x.index||0:0,f=dN("derivationPath"in x&&x.derivationPath?x.derivationPath:aN(iN[T],{index:y})),G=N?await TL({chain:T,derivationPath:f,phrase:N}):("signer"in x)?x.signer:void 0;function L(){return Promise.resolve(G?.getAddress())}let X=await vx(),_=await jT(T);return{accumulative:Wy,broadcastTx:(Z)=>Ly(T).broadcastTx(Z),calculateTxSize:_T,createKeysForPath:_,createTransaction:Sx,estimateMaxSendableAmount:fL(T),estimateTransactionFee:xL(T),getAddress:L,getAddressFromKeys:a0(T),getBalance:ry(T),getFeeRates:()=>hT(T),getInputsOutputsFee:lx,getPrivateKeyFromMnemonic:(Z)=>{return _(Z).toWIF()},transfer:GL(G),validateAddress:(Z)=>X({address:Z,chain:T})}}async function lx({assetValue:T,feeOptionKey:x=Cy.Fast,feeRate:N,memo:y,sender:f,recipient:G}){let L=T.chain,X=await Ax({assetValue:T,memo:y,recipient:G,sender:f}),_=N?Math.floor(N):(await hT(L))[x];return Wy({...X,chain:L,feeRate:_})}function fL(T){return async function({from:N,memo:y,feeRate:f,feeOptionKey:G=Cy.Fast,recipients:L=1}){let X=await Ly(T).getAddressData(N),_=f?Math.ceil(f):(await hT(T))[G],Z=X?.utxo.map((Y)=>({...Y,hash:"",type:"P2PKH"})).filter((Y)=>Y.value>Math.max(Kf(T),ly(Y)*_));if(!Z?.length)return i0.from({chain:T});let q=i0.from({chain:T,value:Z.reduce((Y,W)=>Y+W.value,0)}),Q=typeof L==="number"?Array.from({length:L},()=>({address:N,value:0})):L;if(y){let Y=await zy(y);Q.push({address:N,script:Y,value:0})}let B=_T({feeRate:_,inputs:Z,outputs:Q})*_;return q.sub(B)}}function xL(T){return async(x)=>{let N=await lx(x);return i0.from({chain:T,value:rN.fromBigInt(BigInt(N.fee),8).getValue("string")})}}async function jT(T){let x=await Yy();switch(T){case Xy.BitcoinCash:return function({phrase:y,derivationPath:f=`${gN.BCH}/0`,wif:G}){let L=x(T);if(G)return mN.fromWIF(G,L);if(!y)throw new Oy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return cN.fromSeedBuffer(Buffer.from(Ox(y)),L).derivePath(f).keyPair};case Xy.Bitcoin:case Xy.Dogecoin:case Xy.Litecoin:case Xy.Zcash:case Xy.Dash:return function({phrase:y,wif:f,derivationPath:G}){if(!(f||y))throw new Oy("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let L=yL(r0),X=x(T);if(f)return L.fromWIF(f,X);let _=Ox(y),Z=tN.fromMasterSeed(_,X).derive(G);if(!Z.privateKey)throw new Oy("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return L.fromPrivateKey(Buffer.from(Z.privateKey),{network:X})};default:throw new Oy("toolbox_utxo_not_supported",{chain:T})}}function a0(T){let x=Yy();return function(y){if(!y)throw new Oy("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let f=bT.includes(T)?kx.p2pkh:kx.p2wpkh,{address:G}=f({network:x(T),pubkey:y.publicKey});if(!G)throw new Oy("toolbox_utxo_invalid_address",{error:"Address not defined"});return G}}function GL(T){return async function({memo:N,recipient:y,feeOptionKey:f,feeRate:G,assetValue:L}){let X=await T?.getAddress(),_=L.chain;if(!(T&&X))throw new Oy("toolbox_utxo_no_signer");if(!y)throw new Oy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Z=G||(await hT(_))[f||Cy.Fast],{psbt:q}=await Sx({assetValue:L,feeRate:Z,memo:N,recipient:y,sender:X}),Q=await T.signTransaction(q);return Q.finalizeAllInputs(),Ly(_).broadcastTx(Q.extractTransaction().toHex())}}async function hT(T){let x=await Ly(T).getSuggestedTxFee();return{[Cy.Average]:x,[Cy.Fast]:Ex(x,Cy.Fast),[Cy.Fastest]:Ex(x,Cy.Fastest)}}async function Ax({assetValue:T,recipient:x,memo:N,sender:y,fetchTxHex:f=!1}){let G=T.chain,L=(await hT(G))[Cy.Fastest],X=f||bT.includes(G),_=T.getBaseValue("number"),Z=Math.ceil(_+L*5000);return{inputs:await Ly(G).getUtxos({address:y,fetchTxHex:X,targetValue:Z}),outputs:[{address:x,value:_},...N?[{address:"",script:await zy(N),value:0}]:[]]}}var bT;var oT=k(()=>{WT();ZT();uT();bT=[Xy.Dash,Xy.Dogecoin,Xy.Zcash,Xy.BitcoinCash]});import{address as NL,Transaction as LL,TransactionBuilder as XL}from"@psf/bitcoincashjs-lib";import{Chain as _L,derivationPathToString as ZL,FeeOption as JL,NetworkDerivationPath as qL,SwapKitError as qT,updateDerivationPath as QL}from"@swapkit/helpers";import{Psbt as BL}from"bitcoinjs-lib";function iy(T){return gy($T(T))}function YL(T){function x({builder:y,utxos:f}){return f.forEach((G,L)=>{y.sign(L,T,void 0,65,G.witnessUtxo?.value)}),y.build()}return{getAddress:()=>{let y=T.getAddress(0);return Promise.resolve(iy(y))},signTransaction:x}}async function s0(T){let x="phrase"in T?T.phrase:void 0,N="index"in T?T.index||0:0,y=ZL("derivationPath"in T&&T.derivationPath?T.derivationPath:QL(qL[Jy],{index:N})),f=x?(await jT(Jy))({derivationPath:y,phrase:x}):void 0,G=f?YL(f):("signer"in T)?T.signer:void 0;function L(){return Promise.resolve(G?.getAddress())}let{getBalance:X,getFeeRates:_,broadcastTx:Z,...q}=await dy({chain:Jy});function Q(J,B=!0){return X(gy($T(J)))}return{...q,broadcastTx:Z,buildTx:WL,createTransaction:Fx,getAddress:L,getAddressFromKeys:HL,getBalance:Q,getFeeRates:_,stripPrefix:gy,stripToCashAddress:iy,transfer:zL({broadcastTx:Z,getFeeRates:_,signer:G}),validateAddress:Ay}}async function Fx({assetValue:T,recipient:x,memo:N,feeRate:y,sender:f}){if(!Ay(x))throw new qT("toolbox_utxo_invalid_address",{address:x});let G=Math.ceil(T.getBaseValue("number")+y*7500),L=await Ly(Jy).getUtxos({address:iy(f),fetchTxHex:!0,targetValue:G}),X=N?await zy(N):null,_=[];_.push({address:x,value:T.getBaseValue("number")});let{inputs:Z,outputs:q}=Wy({chain:Jy,feeRate:y,inputs:L,outputs:_});if(!(Z&&q))throw new qT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let Q=await Yy(),J=new XL(Q(Jy));await Promise.all(Z.map(async(B)=>{let Y=await Ly(Jy).getRawTx(B.hash);J.addInput(LL.fromBuffer(Buffer.from(Y,"hex")),B.index)}));for(let B of q){let Y="address"in B&&B.address?B.address:XT(f),W=await Yy(),M=NL.toOutputScript(XT(Y),W(Jy));J.addOutput(M,B.value)}if(X)J.addOutput(X,0);return{builder:J,utxos:Z}}function zL({broadcastTx:T,getFeeRates:x,signer:N}){return async function({recipient:f,assetValue:G,feeOptionKey:L=JL.Fast,...X}){let _=await N?.getAddress();if(!(N&&_))throw new qT("toolbox_utxo_no_signer");if(!f)throw new qT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Z=X.feeRate||(await x())[L],{builder:q,utxos:Q}=await Fx({...X,assetValue:G,feeRate:Z,recipient:f,sender:_}),B=(await N.signTransaction({builder:q,utxos:Q})).toHex();return T(B)}}async function WL({assetValue:T,recipient:x,memo:N,feeRate:y,sender:f,setSigHashType:G}){let L=$T(x);if(!Ay(L))throw new qT("toolbox_utxo_invalid_address",{address:L});let X=Math.ceil(T.getBaseValue("number")+y*7500),_=await Ly(Jy).getUtxos({address:iy(f),fetchTxHex:!1,targetValue:X}),Z=Number(y.toFixed(0)),q=N?await zy(N):null,Q=[];if(Q.push({address:XT(x),value:T.getBaseValue("number")}),q)Q.push({script:q,value:0});let{inputs:J,outputs:B}=Wy({chain:Jy,feeRate:Z,inputs:_,outputs:Q});if(!(J&&B))throw new qT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let Y=await Yy(),W=new BL({network:Y(Jy)});for(let{hash:M,index:I,witnessUtxo:O}of J)W.addInput({hash:M,index:I,sighashType:G?65:void 0,witnessUtxo:O});for(let M of B){let I="address"in M&&M.address?M.address:XT(f),O=M.script?q?{script:q,value:0}:void 0:{address:I,value:M.value};if(O)W.addOutput(O)}return{inputs:J,psbt:W,utxos:_}}function HL(T){let x=T.getAddress(0);return iy(x)}var Jy;var nf=k(()=>{ZT();oT();uT();Jy=_L.BitcoinCash});import{bitgo as UL,crypto as ML,ECPair as $x,networks as IL,address as RL}from"@bitgo/utxo-lib";import{HDKey as Kx}from"@scure/bip32";import{mnemonicToSeedSync as nx}from"@scure/bip39";import{Chain as uf,derivationPathToString as wL,FeeOption as CL,NetworkDerivationPath as OL,SKConfig as EL,SwapKitError as bf,updateDerivationPath as kL}from"@swapkit/helpers";import DL from"bs58check";import{match as PL,P as e0}from"ts-pattern";function ux(){return IL.zcash}function bx(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
- `,pubKeyHash:28,scriptHash:28,wif:128}}function SL({phrase:T,derivationPath:x}){let N=nx(T),f=Kx.fromMasterSeed(N).derive(x);if(!f.privateKey)throw new bf("toolbox_utxo_invalid_params");let G=bx(),L=$x.fromPrivateKey(Buffer.from(f.privateKey),{network:G}),X=ML.hash160(L.publicKey),{isStagenet:_}=EL.get("envs"),Z=_?Buffer.from([29,37]):Buffer.from([28,184]),q=Buffer.concat([Z,X]),Q=DL.encode(q);return{getAddress:()=>Promise.resolve(Q),signTransaction:(J)=>{let B=J.signAllInputs(L);return Promise.resolve(B)}}}function vL({inputs:T,outputs:x,psbt:N,sender:y,compiledMemo:f}){for(let G of T){let L=!!G.witnessUtxo&&{witnessUtxo:{...G.witnessUtxo,value:BigInt(G.value)}},X=!G.witnessUtxo&&{nonWitnessUtxo:G.txHex?Buffer.from(G.txHex,"hex"):void 0};N.addInput({hash:G.hash,index:G.index,...L,...X})}for(let G of x){let L="address"in G&&G.address?G.address:y,X=G.script;if(X&&!f)continue;let _=X?{script:f,value:0n}:{script:RL.toOutputScript(L,ux()),value:BigInt(G.value)};N.addOutput(_)}return{inputs:T,psbt:N}}async function Vx(T){let{assetValue:x,recipient:N,memo:y,feeRate:f,sender:G,fetchTxHex:L}=T,X=y?zy(y):null,_=await Ly(uf.Zcash).getUtxos({address:G,fetchTxHex:L!==!1}),Z=[{address:N,value:Number(x.getBaseValue("string"))},...X?[{script:X,value:0}]:[]],{inputs:q,outputs:Q}=Wy({chain:uf.Zcash,changeAddress:G,feeRate:f,inputs:_,outputs:Z});if(!(q&&Q))throw new bf("toolbox_utxo_insufficient_balance",{assetValue:x,sender:G});let J=UL.createPsbtForNetwork({network:ux()},{version:455}),B=1307332080,Y=Buffer.concat([Buffer.of(252),Buffer.of(5),Buffer.from("BITGO"),Buffer.of(0)]),W=Buffer.allocUnsafe(4);W.writeUInt32LE(B>>>0,0),J.addUnknownKeyValToGlobal({key:Y,value:W});let{psbt:M,inputs:I}=await vL({compiledMemo:X,inputs:q,outputs:Q,psbt:J,sender:G});return{inputs:I,outputs:Q,psbt:M}}async function y1(T){let x=await PL(T).with({signer:e0.not(e0.nullish)},({signer:L})=>Promise.resolve(L)).with({phrase:e0.string},({phrase:L,derivationPath:X,index:_=0})=>{let Z=X||OL[uf.Zcash]||[44,133,0,0,0],q=kL(Z,{index:_}),Q=wL(q);return SL({derivationPath:Q,phrase:L})}).otherwise(()=>Promise.resolve(void 0)),N=await dy({chain:uf.Zcash,signer:x});async function y({recipient:L,assetValue:X,feeOptionKey:_=CL.Fast,...Z}){let q=await x?.getAddress();if(!(x&&q))throw new bf("toolbox_utxo_no_signer");let Q=Z.feeRate||(await N.getFeeRates())[_],{psbt:J}=await Vx({...Z,assetValue:X,feeRate:Q,recipient:L,sender:q}),B=await x.signTransaction(J);return B.finalizeAllInputs(),N.broadcastTx(B.extractTransaction().toHex())}function f({phrase:L,derivationPath:X="m/44'/133'/0'/0/0"}){let _=nx(L),q=Kx.fromMasterSeed(_).derive(X);if(!q.privateKey)throw new bf("toolbox_utxo_invalid_params");let Q=bx();return $x.fromPrivateKey(Buffer.from(q.privateKey),{network:Q})}function G({phrase:L,derivationPath:X="m/44'/133'/0'/0/0"}){return f({derivationPath:X,phrase:L}).toWIF()}return{...N,createKeysForPath:f,createTransaction:Vx,getPrivateKeyFromMnemonic:G,transfer:y,validateAddress:JT}}var T1=k(()=>{ZT();oT();uT()});import{Chain as QT,SwapKitError as lL}from"@swapkit/helpers";async function AL(T,x){switch(T){case QT.BitcoinCash:return await s0(x||{});case QT.Zcash:return await y1(x);case QT.Bitcoin:case QT.Dogecoin:case QT.Litecoin:case QT.Dash:return await dy({chain:T,...x});default:throw new lL("toolbox_utxo_not_supported",{chain:T})}}var jx=k(()=>{nf();oT();T1();nf();uT()});var f1={};yy(f1,{validateZcashAddress:()=>JT,toLegacyAddress:()=>XT,toCashAddress:()=>$T,stripToCashAddress:()=>iy,stripPrefix:()=>gy,nonSegwitChains:()=>bT,isValidAddress:()=>t0,getUtxoToolbox:()=>AL,getUtxoNetwork:()=>Yy,getUtxoApi:()=>Ly,getUTXOAddressValidator:()=>vx,getScriptTypeForAddress:()=>KT,getOutputSize:()=>nT,getInputSize:()=>ly,getDustThreshold:()=>Kf,getCreateKeysForPath:()=>jT,detectAddressNetwork:()=>g0,createZcashToolbox:()=>y1,createUTXOToolbox:()=>dy,createCustomUtxoApi:()=>SN,createBCHToolbox:()=>s0,compileMemo:()=>zy,calculateTxSize:()=>_T,bchValidateAddress:()=>Ay,addressFromKeysGetter:()=>a0,addInputsAndOutputs:()=>Px,accumulative:()=>Wy,UtxoNetwork:()=>c0,UTXOScriptType:()=>$f,TX_OVERHEAD:()=>Vf,OutputSizes:()=>Ff,OP_RETURN_OVERHEAD:()=>wx,MIN_TX_FEE:()=>nN,InputSizes:()=>Af});var x1=k(()=>{ZT();jx();nf();oT();T1()});import{KeyPairSigner as FL}from"@near-js/signers";import{derivationPathToString as VL,SwapKitError as $L}from"@swapkit/helpers";async function jf(){let{validateAccountId:T}=await import("near-sdk-js");return(x)=>{try{return T(x)}catch{let N=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return x.length>=2&&x.length<=64&&N.test(x)}}}async function hf(T){let{parseSeedPhrase:x}=await import("near-seed-phrase"),{KeyPair:N}=await import("@near-js/crypto"),y=T.index||0,f=T.derivationPath?VL(T.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:G}=x(T.phrase,f),L=N.fromString(G);return ox(L)}async function G1(T){let{KeyPair:x}=await import("@near-js/crypto"),N=x.fromString(T);return ox(N)}function ox(T){return new hx(T)}async function of(T,x){let y=(await T.query({account_id:x,finality:"final",request_type:"view_access_key_list"})).keys.find((X)=>X.access_key.permission==="FullAccess");if(!y)throw new $L("toolbox_near_no_public_key_found");let{PublicKey:f}=await import("@near-js/crypto"),G=f.fromString(y.public_key);return{nonce:y.access_key.nonce||0,publicKey:G}}var hx;var N1=k(()=>{hx=class hx extends FL{#y;constructor(T){super(T);this.#y=T}getAddress(){let T=this.#y.getPublicKey(),x=Buffer.from(T.data).toString("hex");return Promise.resolve(x)}}});function L1(T){return"recipient"in T&&"amount"in T&&!("contractId"in T)}function X1(T){return"contractId"in T&&"methodName"in T}function _1(T){return"actions"in T}function Z1(T){return"newAccountId"in T}function J1(T){return"contractCode"in T}function q1(T){return"customEstimator"in T}function Q1(T){let x=0;for(let N of T)switch(N.enum){case"transfer":x+=Number(s.SIMPLE_TRANSFER);break;case"functionCall":x+=Number(s.CONTRACT_CALL);break;case"createAccount":x+=Number(s.ACCOUNT_CREATION);break;case"deployContract":x+=Number(s.CONTRACT_DEPLOYMENT);break;case"addKey":x+=Number(s.ACCESS_KEY_ADDITION);break;case"deleteKey":x+=Number(s.ACCESS_KEY_DELETION);break;case"stake":x+=Number(s.STAKE);break;default:x+=Number(s.CONTRACT_CALL)}return x.toString()}function B1(T){if(T==="ft_transfer"||T==="ft_transfer_call")return s.TOKEN_TRANSFER;if(T==="storage_deposit")return s.STORAGE_DEPOSIT;return s.CONTRACT_CALL}function KL(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function nL(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var s;var Y1=k(()=>{s={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function z1({account:T,contractId:x,viewMethods:N,changeMethods:y}){let{Contract:f}=await import("@near-js/accounts");return new f(T,x,{changeMethods:y,useLocalViewExecution:!0,viewMethods:N})}import{AssetValue as px,Chain as BT,getChainConfig as mx,getRPCUrl as uL,SwapKitError as xy}from"@swapkit/helpers";async function bL(T){let{P:x,match:N}=await import("ts-pattern"),{JsonRpcProvider:y}=await import("@near-js/providers"),f=await N(T).with({phrase:x.string},async(z)=>{return await hf(z)}).with({signer:x.any},({signer:z})=>z).otherwise(()=>{return}),G=await uL(BT.Near),L=new y({url:G});async function X(z){let{Account:R}=await import("@near-js/accounts"),C=z||await _();return new R(C,L,f)}async function _(){if(!f)throw new xy("toolbox_near_no_signer");return await f.getAddress()}async function Z(z){return(await d({changeMethods:[],contractId:z.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:z.accountId})}async function q(z){let C=[await W({args:{account_id:z.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await W({args:{amount:z.assetValue.getBaseValue("string"),memo:z.memo||null,receiver_id:z.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return Gy({actions:C,receiverId:z.contractId})}async function Q(z){if(!f)throw new xy("toolbox_near_no_signer");let{assetValue:R,recipient:C,memo:A}=z,u=await _();if(!R.isGasAsset&&R.address){if(!await Z({accountId:C,contractId:R.address}))return q({assetValue:R,contractId:R.address,memo:A,recipient:C})}let n=await J({...z,sender:u});return O(n)}async function J(z){let{recipient:R,assetValue:C,memo:A,attachedDeposit:u,sender:n,functionCall:$}=z,h=await jf();if(!h(R))throw new xy("toolbox_near_invalid_address",{recipient:R});if(!h(n))throw new xy("toolbox_near_invalid_address",{signerId:n});if($)return Y({...$,sender:n});if(!C.isGasAsset){let tT=C.address;if(!tT)throw new xy("toolbox_near_missing_contract_address");return Y({args:{amount:C.getBaseValue("string"),memo:A||null,receiver_id:R},attachedDeposit:u||"1",contractId:tT,gas:"250000000000000",methodName:"ft_transfer",sender:n})}let{publicKey:i,nonce:e}=await of(L,n),Ny=C.getBaseValue("bigint"),{actionCreators:$y,createTransaction:pT}=await import("@near-js/transactions"),{baseDecode:pf}=await import("@near-js/utils"),Ky=[$y.transfer(Ny)];if(A&&u)Ky.push($y.functionCall("memo",{memo:A},BigInt("250000000000000"),BigInt(u)));let mT=await L.block({finality:"final"}),cT=pf(mT.header.hash);return pT(n,i,R,e+1,Ky,cT)}function B(z){let R=z.encode();return Buffer.from(R).toString("base64")}async function Y(z){let{sender:R}=z,{publicKey:C,nonce:A}=await of(L,R),{createTransaction:u,actionCreators:n}=await import("@near-js/transactions"),{baseDecode:$}=await import("@near-js/utils"),h=await L.block({finality:"final"}),i=$(h.header.hash),e=[n.functionCall(z.methodName,Buffer.from(JSON.stringify(z.args)),BigInt(z.gas),BigInt(z.attachedDeposit))];return u(R,C,z.contractId,A+1,e,i)}async function W(z){let{actionCreators:R}=await import("@near-js/transactions");return R.functionCall(z.methodName,Buffer.from(JSON.stringify(z.args)),BigInt(z.gas),BigInt(z.attachedDeposit))}async function M(z){if(!f)throw new xy("toolbox_near_no_signer");let[R,C]=await f.signTransaction(z);return C}async function I(z){return(await L.sendTransaction(z)).transaction.hash}async function O(z){if(!f)throw new xy("toolbox_near_no_signer");try{let R=await M(z);return await I(R)}catch{return f.signAndSendTransactions?.({transactions:[z]})}}async function l(z){if("assetValue"in z){let u=BigInt("115123062500")+BigInt("108059500000"),n=await S(),$=u*BigInt(n.toString()),{baseDecimal:h}=mx(BT.Near);return px.from({chain:BT.Near,fromBaseDecimal:h,value:$.toString()})}let R=f?await X():void 0;return D(z,R)}async function S(){try{return await L.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function F(z,R,C){if(!f)throw new xy("toolbox_near_no_signer");let A=await X(),{formatNearAmount:u}=await import("@near-js/utils"),{PublicKey:n}=await import("@near-js/crypto"),$=u(C)||"0";return(await A.createAccount(z,n.fromString(R),BigInt($))).transaction.hash}async function j(z){try{if(!f)throw new xy("toolbox_near_no_signer");let{actionCreators:R}=await import("@near-js/transactions"),{contractId:C,methodName:A,args:u,deposit:n}=z,$=await X(),h=await D({args:u||{},contractId:C,methodName:A}),i=R.functionCall(A,u||{},h.getBaseValue("bigint"),BigInt(n||"1"));return(await $.signAndSendTransaction({actions:[i],receiverId:C})).transaction_outcome.id}catch(R){throw new xy("toolbox_near_transfer_failed",{error:R})}}async function d(z){let R=await X();return z1({account:R,changeMethods:z.changeMethods,contractId:z.contractId,viewMethods:z.viewMethods})}async function Gy(z){if(!f)throw new xy("toolbox_near_no_signer");if(z.actions.length===0)throw new xy("toolbox_near_empty_batch");return(await(await X()).signAndSendTransaction({actions:z.actions,receiverId:z.receiverId})).transaction.hash}async function D(z,R){let{baseDecimal:C}=mx(BT.Near),A=await N(z).when(L1,()=>s.SIMPLE_TRANSFER).when(X1,($)=>B1($.methodName)).when(_1,($)=>Q1($.actions)).when(Z1,()=>s.ACCOUNT_CREATION).when(J1,()=>s.CONTRACT_DEPLOYMENT).when(q1,($)=>{if(!R)throw new xy("toolbox_near_no_account");return $.customEstimator(R)}).otherwise(()=>{throw new xy("toolbox_near_invalid_gas_params")}),n=BigInt(A)*BigInt(1000000000000);return px.from({chain:BT.Near,fromBaseDecimal:C,value:n})}async function v(){try{return(await L.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:I,callFunction:j,createAction:W,createContract:d,createContractFunctionCall:Y,createSubAccount:F,createTransaction:J,estimateGas:D,estimateTransactionFee:l,executeBatchTransaction:Gy,getAddress:_,getBalance:ry(BT.Near),getGasPrice:v,getPublicKey:async()=>f?(await f.getPublicKey()).toString():"",getSignerFromPhrase:(z)=>hf(z),getSignerFromPrivateKey:G1,provider:L,serializeTransaction:B,signAndSendTransaction:O,signTransaction:M,transfer:Q,validateAddress:await jf()}}var W1=k(()=>{WT();N1();Y1()});var cx=k(()=>{W1()});var H1={};yy(H1,{tgasToGas:()=>KL,isSimpleTransfer:()=>L1,isCustomEstimator:()=>q1,isContractDeployment:()=>J1,isContractCall:()=>X1,isBatchTransaction:()=>_1,isAccountCreation:()=>Z1,getValidateNearAddress:()=>jf,getNearToolbox:()=>bL,getNearSignerFromPrivateKey:()=>G1,getNearSignerFromPhrase:()=>hf,getFullAccessPublicKey:()=>of,getContractMethodGas:()=>B1,gasToTGas:()=>nL,estimateBatchGas:()=>Q1,createNearContract:()=>z1,GAS_COSTS:()=>s});var U1=k(()=>{N1();Y1();W1();cx()});var I1={};yy(I1,{radixValidateAddress:()=>gx,RadixToolbox:()=>tL});import{AssetValue as tx,Chain as M1,SKConfig as jL,SwapKitError as hL}from"@swapkit/helpers";function gx(T){return T.startsWith("account_rdx1")&&T.length===66}function oL({networkApi:T}){return async function(N){let y=await pL({address:N,networkApi:T}),f=await mL({networkApi:T,resources:y});if(!f.some((L)=>L.isGasAsset))return[tx.from({chain:M1.Radix}),...f];return f}}async function pL({address:T,networkApi:x}){let N=!0,y,f=[],G=await cL(x);while(N){let L={address:T,at_ledger_state:{state_version:G},cursor:y,limit_per_page:100},X=await x.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:L});if(f=f.concat(X.items),X.next_cursor)y=X.next_cursor;else N=!1}return f}async function mL({resources:T,networkApi:x}){let N=[],y=50,f=[];for(let G=0;G<T.length;G+=50)f.push(T.slice(G,G+50));for(let G of f){let L=G.map((Z)=>Z.resource_address),X=await x.state.getEntityDetailsVaultAggregated(L),_=new Map;for(let Z of X)if(Z.details!==void 0){let q=Z.metadata?.items.find((J)=>J.key==="symbol"),Q=q?.value.typed.type==="String"?q.value.typed.value:"?";if(Z.details.type==="FungibleResource")_.set(Z.address,{decimals:Z.details.divisibility,symbol:Q})}for(let Z of G)if(Z.aggregation_level==="Global"){let q=_.get(Z.resource_address)||{decimals:0,symbol:"?"},Q=tx.from({asset:q.symbol!==M1.Radix?`${M1.Radix}.${q.symbol}-${Z.resource_address}`:"XRD.XRD",value:Z.amount});N.push(Q)}}return N}function cL(T){return T.status.getCurrent().then((x)=>x.ledger_state.state_version)}var tL=async({dappConfig:T}={})=>{let{RadixDappToolkit:x}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:N}=await import("@radixdlt/babylon-gateway-api-sdk"),y=T||jL.get("integrations").radix,f=x({...y,networkId:y.network?.networkId||1}),G=N.initialize(f.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:oL({networkApi:G}),networkApi:G,signAndBroadcast:()=>{throw new hL("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:gx}};var R1=()=>{};var O1={};yy(O1,{rippleValidateAddress:()=>C1,hashes:()=>TX,getRippleToolbox:()=>yX});import{AssetValue as w1,Chain as Ey,getChainConfig as dx,getRPCUrl as gL,SwapKitError as Fy,SwapKitNumber as dL}from"@swapkit/helpers";import{Client as iL,isValidAddress as rL,Wallet as aL,xrpToDrops as sL}from"xrpl";import{hashes as TX}from"xrpl";function ix(T){let x=aL.fromMnemonic(T);return{getAddress:()=>Promise.resolve(x.address),signTransaction:(N)=>Promise.resolve(x.sign(N))}}function C1(T){return rL(T)}var eL,yX=async(T={})=>{let x="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?ix(T.phrase):void 0,N=await gL(Ey.Ripple);if(!N)throw new Fy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:Ey.Ripple}});let y=new iL(N);await y.connect();let f=()=>{if(!x)throw new Fy({errorKey:"toolbox_ripple_signer_not_found"});return x.getAddress()},G=async(J)=>{let B=J||await f(),{baseDecimal:Y}=dx(Ey.Ripple);try{let M=(await y.request({account:B,command:"account_info"})).result.account_data.Balance;return[w1.from({chain:Ey.Ripple,fromBaseDecimal:Y,value:M})]}catch(W){if(W.data.error_code===eL.ACCOUNT_NOT_FOUND)return[w1.from({chain:Ey.Ripple,value:0})];throw new Fy("toolbox_ripple_get_balance_error",{info:{address:B,error:W}})}},L=async()=>{let B=(await y.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:Y}=dx(Ey.Ripple);return w1.from({chain:Ey.Ripple,fromBaseDecimal:Y,value:dL.fromBigInt(BigInt(B),Y)})},X=async({assetValue:J,recipient:B,memo:Y,sender:W})=>{if(!C1(B))throw new Fy({errorKey:"core_transaction_invalid_recipient_address"});let M=W||await f();if(!J.isGasAsset||J.chain!==Ey.Ripple)throw new Fy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:J.toString()}});let I={Account:M,Amount:sL(J.getValue("string")),Destination:B,TransactionType:"Payment"};if(Y)I.Memos=[{Memo:{MemoData:Buffer.from(Y).toString("hex")}}];return await y.autofill(I)},_=(J)=>{if(!x)throw new Fy({errorKey:"toolbox_ripple_signer_not_found"});return x.signTransaction(J)},Z=async(J)=>{let Y=(await y.submitAndWait(J)).result;if(Y.validated)return Y.hash;throw new Fy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Ey.Ripple}})};return{broadcastTransaction:Z,createSigner:ix,createTransaction:X,disconnect:()=>y.disconnect(),estimateTransactionFee:L,getAddress:f,getBalance:G,signer:x,signTransaction:_,transfer:async(J)=>{if(!x)throw new Fy({errorKey:"toolbox_ripple_signer_not_found"});let B=await x.getAddress(),Y=await X({...J,sender:B}),W=await _(Y);return Z(W.tx_blob)},validateAddress:C1}};var E1=k(()=>{eL={ACCOUNT_NOT_FOUND:19}});import{AssetValue as fX,Chain as xX,SwapKitNumber as rx}from"@swapkit/helpers";async function GX(T,x,N){try{let y=await T.query.system?.account?.(N);if(!y)return[x.set(0)];let{data:{free:f}}=y,G=rx.fromBigInt(BigInt(f.toString()),x.decimal).getValue("string");return[x.set(G)]}catch(y){let f=y instanceof Error?y.message:String(y);return console.error(`Error fetching substrate balance: ${f}`),[x.set(0)]}}async function NX(T,x,N){try{let y=await T.query.flip?.account?.(N);if(!y)return[x.set(0)];let f=y.balance||y.data?.balance;if(!f||f.isEmpty)return[x.set(0)];let G=rx.fromBigInt(BigInt(f.toString()),x.decimal).getValue("string");return[x.set(G)]}catch(y){let f=y instanceof Error?y.message:String(y);return console.error(`Error fetching chainflip balance: ${f}`),[x.set(0)]}}function ax(T,x){return function(y){let f=fX.from({chain:T});switch(T){case xX.Chainflip:return NX(x,f,y);default:return GX(x,f,y)}}}var sx=()=>{};var LX,XX,_X,Vy;var k1=k(()=>{LX={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},XX={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},_X={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},Vy={DOT:LX,FLIP:XX,GENERIC:_X}});import{hexToU8a as ZX,isHex as JX,u8aToHex as qX}from"@polkadot/util";import{decodeAddress as y2,encodeAddress as T2}from"@polkadot/util-crypto";import{AssetValue as QX,Chain as zT,getRPCUrl as BX,SwapKitError as Hy,SwapKitNumber as YX}from"@swapkit/helpers";import{match as zX,P as ex}from"ts-pattern";function WX(T,x){switch(T){case zT.Chainflip:return x2(x);case zT.Polkadot:return f2(x);default:throw new Hy("toolbox_substrate_not_supported",{chain:T})}}function YT(T){return"address"in T}async function P1(T,x){let{Keyring:N}=await import("@polkadot/api"),{cryptoWaitReady:y}=await import("@polkadot/util-crypto");return await y(),new N({ss58Format:x,type:"sr25519"}).addFromUri(T)}function CX(T,x){let N=y2(T);return T2(N,x)}function G2(T,x){return JX(T)?ZX(T):y2(T,void 0,x)}function N2(T,x="ss58",N){if(x==="hex")return qX(T);return T2(T,N)}async function l1({generic:T,chain:x,...N}){let{ApiPromise:y,WsProvider:f}=await import("@polkadot/api"),G=await BX(x),L=new f(G),X=await y.create({noInitWarn:!0,provider:L}),_=QX.from({chain:x}),Z=T?Vy.GENERIC:Vy[x],q=await zX(N).with({phrase:ex.string},({phrase:Q})=>P1(Q,Vy[x].prefix)).with({signer:ex.any},({signer:Q})=>Q).otherwise(()=>{return});return L2({api:X,chain:x,gasAsset:_,network:Z,signer:q})}var f2=({generic:T=!1,...x}={})=>{return l1({chain:zT.Polkadot,generic:T,...x})},x2=async({generic:T=!1,...x}={})=>{return{...await l1({chain:zT.Chainflip,generic:T,...x})}},S1=(T,x)=>T.rpc.system.accountNextIndex(x),D1=(T,x)=>{try{let N=G2(T,x);return N2(N,"ss58",x),!0}catch{return!1}},v1=(T,{recipient:x,assetValue:N})=>T.tx.balances?.transferAllowDeath?.(x,N.getBaseValue("number")),HX=async(T,x,{recipient:N,assetValue:y,sender:f})=>{let G=v1(T,{assetValue:y,recipient:N});if(!G)throw new Hy("toolbox_substrate_transfer_error");let L=YT(x),X=L?x.address:f;if(!X)throw new Hy("core_transaction_invalid_sender_address");let _=await S1(T,X);return(await G.signAndSend(L?x:X,{nonce:_,signer:L?void 0:x})).toString()},UX=async(T,x,N,{recipient:y,assetValue:f,sender:G})=>{let L=v1(T,{assetValue:f,recipient:y}),X=YT(x)?x.address:G;if(!X)return;let _=await L?.paymentInfo(X,{nonce:await S1(T,X)})||{partialFee:0};return N.set(YX.fromBigInt(BigInt(_.partialFee.toString()),N.decimal).getValue("string"))},MX=async(T,x)=>{if(x)return T.send(x);return(await T.send()).toString()},IX=async(T,x)=>{return await x.signAsync(T)},RX=(T,x,N)=>{if(N)return x.signAndSend(T,N);return x.signAndSend(T).toString()},wX=async({signer:T,address:x,tx:N,callback:y,api:f})=>{let G=await S1(f,x);if(y)N.signAndSend(x,{nonce:G,signer:T},y);return N.signAndSend(x,{nonce:G,signer:T}).toString()},L2=({api:T,network:x,gasAsset:N,signer:y,chain:f})=>({api:T,broadcast:MX,convertAddress:CX,createKeyring:(G)=>P1(G,x.prefix),createTransaction:(G)=>v1(T,G),decodeAddress:G2,encodeAddress:N2,estimateTransactionFee:(G)=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");return UX(T,y,N,G)},gasAsset:N,getAddress:(G)=>{let L=G||y;if(!L)throw new Hy("core_wallet_not_keypair_wallet");return YT(L)?L.address:void 0},getBalance:ax(f||zT.Polkadot,T),network:x,sign:(G)=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");if(YT(y))return IX(y,G);throw new Hy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:G,callback:L,address:X})=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");if(YT(y))return RX(y,G,L);if(X)return wX({address:X,api:T,callback:L,signer:y,tx:G});throw new Hy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(G)=>{if(!y)throw new Hy("core_wallet_not_keypair_wallet");return HX(T,y,G)},validateAddress:(G)=>D1(G,x.prefix)}),OX=({address:T,chain:x})=>{let{prefix:N}=x===zT.Polkadot?Vy.DOT:Vy.FLIP;return D1(T,N)||D1(T,Vy.GENERIC.prefix)};var X2=k(()=>{sx();k1()});var A1={};yy(A1,{substrateValidateAddress:()=>OX,isKeyringPair:()=>YT,getSubstrateToolbox:()=>WX,createSubstrateToolbox:()=>l1,createKeyring:()=>P1,SubstrateNetwork:()=>Vy,PolkadotToolbox:()=>f2,ChainflipToolbox:()=>x2,BaseSubstrateToolbox:()=>L2});var F1=k(()=>{X2();k1()});import{AssetValue as EX,Chain as V,CosmosChains as Z2,EVMChains as V1,FeeOption as kX,SubstrateChains as DX,SwapKitError as PX,UTXOChains as J2}from"@swapkit/helpers";async function V4(){let{match:T}=await import("ts-pattern"),{evmValidateAddress:x}=await Promise.resolve().then(() => (_5(),X5)),{getCardanoAddressValidator:N}=await Promise.resolve().then(() => (_0(),X0)),{getCosmosValidateAddress:y}=await Promise.resolve().then(() => (Cf(),wf)),{getSolanaAddressValidator:f}=await Promise.resolve().then(() => (K0(),$0)),{getSuiAddressValidator:G}=await Promise.resolve().then(() => (kf(),Ef)),{getTONAddressValidator:L}=await Promise.resolve().then(() => (Pf(),Df)),{getTronAddressValidator:X}=await Promise.resolve().then(() => (p0(),o0)),{getUTXOAddressValidator:_}=await Promise.resolve().then(() => (x1(),f1)),{getValidateNearAddress:Z}=await Promise.resolve().then(() => (U1(),H1)),{radixValidateAddress:q}=await Promise.resolve().then(() => (R1(),I1)),{rippleValidateAddress:Q}=await Promise.resolve().then(() => (E1(),O1)),{substrateValidateAddress:J}=await Promise.resolve().then(() => (F1(),A1)),B=await N(),Y=await Z(),W=await f(),M=await G(),I=await L(),O=await X(),l=await _();return function({address:F,chain:j}){return T(j).with(...V1,()=>x({address:F})).with(...J2,()=>l({address:F,chain:j})).with(V.Cosmos,V.Kujira,V.Noble,V.Maya,V.THORChain,(Gy)=>{return y(Gy)(F)}).with(V.Chainflip,V.Polkadot,()=>J({address:F,chain:j})).with(V.Radix,()=>q(F)).with(V.Near,()=>Y(F)).with(V.Ripple,()=>Q(F)).with(V.Solana,()=>W(F)).with(V.Sui,()=>M(F)).with(V.Ton,()=>I(F)).with(V.Tron,()=>O(F)).with(V.Cardano,()=>B(F)).otherwise(()=>!1)}}function $4(T){return async function(N){let{match:y}=await import("ts-pattern");return y(T).returnType().with(...V1,async(f)=>{let G=await _2(f),L=await G.createTransaction(N);return G.estimateTransactionFee({...L,chain:f,feeOption:N.feeOptionKey||kX.Fast})}).with(V.Bitcoin,V.BitcoinCash,V.Dogecoin,V.Dash,V.Litecoin,V.Polkadot,V.Solana,V.Ripple,V.Tron,V.Near,V.Cardano,async(f)=>{return(await _2(f)).estimateTransactionFee(N)}).with(V.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (kf(),Ef));return(await f()).estimateTransactionFee(N)}).with(V.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (Pf(),Df));return(await f()).estimateTransactionFee()}).with(...Z2,async()=>{let{estimateTransactionFee:f}=await Promise.resolve().then(() => (Cf(),wf));return f(N)}).otherwise(async()=>EX.from({chain:T}))}}async function _2(T,x){let{match:N}=await import("ts-pattern");return N(T).returnType().with(...V1,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (N0(),G5));return await y(T,x)}).with(...J2,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (x1(),f1));return await y(T,x)}).with(...Z2,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (Cf(),wf));return await y(T,x)}).with(...DX,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (F1(),A1));return await y(T,x)}).with(V.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (R1(),I1));return await y(x)}).with(V.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (E1(),O1));return await y(x)}).with(V.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (K0(),$0));return await y(x)}).with(V.Sui,async()=>{let{getSuiToolbox:y}=await Promise.resolve().then(() => (kf(),Ef));return await y(x)}).with(V.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (p0(),o0));return await y(x)}).with(V.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (U1(),H1));return await y(x)}).with(V.Cardano,async()=>{let{getCardanoToolbox:y}=await Promise.resolve().then(() => (_0(),X0));return await y(x)}).with(V.Ton,async()=>{let{getTONToolbox:y}=await Promise.resolve().then(() => (Pf(),Df));return await y(x)}).otherwise(()=>{throw new PX("toolbox_not_supported",{chain:T})})}export{_2 as getToolbox,$4 as getFeeEstimator,V4 as getAddressValidator};
3
-
4
- //# debugId=3B2C05ACE1C7EE3264756E2164756E21
5
- //# sourceMappingURL=index.js.map
1
+ var EX=Object.defineProperty;var nX=(f)=>f;function VX(f,y){this[f]=nX.bind(null,y)}var fT=(f,y)=>{for(var G in y)EX(f,G,{get:y[G],enumerable:!0,configurable:!0,set:VX.bind(y,G)})};var S=(f,y)=>()=>(f&&(y=f(f=0)),y);var P=((f)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(f,{get:(y,G)=>(typeof require<"u"?require:y)[G]}):f)(function(f){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+f+'" is not supported')});import{AssetValue as bf,Chain as xT,derivationPathToString as vX,getChainConfig as hy,getRPCUrlSync as a5,NetworkDerivationPath as oX,SwapKitError as yT}from"@swapkit/helpers";import{match as s5,P as my}from"ts-pattern";function Lf(f){if(!f||typeof f!=="string"||!f.startsWith("0x"))return!1;let y=f.slice(2);if(y.length===0||y.length>64)return!1;return KX.test(y)}function e5({derivationPath:f,provider:y,...G}={}){let T,_=vX(f||oX[xT.Aptos],{allHardened:!0});async function X(){if(T)return T;return T=await s5(G).with({phrase:my.string},async({phrase:z})=>{let{Ed25519Account:B}=await import("@aptos-labs/ts-sdk");return B.fromDerivationPath({mnemonic:z,path:_})}).with({signer:my.any},({signer:z})=>z).otherwise(()=>{return}),T}async function W(){let{Aptos:z,AptosConfig:B}=await import("@aptos-labs/ts-sdk"),k=new B({fullnode:y||a5(xT.Aptos)});return new z(k)}async function Z(){return(await X())?.accountAddress.toString()||""}async function J(z){let B=z||await Z();if(!B)throw new yT("toolbox_aptos_address_required");let{baseDecimal:k,chain:H}=hy(xT.Aptos);try{let F=await W(),w=await F.getAccountAPTAmount({accountAddress:B}),Y=[bf.from({chain:H,fromBaseDecimal:k,value:w.toString()})],q=await F.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:B}}}});for(let D of q){if(D.asset_type===eT.COIN_TYPE||Number(D.amount)<=0)continue;let R=D.asset_type;if(R){let C=("metadata"in D&&typeof D.metadata==="object"&&D.metadata!==null?D.metadata:void 0)?.decimals??k;Y.push(bf.from({asset:`${xT.Aptos}.APT-${R}`,fromBaseDecimal:C,value:String(D.amount)}))}}return Y}catch{return[bf.from({chain:H})]}}async function Q(z){if(!z){let{baseDecimal:q}=hy(xT.Aptos),D=y||a5(xT.Aptos),R=await fetch(`${D}/estimate_gas_price`),{gas_estimate:$}=await R.json();return bf.from({chain:xT.Aptos,fromBaseDecimal:q,value:String($)})}let B=await X();if(!B)throw new yT("toolbox_aptos_no_signer");let k=await L(z),H=await W(),[F]=await H.transaction.simulate.simple({signerPublicKey:B.publicKey,transaction:k});if(!F)throw new yT("toolbox_aptos_transaction_creation_error");let w=BigInt(F.gas_used)*BigInt(F.gas_unit_price),{baseDecimal:Y}=hy(xT.Aptos);return bf.from({chain:xT.Aptos,fromBaseDecimal:Y,value:w.toString()})}async function L({recipient:z,assetValue:B,maxGasAmount:k,sender:H}){if(!Lf(z))throw new yT("core_transaction_invalid_recipient_address");let F=H||await Z();if(!F)throw new yT("toolbox_aptos_no_sender");let{AccountAddress:w}=await import("@aptos-labs/ts-sdk"),Y=await W(),q=w.from(F);try{let D=B.isGasAsset?eT.TRANSFER:eT.FUNGIBLE_STORE_TRANSFER,R=s5({address:B?.address,isGasAsset:B.isGasAsset}).with({isGasAsset:!0},()=>[w.from(z),B.getBaseValue("bigint")]).with({address:my.string},({address:$})=>[w.from($),w.from(z),B.getBaseValue("bigint")]).otherwise(()=>null);if(!R)throw new yT("toolbox_aptos_missing_asset_type");return Y.transaction.build.simple({data:{function:D,functionArguments:R,typeArguments:B.isGasAsset?[]:[eT.FUNGIBLE_ASSET_METADATA]},options:k?{maxGasAmount:k}:void 0,sender:q})}catch(D){if(D instanceof yT)throw D;throw new yT("toolbox_aptos_transaction_creation_error",D)}}async function O(z){let B=await X();if(!B)throw new yT("toolbox_aptos_no_signer");return(await W()).transaction.sign({signer:B,transaction:z})}async function U({assetValue:z,maxGasAmount:B,recipient:k}){let H=await X();if(!H)throw new yT("toolbox_aptos_no_signer");if(!Lf(k))throw new yT("core_transaction_invalid_recipient_address");try{let F=H.accountAddress.toString(),w=await L({assetValue:z,maxGasAmount:B,recipient:k,sender:F});return(await(await W()).signAndSubmitTransaction({signer:H,transaction:w})).hash}catch(F){if(F instanceof yT)throw F;throw new yT("toolbox_aptos_transaction_creation_error",F)}}async function M({senderAuthenticator:z,transaction:B}){try{return(await(await W()).transaction.submit.simple({senderAuthenticator:z,transaction:B})).hash}catch(k){throw new yT("toolbox_aptos_broadcast_error",k)}}async function N(z){let B=await O(z);return M({senderAuthenticator:B,transaction:z})}return{broadcastTransaction:M,createTransaction:L,estimateTransactionFee:Q,getAddress:Z,getBalance:J,signAndBroadcastTransaction:N,signTransaction:O,transfer:U,validateAddress:Lf}}function T_({provider:f}){return async function({assetValue:G,recipient:T}){if(!Lf(T))throw new yT("core_transaction_invalid_recipient_address");let{AccountAddress:_}=await import("@aptos-labs/ts-sdk");if(G.isGasAsset)return(await f.signAndSubmitTransaction({arguments:[_.from(T).toString(),G.getBaseValue("string")],function:eT.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let X=G.address;if(!X)throw new yT("toolbox_aptos_missing_asset_type");return(await f.signAndSubmitTransaction({arguments:[X,_.from(T).toString(),G.getBaseValue("string")],function:eT.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[eT.FUNGIBLE_ASSET_METADATA]})).hash}}var eT,KX;var f_=S(()=>{eT={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"},KX=/^[0-9a-fA-F]+$/});var D0={};fT(D0,{validateAptosAddress:()=>Lf,getAptosToolbox:()=>e5,createAptosExtensionTransfer:()=>T_});var O0=S(()=>{f_()});import{AssetValue as y_,getChainConfig as jX}from"@swapkit/helpers";import{SwapKitApi as bX}from"@swapkit/helpers/api";function __(){function f(){let y=Date.now(),G=py||y;return py=G,y>py?y:G+1}return lX+f().toString(36)}function UT(f){return async function(G,T=!0){let _=await bX.getChainBalance({address:G,chain:f,scamFilter:T}),{baseDecimal:X}=jX(f),W=_.map(({identifier:J,value:Q,decimal:L})=>{return new y_({decimal:L||X,identifier:J,value:Q})});if(!W.some((J)=>J.isGasAsset))return[y_.from({chain:f}),...W];return W}}var lX,py=0;var bT=S(()=>{lX=typeof process<"u"&&process.pid?process.pid.toString(36):""});function lf(f){return{getBalance:UT(f)}}function uX(f){return f}var H0=S(()=>{bT()});import{Chain as c,getChainConfig as iy,getRPCUrl as hX,SwapKitError as R0}from"@swapkit/helpers";import{getAddress as X_,Interface as mX,JsonRpcProvider as pX}from"ethers";import{match as W_}from"ts-pattern";function Z_(f){return new pX(f)}async function dy(f,y){return Z_(y||await hX(f))}function uf(f){return f>0n?`0x${f.toString(16)}`:"0x0"}function ry(f){let{explorerUrl:y,chainIdHex:G,rpcUrls:T}=iy(f);return function(){return f!==c.Ethereum?{...tX({chain:f}),blockExplorerUrls:[y],chainId:G,rpcUrls:T}:void 0}}function ay(f){return![c.Adi,c.Arbitrum,c.BinanceSmartChain].includes(f)}function tX({chain:f}){let{name:y,nativeCurrency:G,baseDecimal:T}=iy(f);return W_(f).with(c.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:T,name:"Ethereum",symbol:c.Ethereum}})).with(c.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:T,name:"Ethereum",symbol:c.Ethereum}})).with(c.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:T,name:"Avalanche",symbol:f}})).with(c.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:T,name:"Ethereum",symbol:c.Ethereum}})).with(c.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:T,name:"Berachain",symbol:"BERA"}})).with(c.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:T,name:"OKB",symbol:"OKB"}})).with(c.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:T,name:"Binance Coin",symbol:"BNB"}})).with(c.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:T,name:"xDAI",symbol:"XDAI"}})).with(c.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:T,name:"Ethereum",symbol:c.Ethereum}})).with(c.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:T,name:"Polygon",symbol:c.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:T,name:G,symbol:G}}))}async function sy(f,y){if(!("authorize"in f))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let G={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await f.authorize(G)}function J_(f,y){let G=y!==void 0?`index ${y}: `:"",T=(_,X)=>{throw new R0({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:_,message:`${G}${X}`}})};W_(f).when(({chainId:_})=>typeof _!=="bigint",()=>T("chainId","chainId must be a bigint")).when(({address:_})=>!cX(_),()=>T("address","address must be a valid checksummed address")).when(({nonce:_})=>typeof _!=="bigint"||_<0n,()=>T("nonce","nonce must be a non-negative bigint")).when(({signature:_})=>!_,()=>T("signature","signature is required")).when(({signature:_})=>typeof _?.yParity!=="number"||![0,1].includes(_.yParity),()=>T("signature.yParity","yParity must be 0 or 1")).when(({signature:_})=>!G_(_?.r),()=>T("signature.r","r must be a 32-byte hex string")).when(({signature:_})=>!G_(_?.s),()=>T("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function Q_(f){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>f[y]!=null).map(({key:y,type:G})=>({name:y,type:G}))}function ty(f){return f.charAt(0).toUpperCase()+f.slice(1)}function cy(f,y){if(f.isTuple()&&f.components){let G=ty(f.name);return y[G]=f.components.map((T)=>({name:T.name,type:cy(T,y)})),G}if(f.isArray()){let G=f.arrayChildren;if(G?.isTuple()&&G.components){let T=ty(f.name.replace(/s$/,""));return y[T]=G.components.map((_)=>({name:_.name,type:cy(_,y)})),`${T}[]`}return`${G?.type??"bytes"}[]`}return f.type}function gy(f,y){if(typeof f==="bigint")return f;if(y?.isTuple()&&typeof f?.toObject==="function"){let G=f.toObject(),T={};for(let[_,X]of(y.components??[]).entries())T[X.name]=gy(G[X.name]??f[_],X);return T}if(Array.isArray(f)){let G=y?.arrayChildren;return f.map((T)=>gy(T,G??void 0))}return f}function gX({chain:f,abi:y,data:G,to:T}){let X=new mX(y).parseTransaction({data:G});if(!X)throw new R0({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let W={},Z=ty(X.name);W[Z]=X.fragment.inputs.map((U)=>({name:U.name,type:cy(U,W)}));let J={};for(let[U,M]of X.fragment.inputs.entries())J[M.name]=gy(X.args[U],M);let{chainId:Q}=iy(f),L={chainId:Number(Q),verifyingContract:X_(T)},O=Q_(L);return{domain:L,message:J,primaryType:Z,types:{EIP712Domain:O,...W}}}function ey(f,y){if(!Array.isArray(f)||f.length===0)throw new R0({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[G,T]of f.entries())if(J_(T,G),y!==void 0&&T.chainId!==y)throw new R0({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${G}: authorization chainId (${T.chainId}) does not match transaction chainId (${y})`}})}var G_=(f)=>typeof f==="string"&&/^0x[a-fA-F0-9]{64}$/.test(f),cX=(f)=>{try{return typeof f==="string"&&!!X_(f)}catch{return!1}};var hf=()=>{};var Y_;var q_=S(()=>{Y_=[{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 iX,applyFeeMultiplierToBigInt as MT,Chain as OT,EVMChains as dX,FeeOption as l,isGasAsset as rX,SwapKitError as m,SwapKitNumber as C0}from"@swapkit/helpers";import{erc20ABI as mf}from"@swapkit/helpers/contracts";import{BrowserProvider as aX,Contract as L_,getAddress as F0,Interface as z_}from"ethers";import{match as N_}from"ts-pattern";function zf({chain:f=OT.Ethereum,provider:y,signer:G,isEIP1559Compatible:T=!0}){return{approve:y6({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),approvedAmount:B_({chain:f,provider:y}),broadcastTransaction:y.broadcastTransaction,call:X1({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),createApprovalTx:W6({chain:f,provider:y,signer:G}),createContract:y1({chain:f,provider:y}),createContractTxObject:Tf({chain:f,provider:y}),createTransaction:T1({chain:f,provider:y,signer:G}),createTransferTx:T1({chain:f,provider:y,signer:G}),EIP1193SendTransaction:Uf(y),estimateCall:w_({provider:y,signer:G}),estimateGasLimit:G6({chain:f,provider:y,signer:G}),estimateGasPrices:ff({chain:f,isEIP1559Compatible:T,provider:y}),estimateTransactionFee:Z6({chain:f,isEIP1559Compatible:T,provider:y}),getAddress:()=>{return G?G.getAddress():void 0},getBalance:lf(f).getBalance,getNetworkParams:ry(f),isApproved:f6({chain:f,provider:y}),sendTransaction:D_({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),signAuthorization:X6({signer:G}),signMessage:G?(_)=>G.signMessage(_):void 0,signTypedData:G?({domain:_,types:X,value:W})=>G.signTypedData(_,X,W):void 0,transfer:_6({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),validateAddress:f1}}function f1(f){try{return F0(f),!0}catch{return!1}}function Nf(f){return f instanceof aX}function tf(f,y,G){return new L_(f,z_.from(y),G)}function y1({provider:f}){return function(G,T){return new L_(G,z_.from(T),f)}}function _1({abi:f,funcName:y}){let G=f.find((T)=>T.name===y);if(!G)throw new m("toolbox_evm_no_abi_fragment",{funcName:y});return G.stateMutability&&sX.includes(G.stateMutability)}function U_(f){return F0(f)}function Uf(f){return function({value:G,...T}){if(!Nf(f))throw new m("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:_,gasPrice:X,maxFeePerGas:W,maxPriorityFeePerGas:Z,...J}=T;return f.send("eth_sendTransaction",[{...J,value:uf(BigInt(G||0))}])}}function M_(f,y){let G=Mf(f,y);if(G)return F0(G.toLowerCase());throw new m("toolbox_evm_invalid_gas_asset_address")}function Mf({chain:f,symbol:y,ticker:G},T){try{let _=f===OT.BinanceSmartChain&&y==="BNB"&&G==="BNB",X=f===OT.Hyperevm&&y==="HYPE"&&G==="HYPE",W=f===T&&y===T&&G===T,Z=T6.includes(f)&&y==="ETH"&&G==="ETH";if(W||_||X||Z)return G1[T];return F0(y.slice(G.length+1).replace(/^0X/,""))}catch{return null}}function Tf({provider:f}){return async({contractAddress:y,abi:G,funcName:T,funcParams:_=[],txOverrides:X})=>tf(y,G,f).getFunction(T).populateTransaction(..._.concat(X).filter((W)=>typeof W<"u"))}function ff({chain:f,provider:y,isEIP1559Compatible:G=!0}){return N_(f).with(OT.Gnosis,()=>{return async function(){try{let{gasPrice:_,maxPriorityFeePerGas:X}=await y.getFeeData();if(!_||X===null)throw new m("toolbox_evm_no_fee_data");return{[l.Average]:{maxFeePerGas:MT(_,l.Average),maxPriorityFeePerGas:MT(X,l.Average)},[l.Fast]:{maxFeePerGas:MT(_,l.Fast),maxPriorityFeePerGas:MT(X,l.Fast)},[l.Fastest]:{maxFeePerGas:MT(_,l.Fastest),maxPriorityFeePerGas:MT(X,l.Fastest)}}}catch(_){throw new m("toolbox_evm_gas_estimation_error",{error:_.msg??_.toString()})}}}).with(OT.Arbitrum,()=>{return async function(){try{let{gasPrice:_}=await y.getFeeData();if(!_)throw new m("toolbox_evm_no_fee_data");return{[l.Average]:{gasPrice:_},[l.Fast]:{gasPrice:_},[l.Fastest]:{gasPrice:_}}}catch(_){throw new m("toolbox_evm_gas_estimation_error",{error:_.msg??_.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:_,maxPriorityFeePerGas:X,gasPrice:W}=await y.getFeeData();if(G){if(_===null||X===null)throw new m("toolbox_evm_no_fee_data");return{[l.Average]:{maxFeePerGas:_,maxPriorityFeePerGas:X},[l.Fast]:{maxFeePerGas:MT(_,l.Fast),maxPriorityFeePerGas:MT(X,l.Fast)},[l.Fastest]:{maxFeePerGas:MT(_,l.Fastest),maxPriorityFeePerGas:MT(X,l.Fastest)}}}if(!W)throw new m("toolbox_evm_no_gas_price");return{[l.Average]:{gasPrice:W},[l.Fast]:{gasPrice:MT(W,l.Fast)},[l.Fastest]:{gasPrice:MT(W,l.Fastest)}}}catch(_){throw new m("toolbox_evm_gas_estimation_error",{error:_.msg??_.toString()})}}})}function X1({provider:f,isEIP1559Compatible:y,signer:G,chain:T}){return async function({callProvider:X,contractAddress:W,abi:Z,funcName:J,funcParams:Q=[],txOverrides:L={},feeOption:O=l.Fast}){let U=X||f;if(!W)throw new m("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let M=_1({abi:Z,funcName:J});if(M&&Nf(U)&&G){let B=Tf({chain:T,provider:U}),k=L?.from||await G?.getAddress(),H=await B({abi:Z,contractAddress:W,funcName:J,funcParams:Q,txOverrides:{...L,from:k}});return Uf(U)(H)}let N=tf(W,Z,U);if(M){if(!G)throw new m("toolbox_evm_no_signer");let B=L?.from||await G.getAddress();if(!B)throw new m("toolbox_evm_no_signer_address");let k=N.connect(G),H=ff({chain:T,isEIP1559Compatible:y,provider:f}),{maxFeePerGas:F,maxPriorityFeePerGas:w,gasPrice:Y}=(await H())[O],q=await N.getFunction(J).estimateGas(...Q,L),D=await k[J](...Q,{...L,gasLimit:q,gasPrice:Y,maxFeePerGas:F,maxPriorityFeePerGas:w,nonce:L?.nonce||await U.getTransactionCount(B)});return typeof D?.hash==="string"?D?.hash:D}let z=await N[J]?.(...Q);return typeof z?.hash==="string"?z?.hash:z}}function B_({provider:f,chain:y}){return function({assetAddress:T,spenderAddress:_,from:X}){return X1({chain:y,isEIP1559Compatible:!0,provider:f})({abi:mf,contractAddress:T,funcName:"allowance",funcParams:[X,_]})}}function f6({provider:f,chain:y}){return async function({assetAddress:T,spenderAddress:_,from:X,amount:W=pf}){let Z=await B_({chain:y,provider:f})({assetAddress:T,from:X,spenderAddress:_});return C0.fromBigInt(Z).gte(C0.fromBigInt(BigInt(W)))}}function y6({signer:f,isEIP1559Compatible:y=!0,provider:G,chain:T}){return async function({assetAddress:X,spenderAddress:W,feeOptionKey:Z=l.Fast,amount:J,gasLimitFallback:Q,from:L,nonce:O}){let U=[W,BigInt(J||pf)],M=await f?.getAddress()||L,N={abi:mf,contractAddress:X,funcName:"approve",funcParams:U,signer:f,txOverrides:{from:M}};if(Nf(G)){let B=Tf({chain:T,provider:G}),k=Uf(G),H=await B(N);return k(H)}return X1({chain:T,isEIP1559Compatible:y,provider:G,signer:f})({...N,feeOption:Z,funcParams:U,txOverrides:{from:M,gasLimit:Q?BigInt(Q.toString()):void 0,nonce:O}})}}function _6({signer:f,isEIP1559Compatible:y=!0,provider:G}){return async function({assetValue:_,memo:X,recipient:W,feeOptionKey:Z=l.Fast,sender:J,...Q}){let{hexlify:L,toUtf8Bytes:O}=await import("ethers"),U=_.getBaseValue("bigint"),M=_.chain,N=J||await f?.getAddress(),z=D_({chain:M,isEIP1559Compatible:y,provider:G,signer:f});if(!N)throw new m("toolbox_evm_no_from_address");if(_.isGasAsset){let Y={...Q,data:L(O(X||"")),feeOptionKey:Z,from:N,to:W,value:U};return z(Y)}if(!Mf(_,M))throw new m("toolbox_evm_no_contract_address");let{maxFeePerGas:k,maxPriorityFeePerGas:H,gasPrice:F}=(await ff({chain:M,isEIP1559Compatible:y,provider:G})())[Z],w=await T1({chain:M,provider:G,signer:f})({assetValue:_,data:L(O(X||"")),gasPrice:F,maxFeePerGas:k,maxPriorityFeePerGas:H,memo:X,recipient:W,sender:N});return z(w)}}function w_({provider:f,signer:y}){return function({contractAddress:T,abi:_,funcName:X,funcParams:W=[],txOverrides:Z}){if(!T)throw new m("toolbox_evm_no_contract_address");let J=tf(T,_,f);return y?J.connect(y).getFunction(X).estimateGas(...W,Z):J.getFunction(X).estimateGas(...W,Z)}}function G6({provider:f,signer:y}){return async function({assetValue:T,recipient:_,memo:X,data:W,sender:Z,funcName:J,funcParams:Q,txOverrides:L}){let O=T.bigIntValue,U=T.isGasAsset?null:Mf(T,T.chain);if(U&&J)return w_({provider:f,signer:y})({abi:mf,contractAddress:U,funcName:J,funcParams:Q,txOverrides:L});let{hexlify:M,toUtf8Bytes:N}=await import("ethers");return f.estimateGas({data:W?W:X?M(N(X)):void 0,from:Z,to:_,value:O})}}function X6({signer:f}){if(!f)return;return(y)=>sy(f,y)}function D_({provider:f,signer:y,isEIP1559Compatible:G=!0,chain:T}){return async function({feeOptionKey:X=l.Fast,...W}){let{from:Z,to:J,data:Q,value:L,...O}=W;if(!y)throw new m("toolbox_evm_no_signer");if(!J)throw new m("toolbox_evm_no_to_address");let U={...O,data:Q||"0x",from:Z,to:J,value:BigInt(L||0)};if(Nf(f))return Uf(f)(U);let M=Z||await y.getAddress(),N=W.nonce||await f.getTransactionCount(M),z=(await f.getNetwork()).chainId,B=Z1(U,G);if(B==="eip7702")ey(U.authorizations||[],z);let k=N_(B).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),H={...U,chainId:z,nonce:N,type:k,...B==="eip7702"&&{authorizationList:U.authorizations}},F=ff({chain:T,isEIP1559Compatible:G,provider:f}),Y=B!=="legacy"&&!(U.maxFeePerGas&&U.maxPriorityFeePerGas)||!U.gasPrice?Object.entries((await F())[X]).reduce((D,[R,$])=>({...D,[R]:uf(BigInt($))}),{}):{},q;try{q=uf(U.gasLimit||await f.estimateGas(H)*11n/10n)}catch(D){throw new m("toolbox_evm_error_estimating_gas_limit",{error:D})}try{let D={...H,gasLimit:q,...Y};try{return(await y.sendTransaction(D)).hash}catch{let R=await y.signTransaction({...D,from:M});return(await f.broadcastTransaction(R)).hash}}catch(D){throw new m("toolbox_evm_error_sending_transaction",{error:D})}}}function T1({provider:f,signer:y}){return async function({assetValue:T,memo:_,recipient:X,data:W,sender:Z,maxFeePerGas:J,maxPriorityFeePerGas:Q,gasPrice:L,...O}){let U=T.getBaseValue("bigint"),M=T.chain,N=Z||await y?.getAddress();if(!N)throw new m("toolbox_evm_no_from_address");if(rX(T)){let{hexlify:k,toUtf8Bytes:H}=await import("ethers");return{...O,data:W||k(H(_||"")),from:N,to:X,value:U}}let z=Mf(T,M);if(!z)throw new m("toolbox_evm_no_contract_address");return Tf({chain:T.chain,provider:f})({abi:mf,contractAddress:z,funcName:"transfer",funcParams:[X,U],txOverrides:{from:N,gasPrice:L,maxFeePerGas:J,maxPriorityFeePerGas:Q}})}}function W6({provider:f,signer:y,chain:G}){return async function({assetAddress:_,spenderAddress:X,amount:W,from:Z}){let J=await y?.getAddress()||Z,Q=Tf({chain:G,provider:f}),L=["bigint","number"].includes(typeof W)?W:W||pf;return await Q({abi:mf,contractAddress:_,funcName:"approve",funcParams:[X,BigInt(L)],txOverrides:{from:J}})}}function Z6({provider:f,isEIP1559Compatible:y=!0,chain:G}){return async function({feeOption:_=l.Fast,...X}){let Z=await ff({chain:G,isEIP1559Compatible:y,provider:f})(),J=await f.estimateGas(X),Q=iX.from({chain:G}),{gasPrice:L,maxFeePerGas:O,maxPriorityFeePerGas:U}=Z[_];if(!y&&L)return Q.set(C0.fromBigInt(L*J,Q.decimal));if(O&&U){let M=(O+U)*J;return Q.set(C0.fromBigInt(M,Q.decimal))}throw new m("toolbox_evm_no_gas_price")}}var pf,sX,eX,G1,T6,k0=(f)=>f.type===4||(f.authorizations?.length??0)>0,W1=(f)=>!k0(f)&&(f.type===2||!!f.maxFeePerGas||!!f.maxPriorityFeePerGas),Z1=(f,y=!0)=>{if(k0(f))return"eip7702";if(W1(f)||y)return"eip1559";return"legacy"};var $0=S(()=>{H0();hf();pf=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");sX=["payable","nonpayable"];eX=dX.reduce((f,y)=>{return f[y]="0x0000000000000000000000000000000000000000",f},{}),G1={...eX,[OT.Optimism]:"0x4200000000000000000000000000000000000042",[OT.Polygon]:"0x0000000000000000000000000000000000001010"},T6=[OT.Arbitrum,OT.Aurora,OT.Base,OT.Optimism]});import{Chain as i,FeeOption as J6}from"@swapkit/helpers";import{HDNodeWallet as Q6}from"ethers";import{match as Y6,P as O_}from"ts-pattern";function I0(f){let y=d(i.Ethereum)(f);async function G(T,_="0x5ba1e12693dc8f9c48aad8770482f4739beed696",X="aggregate",W=J6.Fast){let Z=await y.createContractTxObject({abi:Y_,contractAddress:_,funcName:X,funcParams:[T]});return y.sendTransaction({...Z,feeOptionKey:W})}return{...y,multicall:G}}function d(f){return function({provider:G,...T}){let _=ay(f),X=Y6(T).with({phrase:O_.string},({phrase:Z})=>Q6.fromPhrase(Z).connect(G)).with({signer:O_.any},({signer:Z})=>Z).otherwise(()=>{return});return zf({chain:f,isEIP1559Compatible:_,provider:G,signer:X})}}var A0,P0,x0,S0,E0,n0,V0,H_,v0,o0,K0,j0,b0,l0,cf,u0,h0,m0,p0;var J1=S(()=>{q_();hf();$0();A0=d(i.Adi),P0=d(i.Arbitrum),x0=d(i.Aurora),S0=d(i.Avalanche),E0=d(i.Base),n0=d(i.Berachain),V0=d(i.BinanceSmartChain),H_=d(i.Botanix),v0=d(i.Core),o0=d(i.Corn),K0=d(i.Cronos),j0=d(i.Gnosis),b0=d(i.Hyperevm),l0=d(i.Polygon),cf=d(i.Sonic),u0=d(i.Unichain),h0=d(i.XLayer),m0=d(i.Monad),p0=d(i.MegaETH)});var R_;var C_=S(()=>{R_=[{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 Bf,Chain as L6,FeeOption as ST,SwapKitError as Q1}from"@swapkit/helpers";import{Contract as z6,HDNodeWallet as N6}from"ethers";import{match as U6,P as F_}from"ts-pattern";function Y1(f){return new z6(M6,R_,f)}function k_(f){return async function(){let G=Y1(f);if(G&&"l1BaseFee"in G)return await G?.l1BaseFee();return}}function $_(f){return async function({from:G,to:T,nonce:_,...X}){let{Transaction:W}=await import("ethers");if(!T)throw new Q1("toolbox_evm_invalid_transaction",{error:"Missing to address"});return W.from({...X,authorizationList:X.authorizationList,nonce:_?_:G?await f.getTransactionCount(G):0,to:T}).serialized}}function I_(f){return async function(G){let T=Y1(f),_=await $_(f)(G);if(T&&"getL1Fee"in T)return T.getL1Fee(_)}}function A_(f){return async function(G){let _=(await f.getFeeData()).gasPrice??0n,X=await f.estimateGas(G);return _*X}}function B6(f){return async function(G){let T=await I_(f)(G)??0n,_=await A_(f)(G);return T+_}}function w6(f){return async function(G){let T=Y1(f),_=await $_(f)(G);if(T&&"getL1GasUsed"in T)return T.getL1GasUsed(_)}}function D6(f){return async function(){try{let{maxFeePerGas:G,maxPriorityFeePerGas:T,gasPrice:_}=await f.getFeeData(),X=await k_(f)(),W=_;if(!(G&&T))throw new Q1("toolbox_evm_no_fee_data");return{[ST.Average]:{gasPrice:W,l1GasPrice:X,maxFeePerGas:G,maxPriorityFeePerGas:T},[ST.Fast]:{gasPrice:Bf(W,ST.Fast),l1GasPrice:Bf(X||0n,ST.Fast),maxFeePerGas:G,maxPriorityFeePerGas:Bf(T,ST.Fast)},[ST.Fastest]:{gasPrice:Bf(W,ST.Fastest),l1GasPrice:Bf(X||0n,ST.Fastest),maxFeePerGas:G,maxPriorityFeePerGas:Bf(T,ST.Fastest)}}}catch(G){throw new Q1("toolbox_evm_gas_estimation_error",{error:G.msg??G.toString()})}}}function t0({provider:f,...y}){let G=U6(y).with({phrase:F_.string},({phrase:X})=>N6.fromPhrase(X).connect(f)).with({signer:F_.any},({signer:X})=>X).otherwise(()=>{return}),T=zf({provider:f,signer:G}),_=k_(f);return{...T,estimateGasPrices:D6(f),estimateL1Gas:w6(f),estimateL1GasCost:I_(f),estimateL2GasCost:A_(f),estimateTotalGasCost:B6(f),getBalance:lf(L6.Optimism).getBalance,getL1GasPrice:_}}var M6="0x420000000000000000000000000000000000000f";var q1=S(()=>{H0();C_();$0()});var x_={};fT(x_,{validateEVMAddress:()=>f1,toChecksumAddress:()=>U_,isStateChangingCall:()=>_1,isEIP7702Transaction:()=>k0,isEIP1559Transaction:()=>W1,isBrowserProvider:()=>Nf,getTokenAddress:()=>Mf,getEvmToolboxAsync:()=>P_,getEvmToolbox:()=>L1,getEstimateGasPrices:()=>ff,getEVMTxType:()=>Z1,getEIP1193SendTransaction:()=>Uf,getCreateContractTxObject:()=>Tf,getCreateContract:()=>y1,getChecksumAddressFromAsset:()=>M_,createContract:()=>tf,XLayerToolbox:()=>h0,UNIToolbox:()=>u0,SONICToolbox:()=>cf,OPToolbox:()=>t0,MONADToolbox:()=>m0,MEGAETHToolbox:()=>p0,MAX_APPROVAL:()=>pf,MATICToolbox:()=>l0,HYPEREVMToolbox:()=>b0,GNOToolbox:()=>j0,ETHToolbox:()=>I0,ContractAddress:()=>G1,CROToolbox:()=>K0,CORNToolbox:()=>o0,COREToolbox:()=>v0,BotanixToolbox:()=>H_,BaseEVMToolbox:()=>zf,BSCToolbox:()=>V0,BERAToolbox:()=>n0,BASEToolbox:()=>E0,AVAXToolbox:()=>S0,AURORAToolbox:()=>x0,ARBToolbox:()=>P0,ADIToolbox:()=>A0});import{Chain as g}from"@swapkit/helpers";import{match as O6}from"ts-pattern";function L1(f,y){return O6(f).with(g.Adi,()=>A0(y)).with(g.Arbitrum,()=>P0(y)).with(g.Aurora,()=>x0(y)).with(g.Avalanche,()=>S0(y)).with(g.Base,()=>E0(y)).with(g.Berachain,()=>n0(y)).with(g.BinanceSmartChain,()=>V0(y)).with(g.Botanix,()=>cf(y)).with(g.Core,()=>v0(y)).with(g.Corn,()=>o0(y)).with(g.Cronos,()=>K0(y)).with(g.Ethereum,()=>I0(y)).with(g.Gnosis,()=>j0(y)).with(g.Hyperevm,()=>b0(y)).with(g.Optimism,()=>t0(y)).with(g.Polygon,()=>l0(y)).with(g.Sonic,()=>cf(y)).with(g.Unichain,()=>u0(y)).with(g.XLayer,()=>h0(y)).with(g.Monad,()=>m0(y)).with(g.MegaETH,()=>p0(y)).exhaustive()}async function P_(f,y){let G={...y,provider:y?.provider||await dy(f)};return L1(f,G)}var z1=S(()=>{hf();J1();q1();$0();J1();q1()});var S_;var E_=S(()=>{((G)=>{G.Test="goerli";G.Main="homestead"})(S_||={})});var n_={};fT(n_,{validateEVMAddress:()=>f1,validateAuthorizations:()=>ey,validateAuthorization:()=>J_,toHexString:()=>uf,toChecksumAddress:()=>U_,signAuthorization:()=>sy,parseEIP712FromEVMTx:()=>gX,isStateChangingCall:()=>_1,isEIP7702Transaction:()=>k0,isEIP1559Transaction:()=>W1,isBrowserProvider:()=>Nf,getTokenAddress:()=>Mf,getProviderSync:()=>Z_,getProvider:()=>dy,getNetworkParams:()=>ry,getIsEIP1559Compatible:()=>ay,getEvmToolboxAsync:()=>P_,getEvmToolbox:()=>L1,getEvmApi:()=>lf,getEstimateGasPrices:()=>ff,getEVMTxType:()=>Z1,getEIP1193SendTransaction:()=>Uf,getCreateContractTxObject:()=>Tf,getCreateContract:()=>y1,getChecksumAddressFromAsset:()=>M_,createCustomEvmApi:()=>uX,createContract:()=>tf,buildEIP712DomainType:()=>Q_,XLayerToolbox:()=>h0,UNIToolbox:()=>u0,SONICToolbox:()=>cf,OPToolbox:()=>t0,MONADToolbox:()=>m0,MEGAETHToolbox:()=>p0,MAX_APPROVAL:()=>pf,MATICToolbox:()=>l0,HYPEREVMToolbox:()=>b0,GNOToolbox:()=>j0,EthNetwork:()=>S_,ETHToolbox:()=>I0,ContractAddress:()=>G1,CROToolbox:()=>K0,CORNToolbox:()=>o0,COREToolbox:()=>v0,BotanixToolbox:()=>H_,BaseEVMToolbox:()=>zf,BSCToolbox:()=>V0,BERAToolbox:()=>n0,BASEToolbox:()=>E0,AVAXToolbox:()=>S0,AURORAToolbox:()=>x0,ARBToolbox:()=>P0,ADIToolbox:()=>A0});var V_=S(()=>{H0();hf();z1();E_()});import{bech32 as H6}from"@scure/base";import{mnemonicToSeed as R6}from"@scure/bip39";import{Bip32PrivateKey as C6}from"@stricahq/bip32ed25519";import{Transaction as F6,types as M1,address as k6,crypto as N1,utils as v_}from"@stricahq/typhonjs";import{AssetValue as wf,Chain as yf,getChainConfig as $6,SwapKitError as gf}from"@swapkit/helpers";import LT from"bignumber.js";async function B1(f,y){let G=await fetch(`${b_}${f}`,{...y,headers:{project_id:j_,...y?.headers}});if(!G.ok)throw Error(`Blockfrost API error: ${G.status} ${G.statusText}`);return G.json()}async function l_(f){try{return await B1(`/addresses/${f}/utxos`)}catch{return[]}}async function A6(){return(await B1("/blocks/latest")).slot}async function P6(){let f=await B1("/epochs/latest/parameters"),y={PlutusScriptV1:f.cost_models.PlutusV1?Object.values(f.cost_models.PlutusV1):[],PlutusScriptV2:f.cost_models.PlutusV2?Object.values(f.cost_models.PlutusV2):[],PlutusScriptV3:f.cost_models.PlutusV3?Object.values(f.cost_models.PlutusV3):[]};return{collateralPercent:new LT(f.collateral_percent),languageView:y,lovelacePerUtxoWord:new LT(0),maxValueSize:Number.parseInt(f.max_val_size,10),minFeeA:new LT(f.min_fee_a),minFeeB:new LT(f.min_fee_b),minFeeRefScriptCostPerByte:new LT(15),priceMem:new LT(f.price_mem),priceSteps:new LT(f.price_step),stakeKeyDeposit:new LT(2000000),utxoCostPerByte:new LT(f.coins_per_utxo_size)}}async function K_(f){let y=await fetch(`${b_}/tx/submit`,{body:Buffer.from(f,"hex"),headers:{"Content-Type":"application/cbor",project_id:j_},method:"POST"});if(!y.ok){let G=await y.text();throw Error(`Transaction submission failed: ${G}`)}return y.json()}function x6(f,y){return f.map((G)=>{let T=G.amount.find((W)=>W.unit==="lovelace"),_=T?new LT(T.quantity):new LT(0),X=G.amount.filter((W)=>W.unit!=="lovelace").map((W)=>({amount:new LT(W.quantity),assetName:W.unit.slice(56),policyId:W.unit.slice(0,56)}));return{address:y,amount:_,index:G.output_index,tokens:X,txId:G.tx_hash}})}async function S6(f){try{let y=await l_(f),G=0n,T=new Map;for(let W of y){if(!W.amount||!Array.isArray(W.amount))continue;for(let Z of W.amount){let{unit:J,quantity:Q}=Z;if(J==="lovelace")G+=BigInt(Q);else{let L=T.get(J)||0n;T.set(J,L+BigInt(Q))}}}let _=[],{baseDecimal:X}=$6(yf.Cardano);if(G>0n)_.push(wf.from({chain:yf.Cardano,fromBaseDecimal:X,value:G.toString()}));for(let[W,Z]of T)_.push(wf.from({asset:`${yf.Cardano}.${W}`,value:Z.toString()}));if(_.length===0)return[wf.from({chain:yf.Cardano})];return _}catch(y){let G=y instanceof Error?y.message:String(y);return console.error(`Cardano balance fetch error: ${G}`),[wf.from({chain:yf.Cardano})]}}function u_(f){if(!f||typeof f!=="string")return!1;try{let y=H6.decode(f,120);return y.prefix==="addr"||y.prefix==="addr_test"}catch{return!1}}async function E6(f,y=0,G=0){let T=await R6(f,""),X=(await C6.fromEntropy(Buffer.from(T.slice(0,64)))).derive(U1+1852).derive(U1+1815).derive(U1+y),W=X.derive(0).derive(G),Z=W.toBip32PublicKey().toPublicKey().toBytes(),J=N1.hash28(Z),L=X.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),O=N1.hash28(L),U={hash:J,type:M1.HashType.ADDRESS},M={hash:O,type:M1.HashType.ADDRESS},z=new k6.BaseAddress(I6,U,M).getBech32(),B=W.toPrivateKey();return{getAddress:()=>z,publicKey:Z,publicKeyHash:J,signTransaction:async(k)=>{try{let H=await import("@stricahq/cbors"),F=Buffer.from(k,"hex"),w=H.Decoder.decode(F),[Y,q,D,R]=w.value,$=H.Encoder.encode(Y),C=N1.hash32($),I=B.sign(C),A=q instanceof Map?q:new Map,E=A.get(o_)||[];E.push([Z,I]),A.set(o_,E);let V=[Y,A,D,R];return H.Encoder.encode(V).toString("hex")}catch(H){throw new gf("toolbox_cardano_sign_transaction_failed",{message:String(H)})}}}}function n6(f){let y,G,T;async function _(){if(!T)T=await P6();return T}async function X(){if(y!==void 0)return y;if(f&&"phrase"in f&&f.phrase){let M=f.index??0;return y=await E6(f.phrase,0,M),y}if(f&&"signer"in f&&f.signer)return y=f.signer,y;return}async function W(){if(G)return G;let M=await X();if(!M)return"";if("getAddress"in M)return G=await M.getAddress(),G;return""}async function Z(M){let N=M||await W();if(!N)throw new gf("core_wallet_connection_not_found");return S6(N)}async function J(M){if(M)try{let{tx:k}=await Q(M),H=k.getFee();return wf.from({chain:yf.Cardano,fromBaseDecimal:6,value:H.toString()})}catch{}let N=await _(),z=400,B=N.minFeeB.plus(N.minFeeA.times(z));return wf.from({chain:yf.Cardano,fromBaseDecimal:6,value:B.toString()})}async function Q({sender:M="",recipient:N,assetValue:z,memo:B,pureLovelaceOnly:k=!1}){let H=M||await W();if(!H)throw new gf("core_wallet_connection_not_found");let[F,w,Y]=await Promise.all([l_(H),A6(),_()]),q=F.filter((j)=>k?j.amount.every((u)=>u.unit==="lovelace"):j.amount.some((u)=>u.unit==="lovelace")).sort((j,u)=>{let r=j.amount.some((TT)=>TT.unit!=="lovelace"),JT=u.amount.some((TT)=>TT.unit!=="lovelace");if(r===JT)return 0;return r?1:-1}),D=v_.getAddressFromString(H),R=v_.getAddressFromString(N),$=x6(q,D),C=new LT(z.getBaseValue("string")),I=[{address:R,amount:C,tokens:[]}],A;if(B){let j=new Map;j.set("msg",[B]),A={metadata:[{data:j,label:674}]}}let V=new F6({protocolParams:Y}).paymentTransaction({auxiliaryData:A,changeAddress:D,inputs:$,outputs:I,ttl:w+3600}),{payload:o}=V.buildTransaction();return{tx:V,unsignedTx:o}}async function L(M){let N=await X();if(!N||!("signTransaction"in N))throw new gf("core_wallet_connection_not_found");return N.signTransaction(M)}async function O({recipient:M,assetValue:N,memo:z}){let B=await X();if(!B||!("signTransaction"in B))throw new gf("core_wallet_connection_not_found");let{unsignedTx:k}=await Q({assetValue:N,memo:z,recipient:M,sender:await W()}),H=await L(k);return await K_(H)}async function U(M){let N=await L(M);return await K_(N)}return{createTransaction:Q,estimateTransactionFee:J,getAddress:W,getBalance:Z,signAndBroadcastTransaction:U,signTransaction:L,transfer:O,validateAddress:u_}}var j_="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",b_="https://cardano-mainnet.blockfrost.io/api/v0",I6,U1=2147483648,o_=0;var h_=S(()=>{I6=M1.NetworkId.MAINNET});var w1={};fT(w1,{validateCardanoAddress:()=>u_,getCardanoToolbox:()=>n6});var D1=S(()=>{h_()});import{base64 as g0,bech32 as c0}from"@scure/base";import{SwapKitError as V6}from"@swapkit/helpers";function df(f){return g0.encode(Uint8Array.from(c0.fromWords(c0.decode(f).words)))}function rf(f,y="thor"){return c0.encode(y,c0.toWords(g0.decode(f)))}function v6(f){return g0.encode(f)}function o6(f){if(!f.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new V6("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return g0.decode(f)}var O1=()=>{};import{AssetValue as H1,Chain as b,getChainConfig as kT,getRPCUrl as K6,SwapKitError as m_}from"@swapkit/helpers";function ET(f){switch(f){case b.Maya:return{amount:[],gas:"10000000000"};case b.THORChain:return{amount:[],gas:"500000000"};case b.Kujira:return c_;case b.Noble:return g_;default:return t_}}async function nT(f){let y=await import("@cosmjs/stargate"),G=y.StargateClient??y.default?.StargateClient,T=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return G.connect({headers:T,url:f})}async function _f(f,y,G={}){let T=await import("@cosmjs/stargate"),_=T.SigningStargateClient??T.default?.SigningStargateClient,X=T.GasPrice??T.default?.GasPrice,W=typeof G==="string"?G:"0.0003uatom",Z=typeof G==="string"?{}:G;return _.connectWithSigner(f,y,{gasPrice:X.fromString(W),...Z})}async function C1(f,y){let G=await import("@cosmjs/stargate");return(G.SigningStargateClient??G.default?.SigningStargateClient).offline(f,y)}async function F1({sender:f,recipient:y,assetValue:G,memo:T="",feeRate:_,sequence:X,accountNumber:W}){let{chain:Z,chainId:J}=G,Q=await K6(Z),O=await(await nT(Q)).getAccount(f);if(!O)throw new m_("toolbox_cosmos_account_not_found",{sender:f});let U=H1.from({chain:Z}),M=lT(U.symbol),N=ET(Z),z=M&&_?{amount:[{amount:_.toString(),denom:M}],gas:N.gas}:N,B={amount:[{amount:G.getBaseValue("string"),denom:lT(G.symbol)}],fromAddress:f,toAddress:y};return{accountNumber:W??O.accountNumber,chainId:J,fee:z,memo:T,msgs:[{typeUrl:j6(Z),value:B}],sequence:X??O.sequence}}var R1="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",p_="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",t_,c_,g_,lT=(f,y=!1)=>{if(y)return f.toLowerCase();switch(f){case"uUSK":case"USK":return R1;case"uYUM":case"YUM":return p_;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return f}},af=({symbol:f,chain:y})=>{if(y===b.Maya)return(f.toUpperCase()!=="CACAO"?f:`${b.Maya}.${f}`).toUpperCase();if(y===b.THORChain)return(["RUNE","TCY","RUJI"].includes(f.toUpperCase())?`${b.THORChain}.${f}`:f).toUpperCase();return lT(f,!1)},j6=(f)=>{switch(f){case b.Maya:case b.THORChain:return"/types.MsgSend";case b.Cosmos:case b.Kujira:case b.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new m_("toolbox_cosmos_not_supported",{chain:f})}},b6,k1=(f,y)=>{let G=b6[f.toLowerCase()];if(!G)return H1.from({asset:f,fromBaseDecimal:8,value:y});let{chain:T,asset:_,decimals:X}=G,W=T?{chain:T}:{asset:_};return H1.from({...W,fromBaseDecimal:X,value:y})};var sf=S(()=>{t_={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},c_={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},g_={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};b6={atom:{chain:b.Cosmos,decimals:kT(b.Cosmos).baseDecimal},cacao:{chain:b.Maya,decimals:10},kuji:{chain:b.Kujira,decimals:kT(b.Kujira).baseDecimal},maya:{asset:`${b.Maya}.${b.Maya}`,decimals:4},rune:{chain:b.THORChain,decimals:kT(b.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:kT(b.THORChain).baseDecimal},uatom:{chain:b.Cosmos,decimals:kT(b.Cosmos).baseDecimal},ukuji:{chain:b.Kujira,decimals:kT(b.Kujira).baseDecimal},usdc:{chain:b.Noble,decimals:kT(b.Noble).baseDecimal},uusdc:{chain:b.Noble,decimals:kT(b.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:kT(b.THORChain).baseDecimal},[R1.toLowerCase()]:{asset:`${b.Kujira}.USK`,decimals:kT(b.Kujira).baseDecimal}}});var i_={};fT(i_,{$root:()=>x});import e from"protobufjs/minimal.js";var v,BT,n,x;var d_=S(()=>{v=e.Reader,BT=e.Writer,n=e.util,x=e.roots.default||(e.roots.default={});x.common=(()=>{let f={};return f.Asset=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.chain="",y.prototype.symbol="",y.prototype.ticker="",y.prototype.synth=!1,y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.chain!=null&&Object.hasOwnProperty.call(T,"chain"))_.uint32(10).string(T.chain);if(T.symbol!=null&&Object.hasOwnProperty.call(T,"symbol"))_.uint32(18).string(T.symbol);if(T.ticker!=null&&Object.hasOwnProperty.call(T,"ticker"))_.uint32(26).string(T.ticker);if(T.synth!=null&&Object.hasOwnProperty.call(T,"synth"))_.uint32(32).bool(T.synth);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.common.Asset;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.chain=T.string();break;case 2:W.symbol=T.string();break;case 3:W.ticker=T.string();break;case 4:W.synth=T.bool();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.chain!=null&&T.hasOwnProperty("chain")){if(!n.isString(T.chain))return"chain: string expected"}if(T.symbol!=null&&T.hasOwnProperty("symbol")){if(!n.isString(T.symbol))return"symbol: string expected"}if(T.ticker!=null&&T.hasOwnProperty("ticker")){if(!n.isString(T.ticker))return"ticker: string expected"}if(T.synth!=null&&T.hasOwnProperty("synth")){if(typeof T.synth!=="boolean")return"synth: boolean expected"}return null},y.fromObject=function(T){if(T instanceof x.common.Asset)return T;let _=new x.common.Asset;if(T.chain!=null)_.chain=String(T.chain);if(T.symbol!=null)_.symbol=String(T.symbol);if(T.ticker!=null)_.ticker=String(T.ticker);if(T.synth!=null)_.synth=Boolean(T.synth);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)X.chain="",X.symbol="",X.ticker="",X.synth=!1;if(T.chain!=null&&T.hasOwnProperty("chain"))X.chain=T.chain;if(T.symbol!=null&&T.hasOwnProperty("symbol"))X.symbol=T.symbol;if(T.ticker!=null&&T.hasOwnProperty("ticker"))X.ticker=T.ticker;if(T.synth!=null&&T.hasOwnProperty("synth"))X.synth=T.synth;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f.Coin=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.asset=null,y.prototype.amount="",y.prototype.decimals=n.Long?n.Long.fromBits(0,0,!1):0,y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.asset!=null&&Object.hasOwnProperty.call(T,"asset"))x.common.Asset.encode(T.asset,_.uint32(10).fork()).ldelim();if(T.amount!=null&&Object.hasOwnProperty.call(T,"amount"))_.uint32(18).string(T.amount);if(T.decimals!=null&&Object.hasOwnProperty.call(T,"decimals"))_.uint32(24).int64(T.decimals);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.common.Coin;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.asset=x.common.Asset.decode(T,T.uint32());break;case 2:W.amount=T.string();break;case 3:W.decimals=T.int64();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.asset!=null&&T.hasOwnProperty("asset")){let _=x.common.Asset.verify(T.asset);if(_)return"asset."+_}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!n.isString(T.amount))return"amount: string expected"}if(T.decimals!=null&&T.hasOwnProperty("decimals")){if(!n.isInteger(T.decimals)&&!(T.decimals&&n.isInteger(T.decimals.low)&&n.isInteger(T.decimals.high)))return"decimals: integer|Long expected"}return null},y.fromObject=function(T){if(T instanceof x.common.Coin)return T;let _=new x.common.Coin;if(T.asset!=null){if(typeof T.asset!=="object")throw TypeError(".common.Coin.asset: object expected");_.asset=x.common.Asset.fromObject(T.asset)}if(T.amount!=null)_.amount=String(T.amount);if(T.decimals!=null){if(n.Long)(_.decimals=n.Long.fromValue(T.decimals)).unsigned=!1;else if(typeof T.decimals==="string")_.decimals=Number.parseInt(T.decimals,10);else if(typeof T.decimals==="number")_.decimals=T.decimals;else if(typeof T.decimals==="object")_.decimals=new n.LongBits(T.decimals.low>>>0,T.decimals.high>>>0).toNumber()}return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)if(X.asset=null,X.amount="",n.Long){let W=new n.Long(0,0,!1);X.decimals=_.longs===String?W.toString():_.longs===Number?W.toNumber():W}else X.decimals=_.longs===String?"0":0;if(T.asset!=null&&T.hasOwnProperty("asset"))X.asset=x.common.Asset.toObject(T.asset,_);if(T.amount!=null&&T.hasOwnProperty("amount"))X.amount=T.amount;if(T.decimals!=null&&T.hasOwnProperty("decimals"))if(typeof T.decimals==="number")X.decimals=_.longs===String?String(T.decimals):T.decimals;else X.decimals=_.longs===String?n.Long.prototype.toString.call(T.decimals):_.longs===Number?new n.LongBits(T.decimals.low>>>0,T.decimals.high>>>0).toNumber():T.decimals;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f.PubKeySet=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.secp256k1="",y.prototype.ed25519="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.secp256k1!=null&&Object.hasOwnProperty.call(T,"secp256k1"))_.uint32(10).string(T.secp256k1);if(T.ed25519!=null&&Object.hasOwnProperty.call(T,"ed25519"))_.uint32(18).string(T.ed25519);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.common.PubKeySet;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.secp256k1=T.string();break;case 2:W.ed25519=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.secp256k1!=null&&T.hasOwnProperty("secp256k1")){if(!n.isString(T.secp256k1))return"secp256k1: string expected"}if(T.ed25519!=null&&T.hasOwnProperty("ed25519")){if(!n.isString(T.ed25519))return"ed25519: string expected"}return null},y.fromObject=function(T){if(T instanceof x.common.PubKeySet)return T;let _=new x.common.PubKeySet;if(T.secp256k1!=null)_.secp256k1=String(T.secp256k1);if(T.ed25519!=null)_.ed25519=String(T.ed25519);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)X.secp256k1="",X.ed25519="";if(T.secp256k1!=null&&T.hasOwnProperty("secp256k1"))X.secp256k1=T.secp256k1;if(T.ed25519!=null&&T.hasOwnProperty("ed25519"))X.ed25519=T.ed25519;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f.Tx=(()=>{function y(G){if(this.coins=[],this.gas=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.id="",y.prototype.chain="",y.prototype.fromAddress="",y.prototype.toAddress="",y.prototype.coins=n.emptyArray,y.prototype.gas=n.emptyArray,y.prototype.memo="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.id!=null&&Object.hasOwnProperty.call(T,"id"))_.uint32(10).string(T.id);if(T.chain!=null&&Object.hasOwnProperty.call(T,"chain"))_.uint32(18).string(T.chain);if(T.fromAddress!=null&&Object.hasOwnProperty.call(T,"fromAddress"))_.uint32(26).string(T.fromAddress);if(T.toAddress!=null&&Object.hasOwnProperty.call(T,"toAddress"))_.uint32(34).string(T.toAddress);if(T.coins?.length)for(let X=0;X<T.coins.length;++X)x.common.Coin.encode(T.coins[X],_.uint32(42).fork()).ldelim();if(T.gas?.length)for(let X=0;X<T.gas.length;++X)x.common.Coin.encode(T.gas[X],_.uint32(50).fork()).ldelim();if(T.memo!=null&&Object.hasOwnProperty.call(T,"memo"))_.uint32(58).string(T.memo);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.common.Tx;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.id=T.string();break;case 2:W.chain=T.string();break;case 3:W.fromAddress=T.string();break;case 4:W.toAddress=T.string();break;case 5:if(!W.coins?.length)W.coins=[];W.coins.push(x.common.Coin.decode(T,T.uint32()));break;case 6:if(!W.gas?.length)W.gas=[];W.gas.push(x.common.Coin.decode(T,T.uint32()));break;case 7:W.memo=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.id!=null&&T.hasOwnProperty("id")){if(!n.isString(T.id))return"id: string expected"}if(T.chain!=null&&T.hasOwnProperty("chain")){if(!n.isString(T.chain))return"chain: string expected"}if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress")){if(!n.isString(T.fromAddress))return"fromAddress: string expected"}if(T.toAddress!=null&&T.hasOwnProperty("toAddress")){if(!n.isString(T.toAddress))return"toAddress: string expected"}if(T.coins!=null&&T.hasOwnProperty("coins")){if(!Array.isArray(T.coins))return"coins: array expected";for(let _=0;_<T.coins.length;++_){let X=x.common.Coin.verify(T.coins[_]);if(X)return"coins."+X}}if(T.gas!=null&&T.hasOwnProperty("gas")){if(!Array.isArray(T.gas))return"gas: array expected";for(let _=0;_<T.gas.length;++_){let X=x.common.Coin.verify(T.gas[_]);if(X)return"gas."+X}}if(T.memo!=null&&T.hasOwnProperty("memo")){if(!n.isString(T.memo))return"memo: string expected"}return null},y.fromObject=function(T){if(T instanceof x.common.Tx)return T;let _=new x.common.Tx;if(T.id!=null)_.id=String(T.id);if(T.chain!=null)_.chain=String(T.chain);if(T.fromAddress!=null)_.fromAddress=String(T.fromAddress);if(T.toAddress!=null)_.toAddress=String(T.toAddress);if(T.coins){if(!Array.isArray(T.coins))throw TypeError(".common.Tx.coins: array expected");_.coins=[];for(let X=0;X<T.coins.length;++X){if(typeof T.coins[X]!=="object")throw TypeError(".common.Tx.coins: object expected");_.coins[X]=x.common.Coin.fromObject(T.coins[X])}}if(T.gas){if(!Array.isArray(T.gas))throw TypeError(".common.Tx.gas: array expected");_.gas=[];for(let X=0;X<T.gas.length;++X){if(typeof T.gas[X]!=="object")throw TypeError(".common.Tx.gas: object expected");_.gas[X]=x.common.Coin.fromObject(T.gas[X])}}if(T.memo!=null)_.memo=String(T.memo);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.coins=[],X.gas=[];if(_.defaults)X.id="",X.chain="",X.fromAddress="",X.toAddress="",X.memo="";if(T.id!=null&&T.hasOwnProperty("id"))X.id=T.id;if(T.chain!=null&&T.hasOwnProperty("chain"))X.chain=T.chain;if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress"))X.fromAddress=T.fromAddress;if(T.toAddress!=null&&T.hasOwnProperty("toAddress"))X.toAddress=T.toAddress;if(T.coins?.length){X.coins=[];for(let W=0;W<T.coins.length;++W)X.coins[W]=x.common.Coin.toObject(T.coins[W],_)}if(T.gas?.length){X.gas=[];for(let W=0;W<T.gas.length;++W)X.gas[W]=x.common.Coin.toObject(T.gas[W],_)}if(T.memo!=null&&T.hasOwnProperty("memo"))X.memo=T.memo;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f.Fee=(()=>{function y(G){if(this.coins=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.coins=n.emptyArray,y.prototype.poolDeduct="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.coins?.length)for(let X=0;X<T.coins.length;++X)x.common.Coin.encode(T.coins[X],_.uint32(10).fork()).ldelim();if(T.poolDeduct!=null&&Object.hasOwnProperty.call(T,"poolDeduct"))_.uint32(18).string(T.poolDeduct);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.common.Fee;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:if(!W.coins?.length)W.coins=[];W.coins.push(x.common.Coin.decode(T,T.uint32()));break;case 2:W.poolDeduct=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.coins!=null&&T.hasOwnProperty("coins")){if(!Array.isArray(T.coins))return"coins: array expected";for(let _=0;_<T.coins.length;++_){let X=x.common.Coin.verify(T.coins[_]);if(X)return"coins."+X}}if(T.poolDeduct!=null&&T.hasOwnProperty("poolDeduct")){if(!n.isString(T.poolDeduct))return"poolDeduct: string expected"}return null},y.fromObject=function(T){if(T instanceof x.common.Fee)return T;let _=new x.common.Fee;if(T.coins){if(!Array.isArray(T.coins))throw TypeError(".common.Fee.coins: array expected");_.coins=[];for(let X=0;X<T.coins.length;++X){if(typeof T.coins[X]!=="object")throw TypeError(".common.Fee.coins: object expected");_.coins[X]=x.common.Coin.fromObject(T.coins[X])}}if(T.poolDeduct!=null)_.poolDeduct=String(T.poolDeduct);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.coins=[];if(_.defaults)X.poolDeduct="";if(T.coins?.length){X.coins=[];for(let W=0;W<T.coins.length;++W)X.coins[W]=x.common.Coin.toObject(T.coins[W],_)}if(T.poolDeduct!=null&&T.hasOwnProperty("poolDeduct"))X.poolDeduct=T.poolDeduct;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f.ProtoUint=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.value="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.value!=null&&Object.hasOwnProperty.call(T,"value"))_.uint32(10).string(T.value);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.common.ProtoUint;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.value=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.value!=null&&T.hasOwnProperty("value")){if(!n.isString(T.value))return"value: string expected"}return null},y.fromObject=function(T){if(T instanceof x.common.ProtoUint)return T;let _=new x.common.ProtoUint;if(T.value!=null)_.value=String(T.value);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)X.value="";if(T.value!=null&&T.hasOwnProperty("value"))X.value=T.value;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f})();x.types=(()=>{let f={};return f.MsgDeposit=(()=>{function y(G){if(this.coins=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.coins=n.emptyArray,y.prototype.memo="",y.prototype.signer=n.newBuffer([]),y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.coins?.length)for(let X=0;X<T.coins.length;++X)x.common.Coin.encode(T.coins[X],_.uint32(10).fork()).ldelim();if(T.memo!=null&&Object.hasOwnProperty.call(T,"memo"))_.uint32(18).string(T.memo);if(T.signer!=null&&Object.hasOwnProperty.call(T,"signer"))_.uint32(26).bytes(T.signer);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.types.MsgDeposit;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:if(!W.coins?.length)W.coins=[];W.coins.push(x.common.Coin.decode(T,T.uint32()));break;case 2:W.memo=T.string();break;case 3:W.signer=T.bytes();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.coins!=null&&T.hasOwnProperty("coins")){if(!Array.isArray(T.coins))return"coins: array expected";for(let _=0;_<T.coins.length;++_){let X=x.common.Coin.verify(T.coins[_]);if(X)return"coins."+X}}if(T.memo!=null&&T.hasOwnProperty("memo")){if(!n.isString(T.memo))return"memo: string expected"}if(T.signer!=null&&T.hasOwnProperty("signer")){if(!(T.signer&&typeof T.signer.length==="number"||n.isString(T.signer)))return"signer: buffer expected"}return null},y.fromObject=function(T){if(T instanceof x.types.MsgDeposit)return T;let _=new x.types.MsgDeposit;if(T.coins){if(!Array.isArray(T.coins))throw TypeError(".types.MsgDeposit.coins: array expected");_.coins=[];for(let X=0;X<T.coins.length;++X){if(typeof T.coins[X]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");_.coins[X]=x.common.Coin.fromObject(T.coins[X])}}if(T.memo!=null)_.memo=String(T.memo);if(T.signer!=null){if(typeof T.signer==="string")n.base64.decode(T.signer,_.signer=n.newBuffer(n.base64.length(T.signer)),0);else if(T.signer.length)_.signer=T.signer}return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.coins=[];if(_.defaults){if(X.memo="",_.bytes===String)X.signer="";else if(X.signer=[],_.bytes!==Array)X.signer=n.newBuffer(X.signer)}if(T.coins?.length){X.coins=[];for(let W=0;W<T.coins.length;++W)X.coins[W]=x.common.Coin.toObject(T.coins[W],_)}if(T.memo!=null&&T.hasOwnProperty("memo"))X.memo=T.memo;if(T.signer!=null&&T.hasOwnProperty("signer"))X.signer=_.bytes===String?n.base64.encode(T.signer,0,T.signer.length):_.bytes===Array?Array.prototype.slice.call(T.signer):T.signer;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f.MsgSend=(()=>{function y(G){if(this.amount=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.fromAddress=n.newBuffer([]),y.prototype.toAddress=n.newBuffer([]),y.prototype.amount=n.emptyArray,y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.fromAddress!=null&&Object.hasOwnProperty.call(T,"fromAddress"))_.uint32(10).bytes(T.fromAddress);if(T.toAddress!=null&&Object.hasOwnProperty.call(T,"toAddress"))_.uint32(18).bytes(T.toAddress);if(T.amount?.length)for(let X=0;X<T.amount.length;++X)x.cosmos.base.v1beta1.Coin.encode(T.amount[X],_.uint32(26).fork()).ldelim();return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.types.MsgSend;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.fromAddress=T.bytes();break;case 2:W.toAddress=T.bytes();break;case 3:if(!W.amount?.length)W.amount=[];W.amount.push(x.cosmos.base.v1beta1.Coin.decode(T,T.uint32()));break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress")){if(!(T.fromAddress&&typeof T.fromAddress.length==="number"||n.isString(T.fromAddress)))return"fromAddress: buffer expected"}if(T.toAddress!=null&&T.hasOwnProperty("toAddress")){if(!(T.toAddress&&typeof T.toAddress.length==="number"||n.isString(T.toAddress)))return"toAddress: buffer expected"}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!Array.isArray(T.amount))return"amount: array expected";for(let _=0;_<T.amount.length;++_){let X=x.cosmos.base.v1beta1.Coin.verify(T.amount[_]);if(X)return"amount."+X}}return null},y.fromObject=function(T){if(T instanceof x.types.MsgSend)return T;let _=new x.types.MsgSend;if(T.fromAddress!=null){if(typeof T.fromAddress==="string")n.base64.decode(T.fromAddress,_.fromAddress=n.newBuffer(n.base64.length(T.fromAddress)),0);else if(T.fromAddress.length)_.fromAddress=T.fromAddress}if(T.toAddress!=null){if(typeof T.toAddress==="string")n.base64.decode(T.toAddress,_.toAddress=n.newBuffer(n.base64.length(T.toAddress)),0);else if(T.toAddress.length)_.toAddress=T.toAddress}if(T.amount){if(!Array.isArray(T.amount))throw TypeError(".types.MsgSend.amount: array expected");_.amount=[];for(let X=0;X<T.amount.length;++X){if(typeof T.amount[X]!=="object")throw TypeError(".types.MsgSend.amount: object expected");_.amount[X]=x.cosmos.base.v1beta1.Coin.fromObject(T.amount[X])}}return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.amount=[];if(_.defaults){if(_.bytes===String)X.fromAddress="";else if(X.fromAddress=[],_.bytes!==Array)X.fromAddress=n.newBuffer(X.fromAddress);if(_.bytes===String)X.toAddress="";else if(X.toAddress=[],_.bytes!==Array)X.toAddress=n.newBuffer(X.toAddress)}if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress"))X.fromAddress=_.bytes===String?n.base64.encode(T.fromAddress,0,T.fromAddress.length):_.bytes===Array?Array.prototype.slice.call(T.fromAddress):T.fromAddress;if(T.toAddress!=null&&T.hasOwnProperty("toAddress"))X.toAddress=_.bytes===String?n.base64.encode(T.toAddress,0,T.toAddress.length):_.bytes===Array?Array.prototype.slice.call(T.toAddress):T.toAddress;if(T.amount?.length){X.amount=[];for(let W=0;W<T.amount.length;++W)X.amount[W]=x.cosmos.base.v1beta1.Coin.toObject(T.amount[W],_)}return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f})();x.cosmos=(()=>{let f={};return f.base=(()=>{let y={};return y.v1beta1=(()=>{let G={};return G.Coin=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.denom="",T.prototype.amount="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=BT.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))W.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))W.uint32(18).string(X.amount);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof v))X=v.create(X);let Z=W===void 0?X.len:X.pos+W,J=new x.cosmos.base.v1beta1.Coin;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.denom=X.string();break;case 2:J.amount=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof v))X=new v(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!n.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!n.isString(X.amount))return"amount: string expected"}return null},T.fromObject=function(X){if(X instanceof x.cosmos.base.v1beta1.Coin)return X;let W=new x.cosmos.base.v1beta1.Coin;if(X.denom!=null)W.denom=String(X.denom);if(X.amount!=null)W.amount=String(X.amount);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.denom="",Z.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))Z.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))Z.amount=X.amount;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},T})(),G.DecCoin=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.denom="",T.prototype.amount="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=BT.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))W.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))W.uint32(18).string(X.amount);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof v))X=v.create(X);let Z=W===void 0?X.len:X.pos+W,J=new x.cosmos.base.v1beta1.DecCoin;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.denom=X.string();break;case 2:J.amount=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof v))X=new v(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!n.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!n.isString(X.amount))return"amount: string expected"}return null},T.fromObject=function(X){if(X instanceof x.cosmos.base.v1beta1.DecCoin)return X;let W=new x.cosmos.base.v1beta1.DecCoin;if(X.denom!=null)W.denom=String(X.denom);if(X.amount!=null)W.amount=String(X.amount);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.denom="",Z.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))Z.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))Z.amount=X.amount;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},T})(),G.IntProto=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.int="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=BT.create();if(X.int!=null&&Object.hasOwnProperty.call(X,"int"))W.uint32(10).string(X.int);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof v))X=v.create(X);let Z=W===void 0?X.len:X.pos+W,J=new x.cosmos.base.v1beta1.IntProto;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.int=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof v))X=new v(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.int!=null&&X.hasOwnProperty("int")){if(!n.isString(X.int))return"int: string expected"}return null},T.fromObject=function(X){if(X instanceof x.cosmos.base.v1beta1.IntProto)return X;let W=new x.cosmos.base.v1beta1.IntProto;if(X.int!=null)W.int=String(X.int);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.int="";if(X.int!=null&&X.hasOwnProperty("int"))Z.int=X.int;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},T})(),G.DecProto=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.dec="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=BT.create();if(X.dec!=null&&Object.hasOwnProperty.call(X,"dec"))W.uint32(10).string(X.dec);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof v))X=v.create(X);let Z=W===void 0?X.len:X.pos+W,J=new x.cosmos.base.v1beta1.DecProto;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.dec=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof v))X=new v(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.dec!=null&&X.hasOwnProperty("dec")){if(!n.isString(X.dec))return"dec: string expected"}return null},T.fromObject=function(X){if(X instanceof x.cosmos.base.v1beta1.DecProto)return X;let W=new x.cosmos.base.v1beta1.DecProto;if(X.dec!=null)W.dec=String(X.dec);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.dec="";if(X.dec!=null&&X.hasOwnProperty("dec"))Z.dec=X.dec;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},T})(),G})(),y})(),f})()});import{Chain as l6}from"@swapkit/helpers";async function Gf(){let{$root:f}=await Promise.resolve().then(() => (d_(),i_)),y=await import("@cosmjs/proto-signing"),G=y.Registry??y.default?.Registry,T=await import("@cosmjs/stargate"),_=T.defaultRegistryTypes??T.default?.defaultRegistryTypes;return new G([..._,["/types.MsgSend",f.types.MsgSend],["/types.MsgDeposit",f.types.MsgDeposit]])}async function uT(f){let y=await import("@cosmjs/stargate"),G=y.AminoTypes??y.default?.AminoTypes,T=f===l6.THORChain?"thorchain":"mayachain";return new G({"/types.MsgDeposit":{aminoType:`${T}/MsgDeposit`,fromAmino:({signer:_,...X})=>({...X,signer:df(_)}),toAmino:({signer:_,...X})=>({...X,signer:rf(_)})},"/types.MsgSend":{aminoType:`${T}/MsgSend`,fromAmino:({from_address:_,to_address:X,...W})=>({...W,fromAddress:df(_),toAddress:df(X)}),toAmino:({fromAddress:_,toAddress:X,...W})=>({...W,from_address:rf(_),to_address:rf(X)})}})}var $1=S(()=>{O1()});import{AssetValue as u6,Chain as i0,getChainConfig as r_,getRPCUrl as a_,SwapKitError as h6}from"@swapkit/helpers";function P1(f){let{assetValue:y,recipient:G,memo:T,sender:_,asSignable:X,asAminoMessage:W}=f;if(G)return e_({asAminoMessage:W,asSignable:X,assetValue:y,memo:T,recipient:G,sender:_});return T2({asAminoMessage:W,asSignable:X,assetValue:y,memo:T,sender:_})}async function e_({sender:f,recipient:y,assetValue:G,memo:T="",asSignable:_=!0,asAminoMessage:X=!1,sequence:W,accountNumber:Z}){let J=G.chain,Q=await a_(J),L=await s_({rpcUrl:Q,sender:f}),{chainId:O}=r_(J),U=I1({assetValue:G,recipient:y,sender:f}),M=_?await hT(X?U:mT(U),J):U;return{accountNumber:Z||L.accountNumber,chainId:O,fee:ET(J),memo:T,msgs:[M],sequence:W||L.sequence}}async function T2({sender:f,assetValue:y,memo:G="",asSignable:T=!0,asAminoMessage:_=!1,sequence:X,accountNumber:W}){let Z=y.chain,J=await a_(Z),Q=await s_({rpcUrl:J,sender:f}),{chainId:L}=r_(Z),O=A1({assetValue:y,memo:G,sender:f}),U=T?await hT(_?O:mT(O),Z):O;return{accountNumber:W||Q.accountNumber,chainId:L,fee:ET(Z),memo:G,msgs:[U],sequence:X||Q.sequence}}function mT(f){if(f.type==="thorchain/MsgSend"||f.type==="mayachain/MsgSend")return f;return{...f,value:{...f.value,coins:f.value.coins.map((y)=>{let G=u6.from({asset:y.asset}),T=(G.isSynthetic?G.symbol.split("/")?.[1]:G.symbol)?.toUpperCase(),_=(G.isSynthetic?G.symbol.split("/")?.[0]:G.chain)?.toUpperCase();return{...y,asset:{chain:_,symbol:T,synth:G.isSynthetic,ticker:G.ticker}}})}}}async function ef({chain:f,memo:y,msgs:G}){let T=await Gf(),_=await uT(f),X={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:y,messages:G.map((W)=>_.fromAmino(W))}};return T.encode(X)}var m6,p6,I1=({sender:f,recipient:y,assetValue:G})=>{return{type:`${G.chain===i0.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:G.getBaseValue("string"),denom:lT(G.symbol,!0)}],from_address:f,to_address:y}}},A1=({sender:f,assetValue:y,memo:G=""})=>{return{type:`${y.chain===i0.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:y.getBaseValue("string"),asset:af(y)}],memo:G,signer:f}}},d0=({sender:f,recipient:y,assetValue:G,memo:T})=>{return!y?A1({assetValue:G,memo:T,sender:f}):I1({assetValue:G,recipient:y,sender:f})},hT=async(f,y)=>{return(await uT(y)).fromAmino(f)},s_=async({rpcUrl:f,sender:y})=>{let T=await(await nT(f)).getAccount(y);if(!T)throw new h6("toolbox_cosmos_account_not_found",{sender:y});return T};var f2=S(()=>{sf();$1();m6=ET(i0.THORChain).gas,p6=ET(i0.Maya).gas});var y2=()=>{};var _2=S(()=>{y2()});var x1=S(()=>{O1();f2();$1();_2()});import{stringToPath as t6}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as c6}from"@cosmjs/proto-signing";import{base64 as n1,bech32 as S1}from"@scure/base";import{AssetValue as V1,applyFeeMultiplier as G2,Chain as _T,CosmosChainPrefixes as Y2,DerivationPath as g6,derivationPathToString as X2,FeeOption as v1,getChainConfig as i6,getRPCUrl as T0,NetworkDerivationPath as d6,SwapKitError as Df,SwapKitNumber as E1,updateDerivationPath as r6}from"@swapkit/helpers";import{SwapKitApi as q2}from"@swapkit/helpers/api";import{match as a6,P as W2}from"ts-pattern";async function K1(f,y){try{let T=(await q2.getGasRate()).find((_)=>_.chainId===f)?.value;return T?Number.parseFloat(T):y}catch{return y}}async function o1({phrase:f,prefix:y,...G}){let T="derivationPath"in G?G.derivationPath:`${g6[G.chain]}/${G.index}`;return await c6.fromMnemonic(f,{hdPaths:[t6(T)],prefix:y})}async function s6({privateKey:f,prefix:y}){let G=await import("@cosmjs/proto-signing");return(G.DirectSecp256k1Wallet??G.default?.DirectSecp256k1Wallet).fromKey(f,y)}function L2(f){return async function({signature:G,message:T,address:_}){let X=await f(_);if(!X?.pubkey)throw new Df("toolbox_cosmos_verify_signature_no_pubkey");let W=await import("@cosmjs/crypto"),Z=W.Secp256k1Signature??W.default?.Secp256k1Signature,J=W.Secp256k1??W.default?.Secp256k1,Q=Z.fromFixedLength(n1.decode(G));return J.verifySignature(Q,n1.decode(T),X.pubkey.value)}}function f0({chain:f,...y}){let G=Y2[f],T="index"in y?y.index||0:0,_=X2("derivationPath"in y&&y.derivationPath?y.derivationPath:r6(d6[f],{index:T})),X;async function W(){if(X)return X;return X=await a6(y).with({phrase:W2.string},({phrase:M})=>o1({derivationPath:_,phrase:M,prefix:G})).with({signer:W2.any},({signer:M})=>M).otherwise(()=>{return}),X}async function Z(M){let N=await T0(f);return(await nT(N)).getAccount(M)}async function J(){let M=await W(),[N]=await M?.getAccounts()||[];return N?.address}async function Q(){let M=await W(),[N]=await M?.getAccounts()||[];if(!N?.pubkey)throw new Df("toolbox_cosmos_signer_not_defined");return n1.encode(N?.pubkey)}async function L(M){let N=await W(),z=await J(),B=await T0(f);if(!(N&&z))throw new Df("toolbox_cosmos_signer_not_defined");return await(await _f(B,N)).sign(z,M.msgs,M.fee,M.memo,{accountNumber:M.accountNumber,chainId:M.chainId,sequence:M.sequence})}async function O(M){let N=await W(),z=await J(),B=await T0(f);if(!(N&&z))throw new Df("toolbox_cosmos_signer_not_defined");let H=await(await _f(B,N)).signAndBroadcast(z,M.msgs,M.fee,M.memo);if(H.code!==0)throw new Df("core_swap_transaction_error",{code:H.code,message:H.rawLog});return H.transactionHash}async function U({recipient:M,assetValue:N,memo:z="",feeRate:B,feeOptionKey:k=v1.Fast}){let H=await W(),F=await J();if(!(H&&F))throw new Df("toolbox_cosmos_signer_not_defined");let w=await T0(f),Y=V1.from({chain:f}),q=af(Y),D=B||f8((await J2(f,Z2[f]))[k],q),R=await _f(w,H),$=lT(N.symbol),C=[{amount:N.getBaseValue("string"),denom:$}],{transactionHash:I}=await R.sendTokens(F,M,C,D,z);return I}return{createPrivateKeyFromPhrase:_8(_),createTransaction:F1,fetchFeeRateFromSwapKit:K1,getAccount:Z,getAddress:J,getBalance:async(M,N)=>{let z=await Q2(f)(M),B=await Promise.all(z.filter(({denom:k})=>k&&!k.includes("IBC/")&&!([_T.THORChain,_T.Maya].includes(f)&&k.split("-").length>2)).map(({denom:k,amount:H})=>{let F=[_T.THORChain,_T.Maya].includes(f)&&(k.includes("/")||k.includes("˜"))?`${f}.${k}`:k;return k1(F,H)}));if(B.length===0)return[V1.from({chain:f})];return B},getBalanceAsDenoms:Q2(f),getFees:()=>J2(f,Z2[f]),getPubKey:Q,getSignerFromPhrase:({phrase:M,derivationPath:N})=>o1({derivationPath:X2(N),index:T,phrase:M,prefix:G}),getSignerFromPrivateKey:async(M)=>{let N=await import("@cosmjs/proto-signing");return(N.DirectSecp256k1Wallet??N.default?.DirectSecp256k1Wallet).fromKey(M,G)},signAndBroadcastTransaction:O,signTransaction:L,transfer:U,validateAddress:z2(f),verifySignature:L2(Z)}}async function e6(f,y){try{let T=(await q2.getGasRate()).find((_)=>_.chainId===f)?.value;return T?Number.parseFloat(T):y}catch{return y}}function T8({assetValue:{chain:f}}){return V1.from({chain:f,value:y8(f)})}async function J2(f,y){let{chainId:G,baseDecimal:T}=i6(f),_=await K1(G,y);return{average:E1.fromBigInt(BigInt(_),T),fast:E1.fromBigInt(BigInt(G2(_,v1.Fast,!0)),T),fastest:E1.fromBigInt(BigInt(G2(_,v1.Fastest,!0)),T)}}function f8(f,y){return{amount:[{amount:f.getBaseValue("string"),denom:y}],gas:"200000"}}function y8(f){return{[_T.Cosmos]:0.007,[_T.Kujira]:0.02,[_T.Noble]:0.01,[_T.THORChain]:0.02,[_T.Maya]:0.02,[_T.Harbor]:0.02}[f]||0}function z2(f){let y=Y2[f];return function(T){if(!T.startsWith(y))return!1;try{let{prefix:_,words:X}=S1.decode(T);return S1.encode(_,X)===T.toLocaleLowerCase()}catch{return!1}}}function Q2(f){return async function(G){let T=await T0(f);return(await(await nT(T)).getAllBalances(G)).map((Z)=>({...Z,denom:Z.denom.includes("/")?Z.denom.toUpperCase():Z.denom}))}}function _8(f){return async function(G){let T=await import("@cosmjs/crypto"),_=T.stringToPath??T.default?.stringToPath,X=T.Slip10Curve??T.default?.Slip10Curve,W=T.Slip10??T.default?.Slip10,Z=T.EnglishMnemonic??T.default?.EnglishMnemonic,J=T.Bip39??T.default?.Bip39,Q=new Z(G),L=await J.mnemonicToSeed(Q),{privkey:O}=W.derivePath(X.Secp256k1,L,_(f));return O}}var Z2;var r0=S(()=>{sf();Z2={[_T.Cosmos]:1000,[_T.Kujira]:1000,[_T.Noble]:1000,[_T.THORChain]:5000000,[_T.Maya]:5000000,[_T.Harbor]:5000000}});import{base64 as Xf}from"@scure/base";import{Chain as G8,CosmosChainPrefixes as X8,derivationPathToString as W8,FeeOption as j1,getChainConfig as N2,getRPCUrl as w2,NetworkDerivationPath as Z8,RequestClient as J8,SKConfig as Q8,SwapKitError as U2,SwapKitNumber as M2,updateDerivationPath as Y8}from"@swapkit/helpers";import{match as q8,P as B2}from"ts-pattern";function L8({prefix:f,derivationPath:y}){return async function(T,_=0){let X=await import("@cosmjs/amino"),W=X.Secp256k1HdWallet??X.default?.Secp256k1HdWallet,Z=await import("@cosmjs/crypto"),J=Z.stringToPath??Z.default?.stringToPath;return W.fromMnemonic(T,{hdPaths:[J(`${y}/${_}`)],prefix:f})}}function z8(f){return Xf.encode(f)}function N8(f){return async function({wallet:G,tx:T}){let{msgs:_,accountNumber:X,sequence:W,chainId:Z,fee:J,memo:Q}=typeof T==="string"?JSON.parse(T):T,L=(await G.getAccounts())?.[0]?.address||"",O=await uT(f),U=await Gf(),M=await C1(G,{aminoTypes:O,registry:U}),N=[];for(let k of _){let H=await hT(k,f);N.push(H)}let{signatures:[z]}=await M.sign(L,N,J,Q,{accountNumber:X,chainId:Z,sequence:W});return{bodyBytes:await ef({chain:f,memo:Q,msgs:_.map(mT)}),signature:z8(z)}}}function U8({prefix:f,chain:y}){return async function(T,_,X,W,Z){let J=await w2(y),{encodeSecp256k1Pubkey:Q,pubkeyToAddress:L}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:O}=(await import("@cosmjs/stargate")).default,{sequence:U,fee:M}=JSON.parse(T),N=await D2(X,W),z=_.map((H)=>[L(Q(Xf.decode(H.pubKey)),f),Xf.decode(H.signature)]),B=await nT(J),{transactionHash:k}=await B.broadcastTx(O(N,U,M,Z,new Map(z)));return k}}async function D2(f,y,G=!0){let{createMultisigThresholdPubkey:T,encodeSecp256k1Pubkey:_}=(await import("@cosmjs/amino")).default;return T(f.map((X)=>_(Xf.decode(X))),y,G)}function M8(f){return Xf.decode(f)}async function B8({privateKey:f,message:y}){let{Secp256k1:G}=(await import("@cosmjs/crypto")).default,T=await G.createSignature(Xf.decode(y),f);return Xf.encode(Buffer.concat([T.r(32),T.s(32)]))}function b1({chain:f,...y}){let{nodeUrl:G}=N2(f),{isStagenet:T}=Q8.get("envs"),_=f===G8.THORChain,X=`${T?"s":""}${X8[f]}`,W="index"in y?y.index||0:0,Z="derivationPath"in y&&y.derivationPath?y.derivationPath:Y8(Z8[f],{index:W}),J=f0({chain:f,...y}),Q=ET(f);async function L(){let U,M=`${G}/${_?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:N}}=await J8.get(M);if(!N||Number.isNaN(N)||N<0)throw new U2("toolbox_cosmos_invalid_fee",{nativeFee:N.toString()});U=new M2(N)}catch{U=new M2({decimal:N2(f).baseDecimal,value:_?0.02:1})}return{[j1.Average]:U,[j1.Fast]:U,[j1.Fastest]:U}}async function O({assetValue:U,memo:M="",recipient:N}){let z=await w2(f),B=await q8(y).with({phrase:B2.string},({phrase:I})=>J.getSignerFromPhrase({derivationPath:Z,phrase:I})).with({signer:B2.any},({signer:I})=>I).otherwise(()=>{return}),{TxRaw:k}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),H=(await B?.getAccounts())?.[0]?.address;if(!(H&&B))throw new U2("toolbox_cosmos_no_signer");let F="signAmino"in B,w=await Gf(),Y=await uT(f),q=await _f(z,B,{aminoTypes:Y,registry:w}),D=d0({assetValue:U,memo:M,recipient:N,sender:H});if(F){let I=await hT(D,f),{signatures:A,authInfoBytes:E}=await q.sign(H,[I],Q,M),V=k.encode({authInfoBytes:E,bodyBytes:await ef({chain:f,memo:M,msgs:[D].map(mT)}),signatures:A}).finish();return(await q.broadcastTx(V)).transactionHash}let R=mT(D),$=await hT(R,f);return(await q.signAndBroadcast(H,[$],Q,M)).transactionHash}return{...J,broadcastMultisigTx:U8({chain:f,prefix:X}),buildAminoMsg:d0,buildEncodedTxBody:ef,convertToSignable:hT,createDefaultAminoTypes:()=>uT(f),createDefaultRegistry:Gf,createMultisig:D2,createTransaction:P1,deposit:O,getFees:L,importSignature:M8,parseAminoMessageForDirectSigning:mT,pubkeyToAddress:async(U)=>{let{pubkeyToAddress:M}=(await import("@cosmjs/amino")).default;return M(U,X)},secp256k1HdWalletFromMnemonic:L8({derivationPath:W8(Z),prefix:X}),signMultisigTx:N8(f),signWithPrivateKey:B8,transfer:O}}var l1=S(()=>{x1();sf();r0()});import{Chain as y0,SwapKitError as w8}from"@swapkit/helpers";var D8=(f,y)=>{switch(f){case y0.Cosmos:case y0.Kujira:case y0.Noble:return f0({chain:f,...y});case y0.Maya:case y0.THORChain:return b1({chain:f,...y});default:throw new w8("toolbox_cosmos_not_supported",{chain:f})}};var O2=S(()=>{r0();l1();r0();l1()});var a0={};fT(a0,{verifySignature:()=>L2,transferMsgAmino:()=>I1,toBase64:()=>v6,parseAminoMessageForDirectSigning:()=>mT,getSignerFromPrivateKey:()=>s6,getSignerFromPhrase:()=>o1,getMsgSendDenom:()=>lT,getFeeRateFromSwapKit:()=>e6,getDenomWithChain:()=>af,getDefaultChainFee:()=>ET,getCosmosToolbox:()=>D8,getCosmosAddressValidator:()=>z2,getAssetFromDenom:()=>k1,fromBase64:()=>o6,fetchFeeRateFromSwapKit:()=>K1,estimateTransactionFee:()=>T8,depositMsgAmino:()=>A1,createTransaction:()=>P1,createThorchainToolbox:()=>b1,createStargateClient:()=>nT,createSigningStargateClient:()=>_f,createOfflineStargateClient:()=>C1,createDefaultRegistry:()=>Gf,createDefaultAminoTypes:()=>uT,createCosmosToolbox:()=>f0,cosmosCreateTransaction:()=>F1,convertToSignable:()=>hT,buildTransferTx:()=>e_,buildEncodedTxBody:()=>ef,buildDepositTx:()=>T2,buildAminoMsg:()=>d0,bech32ToBase64:()=>df,base64ToBech32:()=>rf,YUM_KUJIRA_FACTORY_DENOM:()=>p_,USK_KUJIRA_FACTORY_DENOM:()=>R1,THORCHAIN_GAS_VALUE:()=>m6,MAYA_GAS_VALUE:()=>p6,DEFAULT_NOBLE_FEE_MAINNET:()=>g_,DEFAULT_KUJI_FEE_MAINNET:()=>c_,DEFAULT_COSMOS_FEE_MAINNET:()=>t_});var s0=S(()=>{x1();O2();sf()});import{PublicKey as pT}from"@solana/web3.js";import{AssetValue as e0,Chain as vT,DerivationPath as O8,derivationPathToString as H8,getChainConfig as F2,getRPCUrl as R8,NetworkDerivationPath as C8,SwapKitError as Of,updateDerivationPath as F8}from"@swapkit/helpers";import{match as k8,P as H2}from"ts-pattern";async function k2(f){let y=e0.from({address:f,chain:vT.Solana});if(y.symbol!=="UNKNOWN")return{decimals:y.decimal||0,id:f,logoURI:y.getIconUrl(),name:y.symbol,symbol:y.ticker};let G=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(f)}`;try{let T=await fetch(G);if(!T.ok)return null;let _=await T.json();if(!Array.isArray(_)||_.length===0)return null;return _.find((W)=>W.id===f)||null}catch{return null}}async function $8(f){let y=await VT(),{PublicKey:G}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:T}=await import("@solana/spl-token"),_=new G(f),{baseDecimal:X}=F2(vT.Solana),W=await y.getBalance(_),Z=[e0.from({chain:vT.Solana,fromBaseDecimal:X,value:W||0})],J=await y.getParsedTokenAccountsByOwner(_,{programId:T});for(let{account:Q}of J.value){let L=Q.data.parsed.info,O=L.mint,U=L.tokenAmount.amount;if(Number(U)===0)continue;let M=await k2(O),N=M?.symbol||"UNKNOWN",z=M?.decimals||L.tokenAmount.decimals;Z.push(e0.from({asset:`${vT.Solana}.${N}-${O}`,fromBaseDecimal:z,value:U}))}return Z}function h1(f){try{let y=new pT(f);return pT.isOnCurve(y.toBytes())}catch{return!1}}function I8(f){let y=f&&"index"in f?f.index||0:0,G=H8(f&&"derivationPath"in f&&f.derivationPath?f.derivationPath:F8(C8[vT.Solana],{index:y})),T;async function _(){if(T)return T;return T=await k8(f).with({phrase:H2.string},({phrase:W})=>u1({derivationPath:G,phrase:W})).with({signer:H2.any},({signer:W})=>W).otherwise(()=>{return}),T}async function X(){let W=await _();return W?.publicKey?C2(W.publicKey):""}return{broadcastTransaction:Ty(VT),createKeysForPath:u1,createTransaction:m1(VT),createTransactionFromInstructions:S8,estimateTransactionFee:A8(VT),getAddress:X,getAddressFromPubKey:C2,getBalance:UT(vT.Solana),getBalanceFromRPC:$8,getConnection:VT,getPubkeyFromAddress:(W)=>new pT(W),signAndBroadcastTransaction:async(W)=>{let Z=await R2(VT,_)(W);return Ty(VT)(Z)},signTransaction:R2(VT,_),transfer:E8(VT,_),validateAddress:h1}}function A8(f){return async({recipient:y,assetValue:G,memo:T,isProgramDerivedAddress:_,sender:X})=>{let W=await f(),J=(await m1(f)({assetValue:G,isProgramDerivedAddress:_,memo:T,recipient:y,sender:X})).compileMessage(),Q=await W.getFeeForMessage(J);if(Q.value===null)throw new Of("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:L}=F2(vT.Solana);return e0.from({chain:vT.Solana,fromBaseDecimal:L,value:Q.value})}}async function VT(){let{Connection:f}=await import("@solana/web3.js"),y=await R8(vT.Solana);return new f(y,{commitment:"confirmed",fetchMiddleware:(G,T,_)=>{let X={};for(let[W,Z]of Object.entries(T?.headers??{})){let J=W.toLowerCase();if(J!=="pragma"&&J!=="solana-client")X[W]=Z}_(G,{...T,headers:X})}})}function P8(f){return async({assetValue:y,recipient:G,sender:T,isProgramDerivedAddress:_})=>{let X=await f(),W=new pT(T);if(y.isGasAsset){let{Transaction:Z,SystemProgram:J}=await import("@solana/web3.js");return new Z().add(J.transfer({fromPubkey:W,lamports:y.getBaseValue("number"),toPubkey:new pT(G)}))}if(y.address)return x8({amount:y.getBaseValue("number"),connection:X,decimals:y.decimal,from:W,isProgramDerivedAddress:_,recipient:G,tokenAddress:y.address});return}}async function x8({tokenAddress:f,recipient:y,from:G,connection:T,amount:_,decimals:X,isProgramDerivedAddress:W}){let{getAssociatedTokenAddress:Z,getAccount:J,createAssociatedTokenAccountInstruction:Q,createTransferCheckedInstruction:L}=await import("@solana/spl-token"),{Transaction:O}=await import("@solana/web3.js"),U=new O,M=new pT(f),N=await Z(M,G),z=new pT(y),B=await Z(M,z,W),k=!1;try{await J(T,B),k=!0}catch{}if(!k)U.add(Q(G,B,z,M));return U.add(L(N,M,B,G,_,X)),U}function m1(f){return async({recipient:y,assetValue:G,memo:T,isProgramDerivedAddress:_,sender:X})=>{let{createMemoInstruction:W}=await import("@solana/spl-memo"),Z=new pT(X);if(!(_||h1(y)))throw new Of("core_transaction_invalid_recipient_address");let J=await f(),Q=await P8(f)({assetValue:G,isProgramDerivedAddress:_,recipient:y,sender:X});if(!Q)throw new Of("core_transaction_invalid_sender_address");if(T)Q.add(W(T));let L=await J.getLatestBlockhash();return Q.recentBlockhash=L.blockhash,Q.feePayer=Z,Q}}async function S8({instructions:f}){let{Transaction:y}=await import("@solana/web3.js"),G=new y().add(...f);if(!G)throw new Of("core_transaction_invalid_sender_address");return G}function E8(f,y){return async({recipient:G,assetValue:T,memo:_,isProgramDerivedAddress:X})=>{let W=await y();if(!W)throw new Of("core_transaction_invalid_sender_address");let Z=W.publicKey?.toString()??(await W.connect()).publicKey.toString(),J=await m1(f)({assetValue:T,isProgramDerivedAddress:X,memo:_,recipient:G,sender:Z});if("signTransaction"in W){let Q=await W.signTransaction(J);return Ty(f)(Q)}return J.sign(W),Ty(f)(J)}}function Ty(f){return async(y)=>{return(await f()).sendRawTransaction(y.serialize())}}function R2(f,y){return async(G)=>{let T=await y();if(!T)throw new Of("toolbox_solana_no_signer");let{VersionedTransaction:_}=await import("@solana/web3.js");if(!(G instanceof _)){let W=await(await f()).getLatestBlockhash();G.recentBlockhash=W.blockhash,G.feePayer=T.publicKey||void 0}if("connect"in T)return await T.signTransaction(G);return G.sign([T]),G}}async function u1({phrase:f,derivationPath:y=O8.SOL}){let{HDKey:G}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:T}=await import("@scure/bip39"),{Keypair:_}=await import("@solana/web3.js"),X=T(f),W=G.fromMasterSeed(X);return _.fromSeed(W.derive(y,!0).privateKey)}function C2(f){return f.toString()}var $2=S(()=>{bT()});var p1={};fT(p1,{validateSolanaAddress:()=>h1,getSolanaToolbox:()=>I8,fetchTokenMetaData:()=>k2,createKeysForPath:()=>u1});var t1=S(()=>{$2()});import{AssetValue as fy,Chain as yy,DerivationPath as A2,derivationPathToString as n8,getChainConfig as V8,getRPCUrl as i1,NetworkDerivationPath as v8,SwapKitError as wT,updateDerivationPath as o8}from"@swapkit/helpers";import{match as c1,P as Hf}from"ts-pattern";function _y(f){if(!f)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(f)}async function Gy({phrase:f,derivationPath:y=A2.STRK}){let{HDKey:G}=await import("@scure/bip32"),{mnemonicToSeedSync:T}=await import("@scure/bip39"),{ec:_,hash:X,encode:W,CallData:Z}=await import("starknet"),J=T(f),L=G.fromMasterSeed(J).derive(y);if(!L.privateKey)throw new wT("toolbox_starknet_no_signer");let O=W.addHexPrefix(Buffer.from(L.privateKey).toString("hex")),U=_.starkCurve.grindKey(O),M=W.addHexPrefix(U),N=_.starkCurve.getStarkKey(M),z=Z.compile([N,0]);return{address:X.calculateContractAddressFromHash(N,d1,z,0),privateKey:M,publicKey:N}}async function r1({phrase:f,derivationPath:y=A2.STRK}){let{Account:G,RpcProvider:T}=await import("starknet"),{privateKey:_,address:X}=await Gy({derivationPath:y,phrase:f}),W=await i1(yy.Starknet),Z=new T({nodeUrl:W});return new G({address:X,provider:Z,signer:_})}function P2(f){let y=yy.Starknet,G=f&&"index"in f?f.index||0:0,T=n8(f&&"derivationPath"in f&&f.derivationPath?f.derivationPath:o8(v8[y],{index:G})),_,X,W;async function Z(){if(X)return X;let{RpcProvider:Y}=await import("starknet"),q=await i1(y);return X=new Y({nodeUrl:q}),X}async function J(Y){let q=await Z(),D=Y||await U();if(!D)return!1;try{return await q.getClassHashAt(D),!0}catch(R){if(R instanceof Error&&R.message.includes("Contract not found"))return!1;let $=R;if($?.code===20||$?.code===19)return!1;throw R}}async function Q(){let{CallData:Y,hash:q}=await import("starknet"),D=await Z(),R=await O();if(!R)throw new wT("toolbox_starknet_no_signer");if(!W)throw new wT({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await J())return R.address;let C=Y.compile([W,0]);if(q.calculateContractAddressFromHash(W,d1,C,0).toLowerCase()!==R.address.toLowerCase())throw new wT({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let A={addressSalt:W,classHash:d1,constructorCalldata:C},{transaction_hash:E}=await R.deployAccount(A);return await D.waitForTransaction(E),E}async function L(){if(!await J()){if(!W)throw new wT({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await Q()}}async function O(){if(_)return _;return _=await c1(f).with({phrase:Hf.string},async({phrase:Y})=>{let{Account:q,RpcProvider:D}=await import("starknet"),{privateKey:R,address:$,publicKey:C}=await Gy({derivationPath:T,phrase:Y});W=C;let I=await i1(yy.Starknet),A=new D({nodeUrl:I});return new q({address:$,provider:A,signer:R})}).with({address:Hf.string,privateKey:Hf.string},async({privateKey:Y,address:q})=>{let{Account:D}=await import("starknet"),R=await Z();return new D({address:q,provider:R,signer:Y})}).with({signer:Hf.instanceOf(Object)},({signer:Y})=>Y).otherwise(()=>{return}),_}async function U(){return(await O())?.address??""}async function M(Y){let q=await Z(),{uint256:D,CallData:R}=await import("starknet"),$=[],C=[g1,I2];for(let I of C)try{let[A="0",E="0"]=await q.callContract({calldata:R.compile({account:Y}),contractAddress:I,entrypoint:"balanceOf"}),V=D.uint256ToBN({high:A,low:E});c1(I).with(g1,()=>{$.push(fy.from({chain:y,value:V}))}).with(I2,()=>{if(V>0n)$.push(fy.from({asset:`${y}.ETH-${I}`,value:V}))}).otherwise(()=>{})}catch{}return $}async function N({recipient:Y,assetValue:q}){let{CallData:D,uint256:R}=await import("starknet");if(!_y(Y))throw new wT("core_transaction_invalid_recipient_address",{address:Y});let $=q.isGasAsset?g1:q.address;if(!$)throw new wT("toolbox_starknet_invalid_address",{address:$,assetValue:q});let C=R.bnToUint256(q.getBaseValue("bigint"));return[{calldata:D.compile([Y,C]),contractAddress:$,entrypoint:"transfer"}]}async function z({recipient:Y,assetValue:q,sender:D}){let{baseDecimal:R}=V8(yy.Starknet),$=await O(),C=await c1({sender:D,signer:$}).with({sender:Hf.string},async({sender:I})=>{let{Account:A}=await import("starknet"),E=await Z();return new A({address:I,provider:E,signer:"0x0"})}).with({signer:Hf.nonNullable},({signer:I})=>I).otherwise((I)=>{throw new wT({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:I}})});try{let I=await N({assetValue:q,recipient:Y}),A=await C.estimateInvokeFee(I);if(A?.overall_fee)return fy.from({chain:y,fromBaseDecimal:R,value:A.overall_fee})}catch(I){throw new wT("toolbox_starknet_fee_estimation_failed",I)}return fy.from({chain:y,value:"0.00001"})}async function B({recipient:Y,assetValue:q,memo:D}){let R=await O();if(!R)throw new wT("toolbox_starknet_no_signer");await L();let $=await N({assetValue:q,memo:D,recipient:Y});return(await R.execute($)).transaction_hash}async function k(Y){let q=await O();if(!q)throw new wT("toolbox_starknet_no_signer");let D=await q.signMessage(Y);return Array.isArray(D)?D:[D.r.toString(),D.s.toString()]}async function H(Y){let q=await O();if(!q)throw new wT("toolbox_starknet_no_signer");return await L(),(await q.execute(Y)).transaction_hash}function F(Y){return H(Y)}function w(Y,q=!0){try{return UT(y)(Y,q)}catch{return M(Y)}}return{broadcastTransaction:H,createKeysForPath:r1,createTransaction:N,deployAccount:Q,estimateTransactionFee:z,getAddress:U,getBalance:w,getProvider:Z,isAccountDeployed:J,signAndBroadcastTransaction:F,signMessage:k,transfer:B,validateAddress:_y}}var g1="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",I2="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",d1="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var x2=S(()=>{bT()});var Xy={};fT(Xy,{validateStarknetAddress:()=>_y,starknetCreateKeysForPath:()=>r1,getStarknetToolbox:()=>P2,deriveStarknetKeys:()=>Gy});var Wy=S(()=>{x2()});import{isValidSuiAddress as K8}from"@mysten/sui/utils";import{AssetValue as Rf,Chain as Zy,getChainConfig as j8,SwapKitError as HT}from"@swapkit/helpers";import{match as b8,P as S2}from"ts-pattern";async function n2(f,y,G,T=[],_){let X=await f.getCoins({coinType:G,cursor:_,owner:y}),W=[...T,...X.data];return X.hasNextPage?n2(f,y,G,W,X.nextCursor):W}function l8(f,y,G){let T=y.reduce((J,Q)=>J+BigInt(Q.balance),0n);if(T<G)throw new HT("toolbox_sui_insufficient_balance",{available:T.toString(),required:G.toString()});let{ids:_}=y.reduce((J,Q)=>{if(J.total>=G)return J;return{ids:[...J.ids,Q.coinObjectId],total:J.total+BigInt(Q.balance)}},{ids:[],total:0n}),X=_[0],W=_.slice(1);if(W.length>0)f.mergeCoins(X,W);let[Z]=f.splitCoins(X,[G]);return Z}function V2(f){try{return K8(f)}catch{return!1}}function E2(f){return"signWithIntent"in f}function u8({provider:f,...y}={}){let G;async function T(){if(G)return G;return G=await b8(y).with({phrase:S2.string},async({phrase:N})=>{let{Ed25519Keypair:z}=await import("@mysten/sui/keypairs/ed25519");return z.deriveKeypair(N)}).with({signer:S2.any},({signer:N})=>N).otherwise(()=>{return}),G}async function _(N=f){let{SuiClient:z,getFullnodeUrl:B}=await import("@mysten/sui/client");return new z({url:N||B("mainnet")})}async function X(){return(await T())?.toSuiAddress()||""}function W(N){try{let z=Rf.from({address:N,chain:Zy.Sui});return{asset:z.toString(),decimals:z.decimal}}catch{}return null}async function Z(N){let z=N||await X();if(!z)throw new HT("toolbox_sui_address_required");let{baseDecimal:B,chain:k}=j8(Zy.Sui);try{let H=await _(),{totalBalance:F}=await H.getBalance({owner:z}),w=[Rf.from({chain:k,fromBaseDecimal:B,value:F})],Y=await H.getAllBalances({owner:z});for(let{coinType:q,totalBalance:D}of Y){if(q==="0x2::sui::SUI"||Number(D)<=0)continue;let R=W(q);if(R)w.push(Rf.from({asset:R.asset,fromBaseDecimal:R.decimals,value:D}))}return w}catch{return[Rf.from({chain:k})]}}async function J(N){let z=Rf.from({chain:Zy.Sui,value:"0.01"});if(!N)return z;try{let B=await _(),{txBytes:k}=await Q(N),{effects:{status:H,gasUsed:F}}=await B.dryRunTransactionBlock({transactionBlock:k});if(H.status!=="success")return z;let w=Number(F.computationCost)+Number(F.storageCost)-Number(F.storageRebate);return Rf.from({chain:Zy.Sui,value:w.toString()})}catch{return z}}async function Q({recipient:N,assetValue:z,gasBudget:B,sender:k}){let{Transaction:H}=await import("@mysten/sui/transactions"),F=k||await X();if(!F)throw new HT("toolbox_sui_no_sender");try{let w=new H;if(w.setSender(F),z.isGasAsset||z.symbol==="SUI"){let[D]=w.splitCoins(w.gas,[z.getBaseValue("string")]);w.transferObjects([D],N)}else{let D=z.address;if(!D)throw new HT("toolbox_sui_missing_coin_type");let R=await _(),$=z.getBaseValue("bigint"),C=await n2(R,F,D);if(!C.length)throw new HT("toolbox_sui_no_coins_found",{coinType:D});let I=l8(w,C,$);w.transferObjects([I],N)}if(B)w.setGasBudget(B);let Y=await _(),q=await w.build({client:Y});return{tx:w,txBytes:q}}catch(w){if(w instanceof HT)throw w;throw new HT("toolbox_sui_transaction_creation_error",{error:w})}}async function L(N){let z=await T();if(!z)throw new HT("toolbox_sui_no_signer");if(N instanceof Uint8Array)return z.signTransaction(N);let{txBytes:B}="tx"in N?N:await Q(N);return z.signTransaction(B)}async function O({assetValue:N,gasBudget:z,recipient:B}){let k=await T();if(!k)throw new HT("toolbox_sui_no_signer");let H=k.toSuiAddress()||await X();if(!H)throw new HT("toolbox_sui_no_sender");let{txBytes:F}=await Q({assetValue:N,gasBudget:z,recipient:B,sender:H}),w=await _();if(!E2(k)){let q=await k.signTransaction(F),{digest:D}=await w.executeTransactionBlock({signature:q.signature,transactionBlock:q.bytes});return D}let{digest:Y}=await w.signAndExecuteTransaction({signer:k,transaction:F});return Y}async function U(N){let z=await _(),{digest:B}=await z.executeTransactionBlock({signature:N.signature,transactionBlock:N.bytes});return B}async function M(N){let z=await T();if(!z)throw new HT("toolbox_sui_no_signer");let B=await _(),k;if(typeof N==="string")k=Uint8Array.from(Buffer.from(N,"base64"));else if(N instanceof Uint8Array)k=N;else k=await N.build({client:B});if(!E2(z)){let F=await z.signTransaction(k),{digest:w}=await B.executeTransactionBlock({signature:F.signature,transactionBlock:F.bytes});return w}let{digest:H}=await B.signAndExecuteTransaction({signer:z,transaction:k});return H}return{broadcastTransaction:U,createTransaction:Q,estimateTransactionFee:J,getAddress:X,getBalance:Z,signAndBroadcastTransaction:M,signTransaction:L,transfer:O,validateAddress:V2}}var v2=()=>{};var Jy={};fT(Jy,{validateSuiAddress:()=>V2,getSuiToolbox:()=>u8});var Qy=S(()=>{v2()});import{getHttpEndpoint as h8}from"@orbs-network/ton-access";import{AssetValue as m8,Chain as G0,getChainConfig as p8,getRPCUrl as t8,SwapKitError as _0,SwapKitNumber as c8}from"@swapkit/helpers";import{mnemonicToWalletKey as g8}from"@ton/crypto";import{Address as oT,beginCell as a1,Cell as o2,external as i8,internal as d8,JettonMaster as r8,loadStateInit as a8,SendMode as K2,storeMessage as s8,TonClient as e8,toNano as u2,WalletContractV4 as T9}from"@ton/ton";import{match as j2,P as s1}from"ts-pattern";async function X9(){let f=Date.now();if(Yy&&f-l2<G9)return Yy;try{return Yy=await h8(),l2=f,Yy}catch{return t8(G0.Ton)}}function W9(f={}){let y,G,T;async function _(){if(!y){let w=f.provider??await X9();y=new e8({endpoint:w})}return y}async function X(){return(await Z()).address.toString()}async function W(){if(T)return T;return T=await j2(f).with({phrase:s1.string},async({phrase:w})=>g8(w.split(" "))).with({signer:s1.any},({signer:w})=>w).otherwise(()=>{return}),T}async function Z(w){if(!G||w){let Y=await W(),q=await _(),D=w||Y;if(!D)throw new _0("core_wallet_connection_not_found");let R=T9.create({publicKey:D.publicKey,workchain:0});G=q.open(R)}return G}let J=UT(G0.Ton);async function Q({assetValue:w,recipient:Y,memo:q,sender:D}){if(w.isGasAsset){let j=q?F(q).toBoc().toString("base64"):void 0;return[{address:Y,amount:w.getBaseValue("string"),payload:j}]}let R=w.address;if(!R)throw new _0({errorKey:"core_swap_contract_not_found",info:{asset:w.toString()}});let $=D??await X(),C=await k({jettonMasterAddress:R,ownerAddress:$}),I=oT.parse(Y),A=oT.parse($),E=w.getBaseValue("bigint"),V=q?F(q):void 0,o=H({destinationAddress:I,forwardPayload:V,jettonAmount:E,responseAddress:A});return[{address:C.toString(),amount:_9.toString(),payload:o.toBoc().toString("base64")}]}function L({sender:w,...Y}){return Q({...Y,sender:w})}function O(w){return w.map((Y)=>{let q=Y.payload?o2.fromBase64(Y.payload):void 0,D=Y.stateInit?a8(o2.fromBase64(Y.stateInit).asSlice()):void 0,R=oT.parse(Y.address),$=oT.isFriendly(Y.address)?oT.parseFriendly(Y.address).isBounceable:!0;return d8({body:q,bounce:$,init:D,to:R,value:BigInt(Y.amount)})})}async function U(w){let Y=await W(),q=await Z();if(!q||!Y)throw new _0("core_wallet_connection_not_found");let D=await _(),{state:R}=await D.getContractState(q.address),$=R==="active",C=$?await q.getSeqno():0,I=q.createTransfer({messages:O(w),secretKey:Y.secretKey,sendMode:b2,seqno:C}),A=i8({body:I,init:$?void 0:q.init,to:q.address});return a1().store(s8(A)).endCell()}async function M(w){return await(await _()).sendFile(w.toBoc()),w.hash().toString("hex")}async function N(w){let Y=await U(w);return M(Y)}async function z({assetValue:w,recipient:Y,memo:q}){let D=await L({assetValue:w,memo:q,recipient:Y});return N(D)}async function B({sender:w,...Y}){let{baseDecimal:q}=p8(G0.Ton),D=await j2(w).with(s1.string,(C)=>{return oT.parseFriendly(C).address}).otherwise(async()=>{return(await Z()).address});if(!D)throw new _0("toolbox_fee_estimation_failed",{chain:G0.Ton});let R=m8.from({chain:G0.Ton,value:"0.01"}),$=await _();try{let C=await L({sender:w,...Y}),I=await W(),A=await Z();if(!A||!I)return R;let E=await A.getSeqno(),V=A.createTransfer({messages:O(C),secretKey:I.secretKey,sendMode:b2,seqno:E}),{source_fees:o}=await $.estimateExternalMessageFee(D,{body:V,ignoreSignature:!0,initCode:null,initData:null}),j=o.in_fwd_fee+o.storage_fee+o.gas_fee+o.fwd_fee;return R.set(c8.fromBigInt(BigInt(j),q))}catch{return R}}async function k({jettonMasterAddress:w,ownerAddress:Y}){try{let q=await _(),D=oT.parse(w),R=oT.parse(Y);return await q.open(r8.create(D)).getWalletAddress(R)}catch{throw new _0({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:w,ownerAddress:Y}})}}function H({jettonAmount:w,destinationAddress:Y,responseAddress:q,forwardAmount:D=y9,forwardPayload:R}){let $=a1().storeUint(f9,32).storeUint(0,64).storeCoins(w).storeAddress(Y).storeAddress(q).storeBit(0).storeCoins(D);if(R)$.storeBit(1).storeRef(R);else $.storeBit(0);return $.endCell()}function F(w){return a1().storeUint(0,32).storeStringTail(w).endCell()}return{broadcastTransaction:M,createTransaction:L,estimateTransactionFee:B,getAddress:X,getBalance:J,getJettonWalletAddress:k,sign:U,signAndBroadcastTransaction:N,transfer:z,validateAddress:h2}}function h2(f){try{return oT.parse(f),!0}catch{return!1}}var f9=260734629,y9,_9,b2,G9=60000,Yy,l2=0;var m2=S(()=>{bT();y9=u2("0.01"),_9=u2("0.05"),b2=K2.PAY_GAS_SEPARATELY+K2.IGNORE_ERRORS});var qy={};fT(qy,{validateTonAddress:()=>h2,getTONToolbox:()=>W9});var Ly=S(()=>{m2()});function p2({deriveAddress:f,getBalance:y,getUtxos:G}){async function T(Z){let{count:J,startIndex:Q=0,change:L=!1}=Z,O=[];for(let U=0;U<J;U++){let M=await f({change:L,index:Q+U});if(M)O.push(M)}return O}async function _(Z){let{gapLimit:J=20,change:Q=!1}=Z??{},L=[],O=0,U=0;while(O<J){let M=await f({change:Q,index:U});if(!M)break;if((await y(M.address)).some((B)=>B.getValue("number")>0))L.push(M),O=0;else O++;U++}return L}async function X(Z=20){let[J,Q]=await Promise.all([_({change:!1,gapLimit:Z}),_({change:!0,gapLimit:Z})]),L=[...J,...Q],O=await Promise.all(L.map(async(M)=>{let z=(await y(M.address)).reduce((B,k)=>B+k.getValue("number"),0);return{...M,balance:z}})),U=O.reduce((M,N)=>M+N.balance,0);return{addresses:O,total:U}}async function W(Z=20){let[J,Q]=await Promise.all([_({change:!1,gapLimit:Z}),_({change:!0,gapLimit:Z})]),L=[...J,...Q];return(await Promise.all(L.map(async(U)=>{return(await G(U.address)).map((N)=>({...N,address:U.address,derivationIndex:U.index,isChange:U.change}))}))).flat()}return{deriveAddresses:T,getAggregatedBalance:X,getAggregatedUtxos:W,scanForAddresses:_}}import{Chain as GT,getRPCUrl as Z9,RequestClient as zy,SKConfig as J9,SwapKitError as $T,warnOnce as Q9}from"@swapkit/helpers";import{NETWORKS as Cf}from"@swapkit/utxo-signer";async function Y9({chain:f,txHash:y}){let G=`${X0(f)}/push/transaction`,T=JSON.stringify({data:y});try{let _=await zy.post(G,{body:T,headers:{"Content-Type":"application/json"}});if(_.context.code!==200)throw new $T("toolbox_utxo_broadcast_failed",{error:_.context.error||"Transaction broadcast failed"});return _.data?.transaction_hash||y}catch(_){let X=await Z9(f);if(X){let W=JSON.stringify({id:__(),jsonrpc:"2.0",method:"sendrawtransaction",params:[y]}),Z=await zy.post(X,{body:W,headers:{"Content-Type":"application/json"}});if(Z.error)throw new $T("toolbox_utxo_broadcast_failed",{error:Z.error?.message});if(Z.result.includes('"code":-26'))throw new $T("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return Z.result}throw _}}function X0(f){return`https://api.blockchair.com/${q9(f)}`}function t2(f){switch(f){case GT.Bitcoin:return 5;case GT.Dogecoin:return 1e4;case GT.Litecoin:return 1;case GT.Zcash:return 1;default:return 2}}function q9(f){switch(f){case GT.BitcoinCash:return"bitcoin-cash";case GT.Litecoin:return"litecoin";case GT.Dash:return"dash";case GT.Dogecoin:return"dogecoin";case GT.Zcash:return"zcash";case GT.Polkadot:return"polkadot";default:return"bitcoin"}}async function L9(f){try{let{feePerKb:y}=await zy.get(`https://app.bitgo.com/api/v2/${f.toLowerCase()}/tx/fee`),G=y/1000;return Math.max(G,t2(f))}catch{return t2(f)}}async function Ny(f,y){let G=await zy.get(`${f}${y?`${f.includes("?")?"&":"?"}key=${y}`:""}`);if(!G||G.context.code!==200)throw new $T("toolbox_utxo_api_error",{error:`Failed to query ${f}`});return G.data}async function g2({address:f,chain:y,apiKey:G}){if(!f)throw new $T("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Ny(`${X0(y)}/dashboards/address/${f}?transaction_details=true`,G))[f]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function z9({address:f,chain:y,apiKey:G}){return(await g2({address:f,apiKey:G,chain:y}))?.address.balance||0}async function i2({chain:f,apiKey:y,txHash:G}){if(!G)throw new $T("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Ny(`${X0(f)}/raw/transaction/${G}`,y))?.[G]?.raw_transaction||""}catch(T){let _=T instanceof Error?T.message:String(T);return console.error(`Failed to fetch raw transaction: ${_}`),""}}async function U9({chain:f,apiKey:y,txHash:G}){if(!G)throw new $T("toolbox_utxo_invalid_params",{error:"TxHash is required"});let _=(await Ny(`${X0(f)}/dashboards/transaction/${G}`,y))?.[G];if(!_)throw new $T("toolbox_utxo_tx_not_found",{txHash:G});let{transaction:X,inputs:W,outputs:Z}=_,J=W.map((L)=>L.spending_sequence),Q=X.is_rbf===!0||J.some((L)=>L<N9);return{blockId:X.block_id,confirmed:X.block_id!==-1,fee:X.fee,inputs:W,isRBF:Q,outputs:Z,sequences:J,size:X.size,txid:X.hash,weight:X.weight}}async function M9({chain:f,address:y,apiKey:G,offset:T=0,limit:_=30}){return(await Ny(`${X0(f)}/outputs?q=recipient(${y}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${_}&offset=${T}`,G)).map(({is_spent:J,script_hex:Q,block_id:L,transaction_hash:O,index:U,value:M,spending_signature_hex:N})=>({hash:O,index:U,is_confirmed:L!==-1,is_spent:J,script_hex:Q,txHex:N,value:M}))}function B9(f){return f.reduce((y,G)=>y+G.value,0)}function c2(f,y){let G=[...f].sort((T,_)=>_.value-T.value);if(y){let T=[],_=0;for(let X of G)if(T.push(X),_+=X.value,_>=y)break;return T}return G}async function d2({chain:f,address:y,apiKey:G,targetValue:T,accumulativeValue:_=0,offset:X=0,limit:W=30}){if(!y)throw new $T("toolbox_utxo_invalid_params",{error:"Address is required"});try{let Z=await M9({address:y,apiKey:G,chain:f,limit:W,offset:X,targetValue:T}),Q=Z.length<W,L=Z.filter(({is_spent:B})=>!B),O=B9(L),U=_+O,M=T&&U>=T;if(Q||M)return c2(L,T);let N=await d2({accumulativeValue:U,address:y,apiKey:G,chain:f,limit:W,offset:X+W,targetValue:T}),z=[...L,...N];return c2(z,T)}catch(Z){let J=Z instanceof Error?Z.message:String(Z);return console.error(`Failed to fetch unspent UTXOs: ${J}`),[]}}async function w9({address:f,chain:y,apiKey:G,fetchTxHex:T=!0,targetValue:_}){let X=await d2({address:f,apiKey:G,chain:y,targetValue:_}),W=[];for(let{hash:Z,index:J,script_hex:Q,value:L}of X){let O;if(T)O=await i2({apiKey:G,chain:y,txHash:Z});W.push({address:f,hash:Z,index:J,txHex:O,value:L,witnessUtxo:{script:Buffer.from(Q,"hex"),value:L}})}return W}function a(f){let y=J9.get("apiKeys").blockchair||"";return Q9({condition:!y,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(G)=>Y9({chain:f,txHash:G}),getAddressData:(G)=>g2({address:G,apiKey:y,chain:f}),getBalance:(G)=>z9({address:G,apiKey:y,chain:f}),getRawTx:(G)=>i2({apiKey:y,chain:f,txHash:G}),getSuggestedTxFee:()=>L9(f),getTransactionDetails:(G)=>U9({apiKey:y,chain:f,txHash:G}),getUtxos:(G)=>w9({...G,apiKey:y,chain:f})}}function D9(f){return f}function O9(){return function(y){switch(y){case GT.Bitcoin:return Cf.bitcoin;case GT.BitcoinCash:return Cf.bitcoinCash;case GT.Dash:return Cf.dash;case GT.Litecoin:return Cf.litecoin;case GT.Dogecoin:return Cf.dogecoin;case GT.Zcash:return Cf.zcash;default:throw new $T("toolbox_utxo_not_supported",{chain:y})}}}var N9=4294967294;var r2=S(()=>{bT()});import{CashAddrType as Uy,decodeCashAddr as H9,encodeCashAddr as R9}from"@swapkit/utxo-signer";function k9(f,y,G){return R9({hash:G,prefix:f,type:C9[y]})}function $9(f){let y=H9(f),G=F9[y.type];if(!G)throw Error(`Unknown CashAddr type: ${y.type}`);return{hash:y.hash,prefix:y.prefix,type:G}}var C9,F9,e1;var a2=S(()=>{C9={P2PKH:Uy.P2PKH,P2SH:Uy.P2SH},F9={[Uy.P2PKH]:"P2PKH",[Uy.P2SH]:"P2SH"};e1={decode:$9,encode:k9}});import{sha256 as I9}from"@noble/hashes/sha2.js";import{createBase58check as A9}from"@scure/base";import{SwapKitError as e2}from"@swapkit/helpers";function f5(f){try{return My(f),!0}catch{return!1}}function y5(f){return My(f)?.network}function KT(f){let y=My(f);if(y?.format==="legacy")return f;return S9(y)}function W0(f){let y=My(f);return E9(y)}function My(f){try{let y=P9(f);if(y)return y}catch{}try{let y=x9(f);if(y)return y}catch{}throw new e2("toolbox_utxo_invalid_address",{address:f})}function P9(f){try{let y=TG.decode(f);if(y.length!==21)throw new e2("toolbox_utxo_invalid_address",{address:f});let G=y[0],T=Array.prototype.slice.call(y,1);switch(G){case Wf.legacy.mainnet.p2pkh:return{format:"legacy",hash:T,network:"mainnet",type:"p2pkh"};case Wf.legacy.mainnet.p2sh:return{format:"legacy",hash:T,network:"mainnet",type:"p2sh"};case Wf.legacy.testnet.p2pkh:return{format:"legacy",hash:T,network:"testnet",type:"p2pkh"};case Wf.legacy.testnet.p2sh:return{format:"legacy",hash:T,network:"testnet",type:"p2sh"};case Wf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:T,network:"mainnet",type:"p2pkh"};case Wf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:T,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function x9(f){if(f.indexOf(":")!==-1)try{return s2(f)}catch{}else{let y=["bitcoincash","bchtest","bchreg"];for(let G of y)try{return s2(`${G}:${f}`)}catch{}}return}function s2(f){try{let{hash:y,prefix:G,type:T}=e1.decode(f);return{format:"cashaddr",hash:Array.prototype.slice.call(y,0),network:G==="bitcoincash"?"mainnet":"testnet",type:T==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function S9(f){let y=Wf.legacy[f.network][f.type],G=Buffer.alloc(1+f.hash.length);return G[0]=y,G.set(f.hash,1),TG.encode(G)}function E9(f){let y=f.network==="mainnet"?"bitcoincash":"bchtest",G=f.type==="p2pkh"?"P2PKH":"P2SH",T=new Uint8Array(f.hash);return e1.encode(y,G,T)}var TG,T5,Wf;var fG=S(()=>{a2();TG=A9(I9);((G)=>{G.Mainnet="mainnet";G.Testnet="testnet"})(T5||={});Wf={["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 n9}from"@swapkit/helpers";import{Script as V9}from"@swapkit/utxo-signer";function zT(f){let y=new Uint8Array(Buffer.from(f,"utf8"));return V9.encode(["RETURN",y])}var v9=1000,wy=10,Dy=2,yG=10,o9=41,K9=107,Oy,By,Z0,Ff=(f)=>{if(f.startsWith("bc1")||f.startsWith("tb1")||f.startsWith("ltc1")||f.startsWith("tltc1"))return"P2WPKH";if(f.startsWith("1")||f.startsWith("m")||f.startsWith("n")||f.startsWith("bitcoincash:q")||f.startsWith("bitcoincash:p")||f.startsWith("q")||f.startsWith("p")||f.startsWith("L")||f.startsWith("M")||f.startsWith("3")||f.startsWith("D")||f.startsWith("A")||f.startsWith("9")||f.startsWith("X")||f.startsWith("7")||f.startsWith("y")||f.startsWith("t1")||f.startsWith("t3")||f.startsWith("tm"))return"P2PKH";throw new n9("toolbox_utxo_invalid_address",{address:f})},Zf=({inputs:f,outputs:y,feeRate:G})=>{let T=f[0]&&"address"in f[0]&&f[0].address?Ff(f[0].address):"P2PKH",X=(G?f.filter((Q)=>Q.value>=By["type"in Q&&Q.type?Q.type:"P2PKH"]*Math.ceil(G)):f).reduce((Q,L)=>Q+tT(L),0),W=y?.reduce((Q,L)=>Q+J0(L),0)||Z0[T],Z=wy+X+W;return T==="P2WPKH"?Math.ceil(Z+Dy/4):Z},tT=(f)=>{if("type"in f&&f.type)return By[f.type];if("address"in f&&f.address)return By[Ff(f.address)];return o9+K9},J0=(f,y)=>{if(f?.script)return yG+f.script.length+(f.script.length>=74?2:1);if(y)return Z0[y];if("address"in f&&f.address)return Z0[Ff(f.address)];return Z0.P2PKH};var _5=S(()=>{((G)=>{G.P2PKH="P2PKH";G.P2WPKH="P2WPKH"})(Oy||={});By={["P2PKH"]:148,["P2WPKH"]:68},Z0={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as Jf,SwapKitError as j9}from"@swapkit/helpers";function Q0(f){switch(f){case Jf.Bitcoin:case Jf.BitcoinCash:return 550;case Jf.Dash:case Jf.Litecoin:return 5500;case Jf.Dogecoin:return 1e5;case Jf.Zcash:return 546;default:throw new j9("toolbox_utxo_not_supported",{chain:f})}}function RT({inputs:f,outputs:y,feeRate:G=1,chain:T=Jf.Bitcoin,changeAddress:_=""}){let X=f[0]&&"address"in f[0]&&f[0].address?Ff(f[0].address):"P2PKH",W=f.filter((N)=>tT(N)*G<=N.value),J=X==="P2WPKH"?Math.ceil(Dy/4):0,Q=wy+J+y.reduce((N,z)=>N+J0(z),0),L=y.reduce((N,z)=>N+z.value,0),O=Q*G,U=0,M=[];for(let N of W){let z=tT(N),B=G*z;O+=B,U+=N.value,M.push(N);let k=O+L;if(U<k)continue;let H=U-k,F=G*J0({address:_,value:0});if(H>F){let w=F+O,Y=U-(L+Math.ceil(w));if(Y>Math.max(tT({value:0})*G,Q0(T)))return{fee:Math.ceil(w),inputs:M,outputs:y.concat({address:_,value:Y})}}return{fee:Math.ceil(O),inputs:M,outputs:y}}return{fee:Math.ceil(G*Zf({inputs:f,outputs:y}))}}var _G=S(()=>{_5()});var kf=S(()=>{r2();fG();_G();_5()});import{Address as b9,ZCASH_NETWORK as l9}from"@swapkit/utxo-signer";function Qf(f){return f.replace(/(bchtest:|bitcoincash:)/,"")}function cT(f){let y=Qf(f);return f5(y)&&y5(y)==="mainnet"}function $f(f){try{if(f.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let G=b9(l9).decode(f);return G.type==="pkh"||G.type==="sh"}catch{return!1}}var Y0=S(()=>{kf()});import{secp256k1 as u9}from"@noble/curves/secp256k1.js";import{hex as Yf}from"@scure/base";import{HDKey as ZG}from"@scure/bip32";import{mnemonicToSeedSync as X5}from"@scure/bip39";import{AssetValue as Hy,applyFeeMultiplier as GG,Chain as s,derivationPathToString as JG,FeeOption as IT,NetworkDerivationPath as QG,SwapKitError as h,SwapKitNumber as h9,updateDerivationPath as m9,warnOnce as p9}from"@swapkit/helpers";import{Address as t9,BCHSigHash as W5,CashAddrPrefix as c9,CashAddrType as g9,encodeCashAddr as i9,NETWORKS as If,p2pkh as XG,p2wpkh as d9,RBF_SEQUENCE as r9,SigHash as YG,Transaction as G5,WIF as qG}from"@swapkit/utxo-signer";import{match as LG}from"ts-pattern";function Z5({address:f,chain:y}){return LG(y).with(s.BitcoinCash,()=>cT(f)).with(s.Zcash,()=>$f(f)).otherwise(()=>{try{return t9(NT(y)).decode(f),!0}catch{return!1}})}function NT(f){return LG(f).with(s.Bitcoin,()=>If.bitcoin).with(s.BitcoinCash,()=>If.bitcoinCash).with(s.Dash,()=>If.dash).with(s.Dogecoin,()=>If.dogecoin).with(s.Litecoin,()=>If.litecoin).with(s.Zcash,()=>If.zcash).exhaustive()}function a9({phrase:f,derivationPath:y,network:G,seed:T}){let _=T??X5(f),W=ZG.fromMasterSeed(_,G.bip32).derive(y);if(!W.privateKey)throw new h("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return W.privateKey}function WG(f){return u9.getPublicKey(f,!0)}function J5({publicKey:f,chain:y,network:G}){if(y===s.BitcoinCash){let X=XG(f,G);if(!X.hash)throw new h("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return i9({hash:X.hash,prefix:c9.MAINNET,type:g9.P2PKH}).replace(/^bitcoincash:/,"")}let _=!q0.includes(y)?d9(f,G):XG(f,G);if(!_.address)throw new h("toolbox_utxo_invalid_address",{error:"Could not derive address"});return _.address}function Af({phrase:f,derivationPath:y,chain:G,wif:T,seed:_}){let X=NT(G);if(T){let Q=qG(X).decode(T),L=WG(Q);return{privateKey:Q,publicKey:L}}if(!f)throw new h("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let W=y||JG(QG[G]),Z=a9({derivationPath:W,network:X,phrase:f,seed:_}),J=WG(Z);return{privateKey:Z,publicKey:J}}function s9(f,y){return qG(NT(y)).encode(f)}function e9({phrase:f,derivationPath:y,chain:G,seed:T}){let _=y.split("/");if(_.length<4)throw new h("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${_.length}): ${y}`});let X=NT(G),W=T??X5(f),Z=ZG.fromMasterSeed(W,X.bip32),J=_.slice(0,4).join("/");return Z.derive(J)}function gT({inputs:f,outputs:y,chain:G,tx:T,sender:_,compiledMemo:X,enableRBF:W=!1}){let Z=NT(G),J=!q0.includes(G),Q=W?r9:void 0,L=new Set;for(let O of f){let U=`${O.hash}:${O.index}`;if(L.has(U))throw new h("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});L.add(U);let M=typeof O.hash==="string"?Yf.decode(O.hash):O.hash;if(J&&O.witnessUtxo)T.addInput({index:O.index,sequence:Q,txid:M,witnessUtxo:{amount:BigInt(O.witnessUtxo.value),script:O.witnessUtxo.script}});else if(O.txHex)T.addInput({index:O.index,nonWitnessUtxo:Yf.decode(O.txHex),sequence:Q,txid:M,...G===s.BitcoinCash?{sighashType:W5.ALL}:{}});else throw new h("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let O of y){let U="address"in O&&O.address?O.address:_;if(G===s.BitcoinCash)U=KT(U);if(O.script){if(X)T.addOutput({amount:0n,script:X})}else T.addOutputAddress(U,BigInt(O.value),Z)}return{inputs:f,tx:T}}async function Pf(f){let y=await a(f).getSuggestedTxFee();return{[IT.Average]:y,[IT.Fast]:GG(y,IT.Fast),[IT.Fastest]:GG(y,IT.Fastest)}}async function zG({assetValue:f,recipient:y,memo:G,sender:T,fetchTxHex:_=!1}){let X=f.chain,W=(await Pf(X))[IT.Fastest],Z=_||q0.includes(X),J=f.getBaseValue("number"),Q=Math.ceil(J+W*5000);return{inputs:await a(X).getUtxos({address:T,fetchTxHex:Z,targetValue:Q}),outputs:[{address:y,value:J},...G?[{address:"",script:zT(G),value:0}]:[]]}}async function NG({assetValue:f,recipient:y,memo:G,feeRate:T,sender:_,fetchTxHex:X=!1,enableRBF:W=!1}){let Z=f.chain,J=G?zT(G):null,Q=await zG({assetValue:f,fetchTxHex:X,memo:G,recipient:y,sender:_}),{inputs:L,outputs:O}=RT({...Q,chain:Z,feeRate:T});if(!(L&&O))throw new h("toolbox_utxo_insufficient_balance",{assetValue:f,sender:_});let U=new G5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!J,version:1}),{inputs:M,tx:N}=gT({chain:Z,compiledMemo:J,enableRBF:W,inputs:L,outputs:O,sender:_,tx:U});return{inputs:M,tx:N,utxos:Q.inputs}}async function UG({assetValue:f,feeOptionKey:y=IT.Fast,feeRate:G,memo:T,sender:_,recipient:X}){let W=f.chain,Z=await zG({assetValue:f,memo:T,recipient:X,sender:_}),J=G?Math.floor(G):(await Pf(W))[y];return RT({...Z,chain:W,feeRate:J})}function T4(f){return async function({from:G,memo:T,feeRate:_,feeOptionKey:X=IT.Fast,recipients:W=1}){let Z=await a(f).getAddressData(G),J=_?Math.ceil(_):(await Pf(f))[X],Q=Z?.utxo.map((z)=>({...z,hash:"",type:"P2PKH"})).filter((z)=>z.value>Math.max(Q0(f),tT(z)*J));if(!Q?.length)return Hy.from({chain:f});let L=BigInt(Q.reduce((z,B)=>z+B.value,0)),O=Hy.from({chain:f,value:L}),U=typeof W==="number"?Array.from({length:W},()=>({address:G,value:0})):W;if(T)U.push({address:G,script:zT(T),value:0});let M=Zf({inputs:Q,outputs:U}),N=Hy.from({chain:f,value:BigInt(M*J)});return O.sub(N)}}function f4(f){return async function(G){let{fee:T}=await UG(G);return Hy.from({chain:f,value:h9.fromBigInt(BigInt(T),8).getValue("string")})}}function y4({chain:f,phrase:y,derivationPath:G,seed:T}){let _=NT(f),{privateKey:X,publicKey:W}=Af({chain:f,derivationPath:G,phrase:y,seed:T}),Z=f===s.BitcoinCash?[W5.ALL]:[YG.ALL];return{getAddress:()=>J5({chain:f,network:_,publicKey:W}),privateKey:X,publicKey:W,signTransaction:(J)=>{return J.sign(X,Z),J}}}function _4(f,y){return async function({memo:T,recipient:_,feeOptionKey:X,feeRate:W,assetValue:Z,enableRBF:J=!1}){let Q=y?.getAddress();if(!(y&&Q))throw new h("toolbox_utxo_no_signer");if(!_)throw new h("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});p9({condition:J&&!Ry.includes(f),id:`rbf_not_supported_${f}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${f}. Transaction will be created without RBF signaling.`});let L=J&&Ry.includes(f),O=W||(await Pf(f))[X||IT.Fast],{tx:U}=await NG({assetValue:Z,enableRBF:L,feeRate:O,memo:T,recipient:_,sender:Q});return y.signTransaction(U),U.finalize(),a(f).broadcastTx(Yf.encode(U.extract()))}}function Q5(f){return(y)=>Z5({address:y,chain:f})}function Y5(f){let y=NT(f);return function(T){if(!T)throw new h("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return J5({chain:f,network:y,publicKey:T.publicKey})}}function iT({chain:f,...y}){let G="phrase"in y?y.phrase:void 0,T="index"in y?y.index||0:0,_=G?X5(G):void 0,X=JG("derivationPath"in y&&y.derivationPath?y.derivationPath:m9(QG[f],{index:T})),W=G?y4({chain:f,derivationPath:X,phrase:G,seed:_}):void 0,Z="signer"in y?y.signer:void 0,J=G?Af({chain:f,derivationPath:X,phrase:G,seed:_}):void 0;function Q(){if(W)return Promise.resolve(W.getAddress());if(Z)return Z.getAddress();return Promise.resolve(void 0)}let L=G?e9({chain:f,derivationPath:X,phrase:G,seed:_}):void 0;function O(){if(!L)return;return L.publicExtendedKey}function U({index:w,change:Y=!1}){if(!L)return;if(!Number.isInteger(w)||w<0)throw RangeError(`index must be a non-negative integer, got: ${w}`);let q=NT(f),D=L.deriveChild(Number(Y)).deriveChild(w);if(!D.publicKey)throw new h("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let R=J5({chain:f,network:q,publicKey:D.publicKey}),$=Yf.encode(D.publicKey);return{address:R,change:Y,index:w,pubkey:$}}async function M(w){if(!Ry.includes(f))return{reason:`RBF is not supported on ${f}`,supported:!1};let Y=await a(f).getTransactionDetails(w);return{canReplace:Y.isRBF&&!Y.confirmed,confirmed:Y.confirmed,enabled:Y.isRBF,fee:Y.fee,sequences:Y.sequences,supported:!0}}async function N({txid:w,newFeeRate:Y,recipient:q,memo:D}){if(!Ry.includes(f))throw new h("toolbox_utxo_rbf_not_supported",{chain:f});let R=await a(f).getTransactionDetails(w);if(!R.isRBF)throw new h("toolbox_utxo_tx_not_replaceable",{txid:w});if(R.confirmed)throw new h("toolbox_utxo_tx_already_confirmed",{blockId:R.blockId,txid:w});let $=R.inputs.reduce((t,YT)=>t+YT.value,0),I=R.outputs.find((t)=>t.recipient===q)?.value||0;if(I===0)throw new h("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let A=await Promise.all(R.inputs.map(async(t)=>{let YT=await a(f).getRawTx(t.transaction_hash);return{hash:t.transaction_hash,index:t.index,txHex:YT,value:t.value,witnessUtxo:void 0}})),E=D?zT(D):null,V=Zf({feeRate:Y,inputs:A.map((t)=>({...t,type:"P2WPKH"})),outputs:[{address:q,value:I}]}),o=Math.ceil(V*Y);if(o<=R.fee)throw new h("toolbox_utxo_rbf_fee_too_low",{newFee:o,originalFee:R.fee});let j=o-R.fee,u=I-j;if(u<=0)throw new h("toolbox_utxo_rbf_insufficient_change");let r=new G5({allowLegacyWitnessUtxo:!0,version:1}),JT=[{address:q,value:u},...D?[{address:"",script:zT(D),value:0}]:[]],TT=$-u-o,QT=await Q();if(TT>Q0(f)&&QT)JT.push({address:QT,value:TT});return gT({chain:f,compiledMemo:E,inputs:A,outputs:JT,sender:QT||q,tx:r}),{feeDelta:j,newFee:o,originalFee:R.fee,tx:r}}async function z({txid:w,newFeeRate:Y,recipient:q,memo:D}){if(!W)throw new h("toolbox_utxo_no_signer");let{tx:R,originalFee:$,newFee:C}=await N({memo:D,newFeeRate:Y,recipient:q,txid:w});W.signTransaction(R),R.finalize();let I=await a(f).broadcastTx(Yf.encode(R.extract()));return{newFee:C,originalFee:$,txid:I}}function B({index:w,change:Y=!1}){if(!L)return;return L.deriveChild(Number(Y)).deriveChild(w).privateKey||void 0}function k({tx:w,inputDerivations:Y}){if(!L)throw new h("toolbox_utxo_no_signer");let q=f===s.BitcoinCash?[W5.ALL]:[YG.ALL];for(let D=0;D<Y.length;D++){let R=Y[D];if(!R)continue;let{derivationIndex:$,isChange:C}=R,I=B({change:C,index:$});if(!I)throw new h("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${D} at index ${$}`});w.signIdx(I,D,q)}return w}async function H({utxos:w,recipient:Y,assetValue:q,memo:D,feeRate:R,feeOptionKey:$,changeAddress:C}){if(!L)throw new h("toolbox_utxo_no_signer");let I=R||(await Pf(f))[$||IT.Fast],A=D?zT(D):null,E=[{address:Y,value:q.getBaseValue("number")}];if(A)E.push({address:"",script:A,value:0});let V=w.map(({hash:QT,index:t,value:YT,txHex:sT,witnessUtxo:qf})=>({hash:QT,index:t,txHex:sT,value:YT,witnessUtxo:qf?{script:qf.script,value:qf.value}:void 0})),{inputs:o,outputs:j}=RT({chain:f,feeRate:I,inputs:V,outputs:E});if(!(o&&j))throw new h("toolbox_utxo_insufficient_balance",{assetValue:q,sender:"multiple addresses"});let u=new G5({allowLegacyWitnessUtxo:!0,version:1}),r=w[0]?.address,JT=C||await Q()||r||Y;gT({chain:f,compiledMemo:A,inputs:o,outputs:j,sender:JT,tx:u});let TT=o.map((QT)=>{let t=w.find((YT)=>YT.hash===QT.hash&&YT.index===QT.index);return t?{derivationIndex:t.derivationIndex,isChange:t.isChange}:{derivationIndex:0,isChange:!1}});return k({inputDerivations:TT,tx:u}),u.finalize(),a(f).broadcastTx(Yf.encode(u.extract()))}function F({address:w,gapLimit:Y=20}){if(!L)return;for(let q=0;q<Y;q++){let D=U({change:!1,index:q}),R=U({change:!0,index:q}),$=D?.address===w?!1:R?.address===w;if(D?.address===w||R?.address===w)return{change:$,index:q}}return}return{accumulative:RT,broadcastTx:(w)=>a(f).broadcastTx(w),bumpFee:z,calculateTxSize:Zf,createKeysForPath:(w)=>Af({...w,chain:f}),createReplacementTransaction:N,createTransaction:NG,deriveAddressAtIndex:U,derivePrivateKeyAtIndex:B,estimateMaxSendableAmount:T4(f),estimateTransactionFee:f4(f),getAddress:Q,getAddressFromKeys:Y5(f),getBalance:UT(f),getExtendedPublicKey:O,getFeeRates:()=>Pf(f),getInputsOutputsFee:UG,getNetworkForChain:()=>NT(f),getPrivateKeyFromMnemonic:(w)=>s9(Af({...w,chain:f}).privateKey,f),isRBFEnabled:M,keys:J,resolveDerivationIndex:F,signAndBroadcastTransaction:async(w)=>{if(!W)throw new h("toolbox_utxo_no_signer");return W.signTransaction(w),w.finalize(),await a(f).broadcastTx(Yf.encode(w.extract()))},signTransactionWithMultipleKeys:k,transfer:_4(f,W),transferFromMultipleAddresses:H,validateAddress:Q5(f)}}var q0,Ry;var L0=S(()=>{bT();kf();Y0();q0=[s.Dash,s.Dogecoin,s.Zcash,s.BitcoinCash],Ry=[s.Bitcoin]});import{hex as G4}from"@scure/base";import{Chain as X4,derivationPathToString as W4,FeeOption as Z4,NetworkDerivationPath as J4,SwapKitError as dT,updateDerivationPath as Q4}from"@swapkit/helpers";import{BCHSigHash as Y4,CashAddrPrefix as MG,CashAddrType as BG,encodeCashAddr as wG,NETWORKS as q4,p2pkh as DG,Transaction as OG}from"@swapkit/utxo-signer";function z0(f){return Qf(W0(f))}function L4(f){let y=NT(AT);function G(_){return _.sign(f.privateKey,[Y4.ALL]),_}function T(){let _=DG(f.publicKey,y);if(!_.hash)throw new dT("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let X=wG({hash:_.hash,prefix:MG.MAINNET,type:BG.P2PKH});return Promise.resolve(X.replace(/^bitcoincash:/,""))}return{getAddress:T,signTransaction:G}}function q5(f){let y="phrase"in f?f.phrase:void 0,G="index"in f?f.index||0:0,T=W4("derivationPath"in f&&f.derivationPath?f.derivationPath:Q4(J4[AT],{index:G})),_=y?Af({chain:AT,derivationPath:T,phrase:y}):void 0,X=_?L4(_):("signer"in f)?f.signer:void 0;function W(){return Promise.resolve(X?.getAddress())}let{getBalance:Z,getFeeRates:J,broadcastTx:Q,...L}=iT({chain:AT});function O(U,M=!0){return Z(Qf(W0(U)))}return{...L,broadcastTx:Q,buildTx:N4,createTransaction:HG,getAddress:W,getAddressFromKeys:U4,getBalance:O,getFeeRates:J,stripPrefix:Qf,stripToCashAddress:z0,transfer:z4({broadcastTx:Q,getFeeRates:J,signer:X}),validateAddress:cT}}async function HG({assetValue:f,recipient:y,memo:G,feeRate:T,sender:_}){if(!cT(y))throw new dT("toolbox_utxo_invalid_address",{address:y});let X=Math.ceil(f.getBaseValue("number")+T*7500),W=await a(AT).getUtxos({address:z0(_),fetchTxHex:!0,targetValue:X}),Z=G?zT(G):null,J=[],Q=KT(y);if(J.push({address:Q,value:f.getBaseValue("number")}),Z)J.push({script:Z,value:0});let{inputs:L,outputs:O}=RT({chain:AT,feeRate:T,inputs:W,outputs:J});if(!(L&&O))throw new dT("toolbox_utxo_insufficient_balance",{assetValue:f,sender:_});let U=new OG({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Z,version:1}),M=KT(_),{inputs:N,tx:z}=gT({chain:AT,compiledMemo:Z,inputs:L,outputs:O.map((B)=>("address"in B)&&B.address?{...B,address:KT(B.address)}:B),sender:M,tx:U});return{inputs:N,tx:z,utxos:L}}function z4({broadcastTx:f,getFeeRates:y,signer:G}){return async function({recipient:_,assetValue:X,feeOptionKey:W=Z4.Fast,...Z}){let J=await G?.getAddress();if(!(G&&J))throw new dT("toolbox_utxo_no_signer");if(!_)throw new dT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Q=Z.feeRate||(await y())[W],{tx:L}=await HG({...Z,assetValue:X,feeRate:Q,recipient:_,sender:J}),O=await G.signTransaction(L);return O.finalize(),f(G4.encode(O.extract()))}}async function N4({assetValue:f,recipient:y,memo:G,feeRate:T,sender:_}){let X=W0(y);if(!cT(X))throw new dT("toolbox_utxo_invalid_address",{address:X});let W=Math.ceil(f.getBaseValue("number")+T*7500),Z=await a(AT).getUtxos({address:z0(_),fetchTxHex:!0,targetValue:W}),J=Number(T.toFixed(0)),Q=G?zT(G):null,L=[];if(L.push({address:KT(y),value:f.getBaseValue("number")}),Q)L.push({script:Q,value:0});let{inputs:O,outputs:U}=RT({chain:AT,feeRate:J,inputs:Z,outputs:L});if(!(O&&U))throw new dT("toolbox_utxo_insufficient_balance",{assetValue:f,sender:_});let M=new OG({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Q,version:1}),{inputs:N,tx:z}=gT({chain:AT,compiledMemo:Q,inputs:O,outputs:U,sender:KT(_),tx:M});return{inputs:N,tx:z,utxos:Z}}function U4(f){let y=q4.bitcoinCash,G=DG(f.publicKey,y);if(!G.hash)throw new dT("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return wG({hash:G.hash,prefix:MG.MAINNET,type:BG.P2PKH}).replace(/^bitcoincash:/,"")}var AT;var Cy=S(()=>{kf();L0();Y0();AT=X4.BitcoinCash});import{createBase58check as M4,hex as B4}from"@scure/base";import{HDKey as FG}from"@scure/bip32";import{mnemonicToSeedSync as kG}from"@scure/bip39";import{Chain as Fy,derivationPathToString as w4,FeeOption as D4,NetworkDerivationPath as O4,SKConfig as $G,SwapKitError as xf,updateDerivationPath as H4}from"@swapkit/helpers";import{Address as R4,createZcashTransaction as C4,OutScript as F4,PCZT as k4,utils as IG,WIF as $4,ZCASH_NETWORK as I4,ZCASH_TEST_NETWORK as A4,ZcashConsensusBranchId as P4,ZcashSigHash as RG,ZcashVersionGroupId as x4}from"@swapkit/utxo-signer";import{match as S4,P as L5}from"ts-pattern";function AG(){let{isStagenet:f}=$G.get("envs");return f?A4:I4}function n4(f){return E4.encode(f)}function V4({phrase:f,derivationPath:y}){let G=kG(f),_=FG.fromMasterSeed(G).derive(y);if(!_.privateKey||!_.publicKey)throw new xf("toolbox_utxo_invalid_params");let{privateKey:X,publicKey:W}=_,Z=IG.hash160(W),{isStagenet:J}=$G.get("envs"),Q=J?new Uint8Array([29,37]):new Uint8Array([28,184]),L=new Uint8Array(Q.length+Z.length);L.set(Q,0),L.set(Z,Q.length);let O=n4(L);return{getAddress:()=>Promise.resolve(O),signTransaction:(U)=>{if(U instanceof k4)return U.signAllInputs(X,W,RG.ALL),U.finalizeAllInputs(),Promise.resolve(U.extract());return U.signAllInputs(X,W,RG.ALL),Promise.resolve(U)}}}function v4({inputs:f,outputs:y,tx:G,sender:T,compiledMemo:_}){let X=AG();for(let W of f){let Z=R4(X).decode(T),J=F4.encode(Z);G.addInput({index:W.index,script:J,sequence:4294967295,txid:B4.decode(W.hash),value:BigInt(W.value)})}for(let W of y){let Z="address"in W&&W.address?W.address:T,J=W.script;if(J&&!_)continue;if(J&&_)G.addOutput({amount:0n,script:_});else G.addOutputAddress(Z,BigInt(W.value),X)}return{inputs:f,tx:G}}async function CG(f){let{assetValue:y,recipient:G,memo:T,feeRate:_,sender:X,fetchTxHex:W}=f,Z=T?zT(T):null,J=await a(Fy.Zcash).getUtxos({address:X,fetchTxHex:W!==!1}),Q=[{address:G,value:Number(y.getBaseValue("string"))},...Z?[{script:Z,value:0}]:[]],{inputs:L,outputs:O}=RT({chain:Fy.Zcash,changeAddress:X,feeRate:_,inputs:J,outputs:Q});if(!(L&&O))throw new xf("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let U=C4({consensusBranchId:P4.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:x4.SAPLING}),{tx:M,inputs:N}=v4({compiledMemo:Z,inputs:L,outputs:O,sender:X,tx:U});return{inputs:N,outputs:O,tx:M}}function z5(f){let y=S4(f).with({signer:L5.not(L5.nullish)},({signer:J})=>J).with({phrase:L5.string},({phrase:J,derivationPath:Q,index:L=0})=>{let O=Q||O4[Fy.Zcash]||[44,133,0,0,0],U=H4(O,{index:L}),M=w4(U);return V4({derivationPath:M,phrase:J})}).otherwise(()=>{return}),G=iT({chain:Fy.Zcash,signer:y});async function T({recipient:J,assetValue:Q,feeOptionKey:L=D4.Fast,...O}){let U=await y?.getAddress();if(!(y&&U))throw new xf("toolbox_utxo_no_signer");let M=O.feeRate||(await G.getFeeRates())[L],{tx:N}=await CG({...O,assetValue:Q,feeRate:M,recipient:J,sender:U}),B=(await y.signTransaction(N)).toHex();return G.broadcastTx(B)}function _({phrase:J,derivationPath:Q="m/44'/133'/0'/0/0"}){let L=kG(J),U=FG.fromMasterSeed(L).derive(Q);if(!U.privateKey||!U.publicKey)throw new xf("toolbox_utxo_invalid_params");return{privateKey:U.privateKey,publicKey:U.publicKey}}function X({phrase:J,derivationPath:Q="m/44'/133'/0'/0/0"}){let L=_({derivationPath:Q,phrase:J}),O=AG();return $4(O).encode(L.privateKey)}function W(J){return async function(L){if(!J)throw new xf("toolbox_utxo_no_signer");return await J.signTransaction(L)}}function Z(J){return async function(L){if(!J)throw new xf("toolbox_utxo_no_signer");let O=await J.signTransaction(L);return G.broadcastTx(O.toHex())}}return{...G,createKeysForPath:_,createTransaction:CG,getPrivateKeyFromMnemonic:X,signAndBroadcastTransaction:Z(y),signTransaction:W(y),transfer:T,validateAddress:$f}}var E4;var N5=S(()=>{kf();L0();Y0();E4=M4(IG.sha256)});import{Chain as Sf,SwapKitError as o4}from"@swapkit/helpers";function K4(f,y){switch(f){case Sf.BitcoinCash:return q5(y||{});case Sf.Zcash:return z5(y);case Sf.Bitcoin:case Sf.Dogecoin:case Sf.Litecoin:case Sf.Dash:return iT({chain:f,...y});default:throw new o4("toolbox_utxo_not_supported",{chain:f})}}var PG=S(()=>{Cy();L0();N5();Cy();Y0()});var U5={};fT(U5,{validateZcashAddress:()=>$f,validateUtxoAddress:()=>Z5,validateBchAddress:()=>cT,toLegacyAddress:()=>KT,toCashAddress:()=>W0,stripToCashAddress:()=>z0,stripPrefix:()=>Qf,nonSegwitChains:()=>q0,isValidAddress:()=>f5,getUtxoToolbox:()=>K4,getUtxoNetwork:()=>O9,getUtxoApi:()=>a,getUTXOAddressValidator:()=>Q5,getScriptTypeForAddress:()=>Ff,getOutputSize:()=>J0,getNetworkForChain:()=>NT,getInputSize:()=>tT,getDustThreshold:()=>Q0,detectAddressNetwork:()=>y5,createZcashToolbox:()=>z5,createUTXOToolbox:()=>iT,createHDWalletHelpers:()=>p2,createCustomUtxoApi:()=>D9,createBCHToolbox:()=>q5,compileMemo:()=>zT,calculateTxSize:()=>Zf,addressFromKeysGetter:()=>Y5,addInputsAndOutputs:()=>gT,accumulative:()=>RT,UtxoNetwork:()=>T5,UTXOScriptType:()=>Oy,TX_OVERHEAD:()=>wy,SEGWIT_MARKER_FLAG_WEIGHT:()=>Dy,OutputSizes:()=>Z0,OP_RETURN_OVERHEAD:()=>yG,MIN_TX_FEE:()=>v9,InputSizes:()=>By});var M5=S(()=>{L0();kf();PG();Cy();N5()});import{KeyPairSigner as j4}from"@near-js/signers";import{derivationPathToString as b4,SwapKitError as l4}from"@swapkit/helpers";function N0(f){return f.length>=2&&f.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(f)}async function ky(f){let{parseSeedPhrase:y}=await import("near-seed-phrase"),{KeyPair:G}=await import("@near-js/crypto"),T=f.index||0,_=f.derivationPath?b4(f.derivationPath.slice(0,3)):`m/44'/397'/${T}'`,{secretKey:X}=y(f.phrase,_),W=G.fromString(X);return SG(W)}async function B5(f){let{KeyPair:y}=await import("@near-js/crypto"),G=y.fromString(f);return SG(G)}function SG(f){return new xG(f)}async function $y(f,y){let T=(await f.query({account_id:y,finality:"final",request_type:"view_access_key_list"})).keys.find((Z)=>Z.access_key.permission==="FullAccess");if(!T)throw new l4("toolbox_near_no_public_key_found");let{PublicKey:_}=await import("@near-js/crypto"),X=_.fromString(T.public_key);return{nonce:T.access_key.nonce||0,publicKey:X}}var xG;var w5=S(()=>{xG=class xG extends j4{#T;constructor(f){super(f);this.#T=f}getAddress(){let f=this.#T.getPublicKey(),y=Buffer.from(f.data).toString("hex");return Promise.resolve(y)}}});function D5(f){return"recipient"in f&&"amount"in f&&!("contractId"in f)}function O5(f){return"contractId"in f&&"methodName"in f}function H5(f){return"actions"in f}function R5(f){return"newAccountId"in f}function C5(f){return"contractCode"in f}function F5(f){return"customEstimator"in f}function k5(f){let y=0;for(let G of f)switch(G.enum){case"transfer":y+=Number(XT.SIMPLE_TRANSFER);break;case"functionCall":y+=Number(XT.CONTRACT_CALL);break;case"createAccount":y+=Number(XT.ACCOUNT_CREATION);break;case"deployContract":y+=Number(XT.CONTRACT_DEPLOYMENT);break;case"addKey":y+=Number(XT.ACCESS_KEY_ADDITION);break;case"deleteKey":y+=Number(XT.ACCESS_KEY_DELETION);break;case"stake":y+=Number(XT.STAKE);break;default:y+=Number(XT.CONTRACT_CALL)}return y.toString()}function $5(f){if(f==="ft_transfer"||f==="ft_transfer_call")return XT.TOKEN_TRANSFER;if(f==="storage_deposit")return XT.STORAGE_DEPOSIT;return XT.CONTRACT_CALL}function u4(f){return(BigInt(f)*BigInt(1000000000000)).toString()}function h4(f){return(BigInt(f)/BigInt(1000000000000)).toString()}var XT;var I5=S(()=>{XT={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 A5({account:f,contractId:y,viewMethods:G,changeMethods:T}){let{Contract:_}=await import("@near-js/accounts");return new _(f,y,{changeMethods:T,useLocalViewExecution:!0,viewMethods:G})}import{JsonRpcProvider as m4}from"@near-js/providers";import{AssetValue as P5,Chain as Ef,getRPCUrl as EG,SwapKitError as qT}from"@swapkit/helpers";import{match as nG,P as VG}from"ts-pattern";function p4(f){let y;async function G(){if(y)return y;return y=await nG(f).with({phrase:VG.string},async(C)=>{return await ky(C)}).with({signer:VG.any},({signer:C})=>C).otherwise(()=>{return}),y}async function T(){let C=await EG(Ef.Near);return new m4({url:C})}async function _(C){let{Account:I}=await import("@near-js/accounts"),A=await T(),E=await G(),V=C||await X();return new I(V,A,E)}async function X(){let C=await G();if(!C)throw new qT("toolbox_near_no_signer");return await C.getAddress()}async function W(C){return(await w({changeMethods:[],contractId:C.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:C.accountId})}async function Z(C){let A=[await U({args:{account_id:C.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await U({args:{amount:C.assetValue.getBaseValue("string"),memo:C.memo||null,receiver_id:C.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return Y({actions:A,receiverId:C.contractId})}async function J(C){if(!await G())throw new qT("toolbox_near_no_signer");let{assetValue:A,recipient:E,memo:V}=C,o=await X();if(!A.isGasAsset&&A.address){if(!await W({accountId:E,contractId:A.address}))return Z({assetValue:A,contractId:A.address,memo:V,recipient:E})}let j=await Q({...C,sender:o});return z(j)}async function Q({recipient:C,assetValue:I,memo:A,attachedDeposit:E,sender:V,functionCall:o}){let j=await T();if(!N0(C))throw new qT("toolbox_near_invalid_address",{recipient:C});if(!N0(V))throw new qT("toolbox_near_invalid_address",{sender:V});if(o)return O({...o,sender:V});if(!I.isGasAsset){let r5=I.address;if(!r5)throw new qT("toolbox_near_missing_contract_address");return O({args:{amount:I.getBaseValue("string"),memo:A||null,receiver_id:C},attachedDeposit:E||"1",contractId:r5,gas:"250000000000000",methodName:"ft_transfer",sender:V})}let{publicKey:u,nonce:r}=await $y(j,V),JT=I.getBaseValue("bigint"),{actionCreators:TT,createTransaction:QT}=await import("@near-js/transactions"),{baseDecode:t}=await import("@near-js/utils"),YT=[TT.transfer(JT)];if(A&&E)YT.push(TT.functionCall("memo",{memo:A},BigInt("250000000000000"),BigInt(E)));let sT=await j.block({finality:"final"}),qf=t(sT.header.hash);return QT(V,u,C,r+1,YT,qf)}function L(C){let I=C.encode();return Buffer.from(I).toString("base64")}async function O({args:C,attachedDeposit:I,contractId:A,gas:E,methodName:V,sender:o}){let j=await T(),{publicKey:u,nonce:r}=await $y(j,o),{createTransaction:JT,actionCreators:TT}=await import("@near-js/transactions"),{baseDecode:QT}=await import("@near-js/utils"),t=await j.block({finality:"final"}),YT=QT(t.header.hash),sT=[TT.functionCall(V,Buffer.from(JSON.stringify(C)),BigInt(E),BigInt(I))];return JT(o,u,A,r+1,sT,YT)}async function U(C){let{actionCreators:I}=await import("@near-js/transactions");return I.functionCall(C.methodName,Buffer.from(JSON.stringify(C.args)),BigInt(C.gas),BigInt(C.attachedDeposit))}async function M(C){let I=await G();if(!I)throw new qT("toolbox_near_no_signer");let[A,E]=await I.signTransaction(C);return E}async function N(C){return(await(await T()).sendTransaction(C)).transaction.hash}async function z(C){let I=await G();if(!I)throw new qT("toolbox_near_no_signer");try{let A=await M(C);return await N(A)}catch{return I.signAndSendTransactions?.({transactions:[C]})}}async function B(C){let I=await G();if("assetValue"in C){let E=await k();try{let V=await EG(Ef.Near),o=await fetch(V,{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:j}}=await o.json(),{execution:u,send_sir:r}=j.transaction_costs.action_receipt_creation_config,{execution:JT,send_sir:TT}=j.transaction_costs.action_creation_config.transfer_cost,QT=BigInt(TT)+BigInt(JT),t=BigInt(r)+BigInt(u),sT=(QT+t)*BigInt(E.toString());return P5.from({chain:Ef.Near,value:sT})}catch(V){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",V);let o=BigInt("115123062500"),j=BigInt("108059500000"),r=(o+j)*BigInt(E.toString());return P5.from({chain:Ef.Near,value:r})}}let A=I?await _():void 0;return q(C,A)}async function k(){let C=await T();try{return await C.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function H(C,I,A){if(!await G())throw new qT("toolbox_near_no_signer");let V=await _(),{formatNearAmount:o}=await import("@near-js/utils"),{PublicKey:j}=await import("@near-js/crypto"),u=o(A)||"0";return(await V.createAccount(C,j.fromString(I),BigInt(u))).transaction.hash}async function F(C){let I=await G();try{if(!I)throw new qT("toolbox_near_no_signer");let{actionCreators:A}=await import("@near-js/transactions"),{contractId:E,methodName:V,args:o,deposit:j}=C,u=await _(),r=await q({args:o||{},contractId:E,methodName:V}),JT=A.functionCall(V,o||{},r.getBaseValue("bigint"),BigInt(j||"1"));return(await u.signAndSendTransaction({actions:[JT],receiverId:E})).transaction_outcome.id}catch(A){throw new qT("toolbox_near_transfer_failed",{error:A})}}async function w(C){let I=await _();return A5({account:I,changeMethods:C.changeMethods,contractId:C.contractId,viewMethods:C.viewMethods})}async function Y(C){if(!await G())throw new qT("toolbox_near_no_signer");if(C.actions.length===0)throw new qT("toolbox_near_empty_batch");return(await(await _()).signAndSendTransaction({actions:C.actions,receiverId:C.receiverId})).transaction.hash}async function q(C,I){let A=await nG(C).when(D5,()=>XT.SIMPLE_TRANSFER).when(O5,(V)=>$5(V.methodName)).when(H5,(V)=>k5(V.actions)).when(R5,()=>XT.ACCOUNT_CREATION).when(C5,()=>XT.CONTRACT_DEPLOYMENT).when(F5,(V)=>{if(!I)throw new qT("toolbox_near_no_account");return V.customEstimator(I)}).otherwise(()=>{throw new qT("toolbox_near_invalid_gas_params")}),E=BigInt(A)*BigInt(1000000000000);return P5.from({chain:Ef.Near,value:E})}function D(C,I){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),q(C,I)}async function R(){let C=await T();try{return(await C.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function $(){let C=await G();return C?(await C.getPublicKey()).toString():""}return{broadcastTransaction:N,callFunction:F,createAction:U,createContract:w,createContractFunctionCall:O,createSubAccount:H,createTransaction:Q,estimateGas:D,estimateGasLimit:q,estimateTransactionFee:B,executeBatchTransaction:Y,getAddress:X,getBalance:UT(Ef.Near),getGasPrice:R,getNearProvider:T,getPublicKey:$,getSignerFromPhrase:ky,getSignerFromPrivateKey:B5,serializeTransaction:L,signAndBroadcastTransaction:z,signTransaction:M,transfer:J,validateAddress:N0}}var x5=S(()=>{bT();w5();I5()});var vG=S(()=>{x5()});var S5={};fT(S5,{validateNearAddress:()=>N0,tgasToGas:()=>u4,isSimpleTransfer:()=>D5,isCustomEstimator:()=>F5,isContractDeployment:()=>C5,isContractCall:()=>O5,isBatchTransaction:()=>H5,isAccountCreation:()=>R5,getNearToolbox:()=>p4,getNearSignerFromPrivateKey:()=>B5,getNearSignerFromPhrase:()=>ky,getFullAccessPublicKey:()=>$y,getContractMethodGas:()=>$5,gasToTGas:()=>h4,estimateBatchGas:()=>k5,createNearContract:()=>A5,GAS_COSTS:()=>XT});var E5=S(()=>{w5();I5();x5();vG()});var V5={};fT(V5,{validateRadixAddress:()=>KG,getRadixToolbox:()=>e4});import{GatewayApiClient as t4}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as c4}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as oG,Chain as n5,SKConfig as g4,SwapKitError as i4}from"@swapkit/helpers";function KG(f){return f.startsWith("account_rdx1")&&f.length===66}function d4({networkApi:f}){return async function(G){let T=await r4({address:G,networkApi:f}),_=await a4({networkApi:f,resources:T});if(!_.some((W)=>W.isGasAsset))return[oG.from({chain:n5.Radix}),..._];return _}}async function r4({address:f,networkApi:y}){let G=!0,T,_=[],X=await s4(y);while(G){let W={address:f,at_ledger_state:{state_version:X},cursor:T,limit_per_page:100},Z=await y.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:W});if(_=_.concat(Z.items),Z.next_cursor)T=Z.next_cursor;else G=!1}return _}async function a4({resources:f,networkApi:y}){let G=[],T=50,_=[];for(let X=0;X<f.length;X+=50)_.push(f.slice(X,X+50));for(let X of _){let W=X.map((Q)=>Q.resource_address),Z=await y.state.getEntityDetailsVaultAggregated(W),J=new Map;for(let Q of Z)if(Q.details!==void 0){let L=Q.metadata?.items.find((U)=>U.key==="symbol"),O=L?.value.typed.type==="String"?L.value.typed.value:"?";if(Q.details.type==="FungibleResource")J.set(Q.address,{decimals:Q.details.divisibility,symbol:O})}for(let Q of X)if(Q.aggregation_level==="Global"){let L=J.get(Q.resource_address)||{decimals:0,symbol:"?"},O=oG.from({asset:L.symbol!==n5.Radix?`${n5.Radix}.${L.symbol}-${Q.resource_address}`:"XRD.XRD",value:Q.amount});G.push(O)}}return G}async function s4(f){return(await f.status.getCurrent()).ledger_state.state_version}function e4({dappConfig:f}={}){let y=f||g4.get("integrations").radix,G=c4({...y,networkId:y.network?.networkId||1}),T=t4.initialize(G.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:d4({networkApi:T}),networkApi:T,signAndBroadcast:()=>{throw new i4("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:KG}}var v5=()=>{};import{SwapKitError as TW}from"@swapkit/helpers";function Iy(f){return/^[0-9A-Fa-f]{40}$/.test(f)}function U0(f){if(Iy(f))return f.toUpperCase();if(f.length<=3){let G=Buffer.from(f.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${G}${"0".repeat(10)}`.toUpperCase()}let y=Buffer.from(f).toString("hex").toUpperCase();if(y.length>40)throw new TW({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:f,reason:"Currency exceeds maximum length (20 bytes)"}});return y.padEnd(40,"0")}function fW(f){if(!Iy(f))return f;if(f.toUpperCase().startsWith("00")){let y=f.slice(24,30);try{let G=Buffer.from(y,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(G)&&G.length>0)return G}catch{}return f.toUpperCase()}try{let y=f.replace(/0+$/,""),G=y.length%2===0?y:`${y}0`,T=Buffer.from(G,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(T))return T}catch{}return f.toUpperCase()}function nf(f){if(Iy(f))return f.toUpperCase();if(f.length<=3)return f;return U0(f)}var Ay=()=>{};import{RequestClient as yW,warnOnce as _W}from"@swapkit/helpers";async function GW(f,y){let G=nf(f),T=Py.find((_)=>nf(_.currency)===G&&_.issuer===y);if(T)return T;try{let _=await yW.get(`https://api.xrplmeta.org/token/${f}:${y}`);if(_)return{currency:f,decimals:15,description:_.desc,domain:_.domain,icon:_.icon,issuer:y,name:_.name,verified:_.self_assessment?.is_regulated||_.self_assessment?.is_licensed}}catch(_){_W({condition:!0,id:`xrpl_token_lookup_${f}_${y}`,warning:`Failed to fetch XRPL token info for ${f}:${y}: ${_}`})}return{currency:f,decimals:15,issuer:y,verified:!1}}function XW(f){return Py.filter((y)=>y.issuer===f)}function WW(f,y){let G=nf(f);return Py.some((T)=>nf(T.currency)===G&&T.issuer===y)}var Py;var jG=S(()=>{Ay();Py=[{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 o5={};fT(o5,{validateRippleAddress:()=>Ey,parseXrplTokenIdentifier:()=>tG,normalizeCurrency:()=>nf,isKnownToken:()=>WW,isHexCurrency:()=>Iy,hexToCurrency:()=>fW,hashes:()=>zW,getXrplTokenInfo:()=>GW,getRippleToolbox:()=>LW,getKnownTokensByIssuer:()=>XW,formatXrplTokenIdentifier:()=>cG,currencyToHex:()=>U0,XRPL_TOKEN_ERROR_CODES:()=>Sy,XRPL_KNOWN_TOKENS:()=>Py});import{AssetValue as xy,Chain as CT,getChainConfig as bG,getRPCUrl as ZW,SwapKitError as WT}from"@swapkit/helpers";import{match as lG,P as uG}from"ts-pattern";import{Client as JW,isValidAddress as pG,Wallet as QW,xrpToDrops as YW}from"xrpl";import{hashes as zW}from"xrpl";function tG(f){let y=f.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!y?.[1]||!y?.[2])return null;if(!pG(y[2]))return null;return{currency:y[1],issuer:y[2]}}function cG(f,y){return`${CT.Ripple}.${f}-${y}`}function qW(f){if(f.isGasAsset)return YW(f.getValue("string"));let y=tG(f.toString());if(!y)throw new WT({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:f.toString()}});return{currency:y.currency,issuer:y.issuer,value:f.getValue("string")}}function mG(f){let y=QW.fromMnemonic(f);return{getAddress:()=>Promise.resolve(y.address),signTransaction:(G)=>Promise.resolve(y.sign(G))}}function Ey(f){return pG(f)}function LW(f={}){let y=lG(f).with({phrase:uG.string},({phrase:H})=>mG(H)).with({signer:uG.any},({signer:H})=>H).otherwise(()=>{return}),G;async function T(){let H=await ZW(CT.Ripple);if(!H)throw new WT({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:CT.Ripple}});let F=new JW(H);return await F.connect(),F}async function _(){if(G){let H=await G.catch(()=>null);if(H?.isConnected())return H}return G=T(),G}let X=()=>{if(!y)throw new WT({errorKey:"toolbox_ripple_signer_not_found"});return y.getAddress()},W=async(H)=>{let F=H||await X(),{baseDecimal:w}=bG(CT.Ripple),Y=await _();try{let[q,D]=await Promise.all([Y.request({account:F,command:"account_info"}),Y.request({account:F,command:"account_lines"})]),R=q.result.account_data.Balance,$=[xy.from({chain:CT.Ripple,fromBaseDecimal:w,value:R})];for(let C of D.result.lines){let I=cG(C.currency,C.account);if(Number.parseFloat(C.balance)!==0)$.push(xy.from({asset:I,asyncTokenLookup:!1,value:C.balance}))}return $}catch(q){if(q.data?.error_code===hG.ACCOUNT_NOT_FOUND)return[xy.from({chain:CT.Ripple,value:0})];throw new WT({errorKey:"toolbox_ripple_get_balance_error",info:{address:F,error:q}})}},Z=async()=>{let{baseDecimal:H}=bG(CT.Ripple),Y=(await(await _()).request({command:"fee"})).result.drops.open_ledger_fee;return xy.from({chain:CT.Ripple,fromBaseDecimal:H,value:Y})};async function J(H){let F=H||await X(),w=await _();try{return(await w.request({account:F,command:"account_lines"})).result.lines.map((q)=>({account:q.account,authorized:q.authorized??!1,balance:q.balance,currency:q.currency,freeze:q.freeze??!1,freezePeer:q.freeze_peer??!1,limit:q.limit,limitPeer:q.limit_peer,noRipple:q.no_ripple??!1,noRipplePeer:q.no_ripple_peer??!1,peerAuthorized:q.peer_authorized??!1,qualityIn:q.quality_in??0,qualityOut:q.quality_out??0}))}catch(Y){if(Y.data?.error_code===hG.ACCOUNT_NOT_FOUND)return[];throw new WT({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:F,error:Y}})}}async function Q({address:H,currency:F,issuer:w}){let Y=await J(H),q=U0(F);return Y.some((D)=>{return U0(D.currency)===q&&D.account===w})}async function L({currency:H,issuer:F,limit:w,sender:Y}){let q=Y||await X();if(!Ey(F))throw new WT({errorKey:"core_transaction_invalid_recipient_address",info:{address:F}});let D=Number.parseFloat(w);if(Number.isNaN(D)||D<0)throw new WT({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:w}});let R=await _(),$={Account:q,LimitAmount:{currency:H,issuer:F,value:w},TransactionType:"TrustSet"};return R.autofill($)}async function O({assetValue:H,recipient:F,memo:w,sender:Y,destinationTag:q,extendBySeconds:D=150}){if(!Ey(F))throw new WT({errorKey:"core_transaction_invalid_recipient_address"});let R=Y||await X();if(H.chain!==CT.Ripple)throw new WT({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:H.toString()}});let $=qW(H),C={Account:R,Amount:$,Destination:F,TransactionType:"Payment",...q!==void 0&&{DestinationTag:q}};if(w)C.Memos=[{Memo:{MemoData:Buffer.from(w).toString("hex")}}];let A=await(await _()).autofill(C);if(A.LastLedgerSequence&&D>0)A.LastLedgerSequence+=Math.ceil(D/4);return A}function U(H){if(!y)throw new WT({errorKey:"toolbox_ripple_signer_not_found"});return y.signTransaction(H)}async function M(H){let w=await(await _()).submitAndWait(H),{result:Y}=w;if(Y.validated)return Y.hash;let q=Y.meta?.TransactionResult,D=lG(q).with(Sy.tecNO_LINE,()=>"No trust line exists for this token").with(Sy.tecPATH_DRY,()=>"Payment path could not deliver funds").with(Sy.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new WT({errorKey:"toolbox_ripple_broadcast_error",info:{chain:CT.Ripple,...D?{reason:D}:{txResult:q}}})}let N=async(H)=>{try{let F=await U(H);return M(F.tx_blob)}catch(F){if(F instanceof WT)throw F;throw new WT({errorKey:"toolbox_ripple_broadcast_error",info:{chain:CT.Ripple,error:F}})}};async function z(H){if(!y)throw new WT({errorKey:"toolbox_ripple_signer_not_found"});let F=await y.getAddress(),w=await O({...H,sender:F}),Y=await U(w);return M(Y.tx_blob)}async function B(H){if(!y)throw new WT({errorKey:"toolbox_ripple_signer_not_found"});let F=await y.getAddress(),w=await L({...H,sender:F}),Y=await U(w);return M(Y.tx_blob)}function k(){let H=G;if(G=null,H)H.then((F)=>{if(F?.isConnected())return F.disconnect();return}).catch((F)=>{console.warn("XRPL Cleanup failed silently:",F)})}return{broadcastTransaction:M,createSigner:mG,createTransaction:O,disconnect:k,estimateTransactionFee:Z,getAddress:X,getBalance:W,getTrustLines:J,hasTrustLine:Q,setTrustLine:L,setTrustLineAndBroadcast:B,signAndBroadcastTransaction:N,signTransaction:U,transfer:z,validateAddress:Ey}}var hG,Sy;var K5=S(()=>{Ay();Ay();jG();hG={ACCOUNT_NOT_FOUND:19},Sy={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 NW}from"@noble/hashes/sha2.js";import{bytesToHex as gG,hexToBytes as iG}from"@noble/hashes/utils.js";import{SwapKitError as Vf}from"@swapkit/helpers";function j5(f,y){let G=0n,T=0n,_=y;while(_<f.length&&_-y<10){let X=f[_++];if(X===void 0)break;if(G|=BigInt(X&127)<<T,T+=7n,(X&128)===0)return[G,_]}throw new Vf("toolbox_tron_transaction_creation_failed")}function M0(f){let y=[],G=f<0n?f+2n**64n:f;while(G>=128n)y.push(Number(G&0x7fn)|128),G>>=7n;return y.push(Number(G)),y}function ny(f,y,G){let T=f.get(y);if(T)T.push(G);else f.set(y,[G])}function wW(f){let y=new Map,G=0;while(G<f.length){let[T,_]=j5(f,G);G=_;let X=Number(T>>3n),W=Number(T&7n);if(W===Vy){let[Z,J]=j5(f,G);G=J,ny(y,X,{data:new Uint8Array(M0(Z)),wireType:Vy})}else if(W===vy){let[Z,J]=j5(f,G);G=J;let Q=Number(Z);if(Q<0||G+Q>f.length)throw new Vf("toolbox_tron_transaction_creation_failed");let L=f.slice(G,G+Q);G+=Q,ny(y,X,{data:L,wireType:vy})}else if(W===dG){if(G+8>f.length)throw new Vf("toolbox_tron_transaction_creation_failed");let Z=f.slice(G,G+8);G+=8,ny(y,X,{data:Z,wireType:dG})}else if(W===rG){if(G+4>f.length)throw new Vf("toolbox_tron_transaction_creation_failed");let Z=f.slice(G,G+4);G+=4,ny(y,X,{data:Z,wireType:rG})}else throw new Vf("toolbox_tron_transaction_creation_failed")}return y}function DW(f){let y=[];for(let[X,W]of[...f.entries()].sort(([Z],[J])=>Z-J))for(let{wireType:Z,data:J}of W){let Q=BigInt(X<<3|Z);if(y.push(new Uint8Array(M0(Q))),Z===vy)y.push(new Uint8Array(M0(BigInt(J.length))));y.push(J)}let G=y.reduce((X,W)=>X+W.length,0),T=new Uint8Array(G),_=0;for(let X of y)T.set(X,_),_+=X.length;return T}function aG(f,y){if(!f||f.length%2!==0)throw new Vf("toolbox_tron_transaction_creation_failed");let G=iG(f),T=wW(G);if(y.expiration!==void 0)T.set(UW,[{data:new Uint8Array(M0(BigInt(y.expiration))),wireType:Vy}]);if(y.data!==void 0)T.set(MW,[{data:iG(y.data),wireType:vy}]);if(y.fee_limit!==void 0)T.set(BW,[{data:new Uint8Array(M0(BigInt(y.fee_limit))),wireType:Vy}]);let _=DW(T),X=gG(_),W=gG(NW(_));return{raw_data_hex:X,txID:W}}var Vy=0,dG=1,vy=2,rG=5,UW=8,MW=10,BW=18;var sG=()=>{};import{secp256k1 as eG}from"@noble/curves/secp256k1.js";import{sha256 as TX}from"@noble/hashes/sha2.js";import{keccak_256 as OW}from"@noble/hashes/sha3.js";import{bytesToHex as vf,hexToBytes as oy}from"@noble/hashes/utils.js";import{createBase58check as HW}from"@scure/base";import{SwapKitError as fX}from"@swapkit/helpers";function FT(f){if(typeof f!=="string")return!1;try{let y=Ky.decode(f);return y.length===21&&y[0]===yX}catch{return!1}}function _X(f){return vf(Ky.decode(f))}function CW(f){return Ky.decode(f).slice(1)}function GX(f){let y=eG.getPublicKey(oy(f),!1),G=OW(y.slice(1)).slice(-20),T=new Uint8Array(21);return T[0]=yX,T.set(G,1),Ky.encode(T)}function XX({txID:f,privateKey:y}){let G=eG.sign(oy(f),oy(y),{format:"recovered",prehash:!1}),T=G[0]??0,_=vf(G.slice(1,33)),X=vf(G.slice(33,65)),W=(T+27).toString(16).padStart(2,"0");return _+X+W}function of({txID:f,raw_data_hex:y}){let G=vf(TX(oy(y)));if(f!==G)throw new fX("toolbox_tron_token_transfer_failed")}function FW(f){return`000000000000000000000000${vf(CW(f))}`}function kW(f){let y=typeof f==="bigint"?f:BigInt(f);if(y<0n||y>=RW)throw new fX("toolbox_tron_invalid_token_identifier",{identifier:y.toString()});return y.toString(16).padStart(64,"0")}function Kf(f){return f.map(({type:y,value:G})=>y==="address"?FW(G):kW(BigInt(G))).join("")}function WX(f){return vf(new TextEncoder().encode(f))}var Ky,yX=65,RW;var b5=S(()=>{Ky=HW(TX),RW=2n**256n});import{Chain as $W,getRPCUrlSync as IW,SwapKitError as PT,warnOnce as l5}from"@swapkit/helpers";function JX(){try{return IW($W.Tron)}catch{return ZX}}function QX(){let f=new AbortController,y=setTimeout(()=>f.abort(),SW);return{cleanup:()=>clearTimeout(y),signal:f.signal}}async function jf(f,y){let{signal:G,cleanup:T}=QX();try{let _=await fetch(`${JX()}${f}`,{body:JSON.stringify(y),headers:{"Content-Type":"application/json"},method:"POST",signal:G});if(!_.ok)throw new PT("toolbox_tron_trongrid_api_error",{message:`${_.status} ${_.statusText} on ${f}`});return await _.json()}finally{T()}}async function YX(f,y){let{signal:G,cleanup:T}=QX();try{let _=await fetch(`${y??JX()}${f}`,{headers:{"Content-Type":"application/json"},signal:G});if(!_.ok)throw new PT("toolbox_tron_trongrid_api_error",{message:`${_.status} ${_.statusText} on ${f}`});return await _.json()}finally{T()}}async function qX(f){if(!FT(f))throw new PT("toolbox_tron_trongrid_api_error",{address:f,message:"Invalid address"});try{let y=await YX(`/v1/accounts/${f}`,ZX);if(!(y.success&&y.data)||y.data.length===0)return;let G;try{G=_X(f).toLowerCase()}catch{G=f.toLowerCase()}let T=y.data.find((_)=>_.address.toLowerCase()===G);if(!T)return;return{balance:T.balance,trc20:T.trc20||[]}}catch(y){if(y instanceof PT)throw y;throw new PT("toolbox_tron_trongrid_api_error",{address:f,message:y instanceof Error?y.message:"Unknown error"})}}async function LX({from:f,to:y,amount:G}){let _=await jf("/wallet/createtransaction",{amount:G,owner_address:f,to_address:y,visible:!0});if(!_.txID||!_.raw_data_hex||!_.raw_data)throw new PT("toolbox_tron_transaction_creation_failed");let W=_.raw_data?.contract?.[0]?.parameter?.value;if(W?.to_address!==y||W?.owner_address!==f||W?.amount!==G)throw new PT("toolbox_tron_transaction_creation_failed");return of(_),_}async function zX({ownerAddress:f,contractAddress:y,functionSelector:G,parameter:T,feeLimit:_,callValue:X=0}){let W=await jf("/wallet/triggersmartcontract",{call_value:X,contract_address:y,fee_limit:_,function_selector:G,owner_address:f,parameter:T,visible:!0});if(!W.result.result||!W.transaction?.txID||!W.transaction?.raw_data_hex)throw new PT("toolbox_tron_transaction_creation_failed");let J=W.transaction.raw_data?.contract?.[0]?.parameter?.value;if(J?.contract_address!==y||J?.owner_address!==f)throw new PT("toolbox_tron_transaction_creation_failed");return of(W.transaction),W.transaction}function NX({ownerAddress:f,contractAddress:y,functionSelector:G,parameter:T}){return jf("/wallet/triggerconstantcontract",{contract_address:y,function_selector:G,owner_address:f,parameter:T,visible:!0})}async function B0(f){let{result:y,txid:G}=await jf("/wallet/broadcasttransaction",{raw_data:f.raw_data,raw_data_hex:f.raw_data_hex,signature:f.signature,txID:f.txID,visible:f.visible});if(!y||!G)throw new PT("toolbox_tron_token_transfer_failed");return G}async function jy(){let f={};try{let{chainParameter:y}=await YX("/wallet/getchainparameters");for(let G of y)f[G.key]=G.value}catch(y){l5({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${y instanceof Error?y.message:y}`})}return{bandwidthFee:f.getTransactionFee??AW,createAccountFee:f.getCreateAccountFee??PW,energyFee:f.getEnergyFee??xW}}async function u5(f){try{let y=await jf("/wallet/getaccountresource",{address:f,visible:!0});return{bandwidth:{free:(y.freeNetLimit??600)-(y.freeNetUsed??0),total:y.NetLimit??0,used:y.NetUsed??0},energy:{total:y.EnergyLimit??0,used:y.EnergyUsed??0}}}catch(y){return l5({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 h5(f){try{let y=await jf("/wallet/getaccount",{address:f,visible:!0});return y&&Object.keys(y).length>0}catch{return!1}}async function m5(f){try{let{energy_used:y}=await NX({...f,ownerAddress:f.sender});return y}catch(y){return l5({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy, using default: ${y instanceof Error?y.message:y}`}),65000}}async function UX({assetAddress:f,owner:y,spender:G}){let T=Kf([{type:"address",value:y},{type:"address",value:G}]),X=(await NX({contractAddress:f,functionSelector:"allowance(address,address)",ownerAddress:G,parameter:T})).constant_result?.[0];if(!X)return 0n;try{return BigInt(`0x${X}`)}catch{return 0n}}var ZX="https://api.trongrid.io",AW=1000,PW=1e5,xW=420,SW=30000;var MX=S(()=>{b5()});import{bytesToHex as EW}from"@noble/hashes/utils.js";import{HDKey as nW}from"@scure/bip32";import{mnemonicToSeedSync as VW}from"@scure/bip39";import{AssetValue as jT,BaseDecimal as BX,Chain as DT,derivationPathToString as OX,getRPCUrl as vW,NetworkDerivationPath as HX,SwapKitError as ZT,updateDerivationPath as RX,warnOnce as wX}from"@swapkit/helpers";import{match as oW,P as p5}from"ts-pattern";function FX({phrase:f,derivationPath:y}){let G=nW.fromMasterSeed(VW(f)).derive(y);if(!G.privateKey)throw new ZT("toolbox_tron_no_signer");return EW(G.privateKey)}function kX({phrase:f,derivationPath:y,index:G}){let T=y||OX(RX(HX[DT.Tron],{index:G||0}));return FX({derivationPath:T,phrase:f})}function uW({phrase:f,derivationPath:y}){let G=FX({derivationPath:y,phrase:f}),T=GX(G);return{getAddress:()=>Promise.resolve(T),signTransaction:(_)=>{of(_);let X=XX({privateKey:G,txID:_.txID});return Promise.resolve({..._,signature:[X]})}}}function DX({transaction:f,memo:y,expiration:G,feeLimit:T}){let _={},X={};if(T!==void 0&&f.raw_data)_.fee_limit=T,X.fee_limit=T;if(y){let J=WX(y);_.data=J,X.data=J}if(G){let J=f.raw_data.expiration+G*1000;_.expiration=J,X.expiration=J}if(Object.keys(_).length===0)return f;let{raw_data_hex:W,txID:Z}=aG(f.raw_data_hex,_);return{...f,raw_data:{...f.raw_data,...X},raw_data_hex:W,txID:Z}}function $X(f={}){let y="index"in f?f.index||0:0,G=OX("derivationPath"in f&&f.derivationPath?f.derivationPath:RX(HX[DT.Tron],{index:y})),T,_=!1;function X(){if(_)return Promise.resolve(T);return T=oW(f).with({phrase:p5.string},({phrase:Y})=>uW({derivationPath:G,phrase:Y})).with({signer:p5.not(p5.nullish)},({signer:Y})=>Y).otherwise(()=>{return}),_=!0,Promise.resolve(T)}async function W(){let Y=await X();if(!Y)throw new ZT("toolbox_tron_no_signer");return Y.getAddress()}async function Z(Y){let q=Y||jW,D=await jy(),R=q*D.energyFee,$=Math.ceil(R*1.5);return Math.min(Math.max($,1e7),150000000)}async function J({contractAddress:Y,functionSelector:q,parameter:D,sender:R,memo:$,expiration:C}){let I=await m5({contractAddress:Y,functionSelector:q,parameter:D,sender:R}),A=await Z(I),E=await zX({contractAddress:Y,feeLimit:A,functionSelector:q,ownerAddress:R,parameter:D});return DX({expiration:C,feeLimit:A,memo:$,transaction:E})}async function Q(Y){if(!FT(Y))return[jT.from({chain:DT.Tron})];try{let q=await qX(Y);if(!q)return[jT.from({chain:DT.Tron})];let D=[jT.from({chain:DT.Tron,fromBaseDecimal:6,value:String(q.balance)})],R=q.trc20?.find(($)=>(t5 in $));if(R){let $=R[t5];D.push(jT.from({asset:`TRON.USDT-${t5}`,fromBaseDecimal:6,value:$}))}return D}catch(q){return wX({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${q instanceof Error?q.message:q}`}),[jT.from({chain:DT.Tron})]}}async function L({recipient:Y,assetValue:q,memo:D,expiration:R}){if(!FT(Y))throw new ZT("toolbox_tron_token_transfer_failed");let $=await X();if(!$)throw new ZT("toolbox_tron_no_signer");let C=await W(),I=await z({assetValue:q,expiration:R,memo:D,recipient:Y,sender:C}),A=await $.signTransaction(I),E=await B0(A);if(!E)throw new ZT("toolbox_tron_token_transfer_failed");return E}function O({requiredBandwidth:Y,resources:q,feePerUnit:D}){let R=Math.max(0,q.free+q.total-q.used);return Y>R?(Y-R)*D:0}async function U({recipient:Y,senderAddress:q}){let[D,R,$]=await Promise.all([jy(),h5(Y),u5(q)]),C=R?0:D.createAccountFee,I=O({feePerUnit:D.bandwidthFee,requiredBandwidth:KW,resources:$.bandwidth});return jT.from({chain:DT.Tron,fromBaseDecimal:BX.TRON,value:C+I})}async function M({assetValue:Y,recipient:q,senderAddress:D}){let R=Y.address;if(!R)throw new ZT("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let[$,C,I,A]=await Promise.all([jy(),h5(q),u5(D),m5({contractAddress:R,functionSelector:"transfer(address,uint256)",parameter:Kf([{type:"address",value:q},{type:"uint256",value:Y.getBaseValue("string")}]),sender:D})]),E=C?0:$.createAccountFee,V=O({feePerUnit:$.bandwidthFee,requiredBandwidth:bW,resources:I.bandwidth}),o=Math.max(0,I.energy.total-I.energy.used),j=A>o?(A-o)*$.energyFee:0;return jT.from({chain:DT.Tron,fromBaseDecimal:BX.TRON,value:E+V+j})}async function N({assetValue:Y,recipient:q,sender:D}){let R=await X();try{let $=D?D:R?await W():void 0;if(!$)return Y.isGasAsset?jT.from({chain:DT.Tron,value:0.1}):jT.from({chain:DT.Tron,value:15});return Y.isGasAsset?U({recipient:q,senderAddress:$}):M({assetValue:Y,recipient:q,senderAddress:$})}catch($){throw wX({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${$ instanceof Error?$.message:$}`}),new ZT("toolbox_fee_estimation_failed",{chain:DT.Tron,error:$})}}async function z({recipient:Y,assetValue:q,memo:D,sender:R,expiration:$}){if(!FT(Y)||!FT(R))throw new ZT("toolbox_tron_token_transfer_failed");if(q.isGasAsset){let I=await LX({amount:q.getBaseValue("number"),from:R,to:Y});return DX({expiration:$,memo:D,transaction:I})}let C=q.address;if(!C)throw new ZT("toolbox_tron_invalid_token_identifier",{identifier:q.toString()});return J({contractAddress:C,expiration:$,functionSelector:"transfer(address,uint256)",memo:D,parameter:Kf([{type:"address",value:Y},{type:"uint256",value:q.getBaseValue("string")}]),sender:R})}async function B(Y){of(Y);let q=await X();if(!q)throw new ZT("toolbox_tron_no_signer");return q.signTransaction(Y)}async function k(Y){let q=await B(Y);return B0(q)}function H({assetAddress:Y,spenderAddress:q,from:D}){return UX({assetAddress:Y,owner:D,spender:q})}async function F({assetAddress:Y,spenderAddress:q,from:D,amount:R}){let $=await H({assetAddress:Y,from:D,spenderAddress:q});if(!R)return $>0n;return $>=BigInt(R)}async function w({assetAddress:Y,spenderAddress:q,amount:D,from:R}){if(!FT(Y)||!FT(q))throw new ZT("toolbox_tron_approve_failed");let $=await X();if(!$)throw new ZT("toolbox_tron_no_signer");let C=R||await W(),I=D!==void 0?BigInt(D).toString():lW;try{let A=await J({contractAddress:Y,functionSelector:"approve(address,uint256)",parameter:Kf([{type:"address",value:q},{type:"uint256",value:I}]),sender:C}),E=await $.signTransaction(A),V=await B0(E);if(!V)throw new ZT("toolbox_tron_approve_failed");return V}catch(A){if(A instanceof ZT)throw A;throw new ZT("toolbox_tron_approve_failed",{error:A})}}return{approve:w,broadcastTransaction:B0,createTransaction:z,estimateTransactionFee:N,getAddress:W,getApprovedAmount:H,getBalance:Q,getRpcUrl:()=>vW(DT.Tron),isApproved:F,signAndBroadcastTransaction:k,signTransaction:B,transfer:L,validateAddress:FT}}var CX,KW=268,jW=65000,bW=345,t5="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",lW="115792089237316195423570985008687907853269984665640564039457584007913129639935";var IX=S(()=>{sG();MX();b5();CX=FT});var c5={};fT(c5,{validateTronAddress:()=>CX,getTronToolbox:()=>$X,getTronPrivateKeyFromMnemonic:()=>kX});var g5=S(()=>{IX()});import{AssetValue as w0,Chain as rT,derivationPathToString as hW,getChainConfig as mW,getRPCUrl as pW,NetworkDerivationPath as tW,SwapKitError as aT}from"@swapkit/helpers";import{match as cW,P as gW}from"ts-pattern";function by(f){if(!f||typeof f!=="string"||!f.startsWith("G")||f.length!==56)return!1;return iW.test(f)}async function dW(f){if(!by(f))return!1;try{let{StrKey:y}=await import("@stellar/stellar-sdk");return y.isValidEd25519PublicKey(f)}catch{return!1}}function AX(f={}){let y,G=f.derivationPath||tW[rT.Stellar],T=hW(G.slice(0,3));async function _({phrase:z,path:B}){let{HDKey:k}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:H}=await import("@scure/bip39"),{Keypair:F}=await import("@stellar/stellar-sdk"),w=H(z),q=k.fromMasterSeed(w).derive(B,!0);return F.fromRawEd25519Seed(Buffer.from(q.privateKey))}async function X(){if(y)return y;let z=cW(f).with({phrase:gW.string},({phrase:B})=>B).otherwise(()=>{return});if(!z)throw new aT("toolbox_stellar_no_signer");return y=await _({path:T,phrase:z}),y}async function W(){let{Horizon:z}=await import("@stellar/stellar-sdk"),B=await pW(rT.Stellar);return new z.Server(B)}async function Z(){try{return(await X()).publicKey()}catch{return""}}async function J(z){let B=z||await Z();if(!B)throw new aT("toolbox_stellar_account_not_found");try{return(await(await W()).loadAccount(B)).balances.map((F)=>{if(F.asset_type==="native")return w0.from({chain:rT.Stellar,value:F.balance});let w="asset_code"in F?F.asset_code:"",Y="asset_issuer"in F?F.asset_issuer:"";return w0.from({asset:`${rT.Stellar}.${w}-${Y}`,asyncTokenLookup:!1,value:F.balance})})}catch{return[w0.from({chain:rT.Stellar,value:0})]}}async function Q({recipient:z,assetValue:B,memo:k,sender:H}){if(k){if(new TextEncoder().encode(k).length>28)throw new aT("helpers_invalid_memo_type")}if(!await dW(z))throw new aT("core_transaction_invalid_recipient_address");let w=H||await Z();if(!w)throw new aT("toolbox_stellar_no_signer");let{Asset:Y,Memo:q,Networks:D,Operation:R,TransactionBuilder:$}=await import("@stellar/stellar-sdk"),C=await W(),I=await C.fetchBaseFee(),A=await C.loadAccount(w),E=new $(A,{fee:String(I),networkPassphrase:D.PUBLIC});if(B.isGasAsset)try{await C.loadAccount(z),E.addOperation(R.payment({amount:B.getValue("string"),asset:Y.native(),destination:z}))}catch{E.addOperation(R.createAccount({destination:z,startingBalance:B.getValue("string")}))}else E.addOperation(R.payment({amount:B.getValue("string"),asset:new Y(B.symbol,B.address),destination:z}));if(k)E.addMemo(q.text(k));return E.setTimeout(30).build()}async function L(z){let{TransactionBuilder:B,Networks:k}=await import("@stellar/stellar-sdk"),H=await X(),F=B.fromXDR(z.toXDR(),k.PUBLIC);return F.sign(H),F}async function O(z){try{let B=await W(),{hash:k}=await B.submitTransaction(z);return k}catch(B){throw new aT("toolbox_stellar_broadcast_error",B)}}async function U({recipient:z,assetValue:B,memo:k}){let H=await X(),F=H.publicKey(),w=await Q({assetValue:B,memo:k,recipient:z,sender:F});w.sign(H);try{return(await(await W()).submitTransaction(w)).hash}catch(Y){if(Y instanceof aT)throw Y;throw new aT("toolbox_stellar_transaction_failed",Y)}}async function M(z){let B=await L(z);return O(B)}async function N(){let{baseDecimal:z}=mW(rT.Stellar);try{let H=(await(await W()).feeStats()).fee_charged.p50;return w0.from({chain:rT.Stellar,fromBaseDecimal:z,value:H})}catch{return w0.from({chain:rT.Stellar,fromBaseDecimal:z,value:"100"})}}return{broadcastTransaction:O,createTransaction:Q,estimateTransactionFee:N,getAddress:Z,getBalance:J,signAndBroadcastTransaction:M,signTransaction:L,transfer:U,validateAddress:by}}var iW;var PX=S(()=>{iW=/^G[A-Z2-7]{55}$/});var ly={};fT(ly,{validateStellarAddress:()=>by,getStellarToolbox:()=>AX});var uy=S(()=>{PX()});import{AssetValue as rW,Chain as K,CosmosChains as i5,EVMChains as d5,FeeOption as aW,SwapKitError as sW,UTXOChains as SX}from"@swapkit/helpers";async function iq(){let{match:f}=await import("ts-pattern"),{validateAptosAddress:y}=await Promise.resolve().then(() => (O0(),D0)),{validateEVMAddress:G}=await Promise.resolve().then(() => (V_(),n_)),{validateCardanoAddress:T}=await Promise.resolve().then(() => (D1(),w1)),{getCosmosAddressValidator:_}=await Promise.resolve().then(() => (s0(),a0)),{validateSolanaAddress:X}=await Promise.resolve().then(() => (t1(),p1)),{validateStarknetAddress:W}=await Promise.resolve().then(() => (Wy(),Xy)),{validateSuiAddress:Z}=await Promise.resolve().then(() => (Qy(),Jy)),{validateTonAddress:J}=await Promise.resolve().then(() => (Ly(),qy)),{getUTXOAddressValidator:Q}=await Promise.resolve().then(() => (M5(),U5)),{validateNearAddress:L}=await Promise.resolve().then(() => (E5(),S5)),{validateRadixAddress:O}=await Promise.resolve().then(() => (v5(),V5)),{validateRippleAddress:U}=await Promise.resolve().then(() => (K5(),o5)),{validateTronAddress:M}=await Promise.resolve().then(() => (g5(),c5)),{validateStellarAddress:N}=await Promise.resolve().then(() => (uy(),ly));return function({address:B,chain:k}){return f(k).with(...d5,()=>G(B)).with(...SX,(F)=>{return Q(F)(B)}).with(...i5,(F)=>{return _(F)(B)}).with(K.Aptos,()=>y(B)).with(K.Radix,()=>O(B)).with(K.Near,()=>L(B)).with(K.Ripple,()=>U(B)).with(K.Solana,()=>X(B)).with(K.Stellar,()=>N(B)).with(K.Starknet,()=>W(B)).with(K.Sui,()=>Z(B)).with(K.Ton,()=>J(B)).with(K.Tron,()=>M(B)).with(K.Cardano,()=>T(B)).otherwise(()=>!1)}}function dq(f){return async function(G){let{match:T}=await import("ts-pattern");return T(f).returnType().with(...d5,async(_)=>{let X=await xX(_),W=await X.createTransaction(G),Z="feeOptionKey"in G?G.feeOptionKey:aW.Fast;return X.estimateTransactionFee({...W,feeOption:Z})}).with(K.Bitcoin,K.BitcoinCash,K.Dogecoin,K.Dash,K.Litecoin,K.Solana,K.Ripple,K.Tron,K.Near,K.Cardano,async(_)=>{return(await xX(_)).estimateTransactionFee(G)}).with(K.Aptos,async()=>{let{getAptosToolbox:_}=await Promise.resolve().then(() => (O0(),D0));return _().estimateTransactionFee(G)}).with(K.Starknet,async()=>{let{getStarknetToolbox:_}=await Promise.resolve().then(() => (Wy(),Xy));return(await _()).estimateTransactionFee(G)}).with(K.Stellar,async()=>{let{getStellarToolbox:_}=await Promise.resolve().then(() => (uy(),ly));return _().estimateTransactionFee()}).with(K.Sui,async()=>{let{getSuiToolbox:_}=await Promise.resolve().then(() => (Qy(),Jy));return _().estimateTransactionFee(G)}).with(K.Ton,async()=>{let{getTONToolbox:_}=await Promise.resolve().then(() => (Ly(),qy));return _().estimateTransactionFee(G)}).with(...i5,async()=>{let{estimateTransactionFee:_}=await Promise.resolve().then(() => (s0(),a0));return _(G)}).otherwise(async()=>rW.from({chain:f}))}}async function xX(f,y){let{match:G}=await import("ts-pattern");return G(f).returnType().with(...d5,async()=>{let{getEvmToolboxAsync:T}=await Promise.resolve().then(() => (z1(),x_));return await T(f,y)}).with(...SX,async()=>{let{getUtxoToolbox:T}=await Promise.resolve().then(() => (M5(),U5));return T(f,y)}).with(...i5,async()=>{let{getCosmosToolbox:T}=await Promise.resolve().then(() => (s0(),a0));return T(f,y)}).with(K.Aptos,async()=>{let{getAptosToolbox:T}=await Promise.resolve().then(() => (O0(),D0));return T(y)}).with(K.Radix,async()=>{let{getRadixToolbox:T}=await Promise.resolve().then(() => (v5(),V5));return T(y)}).with(K.Ripple,async()=>{let{getRippleToolbox:T}=await Promise.resolve().then(() => (K5(),o5));return T(y)}).with(K.Solana,async()=>{let{getSolanaToolbox:T}=await Promise.resolve().then(() => (t1(),p1));return T(y)}).with(K.Stellar,async()=>{let{getStellarToolbox:T}=await Promise.resolve().then(() => (uy(),ly));return T(y)}).with(K.Starknet,async()=>{let{getStarknetToolbox:T}=await Promise.resolve().then(() => (Wy(),Xy));return T(y)}).with(K.Sui,async()=>{let{getSuiToolbox:T}=await Promise.resolve().then(() => (Qy(),Jy));return T(y)}).with(K.Tron,async()=>{let{getTronToolbox:T}=await Promise.resolve().then(() => (g5(),c5));return T(y)}).with(K.Near,async()=>{let{getNearToolbox:T}=await Promise.resolve().then(() => (E5(),S5));return T(y)}).with(K.Cardano,async()=>{let{getCardanoToolbox:T}=await Promise.resolve().then(() => (D1(),w1));return T(y)}).with(K.Ton,async()=>{let{getTONToolbox:T}=await Promise.resolve().then(() => (Ly(),qy));return T(y)}).otherwise(()=>{throw new sW("toolbox_not_supported",{chain:f})})}export{xX as getToolbox,dq as getFeeEstimator,iq as getAddressValidator};