@swapkit/toolboxes 4.21.0 → 4.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/dist/chunk-6b99avsd.js +2 -0
- package/dist/{chunk-3pne8gaa.js → chunk-9psy287z.js} +1 -1
- package/dist/chunk-e02sjx7s.js +1 -0
- package/dist/{chunk-ntbvmmch.js → chunk-fjyc6m34.js} +1 -1
- package/dist/{chunk-54gntgt1.js → chunk-jdh5asaw.js} +1 -1
- package/dist/src/aptos/index.js +1 -1
- package/dist/src/cardano/index.js +1 -1
- package/dist/src/cosmos/index.js +1 -1
- package/dist/src/evm/index.cjs +1 -1
- package/dist/src/evm/index.js +1 -1
- package/dist/src/hypercore/index.cjs +1 -1
- package/dist/src/hypercore/index.js +1 -1
- package/dist/src/index.cjs +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/near/index.js +1 -1
- package/dist/src/radix/index.js +1 -1
- package/dist/src/ripple/index.js +1 -1
- package/dist/src/solana/index.js +1 -1
- package/dist/src/starknet/index.js +1 -1
- package/dist/src/stellar/index.js +1 -1
- package/dist/src/substrate/index.js +1 -1
- package/dist/src/sui/index.js +1 -1
- package/dist/src/ton/index.js +1 -1
- package/dist/src/tron/index.js +1 -1
- package/dist/src/utxo/index.js +1 -1
- package/dist/types/evm/toolbox/evm.d.ts +113 -0
- package/dist/types/evm/types.d.ts +2 -1
- package/package.json +2 -2
- package/dist/chunk-x9db9hmg.js +0 -1
- package/dist/chunk-xs0j1eze.js +0 -2
package/dist/src/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var P8=Object.create;var{getPrototypeOf:V8,defineProperty:q0,getOwnPropertyNames:ZC,getOwnPropertyDescriptor:o8}=Object,WC=Object.prototype.hasOwnProperty;function YC(y){return this[y]}var n8,E8,LC=(y,T,H)=>{var f=y!=null&&typeof y==="object";if(f){var C=T?n8??=new WeakMap:E8??=new WeakMap,U=C.get(y);if(U)return U}H=y!=null?P8(V8(y)):{};let q=T||!y||!y.__esModule?q0(H,"default",{value:y,enumerable:!0}):H;for(let X of ZC(y))if(!WC.call(q,X))q0(q,X,{get:YC.bind(y,X),enumerable:!0});if(f)C.set(y,q);return q},ky=(y)=>{var T=(_C??=new WeakMap).get(y),H;if(T)return T;if(T=q0({},"__esModule",{value:!0}),y&&typeof y==="object"||typeof y==="function"){for(var f of ZC(y))if(!WC.call(T,f))q0(T,f,{get:YC.bind(y,f),enumerable:!(H=o8(y,f))||H.enumerable})}return _C.set(y,T),T},_C;var v8=(y)=>y;function j8(y,T){this[y]=v8.bind(null,T)}var Dy=(y,T)=>{for(var H in T)q0(y,H,{get:T[H],enumerable:!0,configurable:!0,set:j8.bind(T,H)})};var v=(y,T)=>()=>(y&&(T=y(y=0)),T);function jf(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let T=y.slice(2);if(T.length===0||T.length>64)return!1;return b8.test(T)}function JC({derivationPath:y,provider:T,...H}={}){let f,C=t.derivationPathToString(y||t.NetworkDerivationPath[t.Chain.Aptos],{allHardened:!0});async function U(){if(f)return f;return f=await Of.match(H).with({phrase:Of.P.string},async({phrase:A})=>{let{Ed25519Account:R}=await import("@aptos-labs/ts-sdk");return R.fromDerivationPath({mnemonic:A,path:C})}).with({signer:Of.P.any},({signer:A})=>A).otherwise(()=>{return}),f}async function q(){let{Aptos:A,AptosConfig:R,Network:I}=await import("@aptos-labs/ts-sdk"),F=new R({clientConfig:{http2:!1},fullnode:T||t.getRPCUrlSync(t.Chain.Aptos),network:I.MAINNET});return new A(F)}async function X(){return(await U())?.accountAddress.toString()||""}async function G(A){let R=A||await X();if(!R)throw new t.SwapKitError("toolbox_aptos_address_required");let{baseDecimal:I,chain:F}=t.getChainConfig(t.Chain.Aptos);try{let D=await q(),O=await D.getAccountAPTAmount({accountAddress:R}),J=[t.AssetValue.from({chain:F,fromBaseDecimal:I,value:O.toString()})],_=await D.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:R}}}});for(let Z of _){if(Z.asset_type===Df.COIN_TYPE||Number(Z.amount)<=0)continue;let B=Z.asset_type;if(B){let k=("metadata"in Z&&typeof Z.metadata==="object"&&Z.metadata!==null?Z.metadata:void 0)?.decimals??I;J.push(t.AssetValue.from({asset:`${t.Chain.Aptos}.APT-${B}`,fromBaseDecimal:k,value:String(Z.amount)}))}}return J}catch{return[t.AssetValue.from({chain:F})]}}async function Q(A){if(!A){let{baseDecimal:_}=t.getChainConfig(t.Chain.Aptos),Z=T||t.getRPCUrlSync(t.Chain.Aptos),B=await fetch(`${Z}/estimate_gas_price`),{gas_estimate:w}=await B.json();return t.AssetValue.from({chain:t.Chain.Aptos,fromBaseDecimal:_,value:String(w)})}let R=await U();if(!R)throw new t.SwapKitError("toolbox_aptos_no_signer");let I=await Y(A),F=await q(),[D]=await F.transaction.simulate.simple({signerPublicKey:R.publicKey,transaction:I});if(!D)throw new t.SwapKitError("toolbox_aptos_transaction_creation_error");let O=BigInt(D.gas_used)*BigInt(D.gas_unit_price),{baseDecimal:J}=t.getChainConfig(t.Chain.Aptos);return t.AssetValue.from({chain:t.Chain.Aptos,fromBaseDecimal:J,value:O.toString()})}async function Y({recipient:A,assetValue:R,maxGasAmount:I,sender:F}){if(!jf(A))throw new t.SwapKitError("core_transaction_invalid_recipient_address");let D=F||await X();if(!D)throw new t.SwapKitError("toolbox_aptos_no_sender");let{AccountAddress:O}=await import("@aptos-labs/ts-sdk"),J=await q(),_=O.from(D);try{let Z=R.isGasAsset?Df.TRANSFER:Df.FUNGIBLE_STORE_TRANSFER,B=Of.match({address:R?.address,isGasAsset:R.isGasAsset}).with({isGasAsset:!0},()=>[O.from(A),R.getBaseValue("bigint")]).with({address:Of.P.string},({address:w})=>[O.from(w),O.from(A),R.getBaseValue("bigint")]).otherwise(()=>null);if(!B)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");return J.transaction.build.simple({data:{function:Z,functionArguments:B,typeArguments:R.isGasAsset?[]:[Df.FUNGIBLE_ASSET_METADATA]},options:I?{maxGasAmount:I}:void 0,sender:_})}catch(Z){if(Z instanceof t.SwapKitError)throw Z;throw new t.SwapKitError("toolbox_aptos_transaction_creation_error",Z)}}async function z(A){let R=await U();if(!R)throw new t.SwapKitError("toolbox_aptos_no_signer");return(await q()).transaction.sign({signer:R,transaction:A})}async function L({assetValue:A,maxGasAmount:R,recipient:I}){let F=await U();if(!F)throw new t.SwapKitError("toolbox_aptos_no_signer");if(!jf(I))throw new t.SwapKitError("core_transaction_invalid_recipient_address");try{let D=F.accountAddress.toString(),O=await Y({assetValue:A,maxGasAmount:R,recipient:I,sender:D});return(await(await q()).signAndSubmitTransaction({signer:F,transaction:O})).hash}catch(D){if(D instanceof t.SwapKitError)throw D;throw new t.SwapKitError("toolbox_aptos_transaction_creation_error",D)}}async function W({senderAuthenticator:A,transaction:R}){try{return(await(await q()).transaction.submit.simple({senderAuthenticator:A,transaction:R})).hash}catch(I){throw new t.SwapKitError("toolbox_aptos_broadcast_error",I)}}async function N(A){let R=await z(A);return W({senderAuthenticator:R,transaction:A})}return{broadcastTransaction:W,createTransaction:Y,estimateTransactionFee:Q,getAddress:X,getBalance:G,signAndBroadcastTransaction:N,signTransaction:z,transfer:L,validateAddress:jf}}function zC({provider:y}){return async function({assetValue:H,recipient:f}){if(!jf(f))throw new t.SwapKitError("core_transaction_invalid_recipient_address");let{AccountAddress:C}=await import("@aptos-labs/ts-sdk");if(H.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[C.from(f).toString(),H.getBaseValue("string")],function:Df.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let U=H.address;if(!U)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[U,C.from(f).toString(),H.getBaseValue("string")],function:Df.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[Df.FUNGIBLE_ASSET_METADATA]})).hash}}var t,Of,Df,b8;var AC=v(()=>{t=require("@swapkit/helpers"),Of=require("ts-pattern"),Df={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"},b8=/^[0-9a-fA-F]+$/});var u0={};Dy(u0,{validateAptosAddress:()=>jf,getAptosToolbox:()=>JC,createAptosExtensionTransfer:()=>zC});module.exports=ky(u0);var h0=v(()=>{AC()});function NC(){function y(){let T=Date.now(),H=_1||T;return _1=H,T>_1?T:H+1}return K8+y().toString(36)}function Sy(y){return async function(H,f=!0){let C=await MC.SwapKitApi.getChainBalance({address:H,chain:y,scamFilter:f}),{baseDecimal:U}=X0.getChainConfig(y),q=C.map(({identifier:G,value:Q,decimal:Y})=>{return new X0.AssetValue({decimal:Y||U,identifier:G,value:Q})});if(!q.some((G)=>G.isGasAsset))return[X0.AssetValue.from({chain:y}),...q];return q}}var X0,MC,K8,_1=0;var sy=v(()=>{X0=require("@swapkit/helpers"),MC=require("@swapkit/helpers/api"),K8=typeof process<"u"&&process.pid?process.pid.toString(36):""});function G0(y){return{getBalance:Sy(y)}}function p8(y){return y}var m0=v(()=>{sy()});function DC(y){return new Vy.JsonRpcProvider(y)}async function l8(y,T){return DC(T||await d.getRPCUrl(y))}function J1(y){let T=d.SKConfig.get("rpcUrls")[y]?.filter(Boolean)??[];if(T.length===0)throw new d.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:y});let{chainId:H}=d.getChainConfig(y),f=Vy.Network.from(Number(H)),[C]=T;if(T.length===1)return new Vy.JsonRpcProvider(C,f,{staticNetwork:f});return new Vy.FallbackProvider(T.map((U,q)=>({priority:q+1,provider:new Vy.JsonRpcProvider(U,f,{staticNetwork:f}),stallTimeout:2000})),f,{quorum:1})}function qf(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function z1(y){let{explorerUrl:T,chainIdHex:H,rpcUrls:f}=d.getChainConfig(y);return function(){return y!==d.Chain.Ethereum?{...u8({chain:y}),blockExplorerUrls:[T],chainId:H,rpcUrls:f}:void 0}}function A1(y){return![d.Chain.Adi,d.Chain.Arbitrum,d.Chain.BinanceSmartChain].includes(y)}function u8({chain:y}){let{name:T,nativeCurrency:H,baseDecimal:f}=d.getChainConfig(y);return L1.match(y).with(d.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:d.Chain.Ethereum}})).with(d.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:d.Chain.Ethereum}})).with(d.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(d.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:d.Chain.Ethereum}})).with(d.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(d.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(d.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(d.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(d.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:d.Chain.Ethereum}})).with(d.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:d.Chain.Polygon}})).otherwise(()=>({chainName:T,nativeCurrency:{decimals:f,name:H,symbol:H}}))}async function M1(y,T){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let H={...T,nonce:T.nonce!==void 0?BigInt(T.nonce):void 0};return await y.authorize(H)}function OC(y,T){let H=T!==void 0?`index ${T}: `:"",f=(C,U)=>{throw new d.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:C,message:`${H}${U}`}})};L1.match(y).when(({chainId:C})=>typeof C!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:C})=>!h8(C),()=>f("address","address must be a valid checksummed address")).when(({nonce:C})=>typeof C!=="bigint"||C<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:C})=>!C,()=>f("signature","signature is required")).when(({signature:C})=>typeof C?.yParity!=="number"||![0,1].includes(C.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:C})=>!BC(C?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:C})=>!BC(C?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function RC(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:T})=>y[T]!=null).map(({key:T,type:H})=>({name:T,type:H}))}function Z1(y){return y.charAt(0).toUpperCase()+y.slice(1)}function W1(y,T){if(y.isTuple()&&y.components){let H=Z1(y.name);return T[H]=y.components.map((f)=>({name:f.name,type:W1(f,T)})),H}if(y.isArray()){let H=y.arrayChildren;if(H?.isTuple()&&H.components){let f=Z1(y.name.replace(/s$/,""));return T[f]=H.components.map((C)=>({name:C.name,type:W1(C,T)})),`${f}[]`}return`${H?.type??"bytes"}[]`}return y.type}function Y1(y,T){if(typeof y==="bigint")return y;if(T?.isTuple()&&typeof y?.toObject==="function"){let H=y.toObject(),f={};for(let[C,U]of(T.components??[]).entries())f[U.name]=Y1(H[U.name]??y[C],U);return f}if(Array.isArray(y)){let H=T?.arrayChildren;return y.map((f)=>Y1(f,H??void 0))}return y}function m8({chain:y,abi:T,data:H,to:f}){let U=new Vy.Interface(T).parseTransaction({data:H});if(!U)throw new d.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let q={},X=Z1(U.name);q[X]=U.fragment.inputs.map((L)=>({name:L.name,type:W1(L,q)}));let G={};for(let[L,W]of U.fragment.inputs.entries())G[W.name]=Y1(U.args[L],W);let{chainId:Q}=d.getChainConfig(y),Y={chainId:Number(Q),verifyingContract:Vy.getAddress(f)},z=RC(Y);return{domain:Y,message:G,primaryType:X,types:{EIP712Domain:z,...q}}}function N1(y,T){if(!Array.isArray(y)||y.length===0)throw new d.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[H,f]of y.entries())if(OC(f,H),T!==void 0&&f.chainId!==T)throw new d.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${H}: authorization chainId (${f.chainId}) does not match transaction chainId (${T})`}})}var d,Vy,L1,BC=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),h8=(y)=>{try{return typeof y==="string"&&!!Vy.getAddress(y)}catch{return!1}};var Q0=v(()=>{d=require("@swapkit/helpers"),Vy=require("ethers"),L1=require("ts-pattern")});var kC;var wC=v(()=>{kC=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});function Kf({chain:y=S.Chain.Ethereum,provider:T,signer:H,isEIP1559Compatible:f=!0}){return{approve:d8({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),approvedAmount:xC({chain:y,provider:T}),broadcastTransaction:T.broadcastTransaction,call:w1({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),createApprovalTx:e8({chain:y,provider:T,signer:H}),createContract:O1({chain:y,provider:T}),createContractTxObject:Rf({chain:y,provider:T}),createTransaction:B1({chain:y,provider:T,signer:H}),createTransferTx:B1({chain:y,provider:T,signer:H}),EIP1193SendTransaction:lf(T),estimateCall:IC({provider:T,signer:H}),estimateGasLimit:a8({chain:y,provider:T,signer:H}),estimateGasPrices:kf({chain:y,isEIP1559Compatible:f,provider:T}),estimateTransactionFee:yU({chain:y,isEIP1559Compatible:f,provider:T}),getAddress:()=>{return H?H.getAddress():void 0},getBalance:G0(y).getBalance,getNetworkParams:z1(y),isApproved:i8({chain:y,provider:T}),sendTransaction:SC({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),signAuthorization:s8({signer:H}),signMessage:H?(C)=>H.signMessage(C):void 0,signTypedData:H?({domain:C,types:U,value:q})=>H.signTypedData(C,U,q):void 0,transfer:r8({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),validateAddress:Z0}}function Z0(y){try{return oy.getAddress(y),!0}catch{return!1}}function pf(y){return y instanceof oy.BrowserProvider}function W0(y,T,H){return new oy.Contract(y,oy.Interface.from(T),H)}function O1({provider:y}){return function(H,f){return new oy.Contract(H,oy.Interface.from(f),y)}}function R1({abi:y,funcName:T}){let H=y.find((f)=>f.name===T);if(!H)throw new S.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:T});return H.stateMutability&&t8.includes(H.stateMutability)}function $C(y){return oy.getAddress(y)}function lf(y){return function({value:H,...f}){if(!pf(y))throw new S.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:C,gasPrice:U,maxFeePerGas:q,maxPriorityFeePerGas:X,...G}=f;return y.send("eth_sendTransaction",[{...G,value:qf(BigInt(H||0))}])}}function FC(y,T){let H=uf(y,T);if(H)return oy.getAddress(H.toLowerCase());throw new S.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function uf({chain:y,symbol:T,ticker:H},f){try{let C=y===S.Chain.BinanceSmartChain&&T==="BNB"&&H==="BNB",U=y===S.Chain.Hyperevm&&T==="HYPE"&&H==="HYPE",q=y===f&&T===f&&H===f,X=c8.includes(y)&&T==="ETH"&&H==="ETH";if(q||C||U||X)return k1[f];return oy.getAddress(T.slice(H.length+1).replace(/^0X/,""))}catch{return null}}function Rf({provider:y}){return async({contractAddress:T,abi:H,funcName:f,funcParams:C=[],txOverrides:U})=>{let q=await W0(T,H,y).getFunction(f).populateTransaction(...C.concat(U).filter((X)=>typeof X<"u"));return{...q,value:qf(BigInt(q.value||0))}}}function kf({chain:y,provider:T,isEIP1559Compatible:H=!0}){return D1.match(y).with(S.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:C,maxPriorityFeePerGas:U}=await T.getFeeData();if(!C||U===null)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{[S.FeeOption.Average]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(C,S.FeeOption.Average),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(U,S.FeeOption.Average)},[S.FeeOption.Fast]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(C,S.FeeOption.Fast),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(U,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(C,S.FeeOption.Fastest),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(U,S.FeeOption.Fastest)}}}catch(C){throw new S.SwapKitError("toolbox_evm_gas_estimation_error",{error:C.msg??C.toString()})}}}).with(S.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:C}=await T.getFeeData();if(!C)throw new S.SwapKitError("toolbox_evm_no_fee_data");let U=C*12n/10n;return{[S.FeeOption.Average]:{gasPrice:U},[S.FeeOption.Fast]:{gasPrice:S.applyFeeMultiplierToBigInt(U,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{gasPrice:S.applyFeeMultiplierToBigInt(U,S.FeeOption.Fastest)}}}catch(C){throw new S.SwapKitError("toolbox_evm_gas_estimation_error",{error:C.msg??C.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:C,maxPriorityFeePerGas:U,gasPrice:q}=await T.getFeeData();if(H){if(C===null||U===null)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{[S.FeeOption.Average]:{maxFeePerGas:C,maxPriorityFeePerGas:U},[S.FeeOption.Fast]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(C,S.FeeOption.Fast),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(U,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(C,S.FeeOption.Fastest),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(U,S.FeeOption.Fastest)}}}if(!q)throw new S.SwapKitError("toolbox_evm_no_gas_price");return{[S.FeeOption.Average]:{gasPrice:q},[S.FeeOption.Fast]:{gasPrice:S.applyFeeMultiplierToBigInt(q,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{gasPrice:S.applyFeeMultiplierToBigInt(q,S.FeeOption.Fastest)}}}catch(C){throw new S.SwapKitError("toolbox_evm_gas_estimation_error",{error:C.msg??C.toString()})}}})}function w1({provider:y,isEIP1559Compatible:T,signer:H,chain:f}){return async function({callProvider:U,contractAddress:q,abi:X,funcName:G,funcParams:Q=[],txOverrides:Y={},feeOption:z=S.FeeOption.Fast}){let L=U||y;if(!q)throw new S.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let W=R1({abi:X,funcName:G});if(W&&pf(L)&&H){let R=Rf({chain:f,provider:L}),I=Y?.from||await H?.getAddress(),F=await R({abi:X,contractAddress:q,funcName:G,funcParams:Q,txOverrides:{...Y,from:I}});return lf(L)(F)}let N=W0(q,X,L);if(W){if(!H)throw new S.SwapKitError("toolbox_evm_no_signer");let R=Y?.from||await H.getAddress();if(!R)throw new S.SwapKitError("toolbox_evm_no_signer_address");let I=N.connect(H),F=kf({chain:f,isEIP1559Compatible:T,provider:y}),{maxFeePerGas:D,maxPriorityFeePerGas:O,gasPrice:J}=(await F())[z],_=await N.getFunction(G).estimateGas(...Q,Y),Z=await I[G](...Q,{...Y,gasLimit:_,gasPrice:J,maxFeePerGas:D,maxPriorityFeePerGas:O,nonce:Y?.nonce||await L.getTransactionCount(R)});return typeof Z?.hash==="string"?Z?.hash:Z}let A=await N[G]?.(...Q);return typeof A?.hash==="string"?A?.hash:A}}function xC({provider:y,chain:T}){return function({assetAddress:f,spenderAddress:C,from:U}){return w1({chain:T,isEIP1559Compatible:!0,provider:y})({abi:bf.erc20ABI,contractAddress:f,funcName:"allowance",funcParams:[U,C]})}}function i8({provider:y,chain:T}){return async function({assetAddress:f,spenderAddress:C,from:U,amount:q=_0}){let X=await xC({chain:T,provider:y})({assetAddress:f,from:U,spenderAddress:C});return S.SwapKitNumber.fromBigInt(X).gte(S.SwapKitNumber.fromBigInt(BigInt(q)))}}function d8({signer:y,isEIP1559Compatible:T=!0,provider:H,chain:f}){return async function({assetAddress:U,spenderAddress:q,feeOptionKey:X=S.FeeOption.Fast,amount:G,gasLimitFallback:Q,from:Y,nonce:z}){let L=[q,BigInt(G||_0)],W=await y?.getAddress()||Y,N={abi:bf.erc20ABI,contractAddress:U,funcName:"approve",funcParams:L,signer:y,txOverrides:{from:W}};if(pf(H)){let R=Rf({chain:f,provider:H}),I=lf(H),F=await R(N);return I(F)}return w1({chain:f,isEIP1559Compatible:T,provider:H,signer:y})({...N,feeOption:X,funcParams:L,txOverrides:{from:W,gasLimit:Q?BigInt(Q.toString()):void 0,nonce:z}})}}function r8({signer:y,isEIP1559Compatible:T=!0,provider:H}){return async function({assetValue:C,memo:U,recipient:q,feeOptionKey:X=S.FeeOption.Fast,sender:G,...Q}){let{hexlify:Y,toUtf8Bytes:z}=await import("ethers"),L=C.getBaseValue("bigint"),W=C.chain,N=G||await y?.getAddress(),A=SC({chain:W,isEIP1559Compatible:T,provider:H,signer:y});if(!N)throw new S.SwapKitError("toolbox_evm_no_from_address");if(C.isGasAsset){let J={...Q,data:Y(z(U||"")),feeOptionKey:X,from:N,to:q,value:qf(L)};return A(J)}if(!uf(C,W))throw new S.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:I,maxPriorityFeePerGas:F,gasPrice:D}=(await kf({chain:W,isEIP1559Compatible:T,provider:H})())[X],O=await B1({chain:W,provider:H,signer:y})({assetValue:C,data:Y(z(U||"")),gasPrice:D,maxFeePerGas:I,maxPriorityFeePerGas:F,memo:U,recipient:q,sender:N});return A(O)}}function IC({provider:y,signer:T}){return function({contractAddress:f,abi:C,funcName:U,funcParams:q=[],txOverrides:X}){if(!f)throw new S.SwapKitError("toolbox_evm_no_contract_address");let G=W0(f,C,y);return T?G.connect(T).getFunction(U).estimateGas(...q,X):G.getFunction(U).estimateGas(...q,X)}}function a8({provider:y,signer:T}){return async function({assetValue:f,recipient:C,memo:U,data:q,sender:X,funcName:G,funcParams:Q,txOverrides:Y}){let z=f.bigIntValue,L=f.isGasAsset?null:uf(f,f.chain);if(L&&G)return IC({provider:y,signer:T})({abi:bf.erc20ABI,contractAddress:L,funcName:G,funcParams:Q,txOverrides:Y});let{hexlify:W,toUtf8Bytes:N}=await import("ethers");return y.estimateGas({data:q?q:U?W(N(U)):void 0,from:X,to:C,value:z})}}function s8({signer:y}){if(!y)return;return(T)=>M1(y,T)}function SC({provider:y,signer:T,isEIP1559Compatible:H=!0,chain:f}){return async function({feeOptionKey:U=S.FeeOption.Fast,...q}){let{from:X,to:G,data:Q,value:Y,...z}=q;if(!T)throw new S.SwapKitError("toolbox_evm_no_signer");if(!G)throw new S.SwapKitError("toolbox_evm_no_to_address");let L={...z,data:Q||"0x",from:X,to:G,value:BigInt(Y||0)};if(pf(y))return lf(y)(L);let W=X||await T.getAddress(),N=q.nonce||await y.getTransactionCount(W),A=(await y.getNetwork()).chainId,R=F1(L,H);if(R==="eip7702")N1(L.authorizations||[],A);let I=D1.match(R).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),F={...L,chainId:A,nonce:N,type:I,...R==="eip7702"&&{authorizationList:L.authorizations}},D=kf({chain:f,isEIP1559Compatible:H,provider:y}),J=R!=="legacy"&&!(L.maxFeePerGas&&L.maxPriorityFeePerGas)||!L.gasPrice?Object.entries((await D())[U]).reduce((Z,[B,w])=>({...Z,[B]:qf(BigInt(w))}),{}):{},_;try{_=qf(L.gasLimit?BigInt(L.gasLimit):await y.estimateGas(F)*11n/10n)}catch(Z){throw new S.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:Z})}try{let Z={...F,gasLimit:_,...J};try{return(await T.sendTransaction(Z)).hash}catch{let B=await T.signTransaction({...Z,from:W});return(await y.broadcastTransaction(B)).hash}}catch(Z){throw new S.SwapKitError("toolbox_evm_error_sending_transaction",{error:Z})}}}function B1({provider:y,signer:T}){return async function({assetValue:f,memo:C,recipient:U,data:q,sender:X,maxFeePerGas:G,maxPriorityFeePerGas:Q,gasPrice:Y,...z}){let L=f.getBaseValue("bigint"),W=f.chain,N=X||await T?.getAddress();if(!N)throw new S.SwapKitError("toolbox_evm_no_from_address");if(S.isGasAsset(f)){let{hexlify:I,toUtf8Bytes:F}=await import("ethers");return{...z,data:q||I(F(C||"")),from:N,to:U,value:qf(L)}}let A=uf(f,W);if(!A)throw new S.SwapKitError("toolbox_evm_no_contract_address");return Rf({chain:f.chain,provider:y})({abi:bf.erc20ABI,contractAddress:A,funcName:"transfer",funcParams:[U,L],txOverrides:{from:N,gasPrice:Y,maxFeePerGas:G,maxPriorityFeePerGas:Q}})}}function e8({provider:y,signer:T,chain:H}){return async function({assetAddress:C,spenderAddress:U,amount:q,from:X}){let G=await T?.getAddress()||X,Q=Rf({chain:H,provider:y}),Y=["bigint","number"].includes(typeof q)?q:q||_0;return await Q({abi:bf.erc20ABI,contractAddress:C,funcName:"approve",funcParams:[U,BigInt(Y)],txOverrides:{from:G}})}}function yU({provider:y,isEIP1559Compatible:T=!0,chain:H}){return async function({feeOption:C=S.FeeOption.Fast,...U}){let X=await kf({chain:H,isEIP1559Compatible:T,provider:y})(),G=await y.estimateGas(U),Q=S.AssetValue.from({chain:H}),{gasPrice:Y,maxFeePerGas:z,maxPriorityFeePerGas:L}=X[C];if(!T&&Y)return Q.set(S.SwapKitNumber.fromBigInt(Y*G,Q.decimal));if(z&&L){let W=(z+L)*G;return Q.set(S.SwapKitNumber.fromBigInt(W,Q.decimal))}throw new S.SwapKitError("toolbox_evm_no_gas_price")}}var S,bf,oy,D1,_0,t8,g8,k1,c8,t0=(y)=>y.type===4||(y.authorizations?.length??0)>0,$1=(y)=>!t0(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),F1=(y,T=!0)=>{if(t0(y))return"eip7702";if($1(y)||T)return"eip1559";return"legacy"};var g0=v(()=>{m0();Q0();S=require("@swapkit/helpers"),bf=require("@swapkit/helpers/contracts"),oy=require("ethers"),D1=require("ts-pattern"),_0=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");t8=["payable","nonpayable"];g8=S.EVMChains.reduce((y,T)=>{return y[T]="0x0000000000000000000000000000000000000000",y},{}),k1={...g8,[S.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[S.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},c8=[S.Chain.Arbitrum,S.Chain.Aurora,S.Chain.Base,S.Chain.Optimism]});function c0(y){let T=Jy(Xy.Chain.Ethereum)(y);async function H(f,C="0x5ba1e12693dc8f9c48aad8770482f4739beed696",U="aggregate",q=Xy.FeeOption.Fast){let X=await T.createContractTxObject({abi:kC,contractAddress:C,funcName:U,funcParams:[f]});return T.sendTransaction({...X,feeOptionKey:q})}return{...T,multicall:H}}function Jy(y){return function({provider:H,...f}){let C=A1(y),U=Y0.match(f).with({phrase:Y0.P.string},({phrase:X})=>PC.HDNodeWallet.fromPhrase(X).connect(H)).with({signer:Y0.P.any},({signer:X})=>X).otherwise(()=>{return});return Kf({chain:y,isEIP1559Compatible:C,provider:H,signer:U})}}var Xy,PC,Y0,i0,d0,r0,a0,s0,e0,yT,VC,fT,TT,HT,CT,UT,qT,XT,GT,QT,_T,L0,ZT,WT;var x1=v(()=>{wC();Q0();g0();Xy=require("@swapkit/helpers"),PC=require("ethers"),Y0=require("ts-pattern");i0=Jy(Xy.Chain.Adi),d0=Jy(Xy.Chain.Arbitrum),r0=Jy(Xy.Chain.Aurora),a0=Jy(Xy.Chain.Avalanche),s0=Jy(Xy.Chain.Base),e0=Jy(Xy.Chain.Berachain),yT=Jy(Xy.Chain.BinanceSmartChain),VC=Jy(Xy.Chain.Botanix),fT=Jy(Xy.Chain.Core),TT=Jy(Xy.Chain.Corn),HT=Jy(Xy.Chain.Cronos),CT=Jy(Xy.Chain.Gnosis),UT=Jy(Xy.Chain.Hyperevm),qT=Jy(Xy.Chain.Linea),XT=Jy(Xy.Chain.Polygon),GT=Jy(Xy.Chain.MegaETH),QT=Jy(Xy.Chain.Monad),_T=Jy(Xy.Chain.Plasma),L0=Jy(Xy.Chain.Sonic),ZT=Jy(Xy.Chain.Unichain),WT=Jy(Xy.Chain.XLayer)});var oC;var nC=v(()=>{oC=[{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"}]});function I1(y){return new YT.Contract(TU,oC,y)}function EC(y){return async function(){let H=I1(y);if(H&&"l1BaseFee"in H)return await H?.l1BaseFee();return}}function vC(y){return async function({from:H,to:f,nonce:C,...U}){let{Transaction:q}=await import("ethers");if(!f)throw new Yy.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return q.from({...U,authorizationList:U.authorizationList,nonce:C?C:H?await y.getTransactionCount(H):0,to:f}).serialized}}function jC(y){return async function(H){let f=I1(y),C=await vC(y)(H);if(f&&"getL1Fee"in f)return f.getL1Fee(C)}}function bC(y){return async function(H){let C=(await y.getFeeData()).gasPrice??0n,U=await y.estimateGas(H);return C*U}}function HU(y){return async function(H){let f=await jC(y)(H)??0n,C=await bC(y)(H);return f+C}}function CU(y){return async function(H){let f=I1(y),C=await vC(y)(H);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(C)}}function UU(y){return async function(){try{let{maxFeePerGas:H,maxPriorityFeePerGas:f,gasPrice:C}=await y.getFeeData(),U=await EC(y)(),q=C;if(!(H&&f))throw new Yy.SwapKitError("toolbox_evm_no_fee_data");return{[Yy.FeeOption.Average]:{gasPrice:q,l1GasPrice:U,maxFeePerGas:H,maxPriorityFeePerGas:f},[Yy.FeeOption.Fast]:{gasPrice:Yy.applyFeeMultiplierToBigInt(q,Yy.FeeOption.Fast),l1GasPrice:Yy.applyFeeMultiplierToBigInt(U||0n,Yy.FeeOption.Fast),maxFeePerGas:H,maxPriorityFeePerGas:Yy.applyFeeMultiplierToBigInt(f,Yy.FeeOption.Fast)},[Yy.FeeOption.Fastest]:{gasPrice:Yy.applyFeeMultiplierToBigInt(q,Yy.FeeOption.Fastest),l1GasPrice:Yy.applyFeeMultiplierToBigInt(U||0n,Yy.FeeOption.Fastest),maxFeePerGas:H,maxPriorityFeePerGas:Yy.applyFeeMultiplierToBigInt(f,Yy.FeeOption.Fastest)}}}catch(H){throw new Yy.SwapKitError("toolbox_evm_gas_estimation_error",{error:H.msg??H.toString()})}}}function LT({provider:y,...T}){let H=J0.match(T).with({phrase:J0.P.string},({phrase:U})=>YT.HDNodeWallet.fromPhrase(U).connect(y)).with({signer:J0.P.any},({signer:U})=>U).otherwise(()=>{return}),f=Kf({provider:y,signer:H}),C=EC(y);return{...f,estimateGasPrices:UU(y),estimateL1Gas:CU(y),estimateL1GasCost:jC(y),estimateL2GasCost:bC(y),estimateTotalGasCost:HU(y),getBalance:G0(Yy.Chain.Optimism).getBalance,getL1GasPrice:C}}var Yy,YT,J0,TU="0x420000000000000000000000000000000000000f";var S1=v(()=>{m0();nC();g0();Yy=require("@swapkit/helpers"),YT=require("ethers"),J0=require("ts-pattern")});var lC={};Dy(lC,{validateEVMAddress:()=>Z0,toChecksumAddress:()=>$C,isStateChangingCall:()=>R1,isEIP7702Transaction:()=>t0,isEIP1559Transaction:()=>$1,isBrowserProvider:()=>pf,getTokenAddress:()=>uf,getEvmToolboxAsync:()=>pC,getEvmToolbox:()=>P1,getEstimateGasPrices:()=>kf,getEVMTxType:()=>F1,getEIP1193SendTransaction:()=>lf,getCreateContractTxObject:()=>Rf,getCreateContract:()=>O1,getChecksumAddressFromAsset:()=>FC,createContract:()=>W0,XLayerToolbox:()=>WT,UNIToolbox:()=>ZT,SONICToolbox:()=>L0,PLASMAToolbox:()=>_T,OPToolbox:()=>LT,MONADToolbox:()=>QT,MEGAETHToolbox:()=>GT,MAX_APPROVAL:()=>_0,MATICToolbox:()=>XT,LINEAToolbox:()=>qT,HYPEREVMToolbox:()=>UT,GNOToolbox:()=>CT,ETHToolbox:()=>c0,ContractAddress:()=>k1,CROToolbox:()=>HT,CORNToolbox:()=>TT,COREToolbox:()=>fT,BotanixToolbox:()=>VC,BaseEVMToolbox:()=>Kf,BSCToolbox:()=>yT,BERAToolbox:()=>e0,BASEToolbox:()=>s0,AVAXToolbox:()=>a0,AURORAToolbox:()=>r0,ARBToolbox:()=>d0,ADIToolbox:()=>i0});function P1(y,T){return KC.match(y).with(_y.Chain.Adi,()=>i0(T)).with(_y.Chain.Arbitrum,()=>d0(T)).with(_y.Chain.Aurora,()=>r0(T)).with(_y.Chain.Avalanche,()=>a0(T)).with(_y.Chain.Base,()=>s0(T)).with(_y.Chain.Berachain,()=>e0(T)).with(_y.Chain.BinanceSmartChain,()=>yT(T)).with(_y.Chain.Botanix,()=>L0(T)).with(_y.Chain.Core,()=>fT(T)).with(_y.Chain.Corn,()=>TT(T)).with(_y.Chain.Cronos,()=>HT(T)).with(_y.Chain.Ethereum,()=>c0(T)).with(_y.Chain.Gnosis,()=>CT(T)).with(_y.Chain.Hyperevm,()=>UT(T)).with(_y.Chain.Linea,()=>qT(T)).with(_y.Chain.MegaETH,()=>GT(T)).with(_y.Chain.Monad,()=>QT(T)).with(_y.Chain.Optimism,()=>LT(T)).with(_y.Chain.Plasma,()=>_T(T)).with(_y.Chain.Polygon,()=>XT(T)).with(_y.Chain.Sonic,()=>L0(T)).with(_y.Chain.Unichain,()=>ZT(T)).with(_y.Chain.XLayer,()=>WT(T)).exhaustive()}async function pC(y,T){let H={...T,provider:T?.provider||J1(y)};return P1(y,H)}var _y,KC;var V1=v(()=>{Q0();x1();S1();_y=require("@swapkit/helpers"),KC=require("ts-pattern");g0();x1();S1()});var uC;var hC=v(()=>{((H)=>{H.Test="goerli";H.Main="homestead"})(uC||={})});var mC={};Dy(mC,{validateEVMAddress:()=>Z0,validateAuthorizations:()=>N1,validateAuthorization:()=>OC,toHexString:()=>qf,toChecksumAddress:()=>$C,signAuthorization:()=>M1,parseEIP712FromEVMTx:()=>m8,isStateChangingCall:()=>R1,isEIP7702Transaction:()=>t0,isEIP1559Transaction:()=>$1,isBrowserProvider:()=>pf,getTokenAddress:()=>uf,getProviderSync:()=>DC,getProvider:()=>l8,getNetworkParams:()=>z1,getIsEIP1559Compatible:()=>A1,getFallbackProvider:()=>J1,getEvmToolboxAsync:()=>pC,getEvmToolbox:()=>P1,getEvmApi:()=>G0,getEstimateGasPrices:()=>kf,getEVMTxType:()=>F1,getEIP1193SendTransaction:()=>lf,getCreateContractTxObject:()=>Rf,getCreateContract:()=>O1,getChecksumAddressFromAsset:()=>FC,createCustomEvmApi:()=>p8,createContract:()=>W0,buildEIP712DomainType:()=>RC,XLayerToolbox:()=>WT,UNIToolbox:()=>ZT,SONICToolbox:()=>L0,PLASMAToolbox:()=>_T,OPToolbox:()=>LT,MONADToolbox:()=>QT,MEGAETHToolbox:()=>GT,MAX_APPROVAL:()=>_0,MATICToolbox:()=>XT,LINEAToolbox:()=>qT,HYPEREVMToolbox:()=>UT,GNOToolbox:()=>CT,EthNetwork:()=>uC,ETHToolbox:()=>c0,ContractAddress:()=>k1,CROToolbox:()=>HT,CORNToolbox:()=>TT,COREToolbox:()=>fT,BotanixToolbox:()=>VC,BaseEVMToolbox:()=>Kf,BSCToolbox:()=>yT,BERAToolbox:()=>e0,BASEToolbox:()=>s0,AVAXToolbox:()=>a0,AURORAToolbox:()=>r0,ARBToolbox:()=>d0,ADIToolbox:()=>i0});module.exports=ky(mC);var o1=v(()=>{m0();Q0();V1();hC()});async function E1(y,T){let H=await fetch(`${aC}${y}`,{...T,headers:{project_id:rC,...T?.headers}});if(!H.ok)throw Error(`Blockfrost API error: ${H.status} ${H.statusText}`);return H.json()}async function sC(y){try{return await E1(`/addresses/${y}/utxos`)}catch{return[]}}async function qU(){return(await E1("/blocks/latest")).slot}async function XU(){let y=await E1("/epochs/latest/parameters"),T={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new ny.default(y.collateral_percent),languageView:T,maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new ny.default(y.min_fee_a),minFeeB:new ny.default(y.min_fee_b),minFeeRefScriptCostPerByte:new ny.default(15),priceMem:new ny.default(y.price_mem),priceSteps:new ny.default(y.price_step),stakeKeyDeposit:new ny.default(2000000),utxoCostPerByte:new ny.default(y.coins_per_utxo_size)}}async function gC(y){let T=await fetch(`${aC}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:rC},method:"POST"});if(!T.ok){let H=await T.text();throw Error(`Transaction submission failed: ${H}`)}return T.json()}function GU(y,T){return y.map((H)=>{let f=H.amount.find((q)=>q.unit==="lovelace"),C=f?new ny.default(f.quantity):new ny.default(0),U=H.amount.filter((q)=>q.unit!=="lovelace").map((q)=>({amount:new ny.default(q.quantity),assetName:q.unit.slice(56),policyId:q.unit.slice(0,56)}));return{address:T,amount:C,index:H.output_index,tokens:U,txId:H.tx_hash}})}async function QU(y){try{let T=await sC(y),H=0n,f=new Map;for(let q of T){if(!q.amount||!Array.isArray(q.amount))continue;for(let X of q.amount){let{unit:G,quantity:Q}=X;if(G==="lovelace")H+=BigInt(Q);else{let Y=f.get(G)||0n;f.set(G,Y+BigInt(Q))}}}let C=[],{baseDecimal:U}=Ly.getChainConfig(Ly.Chain.Cardano);if(H>0n)C.push(Ly.AssetValue.from({chain:Ly.Chain.Cardano,fromBaseDecimal:U,value:H.toString()}));for(let[q,X]of f)C.push(Ly.AssetValue.from({asset:`${Ly.Chain.Cardano}.${q}`,value:X.toString()}));if(C.length===0)return[Ly.AssetValue.from({chain:Ly.Chain.Cardano})];return C}catch(T){let H=T instanceof Error?T.message:String(T);return console.error(`Cardano balance fetch error: ${H}`),[Ly.AssetValue.from({chain:Ly.Chain.Cardano})]}}function eC(y){if(!y||typeof y!=="string")return!1;try{let T=cC.bech32.decode(y,120);return T.prefix==="addr"||T.prefix==="addr_test"}catch{return!1}}async function _U(y,T=0,H=0){let{Bip32PrivateKey:f}=await import("@stricahq/bip32ed25519"),{types:C,address:U,crypto:q}=await import("@stricahq/typhonjs"),X=iC.mnemonicToEntropy(y,dC.wordlist),Q=(await f.fromEntropy(Buffer.from(Array.from(X)))).derive(n1+1852).derive(n1+1815).derive(n1+T),Y=Q.derive(0).derive(H),z=Y.toBip32PublicKey().toPublicKey().toBytes(),L=q.hash28(z),N=Q.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),A=q.hash28(N),R={hash:L,type:C.HashType.ADDRESS},I={hash:A,type:C.HashType.ADDRESS},D=new U.BaseAddress(C.NetworkId.MAINNET,R,I).getBech32(),O=Y.toPrivateKey();return{getAddress:()=>D,publicKey:z,publicKeyHash:L,signTransaction:async(J)=>{try{let _=await import("@stricahq/cbors"),Z=Buffer.from(J,"hex"),B=_.Decoder.decode(Z),[w,k,$,P]=B.value,M=_.Encoder.encode(w),x=q.hash32(M),o=O.sign(x),j=k instanceof Map?k:new Map,E=j.get(tC)||[];E.push([z,o]),j.set(tC,E);let m=[w,j,$,P];return _.Encoder.encode(m).toString("hex")}catch(_){throw new Ly.SwapKitError("toolbox_cardano_sign_transaction_failed",{message:String(_)})}}}}function ZU(y){let T,H,f;async function C(){if(!f)f=await XU();return f}async function U(){if(T!==void 0)return T;if(y&&"phrase"in y&&y.phrase){let W=y.index??0;return T=await _U(y.phrase,0,W),T}if(y&&"signer"in y&&y.signer)return T=y.signer,T;return}async function q(){if(H)return H;let W=await U();if(!W)return"";if("getAddress"in W)return H=await W.getAddress(),H;return""}async function X(W){let N=W||await q();if(!N)throw new Ly.SwapKitError("core_wallet_connection_not_found");return QU(N)}async function G(W){if(W)try{let{tx:I}=await Q(W),F=I.getFee();return Ly.AssetValue.from({chain:Ly.Chain.Cardano,fromBaseDecimal:6,value:F.toString()})}catch{}let N=await C(),A=400,R=N.minFeeB.plus(N.minFeeA.times(A));return Ly.AssetValue.from({chain:Ly.Chain.Cardano,fromBaseDecimal:6,value:R.toString()})}async function Q({sender:W="",recipient:N,assetValue:A,memo:R,pureLovelaceOnly:I=!1}){let{Transaction:F,utils:D}=await import("@stricahq/typhonjs"),O=W||await q();if(!O)throw new Ly.SwapKitError("core_wallet_connection_not_found");let[J,_,Z]=await Promise.all([sC(O),qU(),C()]),B=J.filter((i)=>I?i.amount.every((qy)=>qy.unit==="lovelace"):i.amount.some((qy)=>qy.unit==="lovelace")).sort((i,qy)=>{let Wy=i.amount.some((Ay)=>Ay.unit!=="lovelace"),$y=qy.amount.some((Ay)=>Ay.unit!=="lovelace");if(Wy===$y)return 0;return Wy?1:-1}),w=D.getAddressFromString(O),k=D.getAddressFromString(N),$=GU(B,w),P=new ny.default(A.getBaseValue("string")),M=[{address:k,amount:P,tokens:[]}],x;if(R){let i=new Map;i.set("msg",[R]),x={metadata:[{data:i,label:674}]}}let o={...Z,minFeeB:Z.minFeeB.plus(Z.minFeeA.times(4))},E=new F({protocolParams:o}).paymentTransaction({auxiliaryData:x,changeAddress:w,inputs:$,outputs:M,ttl:_+3600}),{payload:m}=E.buildTransaction();return{tx:E,unsignedTx:m}}async function Y(W){let N=await U();if(!N||!("signTransaction"in N))throw new Ly.SwapKitError("core_wallet_connection_not_found");return N.signTransaction(W)}async function z({recipient:W,assetValue:N,memo:A}){let R=await U();if(!R||!("signTransaction"in R))throw new Ly.SwapKitError("core_wallet_connection_not_found");let{unsignedTx:I}=await Q({assetValue:N,memo:A,recipient:W,sender:await q()}),F=await Y(I);return await gC(F)}async function L(W){let N=await Y(W);return await gC(N)}return{createTransaction:Q,estimateTransactionFee:G,getAddress:q,getBalance:X,signAndBroadcastTransaction:L,signTransaction:Y,transfer:z,validateAddress:eC}}var cC,iC,dC,Ly,ny,rC="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",aC="https://cardano-mainnet.blockfrost.io/api/v0",n1=2147483648,tC=0;var y5=v(()=>{cC=require("@scure/base"),iC=require("@scure/bip39"),dC=require("@scure/bip39/wordlists/english.js"),Ly=require("@swapkit/helpers"),ny=LC(require("bignumber.js"))});var v1={};Dy(v1,{validateCardanoAddress:()=>eC,getCardanoToolbox:()=>ZU});module.exports=ky(v1);var j1=v(()=>{y5()});function z0(y){return iy.base64.encode(Uint8Array.from(iy.bech32.fromWords(iy.bech32.decode(y).words)))}function A0(y,T="thor"){return iy.bech32.encode(T,iy.bech32.toWords(iy.base64.decode(y)))}function WU(y){return iy.base64.encode(y)}function YU(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new f5.SwapKitError("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return iy.base64.decode(y)}var iy,f5;var b1=v(()=>{iy=require("@scure/base"),f5=require("@swapkit/helpers")});function ey(y){switch(y){case u.Chain.Maya:return{amount:[],gas:"10000000000"};case u.Chain.THORChain:return{amount:[],gas:"500000000"};case u.Chain.Kujira:return C5;case u.Chain.Noble:return U5;default:return H5}}async function yf(y){let T=await import("@cosmjs/stargate"),H=T.StargateClient??T.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return H.connect({headers:f,url:y})}async function wf(y,T,H={}){let f=await import("@cosmjs/stargate"),C=f.SigningStargateClient??f.default?.SigningStargateClient,U=f.GasPrice??f.default?.GasPrice,q=typeof H==="string"?H:"0.0003uatom",X=typeof H==="string"?{}:H;return C.connectWithSigner(y,T,{gasPrice:U.fromString(q),...X})}async function p1(y,T){let H=await import("@cosmjs/stargate");return(H.SigningStargateClient??H.default?.SigningStargateClient).offline(y,T)}async function l1({sender:y,recipient:T,assetValue:H,memo:f="",feeRate:C,sequence:U,accountNumber:q}){let{chain:X,chainId:G}=H,Q=await u.getRPCUrl(X),z=await(await yf(Q)).getAccount(y);if(!z)throw new u.SwapKitError("toolbox_cosmos_account_not_found",{sender:y});let L=u.AssetValue.from({chain:X}),W=Xf(L.symbol),N=ey(X),A=W&&C?{amount:[{amount:C.toString(),denom:W}],gas:N.gas}:N,R={amount:[{amount:H.getBaseValue("string"),denom:Xf(H.symbol)}],fromAddress:y,toAddress:T};return{accountNumber:q??Number(z.accountNumber),chainId:G,fee:A,memo:f,msgs:[{typeUrl:LU(X),value:R}],sequence:U??z.sequence}}var u,K1="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",T5="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",H5,C5,U5,Xf=(y,T=!1)=>{if(T)return y.toLowerCase();switch(y){case"uUSK":case"USK":return K1;case"uYUM":case"YUM":return T5;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return y}},M0=({symbol:y,chain:T})=>{if(T===u.Chain.Maya)return(y.toUpperCase()!=="CACAO"?y:`${u.Chain.Maya}.${y}`).toUpperCase();if(T===u.Chain.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${u.Chain.THORChain}.${y}`:y).toUpperCase();return Xf(y,!1)},LU=(y)=>{switch(y){case u.Chain.Maya:case u.Chain.THORChain:return"/types.MsgSend";case u.Chain.Cosmos:case u.Chain.Kujira:case u.Chain.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new u.SwapKitError("toolbox_cosmos_not_supported",{chain:y})}},JU,u1=(y,T)=>{let H=JU[y.toLowerCase()];if(!H)return u.AssetValue.from({asset:y,fromBaseDecimal:8,value:T});let{chain:f,asset:C,decimals:U}=H,q=f?{chain:f}:{asset:C};return u.AssetValue.from({...q,fromBaseDecimal:U,value:T})};var N0=v(()=>{u=require("@swapkit/helpers"),H5={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},C5={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},U5={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};JU={atom:{chain:u.Chain.Cosmos,decimals:u.getChainConfig(u.Chain.Cosmos).baseDecimal},cacao:{chain:u.Chain.Maya,decimals:10},kuji:{chain:u.Chain.Kujira,decimals:u.getChainConfig(u.Chain.Kujira).baseDecimal},maya:{asset:`${u.Chain.Maya}.${u.Chain.Maya}`,decimals:4},rune:{chain:u.Chain.THORChain,decimals:u.getChainConfig(u.Chain.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:u.getChainConfig(u.Chain.THORChain).baseDecimal},uatom:{chain:u.Chain.Cosmos,decimals:u.getChainConfig(u.Chain.Cosmos).baseDecimal},ukuji:{chain:u.Chain.Kujira,decimals:u.getChainConfig(u.Chain.Kujira).baseDecimal},usdc:{chain:u.Chain.Noble,decimals:u.getChainConfig(u.Chain.Noble).baseDecimal},uusdc:{chain:u.Chain.Noble,decimals:u.getChainConfig(u.Chain.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:u.getChainConfig(u.Chain.THORChain).baseDecimal},[K1.toLowerCase()]:{asset:`${u.Chain.Kujira}.USK`,decimals:u.getChainConfig(u.Chain.Kujira).baseDecimal}}});var q5={};Dy(q5,{$root:()=>n});var Oy,h,vy,p,n;var X5=v(()=>{Oy=LC(require("protobufjs/minimal.js")),h=Oy.default.Reader,vy=Oy.default.Writer,p=Oy.default.util,n=Oy.default.roots.default||(Oy.default.roots.default={});n.common=(()=>{let y={};return y.Asset=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.chain="",T.prototype.symbol="",T.prototype.ticker="",T.prototype.synth=!1,T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))C.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))C.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))C.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))C.uint32(32).bool(f.synth);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new n.common.Asset;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:q.chain=f.string();break;case 2:q.symbol=f.string();break;case 3:q.ticker=f.string();break;case 4:q.synth=f.bool();break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!p.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!p.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!p.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},T.fromObject=function(f){if(f instanceof n.common.Asset)return f;let C=new n.common.Asset;if(f.chain!=null)C.chain=String(f.chain);if(f.symbol!=null)C.symbol=String(f.symbol);if(f.ticker!=null)C.ticker=String(f.ticker);if(f.synth!=null)C.synth=Boolean(f.synth);return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.defaults)U.chain="",U.symbol="",U.ticker="",U.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))U.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))U.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))U.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))U.synth=f.synth;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y.Coin=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.asset=null,T.prototype.amount="",T.prototype.decimals=p.Long?p.Long.fromBits(0,0,!1):0,T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))n.common.Asset.encode(f.asset,C.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))C.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))C.uint32(24).int64(f.decimals);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new n.common.Coin;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:q.asset=n.common.Asset.decode(f,f.uint32());break;case 2:q.amount=f.string();break;case 3:q.decimals=f.int64();break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let C=n.common.Asset.verify(f.asset);if(C)return"asset."+C}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!p.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!p.isInteger(f.decimals)&&!(f.decimals&&p.isInteger(f.decimals.low)&&p.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},T.fromObject=function(f){if(f instanceof n.common.Coin)return f;let C=new n.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");C.asset=n.common.Asset.fromObject(f.asset)}if(f.amount!=null)C.amount=String(f.amount);if(f.decimals!=null){if(p.Long)(C.decimals=p.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")C.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")C.decimals=f.decimals;else if(typeof f.decimals==="object")C.decimals=new p.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.defaults)if(U.asset=null,U.amount="",p.Long){let q=new p.Long(0,0,!1);U.decimals=C.longs===String?q.toString():C.longs===Number?q.toNumber():q}else U.decimals=C.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))U.asset=n.common.Asset.toObject(f.asset,C);if(f.amount!=null&&f.hasOwnProperty("amount"))U.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")U.decimals=C.longs===String?String(f.decimals):f.decimals;else U.decimals=C.longs===String?p.Long.prototype.toString.call(f.decimals):C.longs===Number?new p.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y.PubKeySet=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.secp256k1="",T.prototype.ed25519="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))C.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))C.uint32(18).string(f.ed25519);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new n.common.PubKeySet;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:q.secp256k1=f.string();break;case 2:q.ed25519=f.string();break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!p.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!p.isString(f.ed25519))return"ed25519: string expected"}return null},T.fromObject=function(f){if(f instanceof n.common.PubKeySet)return f;let C=new n.common.PubKeySet;if(f.secp256k1!=null)C.secp256k1=String(f.secp256k1);if(f.ed25519!=null)C.ed25519=String(f.ed25519);return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.defaults)U.secp256k1="",U.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))U.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))U.ed25519=f.ed25519;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y.Tx=(()=>{function T(H){if(this.coins=[],this.gas=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.id="",T.prototype.chain="",T.prototype.fromAddress="",T.prototype.toAddress="",T.prototype.coins=p.emptyArray,T.prototype.gas=p.emptyArray,T.prototype.memo="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))C.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))C.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))C.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))C.uint32(34).string(f.toAddress);if(f.coins?.length)for(let U=0;U<f.coins.length;++U)n.common.Coin.encode(f.coins[U],C.uint32(42).fork()).ldelim();if(f.gas?.length)for(let U=0;U<f.gas.length;++U)n.common.Coin.encode(f.gas[U],C.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))C.uint32(58).string(f.memo);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new n.common.Tx;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:q.id=f.string();break;case 2:q.chain=f.string();break;case 3:q.fromAddress=f.string();break;case 4:q.toAddress=f.string();break;case 5:if(!q.coins?.length)q.coins=[];q.coins.push(n.common.Coin.decode(f,f.uint32()));break;case 6:if(!q.gas?.length)q.gas=[];q.gas.push(n.common.Coin.decode(f,f.uint32()));break;case 7:q.memo=f.string();break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!p.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!p.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!p.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!p.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let C=0;C<f.coins.length;++C){let U=n.common.Coin.verify(f.coins[C]);if(U)return"coins."+U}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let C=0;C<f.gas.length;++C){let U=n.common.Coin.verify(f.gas[C]);if(U)return"gas."+U}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!p.isString(f.memo))return"memo: string expected"}return null},T.fromObject=function(f){if(f instanceof n.common.Tx)return f;let C=new n.common.Tx;if(f.id!=null)C.id=String(f.id);if(f.chain!=null)C.chain=String(f.chain);if(f.fromAddress!=null)C.fromAddress=String(f.fromAddress);if(f.toAddress!=null)C.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");C.coins=[];for(let U=0;U<f.coins.length;++U){if(typeof f.coins[U]!=="object")throw TypeError(".common.Tx.coins: object expected");C.coins[U]=n.common.Coin.fromObject(f.coins[U])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");C.gas=[];for(let U=0;U<f.gas.length;++U){if(typeof f.gas[U]!=="object")throw TypeError(".common.Tx.gas: object expected");C.gas[U]=n.common.Coin.fromObject(f.gas[U])}}if(f.memo!=null)C.memo=String(f.memo);return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.arrays||C.defaults)U.coins=[],U.gas=[];if(C.defaults)U.id="",U.chain="",U.fromAddress="",U.toAddress="",U.memo="";if(f.id!=null&&f.hasOwnProperty("id"))U.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))U.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))U.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))U.toAddress=f.toAddress;if(f.coins?.length){U.coins=[];for(let q=0;q<f.coins.length;++q)U.coins[q]=n.common.Coin.toObject(f.coins[q],C)}if(f.gas?.length){U.gas=[];for(let q=0;q<f.gas.length;++q)U.gas[q]=n.common.Coin.toObject(f.gas[q],C)}if(f.memo!=null&&f.hasOwnProperty("memo"))U.memo=f.memo;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y.Fee=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.coins=p.emptyArray,T.prototype.poolDeduct="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.coins?.length)for(let U=0;U<f.coins.length;++U)n.common.Coin.encode(f.coins[U],C.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))C.uint32(18).string(f.poolDeduct);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new n.common.Fee;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:if(!q.coins?.length)q.coins=[];q.coins.push(n.common.Coin.decode(f,f.uint32()));break;case 2:q.poolDeduct=f.string();break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let C=0;C<f.coins.length;++C){let U=n.common.Coin.verify(f.coins[C]);if(U)return"coins."+U}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!p.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},T.fromObject=function(f){if(f instanceof n.common.Fee)return f;let C=new n.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");C.coins=[];for(let U=0;U<f.coins.length;++U){if(typeof f.coins[U]!=="object")throw TypeError(".common.Fee.coins: object expected");C.coins[U]=n.common.Coin.fromObject(f.coins[U])}}if(f.poolDeduct!=null)C.poolDeduct=String(f.poolDeduct);return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.arrays||C.defaults)U.coins=[];if(C.defaults)U.poolDeduct="";if(f.coins?.length){U.coins=[];for(let q=0;q<f.coins.length;++q)U.coins[q]=n.common.Coin.toObject(f.coins[q],C)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))U.poolDeduct=f.poolDeduct;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y.ProtoUint=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.value="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))C.uint32(10).string(f.value);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new n.common.ProtoUint;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:q.value=f.string();break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!p.isString(f.value))return"value: string expected"}return null},T.fromObject=function(f){if(f instanceof n.common.ProtoUint)return f;let C=new n.common.ProtoUint;if(f.value!=null)C.value=String(f.value);return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.defaults)U.value="";if(f.value!=null&&f.hasOwnProperty("value"))U.value=f.value;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y})();n.types=(()=>{let y={};return y.MsgDeposit=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.coins=p.emptyArray,T.prototype.memo="",T.prototype.signer=p.newBuffer([]),T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.coins?.length)for(let U=0;U<f.coins.length;++U)n.common.Coin.encode(f.coins[U],C.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))C.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))C.uint32(26).bytes(f.signer);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new n.types.MsgDeposit;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:if(!q.coins?.length)q.coins=[];q.coins.push(n.common.Coin.decode(f,f.uint32()));break;case 2:q.memo=f.string();break;case 3:q.signer=f.bytes();break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let C=0;C<f.coins.length;++C){let U=n.common.Coin.verify(f.coins[C]);if(U)return"coins."+U}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!p.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||p.isString(f.signer)))return"signer: buffer expected"}return null},T.fromObject=function(f){if(f instanceof n.types.MsgDeposit)return f;let C=new n.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");C.coins=[];for(let U=0;U<f.coins.length;++U){if(typeof f.coins[U]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");C.coins[U]=n.common.Coin.fromObject(f.coins[U])}}if(f.memo!=null)C.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")p.base64.decode(f.signer,C.signer=p.newBuffer(p.base64.length(f.signer)),0);else if(f.signer.length)C.signer=f.signer}return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.arrays||C.defaults)U.coins=[];if(C.defaults){if(U.memo="",C.bytes===String)U.signer="";else if(U.signer=[],C.bytes!==Array)U.signer=p.newBuffer(U.signer)}if(f.coins?.length){U.coins=[];for(let q=0;q<f.coins.length;++q)U.coins[q]=n.common.Coin.toObject(f.coins[q],C)}if(f.memo!=null&&f.hasOwnProperty("memo"))U.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))U.signer=C.bytes===String?p.base64.encode(f.signer,0,f.signer.length):C.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y.MsgSend=(()=>{function T(H){if(this.amount=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.fromAddress=p.newBuffer([]),T.prototype.toAddress=p.newBuffer([]),T.prototype.amount=p.emptyArray,T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))C.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))C.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let U=0;U<f.amount.length;++U)n.cosmos.base.v1beta1.Coin.encode(f.amount[U],C.uint32(26).fork()).ldelim();return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new n.types.MsgSend;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:q.fromAddress=f.bytes();break;case 2:q.toAddress=f.bytes();break;case 3:if(!q.amount?.length)q.amount=[];q.amount.push(n.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||p.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||p.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let C=0;C<f.amount.length;++C){let U=n.cosmos.base.v1beta1.Coin.verify(f.amount[C]);if(U)return"amount."+U}}return null},T.fromObject=function(f){if(f instanceof n.types.MsgSend)return f;let C=new n.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")p.base64.decode(f.fromAddress,C.fromAddress=p.newBuffer(p.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)C.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")p.base64.decode(f.toAddress,C.toAddress=p.newBuffer(p.base64.length(f.toAddress)),0);else if(f.toAddress.length)C.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");C.amount=[];for(let U=0;U<f.amount.length;++U){if(typeof f.amount[U]!=="object")throw TypeError(".types.MsgSend.amount: object expected");C.amount[U]=n.cosmos.base.v1beta1.Coin.fromObject(f.amount[U])}}return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.arrays||C.defaults)U.amount=[];if(C.defaults){if(C.bytes===String)U.fromAddress="";else if(U.fromAddress=[],C.bytes!==Array)U.fromAddress=p.newBuffer(U.fromAddress);if(C.bytes===String)U.toAddress="";else if(U.toAddress=[],C.bytes!==Array)U.toAddress=p.newBuffer(U.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))U.fromAddress=C.bytes===String?p.base64.encode(f.fromAddress,0,f.fromAddress.length):C.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))U.toAddress=C.bytes===String?p.base64.encode(f.toAddress,0,f.toAddress.length):C.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){U.amount=[];for(let q=0;q<f.amount.length;++q)U.amount[q]=n.cosmos.base.v1beta1.Coin.toObject(f.amount[q],C)}return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y})();n.cosmos=(()=>{let y={};return y.base=(()=>{let T={};return T.v1beta1=(()=>{let H={};return H.Coin=(()=>{function f(C){if(C){for(let U=Object.keys(C),q=0;q<U.length;++q)if(C[U[q]]!=null)this[U[q]]=C[U[q]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=vy.create();if(U.denom!=null&&Object.hasOwnProperty.call(U,"denom"))q.uint32(10).string(U.denom);if(U.amount!=null&&Object.hasOwnProperty.call(U,"amount"))q.uint32(18).string(U.amount);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof h))U=h.create(U);let X=q===void 0?U.len:U.pos+q,G=new n.cosmos.base.v1beta1.Coin;while(U.pos<X){let Q=U.uint32();switch(Q>>>3){case 1:G.denom=U.string();break;case 2:G.amount=U.string();break;default:U.skipType(Q&7);break}}return G},f.decodeDelimited=function(U){if(!(U instanceof h))U=new h(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.denom!=null&&U.hasOwnProperty("denom")){if(!p.isString(U.denom))return"denom: string expected"}if(U.amount!=null&&U.hasOwnProperty("amount")){if(!p.isString(U.amount))return"amount: string expected"}return null},f.fromObject=function(U){if(U instanceof n.cosmos.base.v1beta1.Coin)return U;let q=new n.cosmos.base.v1beta1.Coin;if(U.denom!=null)q.denom=String(U.denom);if(U.amount!=null)q.amount=String(U.amount);return q},f.toObject=function(U,q){if(!q)q={};let X={};if(q.defaults)X.denom="",X.amount="";if(U.denom!=null&&U.hasOwnProperty("denom"))X.denom=U.denom;if(U.amount!=null&&U.hasOwnProperty("amount"))X.amount=U.amount;return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},f})(),H.DecCoin=(()=>{function f(C){if(C){for(let U=Object.keys(C),q=0;q<U.length;++q)if(C[U[q]]!=null)this[U[q]]=C[U[q]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=vy.create();if(U.denom!=null&&Object.hasOwnProperty.call(U,"denom"))q.uint32(10).string(U.denom);if(U.amount!=null&&Object.hasOwnProperty.call(U,"amount"))q.uint32(18).string(U.amount);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof h))U=h.create(U);let X=q===void 0?U.len:U.pos+q,G=new n.cosmos.base.v1beta1.DecCoin;while(U.pos<X){let Q=U.uint32();switch(Q>>>3){case 1:G.denom=U.string();break;case 2:G.amount=U.string();break;default:U.skipType(Q&7);break}}return G},f.decodeDelimited=function(U){if(!(U instanceof h))U=new h(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.denom!=null&&U.hasOwnProperty("denom")){if(!p.isString(U.denom))return"denom: string expected"}if(U.amount!=null&&U.hasOwnProperty("amount")){if(!p.isString(U.amount))return"amount: string expected"}return null},f.fromObject=function(U){if(U instanceof n.cosmos.base.v1beta1.DecCoin)return U;let q=new n.cosmos.base.v1beta1.DecCoin;if(U.denom!=null)q.denom=String(U.denom);if(U.amount!=null)q.amount=String(U.amount);return q},f.toObject=function(U,q){if(!q)q={};let X={};if(q.defaults)X.denom="",X.amount="";if(U.denom!=null&&U.hasOwnProperty("denom"))X.denom=U.denom;if(U.amount!=null&&U.hasOwnProperty("amount"))X.amount=U.amount;return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},f})(),H.IntProto=(()=>{function f(C){if(C){for(let U=Object.keys(C),q=0;q<U.length;++q)if(C[U[q]]!=null)this[U[q]]=C[U[q]]}}return f.prototype.int="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=vy.create();if(U.int!=null&&Object.hasOwnProperty.call(U,"int"))q.uint32(10).string(U.int);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof h))U=h.create(U);let X=q===void 0?U.len:U.pos+q,G=new n.cosmos.base.v1beta1.IntProto;while(U.pos<X){let Q=U.uint32();switch(Q>>>3){case 1:G.int=U.string();break;default:U.skipType(Q&7);break}}return G},f.decodeDelimited=function(U){if(!(U instanceof h))U=new h(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.int!=null&&U.hasOwnProperty("int")){if(!p.isString(U.int))return"int: string expected"}return null},f.fromObject=function(U){if(U instanceof n.cosmos.base.v1beta1.IntProto)return U;let q=new n.cosmos.base.v1beta1.IntProto;if(U.int!=null)q.int=String(U.int);return q},f.toObject=function(U,q){if(!q)q={};let X={};if(q.defaults)X.int="";if(U.int!=null&&U.hasOwnProperty("int"))X.int=U.int;return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},f})(),H.DecProto=(()=>{function f(C){if(C){for(let U=Object.keys(C),q=0;q<U.length;++q)if(C[U[q]]!=null)this[U[q]]=C[U[q]]}}return f.prototype.dec="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=vy.create();if(U.dec!=null&&Object.hasOwnProperty.call(U,"dec"))q.uint32(10).string(U.dec);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof h))U=h.create(U);let X=q===void 0?U.len:U.pos+q,G=new n.cosmos.base.v1beta1.DecProto;while(U.pos<X){let Q=U.uint32();switch(Q>>>3){case 1:G.dec=U.string();break;default:U.skipType(Q&7);break}}return G},f.decodeDelimited=function(U){if(!(U instanceof h))U=new h(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.dec!=null&&U.hasOwnProperty("dec")){if(!p.isString(U.dec))return"dec: string expected"}return null},f.fromObject=function(U){if(U instanceof n.cosmos.base.v1beta1.DecProto)return U;let q=new n.cosmos.base.v1beta1.DecProto;if(U.dec!=null)q.dec=String(U.dec);return q},f.toObject=function(U,q){if(!q)q={};let X={};if(q.defaults)X.dec="";if(U.dec!=null&&U.hasOwnProperty("dec"))X.dec=U.dec;return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},f})(),H})(),T})(),y})()});async function $f(){let{$root:y}=await Promise.resolve().then(() => (X5(),q5)),T=await import("@cosmjs/proto-signing"),H=await import("@cosmjs/stargate"),f=T.Registry??T.default?.Registry,C=H.defaultRegistryTypes??H.default?.defaultRegistryTypes;return new f([...C,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function Gf(y){let T=await import("@cosmjs/stargate"),H=T.AminoTypes??T.default?.AminoTypes,f=y===G5.Chain.THORChain?"thorchain":"mayachain";return new H({"/types.MsgDeposit":{aminoType:`${f}/MsgDeposit`,fromAmino:({signer:C,...U})=>({...U,signer:z0(C)}),toAmino:({signer:C,...U})=>({...U,signer:A0(C)})},"/types.MsgSend":{aminoType:`${f}/MsgSend`,fromAmino:({from_address:C,to_address:U,...q})=>({...q,fromAddress:z0(C),toAddress:z0(U)}),toAmino:({fromAddress:C,toAddress:U,...q})=>({...q,from_address:A0(C),to_address:A0(U)})}})}var G5;var h1=v(()=>{b1();G5=require("@swapkit/helpers")});function g1(y){let{assetValue:T,recipient:H,memo:f,sender:C,asSignable:U,asAminoMessage:q}=y;if(H)return _5({asAminoMessage:q,asSignable:U,assetValue:T,memo:f,recipient:H,sender:C});return Z5({asAminoMessage:q,asSignable:U,assetValue:T,memo:f,sender:C})}async function _5({sender:y,recipient:T,assetValue:H,memo:f="",asSignable:C=!0,asAminoMessage:U=!1,sequence:q,accountNumber:X}){let G=H.chain,Q=await Fy.getRPCUrl(G),Y=await Q5({rpcUrl:Q,sender:y}),{chainId:z}=Fy.getChainConfig(G),L=m1({assetValue:H,recipient:T,sender:y}),W=C?await Qf(U?L:_f(L),G):L;return{accountNumber:X||Number(Y.accountNumber),chainId:z,fee:ey(G),memo:f,msgs:[W],sequence:q||Y.sequence}}async function Z5({sender:y,assetValue:T,memo:H="",asSignable:f=!0,asAminoMessage:C=!1,sequence:U,accountNumber:q}){let X=T.chain,G=await Fy.getRPCUrl(X),Q=await Q5({rpcUrl:G,sender:y}),{chainId:Y}=Fy.getChainConfig(X),z=t1({assetValue:T,memo:H,sender:y}),L=f?await Qf(C?z:_f(z),X):z;return{accountNumber:q||Number(Q.accountNumber),chainId:Y,fee:ey(X),memo:H,msgs:[L],sequence:U||Q.sequence}}function _f(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((T)=>{let H=Fy.AssetValue.from({asset:T.asset}),f=(H.isSynthetic?H.symbol.split("/")?.[1]:H.symbol)?.toUpperCase(),C=(H.isSynthetic?H.symbol.split("/")?.[0]:H.chain)?.toUpperCase();return{...T,asset:{chain:C,symbol:f,synth:H.isSynthetic,ticker:H.ticker}}})}}}async function B0({chain:y,memo:T,msgs:H}){let f=await $f(),C=await Gf(y),U={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:T,messages:H.map((q)=>C.fromAmino(q))}};return f.encode(U)}var Fy,zU,AU,m1=({sender:y,recipient:T,assetValue:H})=>{return{type:`${H.chain===Fy.Chain.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:H.getBaseValue("string"),denom:Xf(H.symbol,!0)}],from_address:y,to_address:T}}},t1=({sender:y,assetValue:T,memo:H=""})=>{return{type:`${T.chain===Fy.Chain.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:T.getBaseValue("string"),asset:M0(T)}],memo:H,signer:y}}},JT=({sender:y,recipient:T,assetValue:H,memo:f})=>{return!T?t1({assetValue:H,memo:f,sender:y}):m1({assetValue:H,recipient:T,sender:y})},Qf=async(y,T)=>{return(await Gf(T)).fromAmino(y)},Q5=async({rpcUrl:y,sender:T})=>{let f=await(await yf(y)).getAccount(T);if(!f)throw new Fy.SwapKitError("toolbox_cosmos_account_not_found",{sender:T});return f};var W5=v(()=>{N0();h1();Fy=require("@swapkit/helpers"),zU=ey(Fy.Chain.THORChain).gas,AU=ey(Fy.Chain.Maya).gas});var Y5=()=>{};var L5=v(()=>{Y5()});var c1=v(()=>{b1();W5();h1();L5()});async function r1(y,T){try{let f=(await d1.SwapKitApi.getGasRate()).find((C)=>C.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}async function i1({phrase:y,prefix:T,...H}){let f=await import("@cosmjs/proto-signing"),C=await import("@cosmjs/crypto"),U=f.DirectSecp256k1HdWallet??f.default?.DirectSecp256k1HdWallet,q=C.stringToPath??C.default?.stringToPath,X="derivationPath"in H?H.derivationPath:`${b.DerivationPath[H.chain]}/${H.index}`;return await U.fromMnemonic(y,{hdPaths:[q(X)],prefix:T})}async function MU({privateKey:y,prefix:T}){let H=await import("@cosmjs/proto-signing");return(H.DirectSecp256k1Wallet??H.default?.DirectSecp256k1Wallet).fromKey(y,T)}function M5(y){return async function({signature:H,message:f,address:C}){let U=await y(C);if(!U?.pubkey)throw new b.SwapKitError("toolbox_cosmos_verify_signature_no_pubkey");let q=await import("@cosmjs/crypto"),X=q.Secp256k1Signature??q.default?.Secp256k1Signature,G=q.Secp256k1??q.default?.Secp256k1,Q=X.fromFixedLength(Zf.base64.decode(H));return G.verifySignature(Q,Zf.base64.decode(f),U.pubkey.value)}}function O0({chain:y,...T}){let H=b.CosmosChainPrefixes[y],f="index"in T?T.index||0:0,C=b.derivationPathToString("derivationPath"in T&&T.derivationPath?T.derivationPath:b.updateDerivationPath(b.NetworkDerivationPath[y],{index:f})),U;async function q(){if(U)return U;return U=await D0.match(T).with({phrase:D0.P.string},({phrase:W})=>i1({derivationPath:C,phrase:W,prefix:H})).with({signer:D0.P.any},({signer:W})=>W).otherwise(()=>{return}),U}async function X(W){let N=await b.getRPCUrl(y);return(await yf(N)).getAccount(W)}async function G(){let W=await q(),[N]=await W?.getAccounts()||[];return N?.address}async function Q(){let W=await q(),[N]=await W?.getAccounts()||[];if(!N?.pubkey)throw new b.SwapKitError("toolbox_cosmos_signer_not_defined");return Zf.base64.encode(N?.pubkey)}async function Y(W){let N=await q(),A=await G(),R=await b.getRPCUrl(y);if(!(N&&A))throw new b.SwapKitError("toolbox_cosmos_signer_not_defined");return await(await wf(R,N)).sign(A,W.msgs,W.fee,W.memo,{accountNumber:BigInt(W.accountNumber),chainId:W.chainId,sequence:W.sequence})}async function z(W){let N=await q(),A=await G(),R=await b.getRPCUrl(y);if(!(N&&A))throw new b.SwapKitError("toolbox_cosmos_signer_not_defined");let F=await(await wf(R,N)).signAndBroadcast(A,W.msgs,W.fee,W.memo);if(F.code!==0)throw new b.SwapKitError("core_swap_transaction_error",{code:F.code,message:F.rawLog});return F.transactionHash}async function L({recipient:W,assetValue:N,memo:A="",feeRate:R,feeOptionKey:I=b.FeeOption.Fast}){let F=await q(),D=await G();if(!(F&&D))throw new b.SwapKitError("toolbox_cosmos_signer_not_defined");let O=await b.getRPCUrl(y),J=b.AssetValue.from({chain:y}),_=M0(J),Z=R||DU((await z5(y,J5[y]))[I],_),B=await wf(O,F),w=Xf(N.symbol),k=[{amount:N.getBaseValue("string"),denom:w}],{transactionHash:$}=await B.sendTokens(D,W,k,Z,A);return $}return{createPrivateKeyFromPhrase:RU(C),createTransaction:l1,fetchFeeRateFromSwapKit:r1,getAccount:X,getAddress:G,getBalance:async(W,N)=>{let A=await A5(y)(W),R=await Promise.all(A.filter(({denom:I})=>I&&!I.includes("IBC/")&&!([b.Chain.THORChain,b.Chain.Maya].includes(y)&&I.split("-").length>2)).map(({denom:I,amount:F})=>{let D=[b.Chain.THORChain,b.Chain.Maya].includes(y)&&(I.includes("/")||I.includes("˜"))?`${y}.${I}`:I;return u1(D,F)}));if(R.length===0)return[b.AssetValue.from({chain:y})];return R},getBalanceAsDenoms:A5(y),getFees:()=>z5(y,J5[y]),getPubKey:Q,getSignerFromPhrase:({phrase:W,derivationPath:N})=>i1({derivationPath:b.derivationPathToString(N),index:f,phrase:W,prefix:H}),getSignerFromPrivateKey:async(W)=>{let N=await import("@cosmjs/proto-signing");return(N.DirectSecp256k1Wallet??N.default?.DirectSecp256k1Wallet).fromKey(W,H)},signAndBroadcastTransaction:z,signTransaction:Y,transfer:L,validateAddress:N5(y),verifySignature:M5(X)}}async function NU(y,T){try{let f=(await d1.SwapKitApi.getGasRate()).find((C)=>C.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}function BU({assetValue:{chain:y}}){return b.AssetValue.from({chain:y,value:OU(y)})}async function z5(y,T){let{chainId:H,baseDecimal:f}=b.getChainConfig(y),C=await r1(H,T);return{average:b.SwapKitNumber.fromBigInt(BigInt(C),f),fast:b.SwapKitNumber.fromBigInt(BigInt(b.applyFeeMultiplier(C,b.FeeOption.Fast,!0)),f),fastest:b.SwapKitNumber.fromBigInt(BigInt(b.applyFeeMultiplier(C,b.FeeOption.Fastest,!0)),f)}}function DU(y,T){return{amount:[{amount:y.getBaseValue("string"),denom:T}],gas:"200000"}}function OU(y){return{[b.Chain.Cosmos]:0.007,[b.Chain.Kujira]:0.02,[b.Chain.Noble]:0.01,[b.Chain.THORChain]:0.02,[b.Chain.Maya]:0.02,[b.Chain.Harbor]:0.02}[y]||0}function N5(y){let T=b.CosmosChainPrefixes[y];return function(f){if(!f.startsWith(T))return!1;try{let{prefix:C,words:U}=Zf.bech32.decode(f);return Zf.bech32.encode(C,U)===f.toLocaleLowerCase()}catch{return!1}}}function A5(y){return async function(H){let f=await b.getRPCUrl(y);return(await(await yf(f)).getAllBalances(H)).map((X)=>({...X,denom:X.denom.includes("/")?X.denom.toUpperCase():X.denom}))}}function RU(y){return async function(H){let f=await import("@cosmjs/crypto"),C=f.stringToPath??f.default?.stringToPath,U=f.Slip10Curve??f.default?.Slip10Curve,q=f.Slip10??f.default?.Slip10,X=f.EnglishMnemonic??f.default?.EnglishMnemonic,G=f.Bip39??f.default?.Bip39,Q=new X(H),Y=await G.mnemonicToSeed(Q),{privkey:z}=q.derivePath(U.Secp256k1,Y,C(y));return z}}var Zf,b,d1,D0,J5;var zT=v(()=>{N0();Zf=require("@scure/base"),b=require("@swapkit/helpers"),d1=require("@swapkit/helpers/api"),D0=require("ts-pattern");J5={[b.Chain.Cosmos]:1000,[b.Chain.Kujira]:1000,[b.Chain.Noble]:1000,[b.Chain.THORChain]:5000000,[b.Chain.Maya]:5000000,[b.Chain.Harbor]:5000000}});function kU({prefix:y,derivationPath:T}){return async function(f,C=0){let U=await import("@cosmjs/amino"),q=U.Secp256k1HdWallet??U.default?.Secp256k1HdWallet,X=await import("@cosmjs/crypto"),G=X.stringToPath??X.default?.stringToPath;return q.fromMnemonic(f,{hdPaths:[G(`${T}/${C}`)],prefix:y})}}function wU(y){return Wf.base64.encode(y)}function $U(y){return async function({wallet:H,tx:f}){let{msgs:C,accountNumber:U,sequence:q,chainId:X,fee:G,memo:Q}=typeof f==="string"?JSON.parse(f):f,Y=(await H.getAccounts())?.[0]?.address||"",z=await Gf(y),L=await $f(),W=await p1(H,{aminoTypes:z,registry:L}),N=[];for(let I of C){let F=await Qf(I,y);N.push(F)}let{signatures:[A]}=await W.sign(Y,N,G,Q,{accountNumber:BigInt(U),chainId:X,sequence:q});return{bodyBytes:await B0({chain:y,memo:Q,msgs:C.map(_f)}),signature:wU(A)}}}function FU({prefix:y,chain:T}){return async function(f,C,U,q,X){let G=await yy.getRPCUrl(T),{encodeSecp256k1Pubkey:Q,pubkeyToAddress:Y}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:z}=(await import("@cosmjs/stargate")).default,{sequence:L,fee:W}=JSON.parse(f),N=await B5(U,q),A=C.map((F)=>[Y(Q(Wf.base64.decode(F.pubKey)),y),Wf.base64.decode(F.signature)]),R=await yf(G),{transactionHash:I}=await R.broadcastTx(z(N,L,W,X,new Map(A)));return I}}async function B5(y,T,H=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:C}=(await import("@cosmjs/amino")).default;return f(y.map((U)=>C(Wf.base64.decode(U))),T,H)}function xU(y){return Wf.base64.decode(y)}async function IU({privateKey:y,message:T}){let{Secp256k1:H}=(await import("@cosmjs/crypto")).default,f=await H.createSignature(Wf.base64.decode(T),y);return Wf.base64.encode(Buffer.concat([f.r(32),f.s(32)]))}function a1({chain:y,...T}){let{isStagenet:H}=yy.SKConfig.get("envs"),f=yy.SKConfig.get("thornodeUrls"),C=y===yy.Chain.Maya,U=hf.match({isMayachain:C,isStagenet:H}).with({isMayachain:!0},({isStagenet:F})=>F?f.MAYA_STAGENET:f.MAYA).otherwise(({isStagenet:F})=>F?f.THOR_STAGENET:f.THOR),q=`${H?"s":""}${yy.CosmosChainPrefixes[y]}`,X="index"in T?T.index||0:0,G="derivationPath"in T&&T.derivationPath?T.derivationPath:yy.updateDerivationPath(yy.NetworkDerivationPath[y],{index:X}),Q=O0({chain:y,...T}),Y=ey(y),z;function L(){return z??=hf.match(T).with({phrase:hf.P.string},({phrase:F})=>Q.getSignerFromPhrase({derivationPath:G,phrase:F})).with({signer:hf.P.any},({signer:F})=>Promise.resolve(F)).otherwise(()=>Promise.resolve(void 0)),z}async function W(){let F=await yy.getRPCUrl(y),D=await L();if(!D)throw new yy.SwapKitError("toolbox_cosmos_no_signer");let O=await $f(),J=await Gf(y),_=await wf(F,D,{aminoTypes:J,registry:O});return{signer:D,signingClient:_}}async function N({fee:F,memo:D,msgs:O}){let{signer:J,signingClient:_}=await W(),Z=(await J.getAccounts())?.[0]?.address;if(!Z)throw new yy.SwapKitError("toolbox_cosmos_signer_not_defined");let B=await _.signAndBroadcast(Z,O,F,D);if(B.code!==0)throw new yy.SwapKitError("core_swap_transaction_error",{code:B.code,message:B.rawLog});return B.transactionHash}async function A(){let F,D=`${U}/${C?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:O}}=await yy.RequestClient.get(D);if(!O||Number.isNaN(O)||O<0)throw new yy.SwapKitError("toolbox_cosmos_invalid_fee",{nativeFee:O.toString()});F=new yy.SwapKitNumber(O)}catch{F=new yy.SwapKitNumber({decimal:yy.getChainConfig(y).baseDecimal,value:C?1:0.02})}return{[yy.FeeOption.Average]:F,[yy.FeeOption.Fast]:F,[yy.FeeOption.Fastest]:F}}async function R({assetValue:F,memo:D="",recipient:O}){let{TxRaw:J}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:_,signingClient:Z}=await W(),B=(await _.getAccounts())?.[0]?.address;if(!B)throw new yy.SwapKitError("toolbox_cosmos_no_signer");let w="signAmino"in _,k=JT({assetValue:F,memo:D,recipient:O,sender:B});if(w){let M=await Qf(k,y),{signatures:x,authInfoBytes:o}=await Z.sign(B,[M],Y,D),j=J.encode({authInfoBytes:o,bodyBytes:await B0({chain:y,memo:D,msgs:[k].map(_f)}),signatures:x}).finish();return(await Z.broadcastTx(j)).transactionHash}let $=_f(k),P=await Qf($,y);return N({fee:Y,memo:D,msgs:[P]})}async function I(F){let{signer:D,signingClient:O}=await W(),J=(await D.getAccounts())?.[0]?.address;if(!J)throw new yy.SwapKitError("toolbox_cosmos_signer_not_defined");return O.sign(J,F.msgs,F.fee,F.memo,{accountNumber:BigInt(F.accountNumber),chainId:F.chainId,sequence:F.sequence})}return{...Q,broadcastMultisigTx:FU({chain:y,prefix:q}),buildAminoMsg:JT,buildEncodedTxBody:B0,convertToSignable:Qf,createDefaultAminoTypes:()=>Gf(y),createDefaultRegistry:$f,createMultisig:B5,createTransaction:g1,deposit:R,getFees:A,importSignature:xU,parseAminoMessageForDirectSigning:_f,pubkeyToAddress:async(F)=>{let{pubkeyToAddress:D}=(await import("@cosmjs/amino")).default;return D(F,q)},secp256k1HdWalletFromMnemonic:kU({derivationPath:yy.derivationPathToString(G),prefix:q}),signAndBroadcastTransaction:N,signMultisigTx:$U(y),signTransaction:I,signWithPrivateKey:IU,transfer:R}}var Wf,yy,hf;var s1=v(()=>{c1();N0();zT();Wf=require("@scure/base"),yy=require("@swapkit/helpers"),hf=require("ts-pattern")});var Yf,SU=(y,T)=>{switch(y){case Yf.Chain.Cosmos:case Yf.Chain.Kujira:case Yf.Chain.Noble:return O0({chain:y,...T});case Yf.Chain.Maya:case Yf.Chain.THORChain:return a1({chain:y,...T});default:throw new Yf.SwapKitError("toolbox_cosmos_not_supported",{chain:y})}};var D5=v(()=>{zT();s1();Yf=require("@swapkit/helpers");zT();s1()});var AT={};Dy(AT,{verifySignature:()=>M5,transferMsgAmino:()=>m1,toBase64:()=>WU,parseAminoMessageForDirectSigning:()=>_f,getSignerFromPrivateKey:()=>MU,getSignerFromPhrase:()=>i1,getMsgSendDenom:()=>Xf,getFeeRateFromSwapKit:()=>NU,getDenomWithChain:()=>M0,getDefaultChainFee:()=>ey,getCosmosToolbox:()=>SU,getCosmosAddressValidator:()=>N5,getAssetFromDenom:()=>u1,fromBase64:()=>YU,fetchFeeRateFromSwapKit:()=>r1,estimateTransactionFee:()=>BU,depositMsgAmino:()=>t1,createTransaction:()=>g1,createThorchainToolbox:()=>a1,createStargateClient:()=>yf,createSigningStargateClient:()=>wf,createOfflineStargateClient:()=>p1,createDefaultRegistry:()=>$f,createDefaultAminoTypes:()=>Gf,createCosmosToolbox:()=>O0,cosmosCreateTransaction:()=>l1,convertToSignable:()=>Qf,buildTransferTx:()=>_5,buildEncodedTxBody:()=>B0,buildDepositTx:()=>Z5,buildAminoMsg:()=>JT,bech32ToBase64:()=>z0,base64ToBech32:()=>A0,YUM_KUJIRA_FACTORY_DENOM:()=>T5,USK_KUJIRA_FACTORY_DENOM:()=>K1,THORCHAIN_GAS_VALUE:()=>zU,MAYA_GAS_VALUE:()=>AU,DEFAULT_NOBLE_FEE_MAINNET:()=>U5,DEFAULT_KUJI_FEE_MAINNET:()=>C5,DEFAULT_COSMOS_FEE_MAINNET:()=>H5});module.exports=ky(AT);var MT=v(()=>{c1();D5();N0()});function PU({builder:y,grouping:T="na",orders:H}){return{builder:y,grouping:T,orders:H,type:"order"}}function VU({cancels:y}){return{cancels:y,type:"cancel"}}function oU({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function nU({oid:y,order:T}){return{oid:y,order:T,type:"modify"}}function EU({modifies:y}){return{modifies:y,type:"batchModify"}}function vU({asset:y,isCross:T,leverage:H}){return{asset:y,isCross:T,leverage:H,type:"updateLeverage"}}function jU({asset:y,isBuy:T,ntli:H}){return{asset:y,isBuy:T,ntli:H,type:"updateIsolatedMargin"}}function bU({asset:y,leverage:T}){return{asset:y,leverage:T,type:"topUpIsolatedOnlyMargin"}}function KU({time:y}){return{time:y,type:"scheduleCancel"}}function pU({amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:C}){return{amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:C,type:"usdClassTransfer"}}function lU({amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:C,nonce:U,signatureChainId:q,sourceDex:X,token:G}){return{amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:C,nonce:U,signatureChainId:q,sourceDex:X,token:G,type:"sendAsset"}}function uU({agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:C}){return{agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:C,type:"approveAgent"}}function hU({builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:C}){return{builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:C,type:"approveBuilderFee"}}function mU({hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,validator:C,wei:U}){return{hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,type:"tokenDelegate",validator:C,wei:U}}function Py(...y){let T=y.reduce((C,U)=>C+U.length,0),H=new Uint8Array(T),f=0;for(let C of y)H.set(C,f),f+=C.length;return H}function rU(y,T,H){if(H<T)return new Uint8Array([y+H]);if(H<=255)return new Uint8Array([y+T,H]);if(H<=65535)return new Uint8Array([y+T+1,H>>8,H&255]);return new Uint8Array([y+T+2,H>>>24&255,H>>>16&255,H>>>8&255,H&255])}function Lf(y,T){let H=new Uint8Array(T),f=y;for(let C=T-1;C>=0;C-=1)H[C]=Number(f&0xffn),f>>=8n;return H}function O5(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return Py(new Uint8Array([205]),Lf(y,2));if(y<=0xffffffffn)return Py(new Uint8Array([206]),Lf(y,4));return Py(new Uint8Array([207]),Lf(y,8))}if(y>=-32n)return new Uint8Array([256+Number(y)]);if(y>=-128n)return new Uint8Array([208,256+Number(y)]);if(y>=-32768n)return Py(new Uint8Array([209]),Lf(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return Py(new Uint8Array([210]),Lf(BigInt.asUintN(32,y),4));return Py(new Uint8Array([211]),Lf(BigInt.asUintN(64,y),8))}function w5(y){let T=dU.encode(y);if(T.length<32)return Py(new Uint8Array([160+T.length]),T);return Py(rU(217,0,T.length),T)}function aU(y){let T=y.map((f)=>e1(f)),H=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Py(H,...T)}function sU(y){let T=Object.entries(y).filter(([,f])=>typeof f<"u"),H=T.length<16?new Uint8Array([128+T.length]):T.length<=65535?new Uint8Array([222,T.length>>8,T.length&255]):new Uint8Array([223,T.length>>>24&255,T.length>>>16&255,T.length>>>8&255,T.length&255]);return Py(H,...T.flatMap(([f,C])=>[w5(f),e1(C)]))}function e1(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return w5(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new NT.SwapKitError("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return O5(BigInt(y))}if(typeof y==="bigint")return O5(y);if(y instanceof Uint8Array){let T=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Py(T,y)}if(Array.isArray(y))return aU(y);if(typeof y==="object")return sU(y);throw new NT.SwapKitError("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function eU(y){let T=y.startsWith("0x")?y.slice(2):y;if(T.length%2!==0||/[^a-fA-F0-9]/u.test(T))throw new NT.SwapKitError("helpers_invalid_params",{hexValue:y});let H=new Uint8Array(T.length/2);for(let f=0;f<T.length;f+=2)H[f/2]=Number.parseInt(T.slice(f,f+2),16);return H}function $5(y){return{domain:tU,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...gU.Agent]}}}function F5(y){let T=iU[y.type],H=cU[y.type],{type:f,...C}=y;return{domain:{chainId:Number.parseInt(C.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:R5,version:"1"},message:{...C,hyperliquidChain:C.hyperliquidChain||k5},primaryType:T,types:{[T]:H}}}function x5(y){let T=BT.Signature.from(y);return{r:T.r,s:T.s,v:T.v}}function I5(y,T,{expiresAfter:H,vaultAddress:f}={}){let C=e1(y),U=Lf(BigInt(T),8),q=f?Py(new Uint8Array([1]),eU(f.toLowerCase())):new Uint8Array([0]),X=typeof H==="number"?Py(new Uint8Array([0]),Lf(BigInt(H),8)):new Uint8Array;return BT.keccak256(Py(C,U,q,X))}function S5(y){let T=y.hyperliquidChain||k5;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:T};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:T};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:T};case"tokenDelegate":return{...y,hyperliquidChain:T,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:T};default:return y}}var NT,BT,R5="0x0000000000000000000000000000000000000000",tU,gU,k5="Mainnet",cU,iU,dU;var P5=v(()=>{NT=require("@swapkit/helpers"),BT=require("ethers"),tU={chainId:1337,name:"Exchange",verifyingContract:R5,version:"1"},gU={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},cU={approveAgent:[{name:"hyperliquidChain",type:"string"},{name:"agentAddress",type:"address"},{name:"agentName",type:"string"},{name:"nonce",type:"uint64"}],approveBuilderFee:[{name:"hyperliquidChain",type:"string"},{name:"maxFeeRate",type:"string"},{name:"builder",type:"address"},{name:"nonce",type:"uint64"}],sendAsset:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"sourceDex",type:"string"},{name:"destinationDex",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"fromSubAccount",type:"string"},{name:"nonce",type:"uint64"}],tokenDelegate:[{name:"hyperliquidChain",type:"string"},{name:"validator",type:"address"},{name:"wei",type:"uint64"},{name:"isUndelegate",type:"bool"},{name:"nonce",type:"uint64"}],usdClassTransfer:[{name:"hyperliquidChain",type:"string"},{name:"amount",type:"string"},{name:"toPerp",type:"bool"},{name:"nonce",type:"uint64"}]},iU={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},dU=new TextEncoder});function Ky(y,T){if(!TH(y))throw new Hy.SwapKitError(T,{address:y});return y.toLowerCase()}async function Ff(y){let T=await DT();return Hy.RequestClient.post(`${T}/info`,{json:y})}function qq({dex:y,user:T}){return Ff({...y?{dex:y}:{},type:"clearinghouseState",user:Ky(T,"helpers_invalid_params")})}function Xq({user:y}){return Ff({type:"spotClearinghouseState",user:Ky(y,"helpers_invalid_params")})}function Gq({dex:y,user:T}){return Ff({...y?{dex:y}:{},type:"openOrders",user:Ky(T,"helpers_invalid_params")})}function Qq({dex:y,user:T}){return Ff({...y?{dex:y}:{},type:"frontendOpenOrders",user:Ky(T,"helpers_invalid_params")})}function _q({oidOrCloid:y,user:T}){return Ff({oid:y,type:"orderStatus",user:Ky(T,"helpers_invalid_params")})}function Zq({aggregateByTime:y,user:T}){return Ff({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:Ky(T,"helpers_invalid_params")})}function Wq({aggregateByTime:y,endTime:T,startTime:H,user:f}){return Ff({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof T==="number"?{endTime:T}:{},startTime:H,type:"userFillsByTime",user:Ky(f,"helpers_invalid_params")})}function V5({coin:y,token:T,value:H,spotMeta:f}){if(!H||Number(H)<=0)return null;let C=y?.toUpperCase()||`TOKEN-${T||"UNKNOWN"}`,U=yq[C]||E5,q=f?.tokens?.find((G)=>G.name===y||T!==void 0&&G.index===Number(T)),X=q?`${dy}.${C}-${q.name}:${q.tokenId}`:`${dy}.${C}`;return new Hy.AssetValue({decimal:U,identifier:X,value:H})}function Yq(y){let T=new Map;for(let H of y){let f=H.toString({includeSynthProtocol:!0}),C=T.get(f);T.set(f,C?C.add(H):H)}if(![...T.values()].some((H)=>H.isGasAsset||H.ticker==="HYPE")){let H=Hy.AssetValue.from({chain:dy,value:0});T.set(H.toString({includeSynthProtocol:!0}),H)}return[...T.values()]}async function DT(){try{return await Hy.getRPCUrl(dy)}catch{let[y]=Hy.getChainConfig(dy).rpcUrls;if(!y)throw new Hy.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:dy});return y}}async function fH(){return`${await DT()}/exchange`}function Lq(y){let T=Uq[y.type],{type:H,...f}=y,C=Cq[H];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:Hq,version:"1"},message:f,primaryType:T,types:{[T]:C}}}async function v5({action:y,expiresAfter:T,nonce:H,vaultAddress:f}){let C=H||Date.now(),U=f?Ky(f,"helpers_invalid_params"):void 0,q=await fH(),X=I5(y,C,{expiresAfter:T,vaultAddress:U});return{action:y,endpoint:q,expiresAfter:T,nonce:C,typedData:$5(X),vaultAddress:U}}async function j5({action:y,nonce:T,signatureChainId:H}){let f=T||y.nonce||Date.now(),C=H||y.signatureChainId||"0xa4b1",U=S5({...y,nonce:f,signatureChainId:C});return{action:U,endpoint:await fH(),nonce:f,typedData:F5(U)}}async function yH({assetValue:y,recipient:T,sender:H,signatureChainId:f,time:C}){let U=Ky(T,"core_transaction_invalid_recipient_address"),q=Ky(H,"core_transaction_invalid_sender_address"),X=await fH(),G=y.getValue("string"),Q=C||Date.now(),Y=y.address;if(!Y)throw new Hy.SwapKitError("helpers_invalid_params",{asset:y.toString(),from:q});let z={amount:G,destination:U,hyperliquidChain:fq,signatureChainId:f||Tq,time:Q,token:Y,type:"spotSend"};return{action:z,endpoint:X,nonce:Q,typedData:Lq(z)}}async function o5(y){let T=await Hy.RequestClient.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(T.status!=="ok")throw new Hy.SwapKitError("core_transaction_failed",{response:T});return T}async function Jq(y,T){let H=await DT(),f=T-5000;for(let C=0;C<5;C++){if(C>0)await new Promise((U)=>setTimeout(U,1000));try{let U=await Hy.RequestClient.post(`${H}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),q=Array.isArray(U)?U.find((X)=>X.time&&X.time>=T&&(X.delta?.type==="spotTransfer"||X.delta?.type==="internalTransfer")):void 0;if(q?.hash)return q.hash}catch{}}return""}function TH(y){return y.startsWith("0x")&&Z0(y)}function zq(y){let T=Sy(dy),H=y&&"index"in y?y.index||0:0,f=Hy.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:Hy.updateDerivationPath(Hy.NetworkDerivationPath[dy],{index:H})),C,U=!1;function q(){if(U)return C;return C=mf.match(y).with({phrase:mf.P.string},({phrase:L})=>{return n5.HDNodeWallet.fromPhrase(L,void 0,f)}).with({signer:mf.P.not(mf.P.nullish)},({signer:L})=>L).otherwise(()=>{return}),U=!0,C}async function X(){let L=q();return L?await L.getAddress():""}async function G(L){let W=q();if(!W)throw new Hy.SwapKitError("toolbox_hypercore_no_signer");let N=await W.signTypedData(L.typedData.domain,L.typedData.types,L.typedData.message);return{action:L.action,endpoint:L.endpoint,nonce:L.nonce,signature:x5(N),..."expiresAfter"in L?{expiresAfter:L.expiresAfter}:{},..."vaultAddress"in L?{vaultAddress:L.vaultAddress}:{}}}async function Q(L){let W=Ky(L,"helpers_invalid_params");try{let N=await DT(),[A,R,I]=await Promise.all([Hy.RequestClient.post(`${N}/info`,{json:{type:"spotClearinghouseState",user:W}}),Hy.RequestClient.post(`${N}/info`,{json:{type:"clearinghouseState",user:W}}),Hy.RequestClient.post(`${N}/info`,{json:{type:"spotMeta"}})]),F=(A.spotState?.balances||A.balances||[]).map(({coin:O,token:J,total:_})=>V5({coin:O,spotMeta:I,token:J,value:_})).filter((O)=>!!O),D=V5({coin:"USDC",spotMeta:I,value:R.withdrawable||R.marginSummary?.accountValue||R.marginSummary?.totalRawUsd});return Yq(D?[...F,D]:F)}catch{return T(W)}}async function Y(L){let W=q();if(!W)throw new Hy.SwapKitError("toolbox_hypercore_no_signer");let N=L.sender||await W.getAddress(),A=await yH({...L,feeRate:0,sender:N}),R=await G(A);return await o5(R),Jq(N,A.nonce)}function z(){return Hy.AssetValue.from({chain:dy,value:0})}return{broadcastTransaction:o5,createL1ActionRequest:v5,createTransaction:yH,createUserSignedActionRequest:j5,estimateTransactionFee:z,getAddress:X,getBalance:Q,getState:{clearinghouse:qq,frontendOpenOrders:Qq,openOrders:Gq,orderStatus:_q,spotClearinghouse:Xq,userFills:Zq,userFillsByTime:Wq},signTransaction:G,transfer:Y,validateAddress:TH}}var Hy,n5,mf,dy,E5,yq,fq="Mainnet",Tq="0xa4b1",Hq="0x0000000000000000000000000000000000000000",Cq,Uq;var b5=v(()=>{o1();sy();P5();Hy=require("@swapkit/helpers"),n5=require("ethers"),mf=require("ts-pattern"),dy=Hy.Chain.Hype,{baseDecimal:E5}=Hy.getChainConfig(dy),yq={HYPE:E5,USDC:6,USDT:6},Cq={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},Uq={spotSend:"HyperliquidTransaction:SpotSend"}});var HH={};Dy(HH,{validateHyperCoreAddress:()=>TH,getHyperCoreToolbox:()=>zq,createUserSignedActionRequest:()=>j5,createTransaction:()=>yH,createL1ActionRequest:()=>v5,buildUsdClassTransferAction:()=>pU,buildUpdateLeverageAction:()=>vU,buildUpdateIsolatedMarginAction:()=>jU,buildTopUpIsolatedOnlyMarginAction:()=>bU,buildTokenDelegateAction:()=>mU,buildSendAssetAction:()=>lU,buildScheduleCancelAction:()=>KU,buildOrderAction:()=>PU,buildModifyAction:()=>nU,buildCancelByCloidAction:()=>oU,buildCancelAction:()=>VU,buildBatchModifyAction:()=>EU,buildApproveBuilderFeeAction:()=>hU,buildApproveAgentAction:()=>uU});module.exports=ky(HH);var CH=v(()=>{b5()});async function l5(y){let T=e.AssetValue.from({address:y,chain:e.Chain.Solana});if(T.symbol!=="UNKNOWN")return{decimals:T.decimal||0,id:y,logoURI:T.getIconUrl(),name:T.symbol,symbol:T.ticker};let H=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(H);if(!f.ok)return null;let C=await f.json();if(!Array.isArray(C)||C.length===0)return null;return C.find((q)=>q.id===y)||null}catch{return null}}async function Aq(y){let T=await ff(),{PublicKey:H}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),C=new H(y),{baseDecimal:U}=e.getChainConfig(e.Chain.Solana),q=await T.getBalance(C),X=[e.AssetValue.from({chain:e.Chain.Solana,fromBaseDecimal:U,value:q||0})],G=await T.getParsedTokenAccountsByOwner(C,{programId:f});for(let{account:Q}of G.value){let Y=Q.data.parsed.info,z=Y.mint,L=Y.tokenAmount.amount;if(Number(L)===0)continue;let W=await l5(z),N=W?.symbol||"UNKNOWN",A=W?.decimals||Y.tokenAmount.decimals;X.push(e.AssetValue.from({asset:`${e.Chain.Solana}.${N}-${z}`,fromBaseDecimal:A,value:L}))}return X}function qH(y){try{let T=new Tf.PublicKey(y);return Tf.PublicKey.isOnCurve(T.toBytes())}catch{return!1}}function Mq(y){let T=y&&"index"in y?y.index||0:0,H=e.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:e.updateDerivationPath(e.NetworkDerivationPath[e.Chain.Solana],{index:T})),f;async function C(){if(f)return f;return f=await R0.match(y).with({phrase:R0.P.string},({phrase:q})=>UH({derivationPath:H,phrase:q})).with({signer:R0.P.any},({signer:q})=>q).otherwise(()=>{return}),f}async function U(){let q=await C();return q?.publicKey?p5(q.publicKey):""}return{broadcastTransaction:OT(ff),createKeysForPath:UH,createTransaction:XH(ff),createTransactionFromInstructions:Oq,estimateTransactionFee:Nq(ff),getAddress:U,getAddressFromPubKey:p5,getBalance:Sy(e.Chain.Solana),getBalanceFromRPC:Aq,getConnection:ff,getPubkeyFromAddress:(q)=>new Tf.PublicKey(q),signAndBroadcastTransaction:async(q)=>{let X=await K5(ff,C)(q);return OT(ff)(X)},signTransaction:K5(ff,C),transfer:Rq(ff,C),validateAddress:qH}}function Nq(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:C,sender:U})=>{let q=await y(),G=(await XH(y)({assetValue:H,isProgramDerivedAddress:C,memo:f,recipient:T,sender:U})).compileMessage(),Q=await q.getFeeForMessage(G);if(Q.value===null)throw new e.SwapKitError("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:Y}=e.getChainConfig(e.Chain.Solana);return e.AssetValue.from({chain:e.Chain.Solana,fromBaseDecimal:Y,value:Q.value})}}async function ff(){let{Connection:y}=await import("@solana/web3.js"),T=await e.getRPCUrl(e.Chain.Solana);return new y(T,{commitment:"confirmed",fetchMiddleware:(H,f,C)=>{let U={};for(let[q,X]of Object.entries(f?.headers??{})){let G=q.toLowerCase();if(G!=="pragma"&&G!=="solana-client")U[q]=X}C(H,{...f,headers:U})}})}function Bq(y){return async({assetValue:T,recipient:H,sender:f,isProgramDerivedAddress:C})=>{let U=await y(),q=new Tf.PublicKey(f);if(T.isGasAsset){let{Transaction:X,SystemProgram:G}=await import("@solana/web3.js");return new X().add(G.transfer({fromPubkey:q,lamports:T.getBaseValue("number"),toPubkey:new Tf.PublicKey(H)}))}if(T.address)return Dq({amount:T.getBaseValue("number"),connection:U,decimals:T.decimal,from:q,isProgramDerivedAddress:C,recipient:H,tokenAddress:T.address});return}}async function Dq({tokenAddress:y,recipient:T,from:H,connection:f,amount:C,decimals:U,isProgramDerivedAddress:q}){let{getAssociatedTokenAddress:X,getAccount:G,createAssociatedTokenAccountInstruction:Q,createTransferCheckedInstruction:Y}=await import("@solana/spl-token"),{Transaction:z}=await import("@solana/web3.js"),L=new z,W=new Tf.PublicKey(y),N=await X(W,H),A=new Tf.PublicKey(T),R=await X(W,A,q),I=!1;try{await G(f,R),I=!0}catch{}if(!I)L.add(Q(H,R,A,W));return L.add(Y(N,W,R,H,C,U)),L}function XH(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:C,sender:U})=>{let{createMemoInstruction:q}=await import("@solana/spl-memo"),X=new Tf.PublicKey(U);if(!(C||qH(T)))throw new e.SwapKitError("core_transaction_invalid_recipient_address");let G=await y(),Q=await Bq(y)({assetValue:H,isProgramDerivedAddress:C,recipient:T,sender:U});if(!Q)throw new e.SwapKitError("core_transaction_invalid_sender_address");if(f)Q.add(q(f));let Y=await G.getLatestBlockhash();return Q.recentBlockhash=Y.blockhash,Q.feePayer=X,Q}}async function Oq({instructions:y}){let{Transaction:T}=await import("@solana/web3.js"),H=new T().add(...y);if(!H)throw new e.SwapKitError("core_transaction_invalid_sender_address");return H}function Rq(y,T){return async({recipient:H,assetValue:f,memo:C,isProgramDerivedAddress:U})=>{let q=await T();if(!q)throw new e.SwapKitError("core_transaction_invalid_sender_address");let X=q.publicKey?.toString()??(await q.connect()).publicKey.toString(),G=await XH(y)({assetValue:f,isProgramDerivedAddress:U,memo:C,recipient:H,sender:X});if("signTransaction"in q){let Q=await q.signTransaction(G);return OT(y)(Q)}return G.sign(q),OT(y)(G)}}function OT(y){return async(T)=>{return(await y()).sendRawTransaction(T.serialize())}}function K5(y,T){return async(H)=>{let f=await T();if(!f)throw new e.SwapKitError("toolbox_solana_no_signer");let{VersionedTransaction:C}=await import("@solana/web3.js");if(!(H instanceof C)){let q=await(await y()).getLatestBlockhash();H.recentBlockhash=q.blockhash,H.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(H);return H.sign([f]),H}}async function UH({phrase:y,derivationPath:T=e.DerivationPath.SOL}){let{HDKey:H}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:C}=await import("@solana/web3.js"),U=f(y),q=H.fromMasterSeed(U);return C.fromSeed(q.derive(T,!0).privateKey)}function p5(y){return y.toString()}var Tf,e,R0;var u5=v(()=>{sy();Tf=require("@solana/web3.js"),e=require("@swapkit/helpers"),R0=require("ts-pattern")});var GH={};Dy(GH,{validateSolanaAddress:()=>qH,getSolanaToolbox:()=>Mq,fetchTokenMetaData:()=>l5,createKeysForPath:()=>UH});module.exports=ky(GH);var QH=v(()=>{u5()});function RT(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function kT({phrase:y,derivationPath:T=r.DerivationPath.STRK}){let{HDKey:H}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:C,hash:U,encode:q,CallData:X}=await import("starknet"),G=f(y),Y=H.fromMasterSeed(G).derive(T);if(!Y.privateKey)throw new r.SwapKitError("toolbox_starknet_no_signer");let z=q.addHexPrefix(Buffer.from(Y.privateKey).toString("hex")),L=C.starkCurve.grindKey(z),W=q.addHexPrefix(L),N=C.starkCurve.getStarkKey(W),A=X.compile([N,0]);return{address:U.calculateContractAddressFromHash(N,ZH,A,0),privateKey:W,publicKey:N}}async function WH({phrase:y,derivationPath:T=r.DerivationPath.STRK}){let{Account:H,RpcProvider:f}=await import("starknet"),{privateKey:C,address:U}=await kT({derivationPath:T,phrase:y}),q=await r.getRPCUrl(r.Chain.Starknet),X=new f({nodeUrl:q});return new H({address:U,provider:X,signer:C})}function m5(y){let T=r.Chain.Starknet,H=y&&"index"in y?y.index||0:0,f=r.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:r.updateDerivationPath(r.NetworkDerivationPath[T],{index:H})),C,U,q;async function X(){if(U)return U;let{RpcProvider:J}=await import("starknet"),_=await r.getRPCUrl(T);return U=new J({nodeUrl:_}),U}async function G(J){let _=await X(),Z=J||await L();if(!Z)return!1;try{return await _.getClassHashAt(Z),!0}catch(B){if(B instanceof Error&&B.message.includes("Contract not found"))return!1;let w=B;if(w?.code===20||w?.code===19)return!1;throw B}}async function Q(){let{CallData:J,hash:_}=await import("starknet"),Z=await X(),B=await z();if(!B)throw new r.SwapKitError("toolbox_starknet_no_signer");if(!q)throw new r.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await G())return B.address;let k=J.compile([q,0]);if(_.calculateContractAddressFromHash(q,ZH,k,0).toLowerCase()!==B.address.toLowerCase())throw new r.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let P={addressSalt:q,classHash:ZH,constructorCalldata:k},{transaction_hash:M}=await B.deployAccount(P);return await Z.waitForTransaction(M),M}async function Y(){if(!await G()){if(!q)throw new r.SwapKitError({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 z(){if(C)return C;return C=await py.match(y).with({phrase:py.P.string},async({phrase:J})=>{let{Account:_,RpcProvider:Z}=await import("starknet"),{privateKey:B,address:w,publicKey:k}=await kT({derivationPath:f,phrase:J});q=k;let $=await r.getRPCUrl(r.Chain.Starknet),P=new Z({nodeUrl:$});return new _({address:w,provider:P,signer:B})}).with({address:py.P.string,privateKey:py.P.string},async({privateKey:J,address:_})=>{let{Account:Z}=await import("starknet"),B=await X();return new Z({address:_,provider:B,signer:J})}).with({signer:py.P.instanceOf(Object)},({signer:J})=>J).otherwise(()=>{return}),C}async function L(){return(await z())?.address??""}async function W(J){let _=await X(),{uint256:Z,CallData:B}=await import("starknet"),w=[],k=[_H,h5];for(let $ of k)try{let[P="0",M="0"]=await _.callContract({calldata:B.compile({account:J}),contractAddress:$,entrypoint:"balanceOf"}),x=Z.uint256ToBN({high:P,low:M});py.match($).with(_H,()=>{w.push(r.AssetValue.from({chain:T,value:x}))}).with(h5,()=>{if(x>0n)w.push(r.AssetValue.from({asset:`${T}.ETH-${$}`,value:x}))}).otherwise(()=>{})}catch{}return w}async function N({recipient:J,assetValue:_}){let{CallData:Z,uint256:B}=await import("starknet");if(!RT(J))throw new r.SwapKitError("core_transaction_invalid_recipient_address",{address:J});let w=_.isGasAsset?_H:_.address;if(!w)throw new r.SwapKitError("toolbox_starknet_invalid_address",{address:w,assetValue:_});let k=B.bnToUint256(_.getBaseValue("bigint"));return[{calldata:Z.compile([J,k]),contractAddress:w,entrypoint:"transfer"}]}async function A({recipient:J,assetValue:_,sender:Z}){let{baseDecimal:B}=r.getChainConfig(r.Chain.Starknet),w=await z(),k=await py.match({sender:Z,signer:w}).with({sender:py.P.string},async({sender:$})=>{let{Account:P}=await import("starknet"),M=await X();return new P({address:$,provider:M,signer:"0x0"})}).with({signer:py.P.nonNullable},({signer:$})=>$).otherwise(($)=>{throw new r.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:$}})});try{let $=await N({assetValue:_,recipient:J}),P=await k.estimateInvokeFee($);if(P?.overall_fee)return r.AssetValue.from({chain:T,fromBaseDecimal:B,value:P.overall_fee})}catch($){throw new r.SwapKitError("toolbox_starknet_fee_estimation_failed",$)}return r.AssetValue.from({chain:T,value:"0.00001"})}async function R({recipient:J,assetValue:_,memo:Z}){let B=await z();if(!B)throw new r.SwapKitError("toolbox_starknet_no_signer");await Y();let w=await N({assetValue:_,memo:Z,recipient:J});return(await B.execute(w)).transaction_hash}async function I(J){let _=await z();if(!_)throw new r.SwapKitError("toolbox_starknet_no_signer");let Z=await _.signMessage(J);return Array.isArray(Z)?Z:[Z.r.toString(),Z.s.toString()]}async function F(J){let _=await z();if(!_)throw new r.SwapKitError("toolbox_starknet_no_signer");return await Y(),(await _.execute(J)).transaction_hash}function D(J){return F(J)}function O(J,_=!0){try{return Sy(T)(J,_)}catch{return W(J)}}return{broadcastTransaction:F,createKeysForPath:WH,createTransaction:N,deployAccount:Q,estimateTransactionFee:A,getAddress:L,getBalance:O,getProvider:X,isAccountDeployed:G,signAndBroadcastTransaction:D,signMessage:I,transfer:R,validateAddress:RT}}var r,py,_H="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",h5="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",ZH="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var t5=v(()=>{sy();r=require("@swapkit/helpers"),py=require("ts-pattern")});var wT={};Dy(wT,{validateStarknetAddress:()=>RT,starknetCreateKeysForPath:()=>WH,getStarknetToolbox:()=>m5,deriveStarknetKeys:()=>kT});module.exports=ky(wT);var $T=v(()=>{t5()});async function xT(y,T,H,f,C=[],U){let q=await y.getCoins({coinType:H,cursor:U,owner:T}),X=[...C,...q.data],G=X.reduce((Q,Y)=>Q+BigInt(Y.balance),0n);return q.hasNextPage&&G<f?xT(y,T,H,f,X,q.nextCursor):X}function IT({coinObjectId:y,digest:T,version:H}){return{digest:T,objectId:y,version:H}}function wq(y,T,H){let f=T.reduce((Q,Y)=>Q+BigInt(Y.balance),0n);if(f<H)throw new Ty.SwapKitError("toolbox_sui_insufficient_balance",{available:f.toString(),required:H.toString()});let{selectedCoins:C}=T.reduce((Q,Y)=>{if(Q.total>=H)return Q;return{selectedCoins:[...Q.selectedCoins,Y],total:Q.total+BigInt(Y.balance)}},{selectedCoins:[],total:0n}),U=C[0],q=y.objectRef(IT(U)),X=C.slice(1).map((Q)=>y.objectRef(IT(Q)));if(X.length>0)y.mergeCoins(q,X);let[G]=y.splitCoins(q,[H]);return G}function g5(y,T){let H=y.reduce((f,C)=>f+BigInt(C.balance),0n);if(H<T)throw new Ty.SwapKitError("toolbox_sui_insufficient_balance",{available:H.toString(),required:T.toString()})}function d5(y){try{return i5.isValidSuiAddress(y)}catch{return!1}}function c5(y){return"signWithIntent"in y}function $q({provider:y,...T}={}){let H;async function f(){if(H)return H;return H=await k0.match(T).with({phrase:k0.P.string},async({phrase:A})=>{let{Ed25519Keypair:R}=await import("@mysten/sui/keypairs/ed25519");return R.deriveKeypair(A)}).with({signer:k0.P.any},({signer:A})=>A).otherwise(()=>{return}),H}async function C(A=y){let{SuiJsonRpcClient:R}=await import("@mysten/sui/jsonRpc");return new R({network:"mainnet",url:A||Ty.getRPCUrlSync(Ty.Chain.Sui)})}async function U(A){return BigInt(await A.getReferenceGasPrice())}async function q(){return(await f())?.toSuiAddress()||""}function X(A){try{let R=Ty.AssetValue.from({address:A,chain:Ty.Chain.Sui});return{asset:R.toString(),decimals:R.decimal}}catch{}return null}async function G(A){let R=A||await q();if(!R)throw new Ty.SwapKitError("toolbox_sui_address_required");let{baseDecimal:I,chain:F}=Ty.getChainConfig(Ty.Chain.Sui);try{let O=await(await C()).getAllBalances({owner:R}),J=O.find(({coinType:Z})=>Z===FT)?.totalBalance||"0",_=[Ty.AssetValue.from({chain:F,fromBaseDecimal:I,value:J})];for(let{coinType:Z,totalBalance:B}of O){if(Z===FT||Number(B)<=0)continue;let w=X(Z);if(w)_.push(Ty.AssetValue.from({asset:w.asset,fromBaseDecimal:w.decimals,value:B}))}return _}catch{return[Ty.AssetValue.from({chain:F})]}}async function Q(A){let R=Ty.AssetValue.from({chain:Ty.Chain.Sui,value:"0.01"});if(!A)return R;try{let I=await C(),{txBytes:F}=await Y(A),{effects:{status:D,gasUsed:O}}=await I.dryRunTransactionBlock({transactionBlock:F});if(D.status!=="success")return R;let{baseDecimal:J}=Ty.getChainConfig(Ty.Chain.Sui),_=BigInt(O.computationCost)+BigInt(O.storageCost)-BigInt(O.storageRebate);return Ty.AssetValue.from({chain:Ty.Chain.Sui,fromBaseDecimal:J,value:_.toString()})}catch{return R}}async function Y({recipient:A,assetValue:R,gasBudget:I,sender:F}){let{Transaction:D}=await import("@mysten/sui/transactions"),O=F||await q(),J=I||kq;if(!O)throw new Ty.SwapKitError("toolbox_sui_no_sender");try{let _=await C(),Z=new D;if(Z.setSender(O),R.isGasAsset||R.symbol==="SUI"){let w=R.getBaseValue("bigint"),[k,$]=await Promise.all([U(_),xT(_,O,FT,w+BigInt(J))]);g5($,w+BigInt(J)),Z.setGasPrice(k),Z.setGasPayment($.map(IT));let[P]=Z.splitCoins(Z.gas,[R.getBaseValue("string")]);Z.transferObjects([P],A)}else{let w=R.address;if(!w)throw new Ty.SwapKitError("toolbox_sui_missing_coin_type");let k=R.getBaseValue("bigint"),[$,P,M]=await Promise.all([U(_),xT(_,O,FT,BigInt(J)),xT(_,O,w,k)]);if(!M.length)throw new Ty.SwapKitError("toolbox_sui_no_coins_found",{coinType:w});g5(P,BigInt(J)),Z.setGasPrice($),Z.setGasPayment(P.map(IT));let x=wq(Z,M,k);Z.transferObjects([x],A)}Z.setGasBudget(J);let B=await Z.build({client:_});return{tx:Z,txBytes:B}}catch(_){if(_ instanceof Ty.SwapKitError)throw _;throw new Ty.SwapKitError("toolbox_sui_transaction_creation_error",{error:_})}}async function z(A){let R=await f();if(!R)throw new Ty.SwapKitError("toolbox_sui_no_signer");if(A instanceof Uint8Array)return R.signTransaction(A);let{txBytes:I}="tx"in A?A:await Y(A);return R.signTransaction(I)}async function L({assetValue:A,gasBudget:R,recipient:I}){let F=await f();if(!F)throw new Ty.SwapKitError("toolbox_sui_no_signer");let D=F.toSuiAddress()||await q();if(!D)throw new Ty.SwapKitError("toolbox_sui_no_sender");let{txBytes:O}=await Y({assetValue:A,gasBudget:R,recipient:I,sender:D}),J=await C();if(!c5(F)){let Z=await F.signTransaction(O),{digest:B}=await J.executeTransactionBlock({signature:Z.signature,transactionBlock:Z.bytes});return B}let{digest:_}=await J.signAndExecuteTransaction({signer:F,transaction:O});return _}async function W(A){let R=await C(),{digest:I}=await R.executeTransactionBlock({signature:A.signature,transactionBlock:A.bytes});return I}async function N(A){let R=await f();if(!R)throw new Ty.SwapKitError("toolbox_sui_no_signer");let I=await C(),F;if(typeof A==="string")F=Uint8Array.from(Buffer.from(A,"base64"));else if(A instanceof Uint8Array)F=A;else F=await A.build({client:I});if(!c5(R)){let O=await R.signTransaction(F),{digest:J}=await I.executeTransactionBlock({signature:O.signature,transactionBlock:O.bytes});return J}let{digest:D}=await I.signAndExecuteTransaction({signer:R,transaction:F});return D}return{broadcastTransaction:W,createTransaction:Y,estimateTransactionFee:Q,getAddress:q,getBalance:G,signAndBroadcastTransaction:N,signTransaction:z,transfer:L,validateAddress:d5}}var i5,Ty,k0,FT="0x2::sui::SUI",kq=50000000;var r5=v(()=>{i5=require("@mysten/sui/utils"),Ty=require("@swapkit/helpers"),k0=require("ts-pattern")});var ST={};Dy(ST,{validateSuiAddress:()=>d5,getSuiToolbox:()=>$q});module.exports=ky(ST);var PT=v(()=>{r5()});async function Vq(){let y=Date.now();if(VT&&y-s5<Pq)return VT;let{getHttpEndpoint:T}=await import("@orbs-network/ton-access");return VT=await T(),s5=y,VT}async function oq(){let[y]=zy.SKConfig.get("rpcUrls")[zy.Chain.Ton]??[];if(y)return y;return await Vq()}function nq(y={}){let T,H,f;async function C(){if(!T){let{TonClient:J}=await import("@ton/ton"),_=y.provider??await oq();T=new J({endpoint:_})}return T}async function U(){return(await X()).address.toString()}async function q(){if(f)return f;return f=await xf.match(y).with({phrase:xf.P.string},async({phrase:J})=>{let{mnemonicToWalletKey:_}=await import("@ton/crypto");return _(J.split(" "))}).with({signer:xf.P.any},({signer:J})=>J).otherwise(()=>{return}),f}async function X(J){if(!H||J){let _=await q(),Z=await C(),B=J||_;if(!B)throw new zy.SwapKitError("core_wallet_connection_not_found");let{WalletContractV4:w}=await import("@ton/ton"),k=w.create({publicKey:B.publicKey,workchain:0});H=Z.open(k)}return H}let G=Sy(zy.Chain.Ton);async function Q({assetValue:J,recipient:_,memo:Z,sender:B,sweep:w}){if(J.isGasAsset){let m=Z?O(Z).toBoc().toString("base64"):void 0;return[{address:_,amount:J.getBaseValue("string"),payload:m}]}if(w)throw new zy.SwapKitError({errorKey:"core_swap_invalid_params",info:{asset:J.toString(),reason:"TON sweep is only supported for the native gas asset"}});let k=J.address;if(!k)throw new zy.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:J.toString()}});let $=B??await U(),P=await F({jettonMasterAddress:k,ownerAddress:$}),M=fy.Address.parse(_),x=fy.Address.parse($),o=J.getBaseValue("bigint"),j=Z?O(Z):void 0,E=D({destinationAddress:M,forwardPayload:j,jettonAmount:o,responseAddress:x});return[{address:P.toString(),amount:Iq.toString(),payload:E.toBoc().toString("base64")}]}async function Y({sender:J,sweep:_,...Z}){return{messages:await Q({...Z,sender:J,sweep:_}),sendMode:_?Sq:a5}}function z(J){if(!Array.isArray(J))return J;let[_]=J;return{messages:J.map(({sendMode:B,...w})=>w),sendMode:_?.sendMode??a5}}function L(J){return J.map((_)=>{let Z=_.payload?fy.Cell.fromBase64(_.payload):void 0,B=_.stateInit?fy.loadStateInit(fy.Cell.fromBase64(_.stateInit).asSlice()):void 0,w=fy.Address.parse(_.address),k=fy.Address.isFriendly(_.address)?fy.Address.parseFriendly(_.address).isBounceable:!0;return fy.internal({body:Z,bounce:k,init:B,to:w,value:BigInt(_.amount)})})}async function W(J){let _=await q(),Z=await X();if(!Z||!_)throw new zy.SwapKitError("core_wallet_connection_not_found");let B=await C(),{state:w}=await B.getContractState(Z.address),k=w==="active",$=k?await Z.getSeqno():0,{messages:P,sendMode:M}=z(J),x=Z.createTransfer({messages:L(P),secretKey:_.secretKey,sendMode:M,seqno:$}),o=fy.external({body:x,init:k?void 0:Z.init,to:Z.address});return fy.beginCell().store(fy.storeMessage(o)).endCell()}async function N(J){return await(await C()).sendFile(J.toBoc()),J.hash().toString("hex")}async function A(J){let _=await W(J);return N(_)}async function R({assetValue:J,recipient:_,memo:Z,sweep:B}){let w=await Y({assetValue:J,memo:Z,recipient:_,sweep:B});return A(w)}async function I({sender:J,..._}){let{baseDecimal:Z}=zy.getChainConfig(zy.Chain.Ton),B=await xf.match(J).with(xf.P.string,($)=>{return fy.Address.parseFriendly($).address}).otherwise(async()=>{return(await X()).address});if(!B)throw new zy.SwapKitError("toolbox_fee_estimation_failed",{chain:zy.Chain.Ton});let w=zy.AssetValue.from({chain:zy.Chain.Ton,value:"0.01"}),k=await C();try{let $=await Y({sender:J,..._}),P=await q(),M=await X();if(!M||!P)return w;let x=await M.getSeqno(),o=M.createTransfer({messages:L($.messages),secretKey:P.secretKey,sendMode:$.sendMode,seqno:x}),{source_fees:j}=await k.estimateExternalMessageFee(B,{body:o,ignoreSignature:!0,initCode:null,initData:null}),E=j.in_fwd_fee+j.storage_fee+j.gas_fee+j.fwd_fee;return w.set(zy.SwapKitNumber.fromBigInt(BigInt(E),Z))}catch{return w}}async function F({jettonMasterAddress:J,ownerAddress:_}){try{let Z=await C(),B=fy.Address.parse(J),w=fy.Address.parse(_),{JettonMaster:k}=await import("@ton/ton");return await Z.open(k.create(B)).getWalletAddress(w)}catch{throw new zy.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:J,ownerAddress:_}})}}function D({jettonAmount:J,destinationAddress:_,responseAddress:Z,forwardAmount:B=xq,forwardPayload:w}){let k=fy.beginCell().storeUint(Fq,32).storeUint(0,64).storeCoins(J).storeAddress(_).storeAddress(Z).storeBit(0).storeCoins(B);if(w)k.storeBit(1).storeRef(w);else k.storeBit(0);return k.endCell()}function O(J){return fy.beginCell().storeUint(0,32).storeStringTail(J).endCell()}return{broadcastTransaction:N,createTransaction:Y,estimateTransactionFee:I,getAddress:U,getBalance:G,getJettonWalletAddress:F,sign:W,signAndBroadcastTransaction:A,transfer:R,validateAddress:e5}}function e5(y){try{return fy.Address.parse(y),!0}catch{return!1}}var zy,fy,xf,Fq=260734629,xq,Iq,a5,Sq,Pq=60000,VT,s5=0;var y2=v(()=>{sy();zy=require("@swapkit/helpers"),fy=require("@ton/core"),xf=require("ts-pattern"),xq=fy.toNano("0.01"),Iq=fy.toNano("0.05"),a5=fy.SendMode.PAY_GAS_SEPARATELY+fy.SendMode.IGNORE_ERRORS,Sq=fy.SendMode.CARRY_ALL_REMAINING_BALANCE+fy.SendMode.IGNORE_ERRORS});var oT={};Dy(oT,{validateTonAddress:()=>e5,getTONToolbox:()=>nq});module.exports=ky(oT);var nT=v(()=>{y2()});function ly(y,T){if(!Number.isInteger(T)||T<0)throw RangeError(`${y} must be a non-negative integer, got: ${T}`)}function Jf({accountIndex:y,chain:T,derivationPath:H}){if(y!==void 0)ly("accountIndex",y);let f=[...H?.slice(0,3)??f2.NetworkDerivationPath[T].slice(0,3)];if(y!==void 0)f[2]=y;return f}function tf({accountIndex:y,change:T=!1,chain:H,derivationPath:f,index:C}){return ly("index",C),[...Jf({accountIndex:y,chain:H,derivationPath:f}),Number(T),C]}function If(y){return y[2]??0}function T2({deriveAddress:y,getBalance:T,getUtxos:H}){async function f(X){let{accountIndex:G,count:Q,startIndex:Y=0,change:z=!1}=X;if(ly("count",Q),Q<1)throw RangeError("count must be at least 1");ly("startIndex",Y);let L=[];for(let W=0;W<Q;W++){let N=await y({accountIndex:G,change:z,index:Y+W});if(N)L.push(N)}return L}async function C(X){let{gapLimit:G=20,change:Q=!1}=X??{},Y=[],z=0,L=0;while(z<G){let W=await y({change:Q,index:L});if(!W)break;if((await T(W.address)).some((R)=>R.getValue("number")>0))Y.push(W),z=0;else z++;L++}return Y}async function U(X=20){let[G,Q]=await Promise.all([C({change:!1,gapLimit:X}),C({change:!0,gapLimit:X})]),Y=[...G,...Q],z=await Promise.all(Y.map(async(W)=>{let A=(await T(W.address)).reduce((R,I)=>R+I.getValue("number"),0);return{...W,balance:A}})),L=z.reduce((W,N)=>W+N.balance,0);return{addresses:z,total:L}}async function q(X=20){let[G,Q]=await Promise.all([C({change:!1,gapLimit:X}),C({change:!0,gapLimit:X})]),Y=[...G,...Q];return(await Promise.all(Y.map(async(L)=>{return(await H(L.address)).map((N)=>({...N,address:L.address,derivationIndex:L.index,isChange:L.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:U,getAggregatedUtxos:q,scanForAddresses:C}}var f2;var w0=v(()=>{f2=require("@swapkit/helpers")});async function Eq({chain:y,txHash:T}){let H=`${$0(y)}/push/transaction`,f=JSON.stringify({data:T});try{let C=await c.RequestClient.post(H,{body:f,headers:{"Content-Type":"application/json"}});if(C.context.code!==200)throw new c.SwapKitError("toolbox_utxo_broadcast_failed",{error:C.context.error||"Transaction broadcast failed"});return C.data?.transaction_hash||T}catch(C){let U=await c.getRPCUrl(y);if(U){let q=JSON.stringify({id:NC(),jsonrpc:"2.0",method:"sendrawtransaction",params:[T]}),X=await c.RequestClient.post(U,{body:q,headers:{"Content-Type":"application/json"}});if(X.error)throw new c.SwapKitError("toolbox_utxo_broadcast_failed",{error:X.error?.message});if(X.result.includes('"code":-26'))throw new c.SwapKitError("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return X.result}throw C}}function $0(y){return`https://api.blockchair.com/${vq(y)}`}function H2(y){switch(y){case c.Chain.Bitcoin:return 5;case c.Chain.Dogecoin:return 1e4;case c.Chain.Litecoin:return 1;case c.Chain.Zcash:return 1;default:return 2}}function vq(y){switch(y){case c.Chain.BitcoinCash:return"bitcoin-cash";case c.Chain.Litecoin:return"litecoin";case c.Chain.Dash:return"dash";case c.Chain.Dogecoin:return"dogecoin";case c.Chain.Zcash:return"zcash";case c.Chain.Polkadot:return"polkadot";default:return"bitcoin"}}async function jq(y){try{let{feePerKb:T}=await c.RequestClient.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),H=T/1000;return Math.max(H,H2(y))}catch{return H2(y)}}async function ET(y,T){let H=await c.RequestClient.get(`${y}${T?`${y.includes("?")?"&":"?"}key=${T}`:""}`);if(!H||H.context.code!==200)throw new c.SwapKitError("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return H.data}async function U2({address:y,chain:T,apiKey:H}){if(!y)throw new c.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await ET(`${$0(T)}/dashboards/address/${y}?transaction_details=true`,H))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function bq({address:y,chain:T,apiKey:H}){return(await U2({address:y,apiKey:H,chain:T}))?.address.balance||0}async function q2({chain:y,apiKey:T,txHash:H}){if(!H)throw new c.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await ET(`${$0(y)}/raw/transaction/${H}`,T))?.[H]?.raw_transaction||""}catch(f){let C=f instanceof Error?f.message:String(f);return console.error(`Failed to fetch raw transaction: ${C}`),""}}async function pq({chain:y,apiKey:T,txHash:H}){if(!H)throw new c.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});let C=(await ET(`${$0(y)}/dashboards/transaction/${H}`,T))?.[H];if(!C)throw new c.SwapKitError("toolbox_utxo_tx_not_found",{txHash:H});let{transaction:U,inputs:q,outputs:X}=C,G=q.map((Y)=>Y.spending_sequence),Q=U.is_rbf===!0||G.some((Y)=>Y<Kq);return{blockId:U.block_id,confirmed:U.block_id!==-1,fee:U.fee,inputs:q,isRBF:Q,outputs:X,sequences:G,size:U.size,txid:U.hash,weight:U.weight}}async function lq({chain:y,address:T,apiKey:H,offset:f=0,limit:C=30}){return(await ET(`${$0(y)}/outputs?q=recipient(${T}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${C}&offset=${f}`,H)).map(({is_spent:G,script_hex:Q,block_id:Y,transaction_hash:z,index:L,value:W,spending_signature_hex:N})=>({hash:z,index:L,is_confirmed:Y!==-1,is_spent:G,script_hex:Q,txHex:N,value:W}))}function uq(y){return y.reduce((T,H)=>T+H.value,0)}function C2(y,T){let H=[...y].sort((f,C)=>C.value-f.value);if(T){let f=[],C=0;for(let U of H)if(f.push(U),C+=U.value,C>=T)break;return f}return H}async function X2({chain:y,address:T,apiKey:H,targetValue:f,accumulativeValue:C=0,offset:U=0,limit:q=30}){if(!T)throw new c.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{let X=await lq({address:T,apiKey:H,chain:y,limit:q,offset:U,targetValue:f}),Q=X.length<q,Y=X.filter(({is_spent:R})=>!R),z=uq(Y),L=C+z,W=f&&L>=f;if(Q||W)return C2(Y,f);let N=await X2({accumulativeValue:L,address:T,apiKey:H,chain:y,limit:q,offset:U+q,targetValue:f}),A=[...Y,...N];return C2(A,f)}catch(X){let G=X instanceof Error?X.message:String(X);return console.error(`Failed to fetch unspent UTXOs: ${G}`),[]}}async function hq({address:y,chain:T,apiKey:H,fetchTxHex:f=!0,targetValue:C}){let U=await X2({address:y,apiKey:H,chain:T,targetValue:C}),q=[];for(let{hash:X,index:G,script_hex:Q,value:Y}of U){let z;if(f)z=await q2({apiKey:H,chain:T,txHash:X});q.push({address:y,hash:X,index:G,txHex:z,value:Y,witnessUtxo:{script:Buffer.from(Q,"hex"),value:Y}})}return q}function Ry(y){let T=c.SKConfig.get("apiKeys").blockchair||"";return c.warnOnce({condition:!T,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(H)=>Eq({chain:y,txHash:H}),getAddressData:(H)=>U2({address:H,apiKey:T,chain:y}),getBalance:(H)=>bq({address:H,apiKey:T,chain:y}),getRawTx:(H)=>q2({apiKey:T,chain:y,txHash:H}),getSuggestedTxFee:()=>jq(y),getTransactionDetails:(H)=>pq({apiKey:T,chain:y,txHash:H}),getUtxos:(H)=>hq({...H,apiKey:T,chain:y})}}function mq(y){return y}function tq(){return function(T){switch(T){case c.Chain.Bitcoin:return Sf.NETWORKS.bitcoin;case c.Chain.BitcoinCash:return Sf.NETWORKS.bitcoinCash;case c.Chain.Dash:return Sf.NETWORKS.dash;case c.Chain.Litecoin:return Sf.NETWORKS.litecoin;case c.Chain.Dogecoin:return Sf.NETWORKS.dogecoin;case c.Chain.Zcash:return Sf.NETWORKS.zcash;default:throw new c.SwapKitError("toolbox_utxo_not_supported",{chain:T})}}}var c,Sf,Kq=4294967294;var G2=v(()=>{sy();c=require("@swapkit/helpers"),Sf=require("@swapkit/utxo-signer")});function iq(y,T,H){return Hf.encodeCashAddr({hash:H,prefix:y,type:gq[T]})}function dq(y){let T=Hf.decodeCashAddr(y),H=cq[T.type];if(!H)throw Error(`Unknown CashAddr type: ${T.type}`);return{hash:T.hash,prefix:T.prefix,type:H}}var Hf,gq,cq,YH;var Q2=v(()=>{Hf=require("@swapkit/utxo-signer"),gq={P2PKH:Hf.CashAddrType.P2PKH,P2SH:Hf.CashAddrType.P2SH},cq={[Hf.CashAddrType.P2PKH]:"P2PKH",[Hf.CashAddrType.P2SH]:"P2SH"};YH={decode:dq,encode:iq}});function zH(y){try{return vT(y),!0}catch{return!1}}function AH(y){return vT(y)?.network}function Cf(y){let T=vT(y);if(T?.format==="legacy")return y;return sq(T)}function F0(y){let T=vT(y);return eq(T)}function vT(y){try{let T=rq(y);if(T)return T}catch{}try{let T=aq(y);if(T)return T}catch{}throw new LH.SwapKitError("toolbox_utxo_invalid_address",{address:y})}function rq(y){try{let T=Y2.decode(y);if(T.length!==21)throw new LH.SwapKitError("toolbox_utxo_invalid_address",{address:y});let H=T[0],f=Array.prototype.slice.call(T,1);switch(H){case Pf.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case Pf.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case Pf.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case Pf.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case Pf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case Pf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function aq(y){if(y.indexOf(":")!==-1)try{return _2(y)}catch{}else{let T=["bitcoincash","bchtest","bchreg"];for(let H of T)try{return _2(`${H}:${y}`)}catch{}}return}function _2(y){try{let{hash:T,prefix:H,type:f}=YH.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(T,0),network:H==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function sq(y){let T=Pf.legacy[y.network][y.type],H=Buffer.alloc(1+y.hash.length);return H[0]=T,H.set(y.hash,1),Y2.encode(H)}function eq(y){let T=y.network==="mainnet"?"bitcoincash":"bchtest",H=y.type==="p2pkh"?"P2PKH":"P2SH",f=new Uint8Array(y.hash);return YH.encode(T,H,f)}var Z2,W2,LH,Y2,JH,Pf;var L2=v(()=>{Q2();Z2=require("@noble/hashes/sha2.js"),W2=require("@scure/base"),LH=require("@swapkit/helpers"),Y2=W2.createBase58check(Z2.sha256);((H)=>{H.Mainnet="mainnet";H.Testnet="testnet"})(JH||={});Pf={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});function Ey(y){let T=new Uint8Array(Buffer.from(y,"utf8"));return z2.Script.encode(["RETURN",T])}var J2,z2,yX=1000,bT=10,KT=2,A2=10,fX=41,TX=107,pT,jT,x0,gf=(y)=>{if(y.startsWith("bc1")||y.startsWith("tb1")||y.startsWith("ltc1")||y.startsWith("tltc1"))return"P2WPKH";if(y.startsWith("1")||y.startsWith("m")||y.startsWith("n")||y.startsWith("bitcoincash:q")||y.startsWith("bitcoincash:p")||y.startsWith("q")||y.startsWith("p")||y.startsWith("L")||y.startsWith("M")||y.startsWith("3")||y.startsWith("D")||y.startsWith("A")||y.startsWith("9")||y.startsWith("X")||y.startsWith("7")||y.startsWith("y")||y.startsWith("t1")||y.startsWith("t3")||y.startsWith("tm"))return"P2PKH";throw new J2.SwapKitError("toolbox_utxo_invalid_address",{address:y})},Vf=({inputs:y,outputs:T,feeRate:H})=>{let f=y[0]&&"address"in y[0]&&y[0].address?gf(y[0].address):"P2PKH",U=(H?y.filter((Q)=>Q.value>=jT["type"in Q&&Q.type?Q.type:"P2PKH"]*Math.ceil(H)):y).reduce((Q,Y)=>Q+zf(Y),0),q=T?.reduce((Q,Y)=>Q+I0(Y),0)||x0[f],X=bT+U+q;return f==="P2WPKH"?Math.ceil(X+KT/4):X},zf=(y)=>{if("type"in y&&y.type)return jT[y.type];if("address"in y&&y.address)return jT[gf(y.address)];return fX+TX},I0=(y,T)=>{if(y?.script)return A2+y.script.length+(y.script.length>=74?2:1);if(T)return x0[T];if("address"in y&&y.address)return x0[gf(y.address)];return x0.P2PKH};var MH=v(()=>{J2=require("@swapkit/helpers"),z2=require("@swapkit/utxo-signer");((H)=>{H.P2PKH="P2PKH";H.P2WPKH="P2WPKH"})(pT||={});jT={["P2PKH"]:148,["P2WPKH"]:68},x0={["P2PKH"]:34,["P2WPKH"]:31}});function S0(y){switch(y){case ry.Chain.Bitcoin:case ry.Chain.BitcoinCash:return 550;case ry.Chain.Dash:case ry.Chain.Litecoin:return 5500;case ry.Chain.Dogecoin:return 1e5;case ry.Chain.Zcash:return 546;default:throw new ry.SwapKitError("toolbox_utxo_not_supported",{chain:y})}}function uy({inputs:y,outputs:T,feeRate:H=1,chain:f=ry.Chain.Bitcoin,changeAddress:C=""}){let U=y[0]&&"address"in y[0]&&y[0].address?gf(y[0].address):"P2PKH",q=y.filter((N)=>zf(N)*H<=N.value),G=U==="P2WPKH"?Math.ceil(KT/4):0,Q=bT+G+T.reduce((N,A)=>N+I0(A),0),Y=T.reduce((N,A)=>N+A.value,0),z=Q*H,L=0,W=[];for(let N of q){let A=zf(N),R=H*A;z+=R,L+=N.value,W.push(N);let I=z+Y;if(L<I)continue;let F=L-I,D=H*I0({address:C,value:0});if(F>D){let O=D+z,J=L-(Y+Math.ceil(O));if(J>Math.max(zf({value:0})*H,S0(f)))return{fee:Math.ceil(O),inputs:W,outputs:T.concat({address:C,value:J})}}return{fee:Math.ceil(z),inputs:W,outputs:T}}return{fee:Math.ceil(H*Vf({inputs:y,outputs:T}))}}var ry;var M2=v(()=>{MH();ry=require("@swapkit/helpers")});var cf=v(()=>{G2();L2();M2();MH()});function of(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function Af(y){let T=of(y);return zH(T)&&AH(T)==="mainnet"}var nf;var P0=v(()=>{cf();nf=require("@swapkit/utxo-signer")});function DH({address:y,chain:T}){return BH.match(T).with(V.Chain.BitcoinCash,()=>Af(y)).with(V.Chain.Zcash,()=>nf.validateZcashAddress(y)).otherwise(()=>{try{return s.Address(xy(T)).decode(y),!0}catch{return!1}})}function xy(y){return BH.match(y).with(V.Chain.Bitcoin,()=>s.NETWORKS.bitcoin).with(V.Chain.BitcoinCash,()=>s.NETWORKS.bitcoinCash).with(V.Chain.Dash,()=>s.NETWORKS.dash).with(V.Chain.Dogecoin,()=>s.NETWORKS.dogecoin).with(V.Chain.Litecoin,()=>s.NETWORKS.litecoin).with(V.Chain.Zcash,()=>s.NETWORKS.zcash).exhaustive()}function HX({phrase:y,derivationPath:T,network:H,seed:f}){let C=f??uT.mnemonicToSeedSync(y),q=NH.HDKey.fromMasterSeed(C,H.bip32).derive(T);if(!q.privateKey)throw new V.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return q.privateKey}function N2(y){return B2.secp256k1.getPublicKey(y,!0)}function o0({publicKey:y,chain:T,network:H}){if(T===V.Chain.BitcoinCash){let U=s.p2pkh(y,H);if(!U.hash)throw new V.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return s.encodeCashAddr({hash:U.hash,prefix:s.CashAddrPrefix.MAINNET,type:s.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}let C=!V0.includes(T)?s.p2wpkh(y,H):s.p2pkh(y,H);if(!C.address)throw new V.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive address"});return C.address}function df({phrase:y,derivationPath:T,chain:H,wif:f,seed:C}){let U=xy(H);if(f){let Q=s.WIF(U).decode(f),Y=N2(Q);return{privateKey:Q,publicKey:Y}}if(!y)throw new V.SwapKitError("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let q=T||V.derivationPathToString(V.NetworkDerivationPath[H]),X=HX({derivationPath:q,network:U,phrase:y,seed:C}),G=N2(X);return{privateKey:X,publicKey:G}}function CX(y,T){return s.WIF(xy(T)).encode(y)}function UX({phrase:y,derivationPath:T,chain:H,seed:f}){let C=T.split("/");if(C.length<4)throw new V.SwapKitError("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${C.length}): ${T}`});let U=xy(H),q=f??uT.mnemonicToSeedSync(y),X=NH.HDKey.fromMasterSeed(q,U.bip32),G=C.slice(0,4).join("/");return X.derive(G)}function Nf({inputs:y,outputs:T,chain:H,tx:f,sender:C,compiledMemo:U,enableRBF:q=!1}){let X=xy(H),G=!V0.includes(H),Q=q?s.RBF_SEQUENCE:void 0,Y=new Set;for(let z of y){let L=`${z.hash}:${z.index}`;if(Y.has(L))throw new V.SwapKitError("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});Y.add(L);let W=typeof z.hash==="string"?Mf.hex.decode(z.hash):z.hash;if(G&&z.witnessUtxo)f.addInput({index:z.index,sequence:Q,txid:W,witnessUtxo:{amount:BigInt(z.witnessUtxo.value),script:z.witnessUtxo.script}});else if(z.txHex)f.addInput({index:z.index,nonWitnessUtxo:Mf.hex.decode(z.txHex),sequence:Q,txid:W,...H===V.Chain.BitcoinCash?{sighashType:s.BCHSigHash.ALL}:{}});else throw new V.SwapKitError("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let z of T){let L="address"in z&&z.address?z.address:C;if(H===V.Chain.BitcoinCash)L=Cf(L);if(z.script){if(U)f.addOutput({amount:0n,script:U})}else f.addOutputAddress(L,BigInt(z.value),X)}return{inputs:y,tx:f}}async function rf(y){let T=await Ry(y).getSuggestedTxFee();return{[V.FeeOption.Average]:T,[V.FeeOption.Fast]:V.applyFeeMultiplier(T,V.FeeOption.Fast),[V.FeeOption.Fastest]:V.applyFeeMultiplier(T,V.FeeOption.Fastest)}}async function D2({assetValue:y,recipient:T,memo:H,sender:f,fetchTxHex:C=!1}){let U=y.chain,q=(await rf(U))[V.FeeOption.Fastest],X=C||V0.includes(U),G=y.getBaseValue("number"),Q=Math.ceil(G+q*5000);return{inputs:await Ry(U).getUtxos({address:f,fetchTxHex:X,targetValue:Q}),outputs:[{address:T,value:G},...H?[{address:"",script:Ey(H),value:0}]:[]]}}async function O2({assetValue:y,recipient:T,memo:H,feeRate:f,sender:C,fetchTxHex:U=!1,enableRBF:q=!1}){let X=y.chain,G=H?Ey(H):null,Q=await D2({assetValue:y,fetchTxHex:U,memo:H,recipient:T,sender:C}),{inputs:Y,outputs:z}=uy({...Q,chain:X,feeRate:f});if(!(Y&&z))throw new V.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:C});let L=new s.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!G,version:1}),{inputs:W,tx:N}=Nf({chain:X,compiledMemo:G,enableRBF:q,inputs:Y,outputs:z,sender:C,tx:L});return{inputs:W,tx:N,utxos:Q.inputs}}async function R2({assetValue:y,feeOptionKey:T=V.FeeOption.Fast,feeRate:H,memo:f,sender:C,recipient:U}){let q=y.chain,X=await D2({assetValue:y,memo:f,recipient:U,sender:C}),G=H?Math.floor(H):(await rf(q))[T];return uy({...X,chain:q,feeRate:G})}function qX(y){return async function({from:H,memo:f,feeRate:C,feeOptionKey:U=V.FeeOption.Fast,recipients:q=1}){let X=await Ry(y).getAddressData(H),G=C?Math.ceil(C):(await rf(y))[U],Q=X?.utxo.map((A)=>({...A,hash:"",type:"P2PKH"})).filter((A)=>A.value>Math.max(S0(y),zf(A)*G));if(!Q?.length)return V.AssetValue.from({chain:y});let Y=BigInt(Q.reduce((A,R)=>A+R.value,0)),z=V.AssetValue.from({chain:y,value:Y}),L=typeof q==="number"?Array.from({length:q},()=>({address:H,value:0})):q;if(f)L.push({address:H,script:Ey(f),value:0});let W=Vf({inputs:Q,outputs:L}),N=V.AssetValue.from({chain:y,value:BigInt(W*G)});return z.sub(N)}}function XX(y){return async function(H){let{fee:f}=await R2(H);return V.AssetValue.from({chain:y,value:V.SwapKitNumber.fromBigInt(BigInt(f),8).getValue("string")})}}function GX({chain:y,phrase:T,derivationPath:H,seed:f}){let C=xy(y),{privateKey:U,publicKey:q}=df({chain:y,derivationPath:H,phrase:T,seed:f}),X=y===V.Chain.BitcoinCash?[s.BCHSigHash.ALL]:[s.SigHash.ALL];return{getAddress:()=>o0({chain:y,network:C,publicKey:q}),privateKey:U,publicKey:q,signTransaction:(G)=>{return G.sign(U,X),G}}}function QX(y,T){return async function({memo:f,recipient:C,feeOptionKey:U,feeRate:q,assetValue:X,enableRBF:G=!1}){let Q=await T?.getAddress();if(!(T&&Q))throw new V.SwapKitError("toolbox_utxo_no_signer");if(!C)throw new V.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});V.warnOnce({condition:G&&!lT.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let Y=G&&lT.includes(y),z=q||(await rf(y))[U||V.FeeOption.Fast],{tx:L}=await O2({assetValue:X,enableRBF:Y,feeRate:z,memo:f,recipient:C,sender:Q}),W=await T.signTransaction(L);return W.finalize(),Ry(y).broadcastTx(Mf.hex.encode(W.extract()))}}function OH(y){return(T)=>DH({address:T,chain:y})}function RH(y){let T=xy(y);return function(f){if(!f)throw new V.SwapKitError("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return o0({chain:y,network:T,publicKey:f.publicKey})}}function Bf({chain:y,...T}){let H="phrase"in T?T.phrase:void 0,f="index"in T?T.index||0:0,C=H?uT.mnemonicToSeedSync(H):void 0,U="derivationPath"in T&&T.derivationPath?T.derivationPath:V.updateDerivationPath(V.NetworkDerivationPath[y],{index:f}),q=V.derivationPathToString(U),X=H?GX({chain:y,derivationPath:q,phrase:H,seed:C}):void 0,G="signer"in T?T.signer:void 0,Q=X||G,Y=H?df({chain:y,derivationPath:q,phrase:H,seed:C}):void 0;function z(){if(Q)return Q.getAddress();return Promise.resolve(void 0)}function L(k){if(!H)return;let $=Jf({accountIndex:k,chain:y,derivationPath:U});return UX({chain:y,derivationPath:V.derivationPathToString($),phrase:H,seed:C})}let W=L();function N(){if(!W)return;return W.publicExtendedKey}function A({accountIndex:k}={}){let $=k===void 0?W:L(k);if(!$)return;let P=Jf({accountIndex:k,chain:y,derivationPath:U});return{accountIndex:If(P),path:V.derivationPathToString(P),xpub:$.publicExtendedKey}}function R({accountIndex:k,index:$,change:P=!1}){let M=k===void 0?W:L(k);if(!M)return;let x=tf({accountIndex:k,chain:y,change:P,derivationPath:U,index:$}),o=xy(y),j=M.deriveChild(Number(P)).deriveChild($);if(!j.publicKey)throw new V.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let E=o0({chain:y,network:o,publicKey:j.publicKey}),m=Mf.hex.encode(j.publicKey);return{accountIndex:If(x),address:E,change:P,index:$,path:V.derivationPathToString(x),pubkey:m}}async function I(k){if(!lT.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let $=await Ry(y).getTransactionDetails(k);return{canReplace:$.isRBF&&!$.confirmed,confirmed:$.confirmed,enabled:$.isRBF,fee:$.fee,sequences:$.sequences,supported:!0}}async function F({txid:k,newFeeRate:$,recipient:P,memo:M}){if(!lT.includes(y))throw new V.SwapKitError("toolbox_utxo_rbf_not_supported",{chain:y});let x=await Ry(y).getTransactionDetails(k);if(!x.isRBF)throw new V.SwapKitError("toolbox_utxo_tx_not_replaceable",{txid:k});if(x.confirmed)throw new V.SwapKitError("toolbox_utxo_tx_already_confirmed",{blockId:x.blockId,txid:k});let o=x.inputs.reduce((Ny,by)=>Ny+by.value,0),E=x.outputs.find((Ny)=>Ny.recipient===P)?.value||0;if(E===0)throw new V.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let m=await Promise.all(x.inputs.map(async(Ny)=>{let by=await Ry(y).getRawTx(Ny.transaction_hash);return{hash:Ny.transaction_hash,index:Ny.index,txHex:by,value:Ny.value,witnessUtxo:void 0}})),i=M?Ey(M):null,qy=Vf({feeRate:$,inputs:m.map((Ny)=>({...Ny,type:"P2WPKH"})),outputs:[{address:P,value:E}]}),Wy=Math.ceil(qy*$);if(Wy<=x.fee)throw new V.SwapKitError("toolbox_utxo_rbf_fee_too_low",{newFee:Wy,originalFee:x.fee});let $y=Wy-x.fee,Ay=E-$y;if(Ay<=0)throw new V.SwapKitError("toolbox_utxo_rbf_insufficient_change");let ty=new s.Transaction({allowLegacyWitnessUtxo:!0,version:1}),gy=[{address:P,value:Ay},...M?[{address:"",script:Ey(M),value:0}]:[]],cy=o-Ay-Wy,Iy=await z();if(cy>S0(y)&&Iy)gy.push({address:Iy,value:cy});return Nf({chain:y,compiledMemo:i,inputs:m,outputs:gy,sender:Iy||P,tx:ty}),{feeDelta:$y,newFee:Wy,originalFee:x.fee,tx:ty}}async function D({txid:k,newFeeRate:$,recipient:P,memo:M}){let{tx:x,originalFee:o,newFee:j}=await F({memo:M,newFeeRate:$,recipient:P,txid:k}),E=await B(x);E.finalize();let m=await Ry(y).broadcastTx(Mf.hex.encode(E.extract()));return{newFee:j,originalFee:o,txid:m}}function O({accountIndex:k,index:$,change:P=!1}){ly("index",$);let M=k===void 0?W:L(k);if(!M)return;return M.deriveChild(Number(P)).deriveChild($).privateKey||void 0}function J({tx:k,inputDerivations:$}){if(!W)throw new V.SwapKitError("toolbox_utxo_no_signer");let P=y===V.Chain.BitcoinCash?[s.BCHSigHash.ALL]:[s.SigHash.ALL];for(let M=0;M<$.length;M++){let x=$[M];if(!x)continue;let{derivationIndex:o,isChange:j}=x,E=O({change:j,index:o});if(!E)throw new V.SwapKitError("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${M} at index ${o}`});k.signIdx(E,M,P)}return k}async function _({utxos:k,recipient:$,assetValue:P,memo:M,feeRate:x,feeOptionKey:o,changeAddress:j}){if(!W)throw new V.SwapKitError("toolbox_utxo_no_signer");let E=x||(await rf(y))[o||V.FeeOption.Fast],m=M?Ey(M):null,i=[{address:$,value:P.getBaseValue("number")}];if(m)i.push({address:"",script:m,value:0});let qy=k.map(({hash:Iy,index:Ny,value:by,txHex:S8,witnessUtxo:Q1})=>({hash:Iy,index:Ny,txHex:S8,value:by,witnessUtxo:Q1?{script:Q1.script,value:Q1.value}:void 0})),{inputs:Wy,outputs:$y}=uy({chain:y,feeRate:E,inputs:qy,outputs:i});if(!(Wy&&$y))throw new V.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:P,sender:"multiple addresses"});let Ay=new s.Transaction({allowLegacyWitnessUtxo:!0,version:1}),ty=k[0]?.address,gy=j||await z()||ty||$;Nf({chain:y,compiledMemo:m,inputs:Wy,outputs:$y,sender:gy,tx:Ay});let cy=Wy.map((Iy)=>{let Ny=k.find((by)=>by.hash===Iy.hash&&by.index===Iy.index);return Ny?{derivationIndex:Ny.derivationIndex,isChange:Ny.isChange}:{derivationIndex:0,isChange:!1}});return J({inputDerivations:cy,tx:Ay}),Ay.finalize(),Ry(y).broadcastTx(Mf.hex.encode(Ay.extract()))}function Z({address:k,gapLimit:$=20}){if(!W)return;for(let P=0;P<$;P++){let M=R({change:!1,index:P}),x=R({change:!0,index:P}),o=M?.address===k?!1:x?.address===k;if(M?.address===k||x?.address===k)return{change:o,index:P}}return}function B(k){if(!Q)throw new V.SwapKitError("toolbox_utxo_no_signer");return Q.signTransaction(k)}async function w(k){let $=await B(k);return $.finalize(),await Ry(y).broadcastTx(Mf.hex.encode($.extract()))}return{accumulative:uy,broadcastTx:(k)=>Ry(y).broadcastTx(k),bumpFee:D,calculateTxSize:Vf,createKeysForPath:(k)=>df({...k,chain:y}),createReplacementTransaction:F,createTransaction:O2,deriveAddressAtIndex:R,derivePrivateKeyAtIndex:O,estimateMaxSendableAmount:qX(y),estimateTransactionFee:XX(y),getAddress:z,getAddressFromKeys:RH(y),getBalance:Sy(y),getExtendedPublicKey:N,getExtendedPublicKeyInfo:A,getFeeRates:()=>rf(y),getInputsOutputsFee:R2,getNetworkForChain:()=>xy(y),getPrivateKeyFromMnemonic:(k)=>CX(df({...k,chain:y}).privateKey,y),isRBFEnabled:I,keys:Y,resolveDerivationIndex:Z,signAndBroadcastTransaction:w,signTransaction:B,signTransactionWithMultipleKeys:J,transfer:QX(y,Q),transferFromMultipleAddresses:_,validateAddress:OH(y)}}var B2,Mf,NH,uT,V,s,BH,V0,lT;var af=v(()=>{sy();w0();cf();P0();B2=require("@noble/curves/secp256k1.js"),Mf=require("@scure/base"),NH=require("@scure/bip32"),uT=require("@scure/bip39"),V=require("@swapkit/helpers"),s=require("@swapkit/utxo-signer"),BH=require("ts-pattern"),V0=[V.Chain.Dash,V.Chain.Dogecoin,V.Chain.Zcash,V.Chain.BitcoinCash],lT=[V.Chain.Bitcoin]});function n0(y){return of(F0(y))}function _X(y){let T=xy(ay);function H(C){return C.sign(y.privateKey,[By.BCHSigHash.ALL]),C}function f(){let C=By.p2pkh(y.publicKey,T);if(!C.hash)throw new My.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let U=By.encodeCashAddr({hash:C.hash,prefix:By.CashAddrPrefix.MAINNET,type:By.CashAddrType.P2PKH});return Promise.resolve(U.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:H}}function wH(y){let T="phrase"in y?y.phrase:void 0,H="index"in y?y.index||0:0,f=My.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:My.updateDerivationPath(My.NetworkDerivationPath[ay],{index:H})),C=T?df({chain:ay,derivationPath:f,phrase:T}):void 0,U=C?_X(C):("signer"in y)?y.signer:void 0;function q(){return Promise.resolve(U?.getAddress())}let{getBalance:X,getFeeRates:G,broadcastTx:Q,...Y}=Bf({chain:ay});function z(N,A=!0){return X(of(F0(N)))}function L(N){if(!U)throw new My.SwapKitError("toolbox_utxo_no_signer");return U.signTransaction(N)}async function W(N){let A=await L(N);return A.finalize(),await Q(kH.hex.encode(A.extract()))}return{...Y,broadcastTx:Q,buildTx:WX,createTransaction:k2,getAddress:q,getAddressFromKeys:YX,getBalance:z,getFeeRates:G,signAndBroadcastTransaction:W,signTransaction:L,stripPrefix:of,stripToCashAddress:n0,transfer:ZX({broadcastTx:Q,getFeeRates:G,signer:U}),validateAddress:Af}}async function k2({assetValue:y,recipient:T,memo:H,feeRate:f,sender:C}){if(!Af(T))throw new My.SwapKitError("toolbox_utxo_invalid_address",{address:T});let U=Math.ceil(y.getBaseValue("number")+f*7500),q=await Ry(ay).getUtxos({address:n0(C),fetchTxHex:!0,targetValue:U}),X=H?Ey(H):null,G=[],Q=Cf(T);if(G.push({address:Q,value:y.getBaseValue("number")}),X)G.push({script:X,value:0});let{inputs:Y,outputs:z}=uy({chain:ay,feeRate:f,inputs:q,outputs:G});if(!(Y&&z))throw new My.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:C});let L=new By.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!X,version:1}),W=Cf(C),{inputs:N,tx:A}=Nf({chain:ay,compiledMemo:X,inputs:Y,outputs:z.map((R)=>("address"in R)&&R.address?{...R,address:Cf(R.address)}:R),sender:W,tx:L});return{inputs:N,tx:A,utxos:Y}}function ZX({broadcastTx:y,getFeeRates:T,signer:H}){return async function({recipient:C,assetValue:U,feeOptionKey:q=My.FeeOption.Fast,...X}){let G=await H?.getAddress();if(!(H&&G))throw new My.SwapKitError("toolbox_utxo_no_signer");if(!C)throw new My.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Q=X.feeRate||(await T())[q],{tx:Y}=await k2({...X,assetValue:U,feeRate:Q,recipient:C,sender:G}),z=await H.signTransaction(Y);return z.finalize(),y(kH.hex.encode(z.extract()))}}async function WX({assetValue:y,recipient:T,memo:H,feeRate:f,sender:C}){let U=F0(T);if(!Af(U))throw new My.SwapKitError("toolbox_utxo_invalid_address",{address:U});let q=Math.ceil(y.getBaseValue("number")+f*7500),X=await Ry(ay).getUtxos({address:n0(C),fetchTxHex:!0,targetValue:q}),G=Number(f.toFixed(0)),Q=H?Ey(H):null,Y=[];if(Y.push({address:Cf(T),value:y.getBaseValue("number")}),Q)Y.push({script:Q,value:0});let{inputs:z,outputs:L}=uy({chain:ay,feeRate:G,inputs:X,outputs:Y});if(!(z&&L))throw new My.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:C});let W=new By.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Q,version:1}),{inputs:N,tx:A}=Nf({chain:ay,compiledMemo:Q,inputs:z,outputs:L,sender:Cf(C),tx:W});return{inputs:N,tx:A,utxos:X}}function YX(y){let T=By.NETWORKS.bitcoinCash,H=By.p2pkh(y.publicKey,T);if(!H.hash)throw new My.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return By.encodeCashAddr({hash:H.hash,prefix:By.CashAddrPrefix.MAINNET,type:By.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}var kH,My,By,ay;var hT=v(()=>{cf();af();P0();kH=require("@scure/base"),My=require("@swapkit/helpers"),By=require("@swapkit/utxo-signer"),ay=My.Chain.BitcoinCash});function xH(){let{isStagenet:y}=Zy.SKConfig.get("envs");return y?Uy.ZCASH_TEST_NETWORK:Uy.ZCASH_NETWORK}function JX(y){return LX.encode(y)}function zX({phrase:y,derivationPath:T}){let H=FH.mnemonicToSeedSync(y),C=$H.HDKey.fromMasterSeed(H).derive(T);if(!C.privateKey||!C.publicKey)throw new Zy.SwapKitError("toolbox_utxo_invalid_params");let{privateKey:U,publicKey:q}=C,X=Uy.utils.hash160(q),{isStagenet:G}=Zy.SKConfig.get("envs"),Q=G?new Uint8Array([29,37]):new Uint8Array([28,184]),Y=new Uint8Array(Q.length+X.length);Y.set(Q,0),Y.set(X,Q.length);let z=JX(Y);return{getAddress:()=>Promise.resolve(z),signTransaction:(L)=>{if(L instanceof Uy.ZcashPSBT){let W=L.toPCZT();return W.signAllInputs(U,q,Uy.ZcashSigHash.ALL),W.finalizeAllInputs(),Promise.resolve(W.extract())}if(L instanceof Uy.PCZT)return L.signAllInputs(U,q,Uy.ZcashSigHash.ALL),L.finalizeAllInputs(),Promise.resolve(L.extract());return L.signAllInputs(U,q,Uy.ZcashSigHash.ALL),Promise.resolve(L)}}}function AX({inputs:y,outputs:T,tx:H,sender:f,compiledMemo:C}){let U=xH();for(let q of y){let X=Uy.Address(U).decode(f),G=Uy.OutScript.encode(X);H.addInput({index:q.index,script:G,sequence:4294967295,txid:mT.hex.decode(q.hash),value:BigInt(q.value)})}for(let q of T){let X="address"in q&&q.address?q.address:f,G=q.script;if(G&&!C)continue;if(G&&C)H.addOutput({amount:0n,script:C});else H.addOutputAddress(X,BigInt(q.value),U)}return{inputs:y,tx:H}}async function w2(y){let{assetValue:T,recipient:H,memo:f,feeRate:C,sender:U,fetchTxHex:q}=y,X=xH();if(!Uy.isTransparentZcashAddress(U,X))throw new Zy.SwapKitError("toolbox_utxo_invalid_address",{address:U});if(!Uy.isTransparentZcashAddress(H,X))throw new Zy.SwapKitError("toolbox_utxo_invalid_address",{address:H,error:"Zcash transaction creation currently supports transparent addresses only"});let G=f?Ey(f):null,Q=await Ry(Zy.Chain.Zcash).getUtxos({address:U,fetchTxHex:q!==!1}),Y=[{address:H,value:Number(T.getBaseValue("string"))},...G?[{script:G,value:0}]:[]],{inputs:z,outputs:L}=uy({chain:Zy.Chain.Zcash,changeAddress:U,feeRate:C,inputs:Q,outputs:Y});if(!(z&&L))throw new Zy.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:T,sender:U});let W=Uy.createZcashTransaction({consensusBranchId:Uy.ZcashConsensusBranchId.NU6_2,expiryHeight:0,lockTime:0,version:4,versionGroupId:Uy.ZcashVersionGroupId.SAPLING}),{tx:N,inputs:A}=AX({compiledMemo:G,inputs:z,outputs:L,sender:U,tx:W});return{inputs:A,outputs:L,tx:N}}function IH(y){let T=sf.match(y).with({signer:sf.P.not(sf.P.nullish)},({signer:G})=>G).with({phrase:sf.P.string},({phrase:G,derivationPath:Q,index:Y=0})=>{let z=Q||Zy.NetworkDerivationPath[Zy.Chain.Zcash]||[44,133,0,0,0],L=Zy.updateDerivationPath(z,{index:Y}),W=Zy.derivationPathToString(L);return zX({derivationPath:W,phrase:G})}).otherwise(()=>{return}),H=Bf({chain:Zy.Chain.Zcash,signer:T});async function f(G){if(!T)throw new Zy.SwapKitError("toolbox_utxo_no_signer");return await T.signTransaction(G)}async function C(G){let Q=await f(G);return H.broadcastTx(Q.toHex())}async function U({recipient:G,assetValue:Q,feeOptionKey:Y=Zy.FeeOption.Fast,...z}){let L=await T?.getAddress();if(!(T&&L))throw new Zy.SwapKitError("toolbox_utxo_no_signer");let W=z.feeRate||(await H.getFeeRates())[Y],{tx:N}=await w2({...z,assetValue:Q,feeRate:W,recipient:G,sender:L}),R=(await T.signTransaction(N)).toHex();return H.broadcastTx(R)}function q({phrase:G,derivationPath:Q="m/44'/133'/0'/0/0"}){let Y=FH.mnemonicToSeedSync(G),L=$H.HDKey.fromMasterSeed(Y).derive(Q);if(!L.privateKey||!L.publicKey)throw new Zy.SwapKitError("toolbox_utxo_invalid_params");return{privateKey:L.privateKey,publicKey:L.publicKey}}function X({phrase:G,derivationPath:Q="m/44'/133'/0'/0/0"}){let Y=q({derivationPath:Q,phrase:G}),z=xH();return Uy.WIF(z).encode(Y.privateKey)}return{...H,createKeysForPath:q,createTransaction:w2,getPrivateKeyFromMnemonic:X,signAndBroadcastTransaction:C,signTransaction:f,transfer:U,validateAddress:nf.validateZcashAddress}}var mT,$H,FH,Zy,Uy,sf,LX;var SH=v(()=>{cf();af();P0();mT=require("@scure/base"),$H=require("@scure/bip32"),FH=require("@scure/bip39"),Zy=require("@swapkit/helpers"),Uy=require("@swapkit/utxo-signer"),sf=require("ts-pattern");LX=mT.createBase58check(Uy.utils.sha256)});function I2({xpub:y,chain:T,count:H,startIndex:f=0,accountIndex:C}){if(ly("count",H),H<1)throw RangeError("count must be at least 1");ly("startIndex",f);let U=xy(T),q=F2.HDKey.fromExtendedKey(y,U.bip32),X=Jf({accountIndex:C,chain:T}),G=If(X),Q=[];for(let Y of[!1,!0]){let z=q.deriveChild(Number(Y));for(let L=0;L<H;L++){let W=f+L,N=z.deriveChild(W);if(!N.publicKey)continue;let A=tf({accountIndex:C,chain:T,change:Y,index:W});Q.push({accountIndex:G,address:o0({chain:T,network:U,publicKey:N.publicKey}),change:Y,index:W,path:x2.derivationPathToString(A),pubkey:$2.hex.encode(N.publicKey)})}}return Q}var $2,F2,x2;var S2=v(()=>{w0();af();$2=require("@scure/base"),F2=require("@scure/bip32"),x2=require("@swapkit/helpers")});function MX(y,T){switch(y){case Uf.Chain.BitcoinCash:return wH(T||{});case Uf.Chain.Zcash:return IH(T);case Uf.Chain.Bitcoin:case Uf.Chain.Dogecoin:case Uf.Chain.Litecoin:case Uf.Chain.Dash:return Bf({chain:y,...T});default:throw new Uf.SwapKitError("toolbox_utxo_not_supported",{chain:y})}}var Uf;var P2=v(()=>{hT();af();SH();w0();S2();hT();P0();Uf=require("@swapkit/helpers")});var PH={};Dy(PH,{validateZcashAddress:()=>nf.validateZcashAddress,validateUtxoAddress:()=>DH,validateBchAddress:()=>Af,toLegacyAddress:()=>Cf,toCashAddress:()=>F0,stripToCashAddress:()=>n0,stripPrefix:()=>of,nonSegwitChains:()=>V0,isValidAddress:()=>zH,getUtxoToolbox:()=>MX,getUtxoNetwork:()=>tq,getUtxoApi:()=>Ry,getUTXOAddressValidator:()=>OH,getUTXOAddressPath:()=>tf,getUTXOAccountPath:()=>Jf,getUTXOAccountIndexFromPath:()=>If,getScriptTypeForAddress:()=>gf,getOutputSize:()=>I0,getNetworkForChain:()=>xy,getInputSize:()=>zf,getDustThreshold:()=>S0,detectAddressNetwork:()=>AH,deriveAddressesFromXpub:()=>I2,createZcashToolbox:()=>IH,createUTXOToolbox:()=>Bf,createHDWalletHelpers:()=>T2,createCustomUtxoApi:()=>mq,createBCHToolbox:()=>wH,compileMemo:()=>Ey,calculateTxSize:()=>Vf,assertDerivationIndex:()=>ly,addressFromKeysGetter:()=>RH,addInputsAndOutputs:()=>Nf,accumulative:()=>uy,UtxoNetwork:()=>JH,UTXOScriptType:()=>pT,TX_OVERHEAD:()=>bT,SEGWIT_MARKER_FLAG_WEIGHT:()=>KT,OutputSizes:()=>x0,OP_RETURN_OVERHEAD:()=>A2,MIN_TX_FEE:()=>yX,InputSizes:()=>jT});module.exports=ky(PH);var VH=v(()=>{af();w0();cf();P2();hT();SH()});function E0(y){return y.length>=2&&y.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(y)}async function gT(y){let{KeyPair:T}=await import("@near-js/crypto"),H=y.index||0,f=y.derivationPath?tT.derivationPathToString(y.derivationPath.slice(0,3)):`m/44'/397'/${H}'`,{parseSeedPhrase:C}=await import("near-seed-phrase"),{secretKey:U}=C(y.phrase,f),q=T.fromString(U);return V2(q)}async function oH(y){let{KeyPair:T}=await import("@near-js/crypto"),H=T.fromString(y);return V2(H)}async function V2(y){let{KeyPairSigner:T}=await import("@near-js/signers");class H extends T{#y;constructor(f){super(f);this.#y=f}getAddress(){let f=this.#y.getPublicKey(),C=Buffer.from(f.data).toString("hex");return Promise.resolve(C)}}return new H(y)}async function cT(y,T){let f=(await y.query({account_id:T,finality:"final",request_type:"view_access_key_list"})).keys.find((X)=>X.access_key.permission==="FullAccess");if(!f)throw new tT.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:C}=await import("@near-js/crypto"),U=C.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:U}}var tT;var nH=v(()=>{tT=require("@swapkit/helpers")});function EH(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function vH(y){return"contractId"in y&&"methodName"in y}function jH(y){return"actions"in y}function bH(y){return"newAccountId"in y}function KH(y){return"contractCode"in y}function pH(y){return"customEstimator"in y}function lH(y){let T=0;for(let H of y)switch(H.enum){case"transfer":T+=Number(wy.SIMPLE_TRANSFER);break;case"functionCall":T+=Number(wy.CONTRACT_CALL);break;case"createAccount":T+=Number(wy.ACCOUNT_CREATION);break;case"deployContract":T+=Number(wy.CONTRACT_DEPLOYMENT);break;case"addKey":T+=Number(wy.ACCESS_KEY_ADDITION);break;case"deleteKey":T+=Number(wy.ACCESS_KEY_DELETION);break;case"stake":T+=Number(wy.STAKE);break;default:T+=Number(wy.CONTRACT_CALL)}return T.toString()}function uH(y){if(y==="ft_transfer"||y==="ft_transfer_call")return wy.TOKEN_TRANSFER;if(y==="storage_deposit")return wy.STORAGE_DEPOSIT;return wy.CONTRACT_CALL}function NX(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function BX(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var wy;var hH=v(()=>{wy={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 mH({account:y,contractId:T,viewMethods:H,changeMethods:f}){let{Contract:C}=await import("@near-js/accounts");return new C(y,T,{changeMethods:f,useLocalViewExecution:!0,viewMethods:H})}function DX(y){let T;async function H(){if(T)return T;return T=await ef.match(y).with({phrase:ef.P.string},async(M)=>{return await gT(M)}).with({signer:ef.P.any},({signer:M})=>M).otherwise(()=>{return}),T}async function f(){let{JsonRpcProvider:M}=await import("@near-js/providers"),x=await Cy.getRPCUrl(Cy.Chain.Near);return new M({url:x})}async function C(M){let{Account:x}=await import("@near-js/accounts"),o=await f(),j=await H(),E=M||await U();return new x(E,o,j)}async function U(){let M=await H();if(!M)throw new Cy.SwapKitError("toolbox_near_no_signer");return await M.getAddress()}async function q(M){return(await Z({changeMethods:[],contractId:M.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:M.accountId})}async function X(M){let o=[await L({args:{account_id:M.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await L({args:{amount:M.assetValue.getBaseValue("string"),memo:M.memo||null,receiver_id:M.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return B({actions:o,receiverId:M.contractId})}async function G(M){if(!await H())throw new Cy.SwapKitError("toolbox_near_no_signer");let{assetValue:o,recipient:j,memo:E}=M,m=await U();if(!o.isGasAsset&&o.address){if(!await q({accountId:j,contractId:o.address}))return X({assetValue:o,contractId:o.address,memo:E,recipient:j})}let i=await Q({...M,sender:m});return F(i)}async function Q({recipient:M,assetValue:x,memo:o,attachedDeposit:j,sender:E,functionCall:m}){let i=await f();if(!E0(M))throw new Cy.SwapKitError("toolbox_near_invalid_address",{recipient:M});if(!E0(E))throw new Cy.SwapKitError("toolbox_near_invalid_address",{sender:E});if(m)return z({...m,sender:E});if(!x.isGasAsset){let by=x.address;if(!by)throw new Cy.SwapKitError("toolbox_near_missing_contract_address");return z({args:{amount:x.getBaseValue("string"),memo:o||null,receiver_id:M},attachedDeposit:j||"1",contractId:by,gas:"250000000000000",methodName:"ft_transfer",sender:E})}let{publicKey:qy,nonce:Wy}=await cT(i,E),$y=x.getBaseValue("bigint"),{actionCreators:Ay,createTransaction:ty}=await import("@near-js/transactions"),{baseDecode:gy}=await import("@near-js/utils"),cy=[Ay.transfer($y)];if(o&&j)cy.push(Ay.functionCall("memo",{memo:o},BigInt("250000000000000"),BigInt(j)));let Iy=await i.block({finality:"final"}),Ny=gy(Iy.header.hash);return ty(E,qy,M,Wy+1,cy,Ny)}function Y(M){let x=M.encode();return Buffer.from(x).toString("base64")}async function z({args:M,attachedDeposit:x,contractId:o,gas:j,methodName:E,sender:m}){let i=await f(),{publicKey:qy,nonce:Wy}=await cT(i,m),{createTransaction:$y,actionCreators:Ay}=await import("@near-js/transactions"),{baseDecode:ty}=await import("@near-js/utils"),gy=await i.block({finality:"final"}),cy=ty(gy.header.hash),Iy=[Ay.functionCall(E,Buffer.from(JSON.stringify(M)),BigInt(j),BigInt(x))];return $y(m,qy,o,Wy+1,Iy,cy)}async function L(M){let{actionCreators:x}=await import("@near-js/transactions");return x.functionCall(M.methodName,Buffer.from(JSON.stringify(M.args)),BigInt(M.gas),BigInt(M.attachedDeposit))}async function W(M){let x=await H();if(!x)throw new Cy.SwapKitError("toolbox_near_no_signer");await N(M);let[o,j]=await x.signTransaction(M);return j}async function N(M){let x=M.publicKey;if(x.toString?.().startsWith("ed25519:")||x.toString?.().startsWith("secp256k1:"))return;let{KeyType:o,PublicKey:j}=await import("@near-js/crypto"),E=x.data||x.ed25519Key?.data,m=x.secp256k1Key?.data;if(E){M.publicKey=new j({data:Uint8Array.from(E),keyType:o.ED25519});return}if(m)M.publicKey=new j({data:Uint8Array.from(m),keyType:o.SECP256K1})}function A(M){if(typeof M==="string")return M;if(Array.isArray(M))return M.map(A).find(Boolean);if(!(M&&typeof M==="object"))return;let x=M;return x.transaction?.hash||x.transaction_outcome?.id}function R(M){return M instanceof Error?M.message:String(M)}async function I(M){let o=await(await f()).sendTransaction(M),j=A(o);if(!j)throw new Cy.SwapKitError("toolbox_near_transfer_failed",{result:o});return j}async function F(M){let x=await H();if(!x)throw new Cy.SwapKitError("toolbox_near_no_signer");let o;try{o=await W(M)}catch(j){let E;try{E=x.signAndSendTransaction?await x.signAndSendTransaction({actions:M.actions,receiverId:M.receiverId,signerId:M.signerId}):await x.signAndSendTransactions?.({transactions:[M]})}catch(i){throw new Cy.SwapKitError({errorKey:"toolbox_near_sign_transaction_failed",info:{directSignError:R(j),signAndSendError:R(i)}},i)}let m=A(E);if(m)return m;throw j}return I(o)}async function D(M){let x=await H();if("assetValue"in M){let j=await O();try{let E=await Cy.getRPCUrl(Cy.Chain.Near),m=await fetch(E,{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:i}}=await m.json(),{execution:qy,send_sir:Wy}=i.transaction_costs.action_receipt_creation_config,{execution:$y,send_sir:Ay}=i.transaction_costs.action_creation_config.transfer_cost,ty=BigInt(Ay)+BigInt($y),gy=BigInt(Wy)+BigInt(qy),Iy=(ty+gy)*BigInt(j.toString());return Cy.AssetValue.from({chain:Cy.Chain.Near,value:Iy})}catch(E){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",E);let m=BigInt("115123062500"),i=BigInt("108059500000"),Wy=(m+i)*BigInt(j.toString());return Cy.AssetValue.from({chain:Cy.Chain.Near,value:Wy})}}let o=x?await C():void 0;return w(M,o)}async function O(){let M=await f();try{return await M.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function J(M,x,o){if(!await H())throw new Cy.SwapKitError("toolbox_near_no_signer");let E=await C(),{formatNearAmount:m}=await import("@near-js/utils"),{PublicKey:i}=await import("@near-js/crypto"),qy=m(o)||"0";return(await E.createAccount(M,i.fromString(x),BigInt(qy))).transaction.hash}async function _(M){let x=await H();try{if(!x)throw new Cy.SwapKitError("toolbox_near_no_signer");let{actionCreators:o}=await import("@near-js/transactions"),{contractId:j,methodName:E,args:m,deposit:i}=M,qy=await C(),Wy=await w({args:m||{},contractId:j,methodName:E}),$y=o.functionCall(E,m||{},Wy.getBaseValue("bigint"),BigInt(i||"1"));return(await qy.signAndSendTransaction({actions:[$y],receiverId:j})).transaction_outcome.id}catch(o){throw new Cy.SwapKitError("toolbox_near_transfer_failed",{error:o})}}async function Z(M){let x=await C();return mH({account:x,changeMethods:M.changeMethods,contractId:M.contractId,viewMethods:M.viewMethods})}async function B(M){if(!await H())throw new Cy.SwapKitError("toolbox_near_no_signer");if(M.actions.length===0)throw new Cy.SwapKitError("toolbox_near_empty_batch");return(await(await C()).signAndSendTransaction({actions:M.actions,receiverId:M.receiverId})).transaction.hash}async function w(M,x){let o=await ef.match(M).when(EH,()=>wy.SIMPLE_TRANSFER).when(vH,(E)=>uH(E.methodName)).when(jH,(E)=>lH(E.actions)).when(bH,()=>wy.ACCOUNT_CREATION).when(KH,()=>wy.CONTRACT_DEPLOYMENT).when(pH,(E)=>{if(!x)throw new Cy.SwapKitError("toolbox_near_no_account");return E.customEstimator(x)}).otherwise(()=>{throw new Cy.SwapKitError("toolbox_near_invalid_gas_params")}),j=BigInt(o)*BigInt(1000000000000);return Cy.AssetValue.from({chain:Cy.Chain.Near,value:j})}function k(M,x){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),w(M,x)}async function $(){let M=await f();try{return(await M.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function P(){let M=await H();return M?(await M.getPublicKey()).toString():""}return{broadcastTransaction:I,callFunction:_,createAction:L,createContract:Z,createContractFunctionCall:z,createSubAccount:J,createTransaction:Q,estimateGas:k,estimateGasLimit:w,estimateTransactionFee:D,executeBatchTransaction:B,getAddress:U,getBalance:Sy(Cy.Chain.Near),getGasPrice:$,getNearProvider:f,getPublicKey:P,getSignerFromPhrase:gT,getSignerFromPrivateKey:oH,serializeTransaction:Y,signAndBroadcastTransaction:F,signTransaction:W,transfer:G,validateAddress:E0}}var Cy,ef;var tH=v(()=>{sy();nH();hH();Cy=require("@swapkit/helpers"),ef=require("ts-pattern")});var o2=v(()=>{tH()});var gH={};Dy(gH,{validateNearAddress:()=>E0,tgasToGas:()=>NX,isSimpleTransfer:()=>EH,isCustomEstimator:()=>pH,isContractDeployment:()=>KH,isContractCall:()=>vH,isBatchTransaction:()=>jH,isAccountCreation:()=>bH,getNearToolbox:()=>DX,getNearSignerFromPrivateKey:()=>oH,getNearSignerFromPhrase:()=>gT,getFullAccessPublicKey:()=>cT,getContractMethodGas:()=>uH,gasToTGas:()=>BX,estimateBatchGas:()=>lH,createNearContract:()=>mH,GAS_COSTS:()=>wy});module.exports=ky(gH);var cH=v(()=>{nH();hH();tH();o2()});var iH={};Dy(iH,{validateRadixAddress:()=>n2,getRadixToolbox:()=>wX});module.exports=ky(iH);function n2(y){return y.startsWith("account_rdx1")&&y.length===66}async function OX({address:y,networkApi:T}){let H=!0,f,C=[],U=await kX(T);while(H){let q={address:y,at_ledger_state:{state_version:U},cursor:f,limit_per_page:100},X=await T.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:q});if(C=C.concat(X.items),X.next_cursor)f=X.next_cursor;else H=!1}return C}async function RX({resources:y,networkApi:T}){let H=[],f=50,C=[];for(let U=0;U<y.length;U+=50)C.push(y.slice(U,U+50));for(let U of C){let q=U.map((Q)=>Q.resource_address),X=await T.state.getEntityDetailsVaultAggregated(q),G=new Map;for(let Q of X)if(Q.details!==void 0){let Y=Q.metadata?.items.find((L)=>L.key==="symbol"),z=Y?.value.typed.type==="String"?Y.value.typed.value:"?";if(Q.details.type==="FungibleResource")G.set(Q.address,{decimals:Q.details.divisibility,symbol:z})}for(let Q of U)if(Q.aggregation_level==="Global"){let Y=G.get(Q.resource_address)||{decimals:0,symbol:"?"},z=hy.AssetValue.from({asset:Y.symbol!==hy.Chain.Radix?`${hy.Chain.Radix}.${Y.symbol}-${Q.resource_address}`:"XRD.XRD",value:Q.amount});H.push(z)}}return H}async function kX(y){return(await y.status.getCurrent()).ledger_state.state_version}function wX({dappConfig:y}={}){let T=y||hy.SKConfig.get("integrations").radix,H;async function f(){if(H)return H;let{GatewayApiClient:U}=await import("@radixdlt/babylon-gateway-api-sdk"),{RadixDappToolkit:q}=await import("@radixdlt/radix-dapp-toolkit"),X=q({...T,networkId:T.network?.networkId||1});return H=U.initialize(X.gatewayApi.clientConfig),H}async function C(U){let q=await f(),X=await OX({address:U,networkApi:q}),G=await RX({networkApi:q,resources:X});if(!G.some((Y)=>Y.isGasAsset))return[hy.AssetValue.from({chain:hy.Chain.Radix}),...G];return G}return{getAddress:()=>"",getBalance:C,getNetworkApi:f,signAndBroadcast:()=>{throw new hy.SwapKitError("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:n2}}var hy;var dH=v(()=>{hy=require("@swapkit/helpers")});function iT(y){return/^[0-9A-Fa-f]{40}$/.test(y)}function v0(y){if(iT(y))return y.toUpperCase();if(y.length<=3){let H=Buffer.from(y.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${H}${"0".repeat(10)}`.toUpperCase()}let T=Buffer.from(y).toString("hex").toUpperCase();if(T.length>40)throw new E2.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return T.padEnd(40,"0")}function $X(y){if(!iT(y))return y;if(y.toUpperCase().startsWith("00")){let T=y.slice(24,30);try{let H=Buffer.from(T,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(H)&&H.length>0)return H}catch{}return y.toUpperCase()}try{let T=y.replace(/0+$/,""),H=T.length%2===0?T:`${T}0`,f=Buffer.from(H,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function y0(y){if(iT(y))return y.toUpperCase();if(y.length<=3)return y;return v0(y)}var E2;var dT=v(()=>{E2=require("@swapkit/helpers")});async function FX(y,T){let H=y0(y),f=aT.find((C)=>y0(C.currency)===H&&C.issuer===T);if(f)return f;try{let C=await rT.RequestClient.get(`https://api.xrplmeta.org/token/${y}:${T}`);if(C)return{currency:y,decimals:15,description:C.desc,domain:C.domain,icon:C.icon,issuer:T,name:C.name,verified:C.self_assessment?.is_regulated||C.self_assessment?.is_licensed}}catch(C){rT.warnOnce({condition:!0,id:`xrpl_token_lookup_${y}_${T}`,warning:`Failed to fetch XRPL token info for ${y}:${T}: ${C}`})}return{currency:y,decimals:15,issuer:T,verified:!1}}function xX(y){return aT.filter((T)=>T.issuer===y)}function IX(y,T){let H=y0(y);return aT.some((f)=>y0(f.currency)===H&&f.issuer===T)}var rT,aT;var v2=v(()=>{dT();rT=require("@swapkit/helpers"),aT=[{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 rH={};Dy(rH,{validateRippleAddress:()=>j0,parseXrplTokenIdentifier:()=>K2,normalizeCurrency:()=>y0,isKnownToken:()=>IX,isHexCurrency:()=>iT,hexToCurrency:()=>$X,getXrplTokenInfo:()=>FX,getRippleToolbox:()=>PX,getKnownTokensByIssuer:()=>xX,formatXrplTokenIdentifier:()=>p2,currencyToHex:()=>v0,XRPL_TOKEN_ERROR_CODES:()=>sT,XRPL_KNOWN_TOKENS:()=>aT});module.exports=ky(rH);function K2(y){let T=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!T?.[1]||!T?.[2])return null;if(!j0(T[2]))return null;return{currency:T[1],issuer:T[2]}}function p2(y,T){return`${a.Chain.Ripple}.${y}-${T}`}async function SX(y){if(y.isGasAsset){let{xrpToDrops:H}=await import("xrpl");return H(y.getValue("string"))}let T=K2(y.toString());if(!T)throw new a.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:T.currency,issuer:T.issuer,value:y.getValue("string")}}function b2(y){let T,H=()=>{return T??=import("xrpl").then(({Wallet:f})=>f.fromMnemonic(y)),T};return{getAddress:async()=>(await H()).address,signTransaction:async(f)=>(await H()).sign(f)}}function j0(y){return eT.isValidClassicAddress(y)||eT.isValidXAddress(y)}function PX(y={}){let T;async function H(){if(T)return T;return T=await f0.match(y).with({phrase:f0.P.string},({phrase:D})=>b2(D)).with({signer:f0.P.any},({signer:D})=>D).otherwise(()=>{return}),T}let f;async function C(){let D=await a.getRPCUrl(a.Chain.Ripple);if(!D)throw new a.SwapKitError({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:a.Chain.Ripple}});let{Client:O}=await import("xrpl"),J=new O(D);return await J.connect(),J}async function U(){if(f){let D=await f.catch(()=>null);if(D?.isConnected())return D}return f=C(),f}let q=async()=>{let D=await H();if(!D)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return D.getAddress()},X=async(D)=>{let O=D||await q(),{baseDecimal:J}=a.getChainConfig(a.Chain.Ripple),_=await U();try{let[Z,B]=await Promise.all([_.request({account:O,command:"account_info"}),_.request({account:O,command:"account_lines"})]),w=Z.result.account_data.Balance,k=[a.AssetValue.from({chain:a.Chain.Ripple,fromBaseDecimal:J,value:w})];for(let $ of B.result.lines){let P=p2($.currency,$.account);if(Number.parseFloat($.balance)!==0)k.push(a.AssetValue.from({asset:P,asyncTokenLookup:!1,value:$.balance}))}return k}catch(Z){if(Z.data?.error_code===j2.ACCOUNT_NOT_FOUND)return[a.AssetValue.from({chain:a.Chain.Ripple,value:0})];throw new a.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{address:O,error:Z}})}},G=async()=>{let{baseDecimal:D}=a.getChainConfig(a.Chain.Ripple),_=(await(await U()).request({command:"fee"})).result.drops.open_ledger_fee;return a.AssetValue.from({chain:a.Chain.Ripple,fromBaseDecimal:D,value:_})};async function Q(D){let O=D||await q(),J=await U();try{return(await J.request({account:O,command:"account_lines"})).result.lines.map((Z)=>({account:Z.account,authorized:Z.authorized??!1,balance:Z.balance,currency:Z.currency,freeze:Z.freeze??!1,freezePeer:Z.freeze_peer??!1,limit:Z.limit,limitPeer:Z.limit_peer,noRipple:Z.no_ripple??!1,noRipplePeer:Z.no_ripple_peer??!1,peerAuthorized:Z.peer_authorized??!1,qualityIn:Z.quality_in??0,qualityOut:Z.quality_out??0}))}catch(_){if(_.data?.error_code===j2.ACCOUNT_NOT_FOUND)return[];throw new a.SwapKitError({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:O,error:_}})}}async function Y({address:D,currency:O,issuer:J}){let _=await Q(D),Z=v0(O);return _.some((B)=>{return v0(B.currency)===Z&&B.account===J})}async function z({currency:D,issuer:O,limit:J,sender:_}){let Z=_||await q();if(!j0(O))throw new a.SwapKitError({errorKey:"core_transaction_invalid_recipient_address",info:{address:O}});let B=Number.parseFloat(J);if(Number.isNaN(B)||B<0)throw new a.SwapKitError({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:J}});let w=await U(),k={Account:Z,LimitAmount:{currency:D,issuer:O,value:J},TransactionType:"TrustSet"};return w.autofill(k)}async function L({assetValue:D,recipient:O,memo:J,sender:_,destinationTag:Z,extendBySeconds:B=150}){if(!j0(O))throw new a.SwapKitError({errorKey:"core_transaction_invalid_recipient_address"});let w=_||await q();if(D.chain!==a.Chain.Ripple)throw new a.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:D.toString()}});let k=await SX(D),$={Account:w,Amount:k,Destination:O,TransactionType:"Payment",...Z!==void 0&&{DestinationTag:Z}};if(J)$.Memos=[{Memo:{MemoData:Buffer.from(J).toString("hex")}}];let M=await(await U()).autofill($);if(M.LastLedgerSequence&&B>0)M.LastLedgerSequence+=Math.ceil(B/4);return M}async function W(D){let O=await H();if(!O)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return O.signTransaction(D)}async function N(D){let J=await(await U()).submitAndWait(D),{result:_}=J;if(_.validated)return _.hash;let Z=_.meta?.TransactionResult,B=f0.match(Z).with(sT.tecNO_LINE,()=>"No trust line exists for this token").with(sT.tecPATH_DRY,()=>"Payment path could not deliver funds").with(sT.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new a.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:a.Chain.Ripple,...B?{reason:B}:{txResult:Z}}})}let A=async(D)=>{try{let O=await W(D);return N(O.tx_blob)}catch(O){if(O instanceof a.SwapKitError)throw O;throw new a.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:a.Chain.Ripple,error:O}})}};async function R(D){let O=await H();if(!O)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let J=await O.getAddress(),_=await L({...D,sender:J}),Z=await W(_);return N(Z.tx_blob)}async function I(D){let O=await H();if(!O)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let J=await O.getAddress(),_=await z({...D,sender:J}),Z=await W(_);return N(Z.tx_blob)}function F(){let D=f;if(f=null,D)D.then((O)=>{if(O?.isConnected())return O.disconnect();return}).catch((O)=>{console.warn("XRPL Cleanup failed silently:",O)})}return{broadcastTransaction:N,createSigner:b2,createTransaction:L,disconnect:F,estimateTransactionFee:G,getAddress:q,getBalance:X,getTrustLines:Q,hasTrustLine:Y,setTrustLine:z,setTrustLineAndBroadcast:I,signAndBroadcastTransaction:A,signTransaction:W,transfer:R,validateAddress:j0}}var a,eT,f0,j2,sT;var aH=v(()=>{dT();a=require("@swapkit/helpers"),eT=require("ripple-address-codec"),f0=require("ts-pattern");dT();v2();j2={ACCOUNT_NOT_FOUND:19},sT={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});function sH(y,T){let H=0n,f=0n,C=T;while(C<y.length&&C-T<10){let U=y[C++];if(U===void 0)break;if(H|=BigInt(U&127)<<f,f+=7n,(U&128)===0)return[H,C]}throw new Ef.SwapKitError("toolbox_tron_transaction_creation_failed")}function b0(y){let T=[],H=y<0n?y+2n**64n:y;while(H>=128n)T.push(Number(H&0x7fn)|128),H>>=7n;return T.push(Number(H)),T}function y1(y,T,H){let f=y.get(T);if(f)f.push(H);else y.set(T,[H])}function EX(y){let T=new Map,H=0;while(H<y.length){let[f,C]=sH(y,H);H=C;let U=Number(f>>3n),q=Number(f&7n);if(q===f1){let[X,G]=sH(y,H);H=G,y1(T,U,{data:new Uint8Array(b0(X)),wireType:f1})}else if(q===T1){let[X,G]=sH(y,H);H=G;let Q=Number(X);if(Q<0||H+Q>y.length)throw new Ef.SwapKitError("toolbox_tron_transaction_creation_failed");let Y=y.slice(H,H+Q);H+=Q,y1(T,U,{data:Y,wireType:T1})}else if(q===l2){if(H+8>y.length)throw new Ef.SwapKitError("toolbox_tron_transaction_creation_failed");let X=y.slice(H,H+8);H+=8,y1(T,U,{data:X,wireType:l2})}else if(q===u2){if(H+4>y.length)throw new Ef.SwapKitError("toolbox_tron_transaction_creation_failed");let X=y.slice(H,H+4);H+=4,y1(T,U,{data:X,wireType:u2})}else throw new Ef.SwapKitError("toolbox_tron_transaction_creation_failed")}return T}function vX(y){let T=[];for(let[U,q]of[...y.entries()].sort(([X],[G])=>X-G))for(let{wireType:X,data:G}of q){let Q=BigInt(U<<3|X);if(T.push(new Uint8Array(b0(Q))),X===T1)T.push(new Uint8Array(b0(BigInt(G.length))));T.push(G)}let H=T.reduce((U,q)=>U+q.length,0),f=new Uint8Array(H),C=0;for(let U of T)f.set(U,C),C+=U.length;return f}function m2(y,T){if(!y||y.length%2!==0)throw new Ef.SwapKitError("toolbox_tron_transaction_creation_failed");let H=T0.hexToBytes(y),f=EX(H);if(T.expiration!==void 0)f.set(VX,[{data:new Uint8Array(b0(BigInt(T.expiration))),wireType:f1}]);if(T.data!==void 0)f.set(oX,[{data:T0.hexToBytes(T.data),wireType:T1}]);if(T.fee_limit!==void 0)f.set(nX,[{data:new Uint8Array(b0(BigInt(T.fee_limit))),wireType:f1}]);let C=vX(f),U=T0.bytesToHex(C),q=T0.bytesToHex(h2.sha256(C));return{raw_data_hex:U,txID:q}}var h2,T0,Ef,f1=0,l2=1,T1=2,u2=5,VX=8,oX=10,nX=18;var t2=v(()=>{h2=require("@noble/hashes/sha2.js"),T0=require("@noble/hashes/utils.js"),Ef=require("@swapkit/helpers")});function my(y){if(typeof y!=="string")return!1;try{let T=H1.decode(y);return T.length===21&&T[0]===i2}catch{return!1}}function d2(y){return jy.bytesToHex(H1.decode(y))}function bX(y){return H1.decode(y).slice(1)}function r2(y){let T=eH.secp256k1.getPublicKey(jy.hexToBytes(y),!1),H=g2.keccak_256(T.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=i2,f.set(H,1),H1.encode(f)}function a2({txID:y,privateKey:T}){let H=eH.secp256k1.sign(jy.hexToBytes(y),jy.hexToBytes(T),{format:"recovered",prehash:!1}),f=H[0]??0,C=jy.bytesToHex(H.slice(1,33)),U=jy.bytesToHex(H.slice(33,65)),q=(f+27).toString(16).padStart(2,"0");return C+U+q}function H0({txID:y,raw_data_hex:T}){let H=jy.bytesToHex(yC.sha256(jy.hexToBytes(T)));if(y!==H)throw new fC.SwapKitError("toolbox_tron_invalid_transaction_integrity",{expected:H,txID:y})}function KX(y){return`000000000000000000000000${jy.bytesToHex(bX(y))}`}function pX(y){let T=typeof y==="bigint"?y:BigInt(y);if(T<0n||T>=jX)throw new fC.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:T.toString()});return T.toString(16).padStart(64,"0")}function C0(y){return y.map(({type:T,value:H})=>T==="address"?KX(H):pX(BigInt(H))).join("")}function s2(y){return jy.bytesToHex(new TextEncoder().encode(y))}var eH,yC,g2,jy,c2,fC,H1,i2=65,jX;var TC=v(()=>{eH=require("@noble/curves/secp256k1.js"),yC=require("@noble/hashes/sha2.js"),g2=require("@noble/hashes/sha3.js"),jy=require("@noble/hashes/utils.js"),c2=require("@scure/base"),fC=require("@swapkit/helpers"),H1=c2.createBase58check(yC.sha256),jX=2n**256n});function f8(){try{return Qy.getRPCUrlSync(Qy.Chain.Tron)}catch{return y8}}function T8(){let y=new AbortController,T=setTimeout(()=>y.abort(),tX);return{cleanup:()=>clearTimeout(T),signal:y.signal}}async function vf(y,T){let{signal:H,cleanup:f}=T8();try{let C=await fetch(`${f8()}${y}`,{body:JSON.stringify(T),headers:{"Content-Type":"application/json"},method:"POST",signal:H});if(!C.ok)throw new Qy.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${C.status} ${C.statusText} on ${y}`});return await C.json()}finally{f()}}async function H8(y,T){let{signal:H,cleanup:f}=T8();try{let C=await fetch(`${T??f8()}${y}`,{headers:{"Content-Type":"application/json"},signal:H});if(!C.ok)throw new Qy.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${C.status} ${C.statusText} on ${y}`});return await C.json()}finally{f()}}async function C8(y){if(!my(y))throw new Qy.SwapKitError("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let T=await H8(`/v1/accounts/${y}`,y8);if(!(T.success&&T.data)||T.data.length===0)return;let H;try{H=d2(y).toLowerCase()}catch{H=y.toLowerCase()}let f=T.data.find((C)=>C.address.toLowerCase()===H);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(T){if(T instanceof Qy.SwapKitError)throw T;throw new Qy.SwapKitError("toolbox_tron_trongrid_api_error",{address:y,message:T instanceof Error?T.message:"Unknown error"})}}async function U8({from:y,to:T,amount:H}){let C=await vf("/wallet/createtransaction",{amount:H,owner_address:y,to_address:T,visible:!0});if(!C.txID||!C.raw_data_hex||!C.raw_data)throw new Qy.SwapKitError("toolbox_tron_transaction_creation_failed");let q=C.raw_data?.contract?.[0]?.parameter?.value;if(q?.to_address!==T||q?.owner_address!==y||q?.amount!==H)throw new Qy.SwapKitError("toolbox_tron_transaction_creation_failed");return H0(C),C}async function q8({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f,feeLimit:C,callValue:U=0}){let q=await vf("/wallet/triggersmartcontract",{call_value:U,contract_address:T,fee_limit:C,function_selector:H,owner_address:y,parameter:f,visible:!0});if(!q.result.result||!q.transaction?.txID||!q.transaction?.raw_data_hex)throw new Qy.SwapKitError("toolbox_tron_transaction_creation_failed");let G=q.transaction.raw_data?.contract?.[0]?.parameter?.value;if(G?.contract_address!==T||G?.owner_address!==y)throw new Qy.SwapKitError("toolbox_tron_transaction_creation_failed");return H0(q.transaction),q.transaction}function X8({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return vf("/wallet/triggerconstantcontract",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}function gX({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return vf("/wallet/estimateenergy",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}function e2(y){let T=typeof y==="number"?y:typeof y==="string"?Number(y):Number.NaN;return Number.isFinite(T)&&T>0?T:void 0}async function K0(y){try{let{result:T,txid:H}=await vf("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!T||!H)throw new Qy.SwapKitError("toolbox_tron_token_transfer_failed");return H}catch(T){throw new Qy.SwapKitError("toolbox_tron_broadcast_failed",{error:T})}}async function p0(){let y={};try{let{chainParameter:T}=await H8("/wallet/getchainparameters");for(let H of T)y[H.key]=H.value}catch(T){Qy.warnOnce({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${T instanceof Error?T.message:T}`})}return{bandwidthFee:y.getTransactionFee??lX,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??uX,energyFee:y.getEnergyFee??hX,memoFee:y.getMemoFee??mX}}async function HC(y){try{let T=await vf("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(T.freeNetLimit??600)-(T.freeNetUsed??0),total:T.NetLimit??0,used:T.NetUsed??0},energy:{total:T.EnergyLimit??0,used:T.EnergyUsed??0}}}catch(T){return Qy.warnOnce({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${T instanceof Error?T.message:T}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function l0(y){try{let T=await vf("/wallet/getaccount",{address:y,visible:!0});return T&&Object.keys(T).length>0}catch{return!1}}async function CC(y){try{let T=await gX({...y,ownerAddress:y.sender}),H=T.energy_required??T.energyRequired;if(T.result&&!T.result.result)throw new Qy.SwapKitError("toolbox_tron_trongrid_api_error",{message:T.result.message||"estimateenergy failed"});if(H!==void 0){let f=e2(H);if(f!==void 0)return f;throw new Qy.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(T){Qy.warnOnce({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${T instanceof Error?T.message:T}`})}try{let{energy_used:T}=await X8({...y,ownerAddress:y.sender}),H=e2(T);if(H!==void 0)return H;throw new Qy.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid triggerconstantcontract energy response"})}catch(T){throw Qy.warnOnce({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy: ${T instanceof Error?T.message:T}`}),new Qy.SwapKitError("toolbox_tron_trongrid_api_error",{message:`Unable to estimate contract energy: ${T instanceof Error?T.message:T}`})}}async function G8({assetAddress:y,owner:T,spender:H}){let f=C0([{type:"address",value:T},{type:"address",value:H}]),U=(await X8({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:H,parameter:f})).constant_result?.[0];if(!U)return 0n;try{return BigInt(`0x${U}`)}catch{return 0n}}var Qy,y8="https://api.trongrid.io",lX=1000,uX=1e6,hX=420,mX=1e6,tX=30000;var Q8=v(()=>{TC();Qy=require("@swapkit/helpers")});function M8({phrase:y,derivationPath:T}){let H=J8.HDKey.fromMasterSeed(z8.mnemonicToSeedSync(y)).derive(T);if(!H.privateKey)throw new K.SwapKitError("toolbox_tron_no_signer");return L8.bytesToHex(H.privateKey)}function N8(y,T){return{...y,value:String(T)}}function B8(y,T){if(!T)return y;return{...y,data:T.startsWith("0x")?T:`0x${T}`}}function D8({phrase:y,derivationPath:T,index:H}){let f=T||K.derivationPathToString(K.updateDerivationPath(K.NetworkDerivationPath[K.Chain.Tron],{index:H||0}));return M8({derivationPath:f,phrase:y})}function iX({phrase:y,derivationPath:T}){let H=M8({derivationPath:T,phrase:y}),f=r2(H);return{getAddress:()=>Promise.resolve(f),signTransaction:(C)=>{H0(C);let U=a2({privateKey:H,txID:C.txID});return Promise.resolve({...C,signature:[U]})}}}function Y8({transaction:y,memo:T,expiration:H,feeLimit:f}){let C={},U={};if(f!==void 0&&y.raw_data)C.fee_limit=f,U.fee_limit=f;if(T){let G=T.startsWith("0x")?T.replace(/^0x/,""):s2(T);C.data=G,U.data=G}if(H){let G=y.raw_data.expiration+H*1000;C.expiration=G,U.expiration=G}if(Object.keys(C).length===0)return y;let{raw_data_hex:q,txID:X}=m2(y.raw_data_hex,C);return{...y,raw_data:{...y.raw_data,...U},raw_data_hex:q,txID:X}}function O8(y={}){let T="index"in y?y.index||0:0,H=K.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:K.updateDerivationPath(K.NetworkDerivationPath[K.Chain.Tron],{index:T})),f,C=!1;function U(){if(C)return Promise.resolve(f);return f=U0.match(y).with({phrase:U0.P.string},({phrase:_})=>iX({derivationPath:H,phrase:_})).with({signer:U0.P.not(U0.P.nullish)},({signer:_})=>_).otherwise(()=>{return}),C=!0,Promise.resolve(f)}async function q(){let _=await U();if(!_)throw new K.SwapKitError("toolbox_tron_no_signer");return _.getAddress()}async function X(_,Z){let B=_||Z8,w=Z??(await p0()).energyFee,k=B*w,$=Math.ceil(k*1.5);return Math.min(Math.max($,1e7),150000000)}async function G({contractAddress:_,functionSelector:Z,parameter:B,sender:w,memo:k,expiration:$,extraEnergy:P=0}){let M=await CC({contractAddress:_,functionSelector:Z,parameter:B,sender:w}),x=await X(M+P),o=await q8({contractAddress:_,feeLimit:x,functionSelector:Z,ownerAddress:w,parameter:B});return Y8({expiration:$,feeLimit:x,memo:k,transaction:o})}async function Q(_){if(!my(_))return[K.AssetValue.from({chain:K.Chain.Tron})];try{let Z=await C8(_);if(!Z)return[K.AssetValue.from({chain:K.Chain.Tron})];let B=[K.AssetValue.from({chain:K.Chain.Tron,fromBaseDecimal:6,value:String(Z.balance)})],w=Z.trc20?.find((k)=>(qC in k));if(w){let k=w[qC];B.push(K.AssetValue.from({asset:`TRON.USDT-${qC}`,fromBaseDecimal:6,value:k}))}return B}catch(Z){return K.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${Z instanceof Error?Z.message:Z}`}),[K.AssetValue.from({chain:K.Chain.Tron})]}}async function Y({recipient:_,assetValue:Z,memo:B,expiration:w}){if(!my(_))throw new K.SwapKitError("toolbox_tron_token_transfer_failed",{message:"invalid address"});let k=await U();if(!k)throw new K.SwapKitError("toolbox_tron_no_signer");try{let $=await q(),P=await R({assetValue:Z,expiration:w,memo:B,recipient:_,sender:$}),M=await k.signTransaction(P),x=await K0(M);if(!x)throw new K.SwapKitError("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return x}catch($){throw new K.SwapKitError("toolbox_tron_token_transfer_failed",{message:$ instanceof Error?$.message:String($)})}}function z({requiredBandwidth:_,resources:Z,feePerUnit:B}){let w=Math.max(0,Z.free+Z.total-Z.used);return _>w?(_-w)*B:0}async function L({memo:_,recipient:Z,senderAddress:B}){let[w,k,$]=await Promise.all([p0(),l0(Z),HC(B)]),P=k?0:w.createAccountFee,M=z({feePerUnit:w.bandwidthFee,requiredBandwidth:_8,resources:$.bandwidth}),x=_?w.memoFee:0;return K.AssetValue.from({chain:K.Chain.Tron,fromBaseDecimal:K.BaseDecimal.TRON,value:P+M+x})}async function W({assetValue:_,memo:Z,recipient:B,senderAddress:w}){let k=_.address;if(!k)throw new K.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:_.toString()});let[$,P,M,x]=await Promise.all([p0(),l0(B),HC(w),CC({contractAddress:k,functionSelector:"transfer(address,uint256)",parameter:C0([{type:"address",value:B},{type:"uint256",value:_.getBaseValue("string")}]),sender:w})]),j=x+(P?0:UC),E=z({feePerUnit:$.bandwidthFee,requiredBandwidth:W8,resources:M.bandwidth}),m=Math.max(0,M.energy.total-M.energy.used),i=j>m?(j-m)*$.energyFee:0,qy=Z?$.memoFee:0;return K.AssetValue.from({chain:K.Chain.Tron,fromBaseDecimal:K.BaseDecimal.TRON,value:E+i+qy})}async function N({assetValue:_,memo:Z,recipient:B}){let[w,k]=await Promise.all([p0(),l0(B)]);if(_.isGasAsset){let x=k?0:w.createAccountFee,o=Z?w.memoFee:0;return K.AssetValue.from({chain:K.Chain.Tron,fromBaseDecimal:K.BaseDecimal.TRON,value:x+_8*w.bandwidthFee+o})}let P=await X(Z8+(k?0:UC),w.energyFee),M=Z?w.memoFee:0;return K.AssetValue.from({chain:K.Chain.Tron,fromBaseDecimal:K.BaseDecimal.TRON,value:P+W8*w.bandwidthFee+M})}async function A({assetValue:_,memo:Z,recipient:B,sender:w}){let k=await U();try{let $=w?w:k?await q():void 0;if(!$)return N({assetValue:_,memo:Z,recipient:B});return _.isGasAsset?L({memo:Z,recipient:B,senderAddress:$}):W({assetValue:_,memo:Z,recipient:B,senderAddress:$})}catch($){throw K.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${$ instanceof Error?$.message:$}`}),new K.SwapKitError("toolbox_fee_estimation_failed",{chain:K.Chain.Tron,error:$})}}async function R({recipient:_,assetValue:Z,memo:B,sender:w,expiration:k}){if(!my(_)||!my(w))throw new K.SwapKitError("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(Z.isGasAsset){let M=await U8({amount:Z.getBaseValue("number"),from:w,to:_});return Y8({expiration:k,memo:B,transaction:M})}let $=Z.address;if(!$)throw new K.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:Z.toString()});let P=await l0(_);return G({contractAddress:$,expiration:k,extraEnergy:P?0:UC,functionSelector:"transfer(address,uint256)",memo:B,parameter:C0([{type:"address",value:_},{type:"uint256",value:Z.getBaseValue("string")}]),sender:w})}async function I(_){H0(_);let Z=await U();if(!Z)throw new K.SwapKitError("toolbox_tron_no_signer");return Z.signTransaction(_)}async function F(_){let Z=await I(_);return K0(Z)}function D({assetAddress:_,spenderAddress:Z,from:B}){return G8({assetAddress:_,owner:B,spender:Z})}async function O({assetAddress:_,spenderAddress:Z,from:B,amount:w}){let k=await D({assetAddress:_,from:B,spenderAddress:Z});if(!w)return k>0n;return k>=BigInt(w)}async function J({assetAddress:_,spenderAddress:Z,amount:B,from:w}){if(!my(_)||!my(Z))throw new K.SwapKitError("toolbox_tron_approve_failed");let k=await U();if(!k)throw new K.SwapKitError("toolbox_tron_no_signer");let $=w||await q(),P=B!==void 0?BigInt(B).toString():cX;try{let M=await G({contractAddress:_,functionSelector:"approve(address,uint256)",parameter:C0([{type:"address",value:Z},{type:"uint256",value:P}]),sender:$}),x=await k.signTransaction(M),o=await K0(x);if(!o)throw new K.SwapKitError("toolbox_tron_approve_failed");return o}catch(M){if(M instanceof K.SwapKitError)throw M;throw new K.SwapKitError("toolbox_tron_approve_failed",{error:M})}}return{approve:J,broadcastTransaction:K0,createTransaction:R,estimateTransactionFee:A,getAddress:q,getApprovedAmount:D,getBalance:Q,getRpcUrl:()=>K.getRPCUrl(K.Chain.Tron),isApproved:O,signAndBroadcastTransaction:F,signTransaction:I,transfer:Y,validateAddress:my}}var L8,J8,z8,K,U0,A8,_8=268,Z8=65000,UC=25000,W8=345,qC="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",cX="115792089237316195423570985008687907853269984665640564039457584007913129639935";var R8=v(()=>{t2();Q8();TC();L8=require("@noble/hashes/utils.js"),J8=require("@scure/bip32"),z8=require("@scure/bip39"),K=require("@swapkit/helpers"),U0=require("ts-pattern"),A8=my});var XC={};Dy(XC,{withTronTransactionValue:()=>N8,withTronTransactionData:()=>B8,validateTronAddress:()=>A8,getTronToolbox:()=>O8,getTronPrivateKeyFromMnemonic:()=>D8});module.exports=ky(XC);var GC=v(()=>{R8()});async function eX(y){if(C1&&Date.now()-C1.timestamp<sX)return C1.value;let H=(await y.ledgers().order("desc").limit(1).call()).records[0]?.base_reserve_in_stroops;if(H===void 0)throw new g.SwapKitError({errorKey:"toolbox_stellar_balance_error",info:{reason:"base_reserve_unavailable"}});return C1={timestamp:Date.now(),value:H},H}function k8(y){return g.AssetValue.from({chain:g.Chain.Stellar,value:y}).getBaseValue("bigint")}function yG({balance:y,baseReserveInStroops:T,numSponsored:H,numSponsoring:f,sellingLiabilities:C,subentryCount:U}){let q=k8(y),X=k8(C),G=aX+U+f-H,Q=BigInt(G)*BigInt(T),Y=q-Q-X;return Y>0n?Y:0n}function q1(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return dX.test(y)}function $8(y){if(typeof y!=="object"||y===null)return;let T="response"in y?y.response:void 0;return typeof T?.status==="number"?T.status:void 0}function fG(y){return $8(y)===504}function TG(y){return y.hash?.().toString("hex")}function HG(y){return[...new Set([y,...g.SKConfig.get("rpcUrls")[g.Chain.Stellar]])].filter(Boolean)}async function F8(y){if(!q1(y))return!1;try{let{StrKey:T}=await import("@stellar/stellar-sdk");return T.isValidEd25519PublicKey(y)}catch{return!1}}async function w8(y){let{address:T,ticker:H}=y,f=T?await F8(T):!1;if(y.chain!==g.Chain.Stellar||y.isGasAsset||!rX.test(H)||!T||!f)throw new g.SwapKitError({errorKey:"helpers_invalid_asset_identifier",info:{identifier:y.toString()}});return{assetCode:H,issuer:T}}function x8(y={}){let T,H=y.derivationPath||g.NetworkDerivationPath[g.Chain.Stellar],f=g.derivationPathToString(H.slice(0,3));async function C({phrase:D,path:O}){let{HDKey:J}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:_}=await import("@scure/bip39"),{Keypair:Z}=await import("@stellar/stellar-sdk"),B=_(D),k=J.fromMasterSeed(B).derive(O,!0);return Z.fromRawEd25519Seed(Buffer.from(k.privateKey))}async function U(){if(T)return T;let D=U1.match(y).with({phrase:U1.P.string},({phrase:O})=>O).otherwise(()=>{return});if(!D)throw new g.SwapKitError("toolbox_stellar_no_signer");return T=await C({path:f,phrase:D}),T}async function q(D){let{Horizon:O}=await import("@stellar/stellar-sdk"),J=D||await g.getRPCUrl(g.Chain.Stellar);return new O.Server(J)}async function X(D,O){for(let J of O)try{return(await(await q(J)).transactions().transaction(D).call()).hash||D}catch{}return}async function G(D,O){let J=await g.getRPCUrl(g.Chain.Stellar),_=HG(J),Z=TG(D),B;for(let w of _)try{let k=await q(w),{hash:$}=await k.submitTransaction(D);return $}catch(k){if(B=k,!fG(k))break;let $=Z?await X(Z,_):void 0;if($)return $}throw new g.SwapKitError(O,B)}async function Q(){try{return(await U()).publicKey()}catch{return""}}async function Y(D){let O=D||await Q();if(!O)throw new g.SwapKitError("toolbox_stellar_account_not_found");let J=await q(),[_,Z]=await Promise.allSettled([J.loadAccount(O),eX(J)]);if(_.status==="rejected"){let B=_.reason;if($8(B)===404)return[g.AssetValue.from({chain:g.Chain.Stellar,value:0})];throw B}if(Z.status==="rejected")throw Z.reason;return _.value.balances.map((B)=>{if(B.asset_type==="native"){let $=yG({balance:B.balance,baseReserveInStroops:Z.value,numSponsored:_.value.num_sponsored,numSponsoring:_.value.num_sponsoring,sellingLiabilities:B.selling_liabilities,subentryCount:_.value.subentry_count}),{baseDecimal:P}=g.getChainConfig(g.Chain.Stellar);return g.AssetValue.from({chain:g.Chain.Stellar,fromBaseDecimal:P,value:$})}let w="asset_code"in B?B.asset_code:"",k="asset_issuer"in B?B.asset_issuer:"";return g.AssetValue.from({asset:`${g.Chain.Stellar}.${w}-${k}`,asyncTokenLookup:!1,value:B.balance})})}async function z({recipient:D,assetValue:O,memo:J,sender:_}){if(J){if(new TextEncoder().encode(J).length>28)throw new g.SwapKitError("helpers_invalid_memo_type")}if(!await F8(D))throw new g.SwapKitError("core_transaction_invalid_recipient_address");let B=_||await Q();if(!B)throw new g.SwapKitError("toolbox_stellar_no_signer");let{Asset:w,Memo:k,Networks:$,Operation:P,TransactionBuilder:M}=await import("@stellar/stellar-sdk"),x=await q(),o=await x.fetchBaseFee(),j=await x.loadAccount(B),E=new M(j,{fee:String(o),networkPassphrase:$.PUBLIC});if(O.isGasAsset)try{await x.loadAccount(D),E.addOperation(P.payment({amount:O.getValue("string"),asset:w.native(),destination:D}))}catch{E.addOperation(P.createAccount({destination:D,startingBalance:O.getValue("string")}))}else{let{assetCode:i,issuer:qy}=await w8(O);E.addOperation(P.payment({amount:O.getValue("string"),asset:new w(i,qy),destination:D}))}if(J)E.addMemo(k.text(J));return E.setTimeout(30).build()}async function L({assetValue:D,limit:O,sender:J}){let _=J||await Q();if(!_)throw new g.SwapKitError("toolbox_stellar_no_signer");let{Asset:Z,Networks:B,Operation:w,TransactionBuilder:k}=await import("@stellar/stellar-sdk"),{assetCode:$,issuer:P}=await w8(D),M=await q(),[x,o]=await Promise.all([M.fetchBaseFee(),M.loadAccount(_)]),j=new Z($,P),E=O!==void 0?w.changeTrust({asset:j,limit:O}):w.changeTrust({asset:j});return new k(o,{fee:String(x),networkPassphrase:B.PUBLIC}).addOperation(E).setTimeout(30).build()}async function W(D){let{TransactionBuilder:O,Networks:J}=await import("@stellar/stellar-sdk"),_=await U(),Z=O.fromXDR(D.toXDR(),J.PUBLIC);return Z.sign(_),Z}function N(D){return G(D,"toolbox_stellar_broadcast_error")}async function A({recipient:D,assetValue:O,memo:J}){let _=await U(),Z=_.publicKey(),B=await z({assetValue:O,memo:J,recipient:D,sender:Z});return B.sign(_),G(B,"toolbox_stellar_transaction_failed")}async function R({assetValue:D,limit:O}){let J=await U(),_=await L({assetValue:D,limit:O,sender:J.publicKey()});return _.sign(J),G(_,"toolbox_stellar_transaction_failed")}async function I(D){let O=await W(D);return N(O)}async function F(){let{baseDecimal:D}=g.getChainConfig(g.Chain.Stellar);try{let _=(await(await q()).feeStats()).fee_charged.p50;return g.AssetValue.from({chain:g.Chain.Stellar,fromBaseDecimal:D,value:_})}catch{return g.AssetValue.from({chain:g.Chain.Stellar,fromBaseDecimal:D,value:"100"})}}return{broadcastTransaction:N,createTransaction:z,createTrustline:R,createTrustlineTransaction:L,estimateTransactionFee:F,getAddress:Q,getBalance:Y,signAndBroadcastTransaction:I,signTransaction:W,transfer:A,validateAddress:q1}}var g,U1,dX,rX,aX=2,sX=600000,C1;var I8=v(()=>{g=require("@swapkit/helpers"),U1=require("ts-pattern"),dX=/^G[A-Z2-7]{55}$/,rX=/^[A-Za-z0-9]{1,12}$/});var X1={};Dy(X1,{validateStellarAddress:()=>q1,getStellarToolbox:()=>x8});module.exports=ky(X1);var G1=v(()=>{I8()});var qG={};Dy(qG,{getToolbox:()=>QC,getFeeEstimator:()=>UG,getAddressValidator:()=>CG});module.exports=ky(qG);var l=require("@swapkit/helpers");async function CG(){let{match:y}=await import("ts-pattern"),{validateAptosAddress:T}=await Promise.resolve().then(() => (h0(),u0)),{validateEVMAddress:H}=await Promise.resolve().then(() => (o1(),mC)),{validateCardanoAddress:f}=await Promise.resolve().then(() => (j1(),v1)),{getCosmosAddressValidator:C}=await Promise.resolve().then(() => (MT(),AT)),{validateHyperCoreAddress:U}=await Promise.resolve().then(() => (CH(),HH)),{validateSolanaAddress:q}=await Promise.resolve().then(() => (QH(),GH)),{validateStarknetAddress:X}=await Promise.resolve().then(() => ($T(),wT)),{validateSuiAddress:G}=await Promise.resolve().then(() => (PT(),ST)),{validateTonAddress:Q}=await Promise.resolve().then(() => (nT(),oT)),{getUTXOAddressValidator:Y}=await Promise.resolve().then(() => (VH(),PH)),{validateNearAddress:z}=await Promise.resolve().then(() => (cH(),gH)),{validateRadixAddress:L}=await Promise.resolve().then(() => (dH(),iH)),{validateRippleAddress:W}=await Promise.resolve().then(() => (aH(),rH)),{validateTronAddress:N}=await Promise.resolve().then(() => (GC(),XC)),{validateStellarAddress:A}=await Promise.resolve().then(() => (G1(),X1));return function({address:I,chain:F}){return y(F).with(...l.EVMChains,()=>H(I)).with(...l.UTXOChains,(O)=>{return Y(O)(I)}).with(...l.CosmosChains,(O)=>{return C(O)(I)}).with(l.Chain.Aptos,()=>T(I)).with(l.Chain.Radix,()=>L(I)).with(l.Chain.Hype,()=>U(I)).with(l.Chain.Near,()=>z(I)).with(l.Chain.Ripple,()=>W(I)).with(l.Chain.Solana,()=>q(I)).with(l.Chain.Stellar,()=>A(I)).with(l.Chain.Starknet,()=>X(I)).with(l.Chain.Sui,()=>G(I)).with(l.Chain.Ton,()=>Q(I)).with(l.Chain.Tron,()=>N(I)).with(l.Chain.Cardano,()=>f(I)).otherwise(()=>!1)}}function UG(y){return async function(H){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...l.EVMChains,async(C)=>{let U=await QC(C),q=await U.createTransaction(H),X="feeOptionKey"in H?H.feeOptionKey:l.FeeOption.Fast;return U.estimateTransactionFee({...q,feeOption:X})}).with(l.Chain.Bitcoin,l.Chain.BitcoinCash,l.Chain.Dogecoin,l.Chain.Dash,l.Chain.Litecoin,l.Chain.Solana,l.Chain.Ripple,l.Chain.Tron,l.Chain.Near,l.Chain.Cardano,l.Chain.Hype,async(C)=>{return(await QC(C)).estimateTransactionFee(H)}).with(l.Chain.Aptos,async()=>{let{getAptosToolbox:C}=await Promise.resolve().then(() => (h0(),u0));return C().estimateTransactionFee(H)}).with(l.Chain.Starknet,async()=>{let{getStarknetToolbox:C}=await Promise.resolve().then(() => ($T(),wT));return(await C()).estimateTransactionFee(H)}).with(l.Chain.Stellar,async()=>{let{getStellarToolbox:C}=await Promise.resolve().then(() => (G1(),X1));return C().estimateTransactionFee()}).with(l.Chain.Sui,async()=>{let{getSuiToolbox:C}=await Promise.resolve().then(() => (PT(),ST));return C().estimateTransactionFee(H)}).with(l.Chain.Ton,async()=>{let{getTONToolbox:C}=await Promise.resolve().then(() => (nT(),oT));return C().estimateTransactionFee(H)}).with(...l.CosmosChains,async()=>{let{estimateTransactionFee:C}=await Promise.resolve().then(() => (MT(),AT));return C(H)}).otherwise(async()=>l.AssetValue.from({chain:y}))}}async function QC(y,T){let{match:H}=await import("ts-pattern");return H(y).returnType().with(...l.EVMChains,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (V1(),lC));return await f(y,T)}).with(...l.UTXOChains,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (VH(),PH));return f(y,T)}).with(...l.CosmosChains,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (MT(),AT));return f(y,T)}).with(l.Chain.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (h0(),u0));return f(T)}).with(l.Chain.Hype,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (CH(),HH));return f(T)}).with(l.Chain.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (dH(),iH));return f(T)}).with(l.Chain.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (aH(),rH));return f(T)}).with(l.Chain.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => (QH(),GH));return f(T)}).with(l.Chain.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (G1(),X1));return f(T)}).with(l.Chain.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => ($T(),wT));return f(T)}).with(l.Chain.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (PT(),ST));return f(T)}).with(l.Chain.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (GC(),XC));return f(T)}).with(l.Chain.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (cH(),gH));return f(T)}).with(l.Chain.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (j1(),v1));return f(T)}).with(l.Chain.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (nT(),oT));return f(T)}).otherwise(()=>{throw new l.SwapKitError("toolbox_not_supported",{chain:y})})}
|
|
1
|
+
var o8=Object.create;var{getPrototypeOf:V8,defineProperty:q0,getOwnPropertyNames:WC,getOwnPropertyDescriptor:E8}=Object,YC=Object.prototype.hasOwnProperty;function LC(y){return this[y]}var n8,v8,JC=(y,T,H)=>{var f=y!=null&&typeof y==="object";if(f){var C=T?n8??=new WeakMap:v8??=new WeakMap,U=C.get(y);if(U)return U}H=y!=null?o8(V8(y)):{};let q=T||!y||!y.__esModule?q0(H,"default",{value:y,enumerable:!0}):H;for(let X of WC(y))if(!YC.call(q,X))q0(q,X,{get:LC.bind(y,X),enumerable:!0});if(f)C.set(y,q);return q},ky=(y)=>{var T=(ZC??=new WeakMap).get(y),H;if(T)return T;if(T=q0({},"__esModule",{value:!0}),y&&typeof y==="object"||typeof y==="function"){for(var f of WC(y))if(!YC.call(T,f))q0(T,f,{get:LC.bind(y,f),enumerable:!(H=E8(y,f))||H.enumerable})}return ZC.set(y,T),T},ZC;var j8=(y)=>y;function b8(y,T){this[y]=j8.bind(null,T)}var Dy=(y,T)=>{for(var H in T)q0(y,H,{get:T[H],enumerable:!0,configurable:!0,set:b8.bind(T,H)})};var v=(y,T)=>()=>(y&&(T=y(y=0)),T);function jf(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let T=y.slice(2);if(T.length===0||T.length>64)return!1;return K8.test(T)}function zC({derivationPath:y,provider:T,...H}={}){let f,C=t.derivationPathToString(y||t.NetworkDerivationPath[t.Chain.Aptos],{allHardened:!0});async function U(){if(f)return f;return f=await Of.match(H).with({phrase:Of.P.string},async({phrase:A})=>{let{Ed25519Account:R}=await import("@aptos-labs/ts-sdk");return R.fromDerivationPath({mnemonic:A,path:C})}).with({signer:Of.P.any},({signer:A})=>A).otherwise(()=>{return}),f}async function q(){let{Aptos:A,AptosConfig:R,Network:I}=await import("@aptos-labs/ts-sdk"),F=new R({clientConfig:{http2:!1},fullnode:T||t.getRPCUrlSync(t.Chain.Aptos),network:I.MAINNET});return new A(F)}async function X(){return(await U())?.accountAddress.toString()||""}async function G(A){let R=A||await X();if(!R)throw new t.SwapKitError("toolbox_aptos_address_required");let{baseDecimal:I,chain:F}=t.getChainConfig(t.Chain.Aptos);try{let D=await q(),O=await D.getAccountAPTAmount({accountAddress:R}),J=[t.AssetValue.from({chain:F,fromBaseDecimal:I,value:O.toString()})],_=await D.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:R}}}});for(let Z of _){if(Z.asset_type===Df.COIN_TYPE||Number(Z.amount)<=0)continue;let B=Z.asset_type;if(B){let k=("metadata"in Z&&typeof Z.metadata==="object"&&Z.metadata!==null?Z.metadata:void 0)?.decimals??I;J.push(t.AssetValue.from({asset:`${t.Chain.Aptos}.APT-${B}`,fromBaseDecimal:k,value:String(Z.amount)}))}}return J}catch{return[t.AssetValue.from({chain:F})]}}async function Q(A){if(!A){let{baseDecimal:_}=t.getChainConfig(t.Chain.Aptos),Z=T||t.getRPCUrlSync(t.Chain.Aptos),B=await fetch(`${Z}/estimate_gas_price`),{gas_estimate:w}=await B.json();return t.AssetValue.from({chain:t.Chain.Aptos,fromBaseDecimal:_,value:String(w)})}let R=await U();if(!R)throw new t.SwapKitError("toolbox_aptos_no_signer");let I=await Y(A),F=await q(),[D]=await F.transaction.simulate.simple({signerPublicKey:R.publicKey,transaction:I});if(!D)throw new t.SwapKitError("toolbox_aptos_transaction_creation_error");let O=BigInt(D.gas_used)*BigInt(D.gas_unit_price),{baseDecimal:J}=t.getChainConfig(t.Chain.Aptos);return t.AssetValue.from({chain:t.Chain.Aptos,fromBaseDecimal:J,value:O.toString()})}async function Y({recipient:A,assetValue:R,maxGasAmount:I,sender:F}){if(!jf(A))throw new t.SwapKitError("core_transaction_invalid_recipient_address");let D=F||await X();if(!D)throw new t.SwapKitError("toolbox_aptos_no_sender");let{AccountAddress:O}=await import("@aptos-labs/ts-sdk"),J=await q(),_=O.from(D);try{let Z=R.isGasAsset?Df.TRANSFER:Df.FUNGIBLE_STORE_TRANSFER,B=Of.match({address:R?.address,isGasAsset:R.isGasAsset}).with({isGasAsset:!0},()=>[O.from(A),R.getBaseValue("bigint")]).with({address:Of.P.string},({address:w})=>[O.from(w),O.from(A),R.getBaseValue("bigint")]).otherwise(()=>null);if(!B)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");return J.transaction.build.simple({data:{function:Z,functionArguments:B,typeArguments:R.isGasAsset?[]:[Df.FUNGIBLE_ASSET_METADATA]},options:I?{maxGasAmount:I}:void 0,sender:_})}catch(Z){if(Z instanceof t.SwapKitError)throw Z;throw new t.SwapKitError("toolbox_aptos_transaction_creation_error",Z)}}async function z(A){let R=await U();if(!R)throw new t.SwapKitError("toolbox_aptos_no_signer");return(await q()).transaction.sign({signer:R,transaction:A})}async function L({assetValue:A,maxGasAmount:R,recipient:I}){let F=await U();if(!F)throw new t.SwapKitError("toolbox_aptos_no_signer");if(!jf(I))throw new t.SwapKitError("core_transaction_invalid_recipient_address");try{let D=F.accountAddress.toString(),O=await Y({assetValue:A,maxGasAmount:R,recipient:I,sender:D});return(await(await q()).signAndSubmitTransaction({signer:F,transaction:O})).hash}catch(D){if(D instanceof t.SwapKitError)throw D;throw new t.SwapKitError("toolbox_aptos_transaction_creation_error",D)}}async function W({senderAuthenticator:A,transaction:R}){try{return(await(await q()).transaction.submit.simple({senderAuthenticator:A,transaction:R})).hash}catch(I){throw new t.SwapKitError("toolbox_aptos_broadcast_error",I)}}async function N(A){let R=await z(A);return W({senderAuthenticator:R,transaction:A})}return{broadcastTransaction:W,createTransaction:Y,estimateTransactionFee:Q,getAddress:X,getBalance:G,signAndBroadcastTransaction:N,signTransaction:z,transfer:L,validateAddress:jf}}function AC({provider:y}){return async function({assetValue:H,recipient:f}){if(!jf(f))throw new t.SwapKitError("core_transaction_invalid_recipient_address");let{AccountAddress:C}=await import("@aptos-labs/ts-sdk");if(H.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[C.from(f).toString(),H.getBaseValue("string")],function:Df.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let U=H.address;if(!U)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[U,C.from(f).toString(),H.getBaseValue("string")],function:Df.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[Df.FUNGIBLE_ASSET_METADATA]})).hash}}var t,Of,Df,K8;var MC=v(()=>{t=require("@swapkit/helpers"),Of=require("ts-pattern"),Df={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"},K8=/^[0-9a-fA-F]+$/});var u0={};Dy(u0,{validateAptosAddress:()=>jf,getAptosToolbox:()=>zC,createAptosExtensionTransfer:()=>AC});module.exports=ky(u0);var h0=v(()=>{MC()});function BC(){function y(){let T=Date.now(),H=Z1||T;return Z1=H,T>Z1?T:H+1}return p8+y().toString(36)}function Sy(y){return async function(H,f=!0){let C=await NC.SwapKitApi.getChainBalance({address:H,chain:y,scamFilter:f}),{baseDecimal:U}=X0.getChainConfig(y),q=C.map(({identifier:G,value:Q,decimal:Y})=>{return new X0.AssetValue({decimal:Y||U,identifier:G,value:Q})});if(!q.some((G)=>G.isGasAsset))return[X0.AssetValue.from({chain:y}),...q];return q}}var X0,NC,p8,Z1=0;var sy=v(()=>{X0=require("@swapkit/helpers"),NC=require("@swapkit/helpers/api"),p8=typeof process<"u"&&process.pid?process.pid.toString(36):""});function G0(y){return{getBalance:Sy(y)}}function l8(y){return y}var m0=v(()=>{sy()});function OC(y){return new oy.JsonRpcProvider(y)}async function u8(y,T){return OC(T||await c.getRPCUrl(y))}function z1(y){let T=c.SKConfig.get("rpcUrls")[y]?.filter(Boolean)??[];if(T.length===0)throw new c.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:y});let{chainId:H}=c.getChainConfig(y),f=oy.Network.from(Number(H)),[C]=T;if(T.length===1)return new oy.JsonRpcProvider(C,f,{staticNetwork:f});return new oy.FallbackProvider(T.map((U,q)=>({priority:q+1,provider:new oy.JsonRpcProvider(U,f,{staticNetwork:f}),stallTimeout:2000})),f,{quorum:1})}function qf(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function A1(y){let{explorerUrl:T,chainIdHex:H,rpcUrls:f}=c.getChainConfig(y);return function(){return y!==c.Chain.Ethereum?{...h8({chain:y}),blockExplorerUrls:[T],chainId:H,rpcUrls:f}:void 0}}function M1(y){return![c.Chain.Adi,c.Chain.Arbitrum,c.Chain.BinanceSmartChain,c.Chain.Robinhood].includes(y)}function h8({chain:y}){let{name:T,nativeCurrency:H,baseDecimal:f}=c.getChainConfig(y);return J1.match(y).with(c.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Chain.Ethereum}})).with(c.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Chain.Ethereum}})).with(c.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(c.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Chain.Ethereum}})).with(c.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(c.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(c.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(c.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(c.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Chain.Ethereum}})).with(c.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:c.Chain.Polygon}})).with(c.Chain.Robinhood,()=>({chainName:"Robinhood Chain",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Chain.Ethereum}})).otherwise(()=>({chainName:T,nativeCurrency:{decimals:f,name:H,symbol:H}}))}async function N1(y,T){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let H={...T,nonce:T.nonce!==void 0?BigInt(T.nonce):void 0};return await y.authorize(H)}function RC(y,T){let H=T!==void 0?`index ${T}: `:"",f=(C,U)=>{throw new c.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:C,message:`${H}${U}`}})};J1.match(y).when(({chainId:C})=>typeof C!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:C})=>!m8(C),()=>f("address","address must be a valid checksummed address")).when(({nonce:C})=>typeof C!=="bigint"||C<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:C})=>!C,()=>f("signature","signature is required")).when(({signature:C})=>typeof C?.yParity!=="number"||![0,1].includes(C.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:C})=>!DC(C?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:C})=>!DC(C?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function kC(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:T})=>y[T]!=null).map(({key:T,type:H})=>({name:T,type:H}))}function W1(y){return y.charAt(0).toUpperCase()+y.slice(1)}function Y1(y,T){if(y.isTuple()&&y.components){let H=W1(y.name);return T[H]=y.components.map((f)=>({name:f.name,type:Y1(f,T)})),H}if(y.isArray()){let H=y.arrayChildren;if(H?.isTuple()&&H.components){let f=W1(y.name.replace(/s$/,""));return T[f]=H.components.map((C)=>({name:C.name,type:Y1(C,T)})),`${f}[]`}return`${H?.type??"bytes"}[]`}return y.type}function L1(y,T){if(typeof y==="bigint")return y;if(T?.isTuple()&&typeof y?.toObject==="function"){let H=y.toObject(),f={};for(let[C,U]of(T.components??[]).entries())f[U.name]=L1(H[U.name]??y[C],U);return f}if(Array.isArray(y)){let H=T?.arrayChildren;return y.map((f)=>L1(f,H??void 0))}return y}function t8({chain:y,abi:T,data:H,to:f}){let U=new oy.Interface(T).parseTransaction({data:H});if(!U)throw new c.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let q={},X=W1(U.name);q[X]=U.fragment.inputs.map((L)=>({name:L.name,type:Y1(L,q)}));let G={};for(let[L,W]of U.fragment.inputs.entries())G[W.name]=L1(U.args[L],W);let{chainId:Q}=c.getChainConfig(y),Y={chainId:Number(Q),verifyingContract:oy.getAddress(f)},z=kC(Y);return{domain:Y,message:G,primaryType:X,types:{EIP712Domain:z,...q}}}function B1(y,T){if(!Array.isArray(y)||y.length===0)throw new c.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[H,f]of y.entries())if(RC(f,H),T!==void 0&&f.chainId!==T)throw new c.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${H}: authorization chainId (${f.chainId}) does not match transaction chainId (${T})`}})}var c,oy,J1,DC=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),m8=(y)=>{try{return typeof y==="string"&&!!oy.getAddress(y)}catch{return!1}};var Q0=v(()=>{c=require("@swapkit/helpers"),oy=require("ethers"),J1=require("ts-pattern")});var wC;var $C=v(()=>{wC=[{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"}]});function Kf({chain:y=S.Chain.Ethereum,provider:T,signer:H,isEIP1559Compatible:f=!0}){return{approve:r8({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),approvedAmount:IC({chain:y,provider:T}),broadcastTransaction:T.broadcastTransaction,call:$1({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),createApprovalTx:yU({chain:y,provider:T,signer:H}),createContract:R1({chain:y,provider:T}),createContractTxObject:Rf({chain:y,provider:T}),createTransaction:D1({chain:y,provider:T,signer:H}),createTransferTx:D1({chain:y,provider:T,signer:H}),EIP1193SendTransaction:lf(T),estimateCall:SC({provider:T,signer:H}),estimateGasLimit:s8({chain:y,provider:T,signer:H}),estimateGasPrices:kf({chain:y,isEIP1559Compatible:f,provider:T}),estimateTransactionFee:fU({chain:y,isEIP1559Compatible:f,provider:T}),getAddress:()=>{return H?H.getAddress():void 0},getBalance:G0(y).getBalance,getNetworkParams:A1(y),isApproved:d8({chain:y,provider:T}),sendTransaction:PC({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),signAuthorization:e8({signer:H}),signMessage:H?(C)=>H.signMessage(C):void 0,signTypedData:H?({domain:C,types:U,value:q})=>H.signTypedData(C,U,q):void 0,transfer:a8({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),validateAddress:Z0}}function Z0(y){try{return Vy.getAddress(y),!0}catch{return!1}}function pf(y){return y instanceof Vy.BrowserProvider}function W0(y,T,H){return new Vy.Contract(y,Vy.Interface.from(T),H)}function R1({provider:y}){return function(H,f){return new Vy.Contract(H,Vy.Interface.from(f),y)}}function k1({abi:y,funcName:T}){let H=y.find((f)=>f.name===T);if(!H)throw new S.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:T});return H.stateMutability&&g8.includes(H.stateMutability)}function FC(y){return Vy.getAddress(y)}function lf(y){return function({value:H,...f}){if(!pf(y))throw new S.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:C,gasPrice:U,maxFeePerGas:q,maxPriorityFeePerGas:X,...G}=f;return y.send("eth_sendTransaction",[{...G,value:qf(BigInt(H||0))}])}}function xC(y,T){let H=uf(y,T);if(H)return Vy.getAddress(H.toLowerCase());throw new S.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function uf({chain:y,symbol:T,ticker:H},f){try{let C=y===S.Chain.BinanceSmartChain&&T==="BNB"&&H==="BNB",U=y===S.Chain.Hyperevm&&T==="HYPE"&&H==="HYPE",q=y===f&&T===f&&H===f,X=i8.includes(y)&&T==="ETH"&&H==="ETH";if(q||C||U||X)return w1[f];return Vy.getAddress(T.slice(H.length+1).replace(/^0X/,""))}catch{return null}}function Rf({provider:y}){return async({contractAddress:T,abi:H,funcName:f,funcParams:C=[],txOverrides:U})=>{let q=await W0(T,H,y).getFunction(f).populateTransaction(...C.concat(U).filter((X)=>typeof X<"u"));return{...q,value:qf(BigInt(q.value||0))}}}function kf({chain:y,provider:T,isEIP1559Compatible:H=!0}){return O1.match(y).with(S.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:C,maxPriorityFeePerGas:U}=await T.getFeeData();if(!C||U===null)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{[S.FeeOption.Average]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(C,S.FeeOption.Average),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(U,S.FeeOption.Average)},[S.FeeOption.Fast]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(C,S.FeeOption.Fast),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(U,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(C,S.FeeOption.Fastest),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(U,S.FeeOption.Fastest)}}}catch(C){throw new S.SwapKitError("toolbox_evm_gas_estimation_error",{error:C.msg??C.toString()})}}}).with(S.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:C}=await T.getFeeData();if(!C)throw new S.SwapKitError("toolbox_evm_no_fee_data");let U=C*12n/10n;return{[S.FeeOption.Average]:{gasPrice:U},[S.FeeOption.Fast]:{gasPrice:S.applyFeeMultiplierToBigInt(U,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{gasPrice:S.applyFeeMultiplierToBigInt(U,S.FeeOption.Fastest)}}}catch(C){throw new S.SwapKitError("toolbox_evm_gas_estimation_error",{error:C.msg??C.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:C,maxPriorityFeePerGas:U,gasPrice:q}=await T.getFeeData();if(H){if(C===null||U===null)throw new S.SwapKitError("toolbox_evm_no_fee_data");return{[S.FeeOption.Average]:{maxFeePerGas:C,maxPriorityFeePerGas:U},[S.FeeOption.Fast]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(C,S.FeeOption.Fast),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(U,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{maxFeePerGas:S.applyFeeMultiplierToBigInt(C,S.FeeOption.Fastest),maxPriorityFeePerGas:S.applyFeeMultiplierToBigInt(U,S.FeeOption.Fastest)}}}if(!q)throw new S.SwapKitError("toolbox_evm_no_gas_price");return{[S.FeeOption.Average]:{gasPrice:q},[S.FeeOption.Fast]:{gasPrice:S.applyFeeMultiplierToBigInt(q,S.FeeOption.Fast)},[S.FeeOption.Fastest]:{gasPrice:S.applyFeeMultiplierToBigInt(q,S.FeeOption.Fastest)}}}catch(C){throw new S.SwapKitError("toolbox_evm_gas_estimation_error",{error:C.msg??C.toString()})}}})}function $1({provider:y,isEIP1559Compatible:T,signer:H,chain:f}){return async function({callProvider:U,contractAddress:q,abi:X,funcName:G,funcParams:Q=[],txOverrides:Y={},feeOption:z=S.FeeOption.Fast}){let L=U||y;if(!q)throw new S.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let W=k1({abi:X,funcName:G});if(W&&pf(L)&&H){let R=Rf({chain:f,provider:L}),I=Y?.from||await H?.getAddress(),F=await R({abi:X,contractAddress:q,funcName:G,funcParams:Q,txOverrides:{...Y,from:I}});return lf(L)(F)}let N=W0(q,X,L);if(W){if(!H)throw new S.SwapKitError("toolbox_evm_no_signer");let R=Y?.from||await H.getAddress();if(!R)throw new S.SwapKitError("toolbox_evm_no_signer_address");let I=N.connect(H),F=kf({chain:f,isEIP1559Compatible:T,provider:y}),{maxFeePerGas:D,maxPriorityFeePerGas:O,gasPrice:J}=(await F())[z],_=await N.getFunction(G).estimateGas(...Q,Y),Z=await I[G](...Q,{...Y,gasLimit:_,gasPrice:J,maxFeePerGas:D,maxPriorityFeePerGas:O,nonce:Y?.nonce||await L.getTransactionCount(R)});return typeof Z?.hash==="string"?Z?.hash:Z}let A=await N[G]?.(...Q);return typeof A?.hash==="string"?A?.hash:A}}function IC({provider:y,chain:T}){return function({assetAddress:f,spenderAddress:C,from:U}){return $1({chain:T,isEIP1559Compatible:!0,provider:y})({abi:bf.erc20ABI,contractAddress:f,funcName:"allowance",funcParams:[U,C]})}}function d8({provider:y,chain:T}){return async function({assetAddress:f,spenderAddress:C,from:U,amount:q=_0}){let X=await IC({chain:T,provider:y})({assetAddress:f,from:U,spenderAddress:C});return S.SwapKitNumber.fromBigInt(X).gte(S.SwapKitNumber.fromBigInt(BigInt(q)))}}function r8({signer:y,isEIP1559Compatible:T=!0,provider:H,chain:f}){return async function({assetAddress:U,spenderAddress:q,feeOptionKey:X=S.FeeOption.Fast,amount:G,gasLimitFallback:Q,from:Y,nonce:z}){let L=[q,BigInt(G||_0)],W=await y?.getAddress()||Y,N={abi:bf.erc20ABI,contractAddress:U,funcName:"approve",funcParams:L,signer:y,txOverrides:{from:W}};if(pf(H)){let R=Rf({chain:f,provider:H}),I=lf(H),F=await R(N);return I(F)}return $1({chain:f,isEIP1559Compatible:T,provider:H,signer:y})({...N,feeOption:X,funcParams:L,txOverrides:{from:W,gasLimit:Q?BigInt(Q.toString()):void 0,nonce:z}})}}function a8({signer:y,isEIP1559Compatible:T=!0,provider:H}){return async function({assetValue:C,memo:U,recipient:q,feeOptionKey:X=S.FeeOption.Fast,sender:G,...Q}){let{hexlify:Y,toUtf8Bytes:z}=await import("ethers"),L=C.getBaseValue("bigint"),W=C.chain,N=G||await y?.getAddress(),A=PC({chain:W,isEIP1559Compatible:T,provider:H,signer:y});if(!N)throw new S.SwapKitError("toolbox_evm_no_from_address");if(C.isGasAsset){let J={...Q,data:Y(z(U||"")),feeOptionKey:X,from:N,to:q,value:qf(L)};return A(J)}if(!uf(C,W))throw new S.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:I,maxPriorityFeePerGas:F,gasPrice:D}=(await kf({chain:W,isEIP1559Compatible:T,provider:H})())[X],O=await D1({chain:W,provider:H,signer:y})({assetValue:C,data:Y(z(U||"")),gasPrice:D,maxFeePerGas:I,maxPriorityFeePerGas:F,memo:U,recipient:q,sender:N});return A(O)}}function SC({provider:y,signer:T}){return function({contractAddress:f,abi:C,funcName:U,funcParams:q=[],txOverrides:X}){if(!f)throw new S.SwapKitError("toolbox_evm_no_contract_address");let G=W0(f,C,y);return T?G.connect(T).getFunction(U).estimateGas(...q,X):G.getFunction(U).estimateGas(...q,X)}}function s8({provider:y,signer:T}){return async function({assetValue:f,recipient:C,memo:U,data:q,sender:X,funcName:G,funcParams:Q,txOverrides:Y}){let z=f.bigIntValue,L=f.isGasAsset?null:uf(f,f.chain);if(L&&G)return SC({provider:y,signer:T})({abi:bf.erc20ABI,contractAddress:L,funcName:G,funcParams:Q,txOverrides:Y});let{hexlify:W,toUtf8Bytes:N}=await import("ethers");return y.estimateGas({data:q?q:U?W(N(U)):void 0,from:X,to:C,value:z})}}function e8({signer:y}){if(!y)return;return(T)=>N1(y,T)}function PC({provider:y,signer:T,isEIP1559Compatible:H=!0,chain:f}){return async function({feeOptionKey:U=S.FeeOption.Fast,...q}){let{from:X,to:G,data:Q,value:Y,...z}=q;if(!T)throw new S.SwapKitError("toolbox_evm_no_signer");if(!G)throw new S.SwapKitError("toolbox_evm_no_to_address");let L={...z,data:Q||"0x",from:X,to:G,value:BigInt(Y||0)};if(pf(y))return lf(y)(L);let W=X||await T.getAddress(),N=q.nonce||await y.getTransactionCount(W),A=(await y.getNetwork()).chainId,R=x1(L,H);if(R==="eip7702")B1(L.authorizations||[],A);let I=O1.match(R).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),F={...L,chainId:A,nonce:N,type:I,...R==="eip7702"&&{authorizationList:L.authorizations}},D=kf({chain:f,isEIP1559Compatible:H,provider:y}),J=R!=="legacy"&&!(L.maxFeePerGas&&L.maxPriorityFeePerGas)||!L.gasPrice?Object.entries((await D())[U]).reduce((Z,[B,w])=>({...Z,[B]:qf(BigInt(w))}),{}):{},_;try{_=qf(L.gasLimit?BigInt(L.gasLimit):await y.estimateGas(F)*11n/10n)}catch(Z){throw new S.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:Z})}try{let Z={...F,gasLimit:_,...J};try{return(await T.sendTransaction(Z)).hash}catch{let B=await T.signTransaction({...Z,from:W});return(await y.broadcastTransaction(B)).hash}}catch(Z){throw new S.SwapKitError("toolbox_evm_error_sending_transaction",{error:Z})}}}function D1({provider:y,signer:T}){return async function({assetValue:f,memo:C,recipient:U,data:q,sender:X,maxFeePerGas:G,maxPriorityFeePerGas:Q,gasPrice:Y,...z}){let L=f.getBaseValue("bigint"),W=f.chain,N=X||await T?.getAddress();if(!N)throw new S.SwapKitError("toolbox_evm_no_from_address");if(S.isGasAsset(f)){let{hexlify:I,toUtf8Bytes:F}=await import("ethers");return{...z,data:q||I(F(C||"")),from:N,to:U,value:qf(L)}}let A=uf(f,W);if(!A)throw new S.SwapKitError("toolbox_evm_no_contract_address");return Rf({chain:f.chain,provider:y})({abi:bf.erc20ABI,contractAddress:A,funcName:"transfer",funcParams:[U,L],txOverrides:{from:N,gasPrice:Y,maxFeePerGas:G,maxPriorityFeePerGas:Q}})}}function yU({provider:y,signer:T,chain:H}){return async function({assetAddress:C,spenderAddress:U,amount:q,from:X}){let G=await T?.getAddress()||X,Q=Rf({chain:H,provider:y}),Y=["bigint","number"].includes(typeof q)?q:q||_0;return await Q({abi:bf.erc20ABI,contractAddress:C,funcName:"approve",funcParams:[U,BigInt(Y)],txOverrides:{from:G}})}}function fU({provider:y,isEIP1559Compatible:T=!0,chain:H}){return async function({feeOption:C=S.FeeOption.Fast,...U}){let X=await kf({chain:H,isEIP1559Compatible:T,provider:y})(),G=await y.estimateGas(U),Q=S.AssetValue.from({chain:H}),{gasPrice:Y,maxFeePerGas:z,maxPriorityFeePerGas:L}=X[C];if(!T&&Y)return Q.set(S.SwapKitNumber.fromBigInt(Y*G,Q.decimal));if(z&&L){let W=(z+L)*G;return Q.set(S.SwapKitNumber.fromBigInt(W,Q.decimal))}throw new S.SwapKitError("toolbox_evm_no_gas_price")}}var S,bf,Vy,O1,_0,g8,c8,w1,i8,t0=(y)=>y.type===4||(y.authorizations?.length??0)>0,F1=(y)=>!t0(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),x1=(y,T=!0)=>{if(t0(y))return"eip7702";if(F1(y)||T)return"eip1559";return"legacy"};var g0=v(()=>{m0();Q0();S=require("@swapkit/helpers"),bf=require("@swapkit/helpers/contracts"),Vy=require("ethers"),O1=require("ts-pattern"),_0=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");g8=["payable","nonpayable"];c8=S.EVMChains.reduce((y,T)=>{return y[T]="0x0000000000000000000000000000000000000000",y},{}),w1={...c8,[S.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[S.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},i8=[S.Chain.Arbitrum,S.Chain.Aurora,S.Chain.Base,S.Chain.Optimism,S.Chain.Robinhood]});function c0(y){let T=Yy(qy.Chain.Ethereum)(y);async function H(f,C="0x5ba1e12693dc8f9c48aad8770482f4739beed696",U="aggregate",q=qy.FeeOption.Fast){let X=await T.createContractTxObject({abi:wC,contractAddress:C,funcName:U,funcParams:[f]});return T.sendTransaction({...X,feeOptionKey:q})}return{...T,multicall:H}}function Yy(y){return function({provider:H,...f}){let C=M1(y),U=Y0.match(f).with({phrase:Y0.P.string},({phrase:X})=>oC.HDNodeWallet.fromPhrase(X).connect(H)).with({signer:Y0.P.any},({signer:X})=>X).otherwise(()=>{return});return Kf({chain:y,isEIP1559Compatible:C,provider:H,signer:U})}}var qy,oC,Y0,i0,d0,r0,a0,s0,e0,yT,VC,fT,TT,HT,CT,UT,qT,XT,GT,QT,_T,ZT,L0,WT,YT;var I1=v(()=>{$C();Q0();g0();qy=require("@swapkit/helpers"),oC=require("ethers"),Y0=require("ts-pattern");i0=Yy(qy.Chain.Adi),d0=Yy(qy.Chain.Arbitrum),r0=Yy(qy.Chain.Aurora),a0=Yy(qy.Chain.Avalanche),s0=Yy(qy.Chain.Base),e0=Yy(qy.Chain.Berachain),yT=Yy(qy.Chain.BinanceSmartChain),VC=Yy(qy.Chain.Botanix),fT=Yy(qy.Chain.Core),TT=Yy(qy.Chain.Corn),HT=Yy(qy.Chain.Cronos),CT=Yy(qy.Chain.Gnosis),UT=Yy(qy.Chain.Robinhood),qT=Yy(qy.Chain.Hyperevm),XT=Yy(qy.Chain.Linea),GT=Yy(qy.Chain.Polygon),QT=Yy(qy.Chain.MegaETH),_T=Yy(qy.Chain.Monad),ZT=Yy(qy.Chain.Plasma),L0=Yy(qy.Chain.Sonic),WT=Yy(qy.Chain.Unichain),YT=Yy(qy.Chain.XLayer)});var EC;var nC=v(()=>{EC=[{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"}]});function S1(y){return new LT.Contract(HU,EC,y)}function vC(y){return async function(){let H=S1(y);if(H&&"l1BaseFee"in H)return await H?.l1BaseFee();return}}function jC(y){return async function({from:H,to:f,nonce:C,...U}){let{Transaction:q}=await import("ethers");if(!f)throw new Ly.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return q.from({...U,authorizationList:U.authorizationList,nonce:C?C:H?await y.getTransactionCount(H):0,to:f}).serialized}}function bC(y){return async function(H){let f=S1(y),C=await jC(y)(H);if(f&&"getL1Fee"in f)return f.getL1Fee(C)}}function KC(y){return async function(H){let C=(await y.getFeeData()).gasPrice??0n,U=await y.estimateGas(H);return C*U}}function CU(y){return async function(H){let f=await bC(y)(H)??0n,C=await KC(y)(H);return f+C}}function UU(y){return async function(H){let f=S1(y),C=await jC(y)(H);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(C)}}function qU(y){return async function(){try{let{maxFeePerGas:H,maxPriorityFeePerGas:f,gasPrice:C}=await y.getFeeData(),U=await vC(y)(),q=C;if(!(H&&f))throw new Ly.SwapKitError("toolbox_evm_no_fee_data");return{[Ly.FeeOption.Average]:{gasPrice:q,l1GasPrice:U,maxFeePerGas:H,maxPriorityFeePerGas:f},[Ly.FeeOption.Fast]:{gasPrice:Ly.applyFeeMultiplierToBigInt(q,Ly.FeeOption.Fast),l1GasPrice:Ly.applyFeeMultiplierToBigInt(U||0n,Ly.FeeOption.Fast),maxFeePerGas:H,maxPriorityFeePerGas:Ly.applyFeeMultiplierToBigInt(f,Ly.FeeOption.Fast)},[Ly.FeeOption.Fastest]:{gasPrice:Ly.applyFeeMultiplierToBigInt(q,Ly.FeeOption.Fastest),l1GasPrice:Ly.applyFeeMultiplierToBigInt(U||0n,Ly.FeeOption.Fastest),maxFeePerGas:H,maxPriorityFeePerGas:Ly.applyFeeMultiplierToBigInt(f,Ly.FeeOption.Fastest)}}}catch(H){throw new Ly.SwapKitError("toolbox_evm_gas_estimation_error",{error:H.msg??H.toString()})}}}function JT({provider:y,...T}){let H=J0.match(T).with({phrase:J0.P.string},({phrase:U})=>LT.HDNodeWallet.fromPhrase(U).connect(y)).with({signer:J0.P.any},({signer:U})=>U).otherwise(()=>{return}),f=Kf({provider:y,signer:H}),C=vC(y);return{...f,estimateGasPrices:qU(y),estimateL1Gas:UU(y),estimateL1GasCost:bC(y),estimateL2GasCost:KC(y),estimateTotalGasCost:CU(y),getBalance:G0(Ly.Chain.Optimism).getBalance,getL1GasPrice:C}}var Ly,LT,J0,HU="0x420000000000000000000000000000000000000f";var P1=v(()=>{m0();nC();g0();Ly=require("@swapkit/helpers"),LT=require("ethers"),J0=require("ts-pattern")});var uC={};Dy(uC,{validateEVMAddress:()=>Z0,toChecksumAddress:()=>FC,isStateChangingCall:()=>k1,isEIP7702Transaction:()=>t0,isEIP1559Transaction:()=>F1,isBrowserProvider:()=>pf,getTokenAddress:()=>uf,getEvmToolboxAsync:()=>lC,getEvmToolbox:()=>o1,getEstimateGasPrices:()=>kf,getEVMTxType:()=>x1,getEIP1193SendTransaction:()=>lf,getCreateContractTxObject:()=>Rf,getCreateContract:()=>R1,getChecksumAddressFromAsset:()=>xC,createContract:()=>W0,XLayerToolbox:()=>YT,UNIToolbox:()=>WT,SONICToolbox:()=>L0,PLASMAToolbox:()=>ZT,OPToolbox:()=>JT,MONADToolbox:()=>_T,MEGAETHToolbox:()=>QT,MAX_APPROVAL:()=>_0,MATICToolbox:()=>GT,LINEAToolbox:()=>XT,HYPEREVMToolbox:()=>qT,HOODToolbox:()=>UT,GNOToolbox:()=>CT,ETHToolbox:()=>c0,ContractAddress:()=>w1,CROToolbox:()=>HT,CORNToolbox:()=>TT,COREToolbox:()=>fT,BotanixToolbox:()=>VC,BaseEVMToolbox:()=>Kf,BSCToolbox:()=>yT,BERAToolbox:()=>e0,BASEToolbox:()=>s0,AVAXToolbox:()=>a0,AURORAToolbox:()=>r0,ARBToolbox:()=>d0,ADIToolbox:()=>i0});function o1(y,T){return pC.match(y).with(Gy.Chain.Adi,()=>i0(T)).with(Gy.Chain.Arbitrum,()=>d0(T)).with(Gy.Chain.Aurora,()=>r0(T)).with(Gy.Chain.Avalanche,()=>a0(T)).with(Gy.Chain.Base,()=>s0(T)).with(Gy.Chain.Berachain,()=>e0(T)).with(Gy.Chain.BinanceSmartChain,()=>yT(T)).with(Gy.Chain.Botanix,()=>L0(T)).with(Gy.Chain.Core,()=>fT(T)).with(Gy.Chain.Corn,()=>TT(T)).with(Gy.Chain.Cronos,()=>HT(T)).with(Gy.Chain.Ethereum,()=>c0(T)).with(Gy.Chain.Gnosis,()=>CT(T)).with(Gy.Chain.Hyperevm,()=>qT(T)).with(Gy.Chain.Linea,()=>XT(T)).with(Gy.Chain.MegaETH,()=>QT(T)).with(Gy.Chain.Monad,()=>_T(T)).with(Gy.Chain.Optimism,()=>JT(T)).with(Gy.Chain.Plasma,()=>ZT(T)).with(Gy.Chain.Polygon,()=>GT(T)).with(Gy.Chain.Robinhood,()=>UT(T)).with(Gy.Chain.Sonic,()=>L0(T)).with(Gy.Chain.Unichain,()=>WT(T)).with(Gy.Chain.XLayer,()=>YT(T)).exhaustive()}async function lC(y,T){let H={...T,provider:T?.provider||z1(y)};return o1(y,H)}var Gy,pC;var V1=v(()=>{Q0();I1();P1();Gy=require("@swapkit/helpers"),pC=require("ts-pattern");g0();I1();P1()});var hC;var mC=v(()=>{((H)=>{H.Test="goerli";H.Main="homestead"})(hC||={})});var tC={};Dy(tC,{validateEVMAddress:()=>Z0,validateAuthorizations:()=>B1,validateAuthorization:()=>RC,toHexString:()=>qf,toChecksumAddress:()=>FC,signAuthorization:()=>N1,parseEIP712FromEVMTx:()=>t8,isStateChangingCall:()=>k1,isEIP7702Transaction:()=>t0,isEIP1559Transaction:()=>F1,isBrowserProvider:()=>pf,getTokenAddress:()=>uf,getProviderSync:()=>OC,getProvider:()=>u8,getNetworkParams:()=>A1,getIsEIP1559Compatible:()=>M1,getFallbackProvider:()=>z1,getEvmToolboxAsync:()=>lC,getEvmToolbox:()=>o1,getEvmApi:()=>G0,getEstimateGasPrices:()=>kf,getEVMTxType:()=>x1,getEIP1193SendTransaction:()=>lf,getCreateContractTxObject:()=>Rf,getCreateContract:()=>R1,getChecksumAddressFromAsset:()=>xC,createCustomEvmApi:()=>l8,createContract:()=>W0,buildEIP712DomainType:()=>kC,XLayerToolbox:()=>YT,UNIToolbox:()=>WT,SONICToolbox:()=>L0,PLASMAToolbox:()=>ZT,OPToolbox:()=>JT,MONADToolbox:()=>_T,MEGAETHToolbox:()=>QT,MAX_APPROVAL:()=>_0,MATICToolbox:()=>GT,LINEAToolbox:()=>XT,HYPEREVMToolbox:()=>qT,HOODToolbox:()=>UT,GNOToolbox:()=>CT,EthNetwork:()=>hC,ETHToolbox:()=>c0,ContractAddress:()=>w1,CROToolbox:()=>HT,CORNToolbox:()=>TT,COREToolbox:()=>fT,BotanixToolbox:()=>VC,BaseEVMToolbox:()=>Kf,BSCToolbox:()=>yT,BERAToolbox:()=>e0,BASEToolbox:()=>s0,AVAXToolbox:()=>a0,AURORAToolbox:()=>r0,ARBToolbox:()=>d0,ADIToolbox:()=>i0});module.exports=ky(tC);var E1=v(()=>{m0();Q0();V1();mC()});async function v1(y,T){let H=await fetch(`${sC}${y}`,{...T,headers:{project_id:aC,...T?.headers}});if(!H.ok)throw Error(`Blockfrost API error: ${H.status} ${H.statusText}`);return H.json()}async function eC(y){try{return await v1(`/addresses/${y}/utxos`)}catch{return[]}}async function XU(){return(await v1("/blocks/latest")).slot}async function GU(){let y=await v1("/epochs/latest/parameters"),T={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new Ey.default(y.collateral_percent),languageView:T,maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new Ey.default(y.min_fee_a),minFeeB:new Ey.default(y.min_fee_b),minFeeRefScriptCostPerByte:new Ey.default(15),priceMem:new Ey.default(y.price_mem),priceSteps:new Ey.default(y.price_step),stakeKeyDeposit:new Ey.default(2000000),utxoCostPerByte:new Ey.default(y.coins_per_utxo_size)}}async function cC(y){let T=await fetch(`${sC}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:aC},method:"POST"});if(!T.ok){let H=await T.text();throw Error(`Transaction submission failed: ${H}`)}return T.json()}function QU(y,T){return y.map((H)=>{let f=H.amount.find((q)=>q.unit==="lovelace"),C=f?new Ey.default(f.quantity):new Ey.default(0),U=H.amount.filter((q)=>q.unit!=="lovelace").map((q)=>({amount:new Ey.default(q.quantity),assetName:q.unit.slice(56),policyId:q.unit.slice(0,56)}));return{address:T,amount:C,index:H.output_index,tokens:U,txId:H.tx_hash}})}async function _U(y){try{let T=await eC(y),H=0n,f=new Map;for(let q of T){if(!q.amount||!Array.isArray(q.amount))continue;for(let X of q.amount){let{unit:G,quantity:Q}=X;if(G==="lovelace")H+=BigInt(Q);else{let Y=f.get(G)||0n;f.set(G,Y+BigInt(Q))}}}let C=[],{baseDecimal:U}=Jy.getChainConfig(Jy.Chain.Cardano);if(H>0n)C.push(Jy.AssetValue.from({chain:Jy.Chain.Cardano,fromBaseDecimal:U,value:H.toString()}));for(let[q,X]of f)C.push(Jy.AssetValue.from({asset:`${Jy.Chain.Cardano}.${q}`,value:X.toString()}));if(C.length===0)return[Jy.AssetValue.from({chain:Jy.Chain.Cardano})];return C}catch(T){let H=T instanceof Error?T.message:String(T);return console.error(`Cardano balance fetch error: ${H}`),[Jy.AssetValue.from({chain:Jy.Chain.Cardano})]}}function y5(y){if(!y||typeof y!=="string")return!1;try{let T=iC.bech32.decode(y,120);return T.prefix==="addr"||T.prefix==="addr_test"}catch{return!1}}async function ZU(y,T=0,H=0){let{Bip32PrivateKey:f}=await import("@stricahq/bip32ed25519"),{types:C,address:U,crypto:q}=await import("@stricahq/typhonjs"),X=dC.mnemonicToEntropy(y,rC.wordlist),Q=(await f.fromEntropy(Buffer.from(Array.from(X)))).derive(n1+1852).derive(n1+1815).derive(n1+T),Y=Q.derive(0).derive(H),z=Y.toBip32PublicKey().toPublicKey().toBytes(),L=q.hash28(z),N=Q.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),A=q.hash28(N),R={hash:L,type:C.HashType.ADDRESS},I={hash:A,type:C.HashType.ADDRESS},D=new U.BaseAddress(C.NetworkId.MAINNET,R,I).getBech32(),O=Y.toPrivateKey();return{getAddress:()=>D,publicKey:z,publicKeyHash:L,signTransaction:async(J)=>{try{let _=await import("@stricahq/cbors"),Z=Buffer.from(J,"hex"),B=_.Decoder.decode(Z),[w,k,$,P]=B.value,M=_.Encoder.encode(w),x=q.hash32(M),V=O.sign(x),j=k instanceof Map?k:new Map,n=j.get(gC)||[];n.push([z,V]),j.set(gC,n);let m=[w,j,$,P];return _.Encoder.encode(m).toString("hex")}catch(_){throw new Jy.SwapKitError("toolbox_cardano_sign_transaction_failed",{message:String(_)})}}}}function WU(y){let T,H,f;async function C(){if(!f)f=await GU();return f}async function U(){if(T!==void 0)return T;if(y&&"phrase"in y&&y.phrase){let W=y.index??0;return T=await ZU(y.phrase,0,W),T}if(y&&"signer"in y&&y.signer)return T=y.signer,T;return}async function q(){if(H)return H;let W=await U();if(!W)return"";if("getAddress"in W)return H=await W.getAddress(),H;return""}async function X(W){let N=W||await q();if(!N)throw new Jy.SwapKitError("core_wallet_connection_not_found");return _U(N)}async function G(W){if(W)try{let{tx:I}=await Q(W),F=I.getFee();return Jy.AssetValue.from({chain:Jy.Chain.Cardano,fromBaseDecimal:6,value:F.toString()})}catch{}let N=await C(),A=400,R=N.minFeeB.plus(N.minFeeA.times(A));return Jy.AssetValue.from({chain:Jy.Chain.Cardano,fromBaseDecimal:6,value:R.toString()})}async function Q({sender:W="",recipient:N,assetValue:A,memo:R,pureLovelaceOnly:I=!1}){let{Transaction:F,utils:D}=await import("@stricahq/typhonjs"),O=W||await q();if(!O)throw new Jy.SwapKitError("core_wallet_connection_not_found");let[J,_,Z]=await Promise.all([eC(O),XU(),C()]),B=J.filter((d)=>I?d.amount.every((Xy)=>Xy.unit==="lovelace"):d.amount.some((Xy)=>Xy.unit==="lovelace")).sort((d,Xy)=>{let Wy=d.amount.some((Ay)=>Ay.unit!=="lovelace"),$y=Xy.amount.some((Ay)=>Ay.unit!=="lovelace");if(Wy===$y)return 0;return Wy?1:-1}),w=D.getAddressFromString(O),k=D.getAddressFromString(N),$=QU(B,w),P=new Ey.default(A.getBaseValue("string")),M=[{address:k,amount:P,tokens:[]}],x;if(R){let d=new Map;d.set("msg",[R]),x={metadata:[{data:d,label:674}]}}let V={...Z,minFeeB:Z.minFeeB.plus(Z.minFeeA.times(4))},n=new F({protocolParams:V}).paymentTransaction({auxiliaryData:x,changeAddress:w,inputs:$,outputs:M,ttl:_+3600}),{payload:m}=n.buildTransaction();return{tx:n,unsignedTx:m}}async function Y(W){let N=await U();if(!N||!("signTransaction"in N))throw new Jy.SwapKitError("core_wallet_connection_not_found");return N.signTransaction(W)}async function z({recipient:W,assetValue:N,memo:A}){let R=await U();if(!R||!("signTransaction"in R))throw new Jy.SwapKitError("core_wallet_connection_not_found");let{unsignedTx:I}=await Q({assetValue:N,memo:A,recipient:W,sender:await q()}),F=await Y(I);return await cC(F)}async function L(W){let N=await Y(W);return await cC(N)}return{createTransaction:Q,estimateTransactionFee:G,getAddress:q,getBalance:X,signAndBroadcastTransaction:L,signTransaction:Y,transfer:z,validateAddress:y5}}var iC,dC,rC,Jy,Ey,aC="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",sC="https://cardano-mainnet.blockfrost.io/api/v0",n1=2147483648,gC=0;var f5=v(()=>{iC=require("@scure/base"),dC=require("@scure/bip39"),rC=require("@scure/bip39/wordlists/english.js"),Jy=require("@swapkit/helpers"),Ey=JC(require("bignumber.js"))});var j1={};Dy(j1,{validateCardanoAddress:()=>y5,getCardanoToolbox:()=>WU});module.exports=ky(j1);var b1=v(()=>{f5()});function z0(y){return iy.base64.encode(Uint8Array.from(iy.bech32.fromWords(iy.bech32.decode(y).words)))}function A0(y,T="thor"){return iy.bech32.encode(T,iy.bech32.toWords(iy.base64.decode(y)))}function YU(y){return iy.base64.encode(y)}function LU(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new T5.SwapKitError("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return iy.base64.decode(y)}var iy,T5;var K1=v(()=>{iy=require("@scure/base"),T5=require("@swapkit/helpers")});function ey(y){switch(y){case u.Chain.Maya:return{amount:[],gas:"10000000000"};case u.Chain.THORChain:return{amount:[],gas:"500000000"};case u.Chain.Kujira:return U5;case u.Chain.Noble:return q5;default:return C5}}async function yf(y){let T=await import("@cosmjs/stargate"),H=T.StargateClient??T.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return H.connect({headers:f,url:y})}async function wf(y,T,H={}){let f=await import("@cosmjs/stargate"),C=f.SigningStargateClient??f.default?.SigningStargateClient,U=f.GasPrice??f.default?.GasPrice,q=typeof H==="string"?H:"0.0003uatom",X=typeof H==="string"?{}:H;return C.connectWithSigner(y,T,{gasPrice:U.fromString(q),...X})}async function l1(y,T){let H=await import("@cosmjs/stargate");return(H.SigningStargateClient??H.default?.SigningStargateClient).offline(y,T)}async function u1({sender:y,recipient:T,assetValue:H,memo:f="",feeRate:C,sequence:U,accountNumber:q}){let{chain:X,chainId:G}=H,Q=await u.getRPCUrl(X),z=await(await yf(Q)).getAccount(y);if(!z)throw new u.SwapKitError("toolbox_cosmos_account_not_found",{sender:y});let L=u.AssetValue.from({chain:X}),W=Xf(L.symbol),N=ey(X),A=W&&C?{amount:[{amount:C.toString(),denom:W}],gas:N.gas}:N,R={amount:[{amount:H.getBaseValue("string"),denom:Xf(H.symbol)}],fromAddress:y,toAddress:T};return{accountNumber:q??Number(z.accountNumber),chainId:G,fee:A,memo:f,msgs:[{typeUrl:JU(X),value:R}],sequence:U??z.sequence}}var u,p1="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",H5="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",C5,U5,q5,Xf=(y,T=!1)=>{if(T)return y.toLowerCase();switch(y){case"uUSK":case"USK":return p1;case"uYUM":case"YUM":return H5;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return y}},M0=({symbol:y,chain:T})=>{if(T===u.Chain.Maya)return(y.toUpperCase()!=="CACAO"?y:`${u.Chain.Maya}.${y}`).toUpperCase();if(T===u.Chain.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${u.Chain.THORChain}.${y}`:y).toUpperCase();return Xf(y,!1)},JU=(y)=>{switch(y){case u.Chain.Maya:case u.Chain.THORChain:return"/types.MsgSend";case u.Chain.Cosmos:case u.Chain.Kujira:case u.Chain.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new u.SwapKitError("toolbox_cosmos_not_supported",{chain:y})}},zU,h1=(y,T)=>{let H=zU[y.toLowerCase()];if(!H)return u.AssetValue.from({asset:y,fromBaseDecimal:8,value:T});let{chain:f,asset:C,decimals:U}=H,q=f?{chain:f}:{asset:C};return u.AssetValue.from({...q,fromBaseDecimal:U,value:T})};var N0=v(()=>{u=require("@swapkit/helpers"),C5={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},U5={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},q5={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};zU={atom:{chain:u.Chain.Cosmos,decimals:u.getChainConfig(u.Chain.Cosmos).baseDecimal},cacao:{chain:u.Chain.Maya,decimals:10},kuji:{chain:u.Chain.Kujira,decimals:u.getChainConfig(u.Chain.Kujira).baseDecimal},maya:{asset:`${u.Chain.Maya}.${u.Chain.Maya}`,decimals:4},rune:{chain:u.Chain.THORChain,decimals:u.getChainConfig(u.Chain.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:u.getChainConfig(u.Chain.THORChain).baseDecimal},uatom:{chain:u.Chain.Cosmos,decimals:u.getChainConfig(u.Chain.Cosmos).baseDecimal},ukuji:{chain:u.Chain.Kujira,decimals:u.getChainConfig(u.Chain.Kujira).baseDecimal},usdc:{chain:u.Chain.Noble,decimals:u.getChainConfig(u.Chain.Noble).baseDecimal},uusdc:{chain:u.Chain.Noble,decimals:u.getChainConfig(u.Chain.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:u.getChainConfig(u.Chain.THORChain).baseDecimal},[p1.toLowerCase()]:{asset:`${u.Chain.Kujira}.USK`,decimals:u.getChainConfig(u.Chain.Kujira).baseDecimal}}});var X5={};Dy(X5,{$root:()=>E});var Oy,h,vy,p,E;var G5=v(()=>{Oy=JC(require("protobufjs/minimal.js")),h=Oy.default.Reader,vy=Oy.default.Writer,p=Oy.default.util,E=Oy.default.roots.default||(Oy.default.roots.default={});E.common=(()=>{let y={};return y.Asset=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.chain="",T.prototype.symbol="",T.prototype.ticker="",T.prototype.synth=!1,T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))C.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))C.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))C.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))C.uint32(32).bool(f.synth);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new E.common.Asset;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:q.chain=f.string();break;case 2:q.symbol=f.string();break;case 3:q.ticker=f.string();break;case 4:q.synth=f.bool();break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!p.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!p.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!p.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},T.fromObject=function(f){if(f instanceof E.common.Asset)return f;let C=new E.common.Asset;if(f.chain!=null)C.chain=String(f.chain);if(f.symbol!=null)C.symbol=String(f.symbol);if(f.ticker!=null)C.ticker=String(f.ticker);if(f.synth!=null)C.synth=Boolean(f.synth);return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.defaults)U.chain="",U.symbol="",U.ticker="",U.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))U.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))U.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))U.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))U.synth=f.synth;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y.Coin=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.asset=null,T.prototype.amount="",T.prototype.decimals=p.Long?p.Long.fromBits(0,0,!1):0,T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))E.common.Asset.encode(f.asset,C.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))C.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))C.uint32(24).int64(f.decimals);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new E.common.Coin;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:q.asset=E.common.Asset.decode(f,f.uint32());break;case 2:q.amount=f.string();break;case 3:q.decimals=f.int64();break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let C=E.common.Asset.verify(f.asset);if(C)return"asset."+C}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!p.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!p.isInteger(f.decimals)&&!(f.decimals&&p.isInteger(f.decimals.low)&&p.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},T.fromObject=function(f){if(f instanceof E.common.Coin)return f;let C=new E.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");C.asset=E.common.Asset.fromObject(f.asset)}if(f.amount!=null)C.amount=String(f.amount);if(f.decimals!=null){if(p.Long)(C.decimals=p.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")C.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")C.decimals=f.decimals;else if(typeof f.decimals==="object")C.decimals=new p.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.defaults)if(U.asset=null,U.amount="",p.Long){let q=new p.Long(0,0,!1);U.decimals=C.longs===String?q.toString():C.longs===Number?q.toNumber():q}else U.decimals=C.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))U.asset=E.common.Asset.toObject(f.asset,C);if(f.amount!=null&&f.hasOwnProperty("amount"))U.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")U.decimals=C.longs===String?String(f.decimals):f.decimals;else U.decimals=C.longs===String?p.Long.prototype.toString.call(f.decimals):C.longs===Number?new p.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y.PubKeySet=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.secp256k1="",T.prototype.ed25519="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))C.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))C.uint32(18).string(f.ed25519);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new E.common.PubKeySet;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:q.secp256k1=f.string();break;case 2:q.ed25519=f.string();break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!p.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!p.isString(f.ed25519))return"ed25519: string expected"}return null},T.fromObject=function(f){if(f instanceof E.common.PubKeySet)return f;let C=new E.common.PubKeySet;if(f.secp256k1!=null)C.secp256k1=String(f.secp256k1);if(f.ed25519!=null)C.ed25519=String(f.ed25519);return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.defaults)U.secp256k1="",U.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))U.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))U.ed25519=f.ed25519;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y.Tx=(()=>{function T(H){if(this.coins=[],this.gas=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.id="",T.prototype.chain="",T.prototype.fromAddress="",T.prototype.toAddress="",T.prototype.coins=p.emptyArray,T.prototype.gas=p.emptyArray,T.prototype.memo="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))C.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))C.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))C.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))C.uint32(34).string(f.toAddress);if(f.coins?.length)for(let U=0;U<f.coins.length;++U)E.common.Coin.encode(f.coins[U],C.uint32(42).fork()).ldelim();if(f.gas?.length)for(let U=0;U<f.gas.length;++U)E.common.Coin.encode(f.gas[U],C.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))C.uint32(58).string(f.memo);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new E.common.Tx;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:q.id=f.string();break;case 2:q.chain=f.string();break;case 3:q.fromAddress=f.string();break;case 4:q.toAddress=f.string();break;case 5:if(!q.coins?.length)q.coins=[];q.coins.push(E.common.Coin.decode(f,f.uint32()));break;case 6:if(!q.gas?.length)q.gas=[];q.gas.push(E.common.Coin.decode(f,f.uint32()));break;case 7:q.memo=f.string();break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!p.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!p.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!p.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!p.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let C=0;C<f.coins.length;++C){let U=E.common.Coin.verify(f.coins[C]);if(U)return"coins."+U}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let C=0;C<f.gas.length;++C){let U=E.common.Coin.verify(f.gas[C]);if(U)return"gas."+U}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!p.isString(f.memo))return"memo: string expected"}return null},T.fromObject=function(f){if(f instanceof E.common.Tx)return f;let C=new E.common.Tx;if(f.id!=null)C.id=String(f.id);if(f.chain!=null)C.chain=String(f.chain);if(f.fromAddress!=null)C.fromAddress=String(f.fromAddress);if(f.toAddress!=null)C.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");C.coins=[];for(let U=0;U<f.coins.length;++U){if(typeof f.coins[U]!=="object")throw TypeError(".common.Tx.coins: object expected");C.coins[U]=E.common.Coin.fromObject(f.coins[U])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");C.gas=[];for(let U=0;U<f.gas.length;++U){if(typeof f.gas[U]!=="object")throw TypeError(".common.Tx.gas: object expected");C.gas[U]=E.common.Coin.fromObject(f.gas[U])}}if(f.memo!=null)C.memo=String(f.memo);return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.arrays||C.defaults)U.coins=[],U.gas=[];if(C.defaults)U.id="",U.chain="",U.fromAddress="",U.toAddress="",U.memo="";if(f.id!=null&&f.hasOwnProperty("id"))U.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))U.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))U.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))U.toAddress=f.toAddress;if(f.coins?.length){U.coins=[];for(let q=0;q<f.coins.length;++q)U.coins[q]=E.common.Coin.toObject(f.coins[q],C)}if(f.gas?.length){U.gas=[];for(let q=0;q<f.gas.length;++q)U.gas[q]=E.common.Coin.toObject(f.gas[q],C)}if(f.memo!=null&&f.hasOwnProperty("memo"))U.memo=f.memo;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y.Fee=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.coins=p.emptyArray,T.prototype.poolDeduct="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.coins?.length)for(let U=0;U<f.coins.length;++U)E.common.Coin.encode(f.coins[U],C.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))C.uint32(18).string(f.poolDeduct);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new E.common.Fee;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:if(!q.coins?.length)q.coins=[];q.coins.push(E.common.Coin.decode(f,f.uint32()));break;case 2:q.poolDeduct=f.string();break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let C=0;C<f.coins.length;++C){let U=E.common.Coin.verify(f.coins[C]);if(U)return"coins."+U}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!p.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},T.fromObject=function(f){if(f instanceof E.common.Fee)return f;let C=new E.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");C.coins=[];for(let U=0;U<f.coins.length;++U){if(typeof f.coins[U]!=="object")throw TypeError(".common.Fee.coins: object expected");C.coins[U]=E.common.Coin.fromObject(f.coins[U])}}if(f.poolDeduct!=null)C.poolDeduct=String(f.poolDeduct);return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.arrays||C.defaults)U.coins=[];if(C.defaults)U.poolDeduct="";if(f.coins?.length){U.coins=[];for(let q=0;q<f.coins.length;++q)U.coins[q]=E.common.Coin.toObject(f.coins[q],C)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))U.poolDeduct=f.poolDeduct;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y.ProtoUint=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.value="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))C.uint32(10).string(f.value);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new E.common.ProtoUint;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:q.value=f.string();break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!p.isString(f.value))return"value: string expected"}return null},T.fromObject=function(f){if(f instanceof E.common.ProtoUint)return f;let C=new E.common.ProtoUint;if(f.value!=null)C.value=String(f.value);return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.defaults)U.value="";if(f.value!=null&&f.hasOwnProperty("value"))U.value=f.value;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y})();E.types=(()=>{let y={};return y.MsgDeposit=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.coins=p.emptyArray,T.prototype.memo="",T.prototype.signer=p.newBuffer([]),T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.coins?.length)for(let U=0;U<f.coins.length;++U)E.common.Coin.encode(f.coins[U],C.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))C.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))C.uint32(26).bytes(f.signer);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new E.types.MsgDeposit;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:if(!q.coins?.length)q.coins=[];q.coins.push(E.common.Coin.decode(f,f.uint32()));break;case 2:q.memo=f.string();break;case 3:q.signer=f.bytes();break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let C=0;C<f.coins.length;++C){let U=E.common.Coin.verify(f.coins[C]);if(U)return"coins."+U}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!p.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||p.isString(f.signer)))return"signer: buffer expected"}return null},T.fromObject=function(f){if(f instanceof E.types.MsgDeposit)return f;let C=new E.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");C.coins=[];for(let U=0;U<f.coins.length;++U){if(typeof f.coins[U]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");C.coins[U]=E.common.Coin.fromObject(f.coins[U])}}if(f.memo!=null)C.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")p.base64.decode(f.signer,C.signer=p.newBuffer(p.base64.length(f.signer)),0);else if(f.signer.length)C.signer=f.signer}return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.arrays||C.defaults)U.coins=[];if(C.defaults){if(U.memo="",C.bytes===String)U.signer="";else if(U.signer=[],C.bytes!==Array)U.signer=p.newBuffer(U.signer)}if(f.coins?.length){U.coins=[];for(let q=0;q<f.coins.length;++q)U.coins[q]=E.common.Coin.toObject(f.coins[q],C)}if(f.memo!=null&&f.hasOwnProperty("memo"))U.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))U.signer=C.bytes===String?p.base64.encode(f.signer,0,f.signer.length):C.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y.MsgSend=(()=>{function T(H){if(this.amount=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.fromAddress=p.newBuffer([]),T.prototype.toAddress=p.newBuffer([]),T.prototype.amount=p.emptyArray,T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=vy.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))C.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))C.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let U=0;U<f.amount.length;++U)E.cosmos.base.v1beta1.Coin.encode(f.amount[U],C.uint32(26).fork()).ldelim();return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof h))f=h.create(f);let U=C===void 0?f.len:f.pos+C,q=new E.types.MsgSend;while(f.pos<U){let X=f.uint32();switch(X>>>3){case 1:q.fromAddress=f.bytes();break;case 2:q.toAddress=f.bytes();break;case 3:if(!q.amount?.length)q.amount=[];q.amount.push(E.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(X&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof h))f=new h(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||p.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||p.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let C=0;C<f.amount.length;++C){let U=E.cosmos.base.v1beta1.Coin.verify(f.amount[C]);if(U)return"amount."+U}}return null},T.fromObject=function(f){if(f instanceof E.types.MsgSend)return f;let C=new E.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")p.base64.decode(f.fromAddress,C.fromAddress=p.newBuffer(p.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)C.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")p.base64.decode(f.toAddress,C.toAddress=p.newBuffer(p.base64.length(f.toAddress)),0);else if(f.toAddress.length)C.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");C.amount=[];for(let U=0;U<f.amount.length;++U){if(typeof f.amount[U]!=="object")throw TypeError(".types.MsgSend.amount: object expected");C.amount[U]=E.cosmos.base.v1beta1.Coin.fromObject(f.amount[U])}}return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.arrays||C.defaults)U.amount=[];if(C.defaults){if(C.bytes===String)U.fromAddress="";else if(U.fromAddress=[],C.bytes!==Array)U.fromAddress=p.newBuffer(U.fromAddress);if(C.bytes===String)U.toAddress="";else if(U.toAddress=[],C.bytes!==Array)U.toAddress=p.newBuffer(U.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))U.fromAddress=C.bytes===String?p.base64.encode(f.fromAddress,0,f.fromAddress.length):C.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))U.toAddress=C.bytes===String?p.base64.encode(f.toAddress,0,f.toAddress.length):C.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){U.amount=[];for(let q=0;q<f.amount.length;++q)U.amount[q]=E.cosmos.base.v1beta1.Coin.toObject(f.amount[q],C)}return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},T})(),y})();E.cosmos=(()=>{let y={};return y.base=(()=>{let T={};return T.v1beta1=(()=>{let H={};return H.Coin=(()=>{function f(C){if(C){for(let U=Object.keys(C),q=0;q<U.length;++q)if(C[U[q]]!=null)this[U[q]]=C[U[q]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=vy.create();if(U.denom!=null&&Object.hasOwnProperty.call(U,"denom"))q.uint32(10).string(U.denom);if(U.amount!=null&&Object.hasOwnProperty.call(U,"amount"))q.uint32(18).string(U.amount);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof h))U=h.create(U);let X=q===void 0?U.len:U.pos+q,G=new E.cosmos.base.v1beta1.Coin;while(U.pos<X){let Q=U.uint32();switch(Q>>>3){case 1:G.denom=U.string();break;case 2:G.amount=U.string();break;default:U.skipType(Q&7);break}}return G},f.decodeDelimited=function(U){if(!(U instanceof h))U=new h(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.denom!=null&&U.hasOwnProperty("denom")){if(!p.isString(U.denom))return"denom: string expected"}if(U.amount!=null&&U.hasOwnProperty("amount")){if(!p.isString(U.amount))return"amount: string expected"}return null},f.fromObject=function(U){if(U instanceof E.cosmos.base.v1beta1.Coin)return U;let q=new E.cosmos.base.v1beta1.Coin;if(U.denom!=null)q.denom=String(U.denom);if(U.amount!=null)q.amount=String(U.amount);return q},f.toObject=function(U,q){if(!q)q={};let X={};if(q.defaults)X.denom="",X.amount="";if(U.denom!=null&&U.hasOwnProperty("denom"))X.denom=U.denom;if(U.amount!=null&&U.hasOwnProperty("amount"))X.amount=U.amount;return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},f})(),H.DecCoin=(()=>{function f(C){if(C){for(let U=Object.keys(C),q=0;q<U.length;++q)if(C[U[q]]!=null)this[U[q]]=C[U[q]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=vy.create();if(U.denom!=null&&Object.hasOwnProperty.call(U,"denom"))q.uint32(10).string(U.denom);if(U.amount!=null&&Object.hasOwnProperty.call(U,"amount"))q.uint32(18).string(U.amount);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof h))U=h.create(U);let X=q===void 0?U.len:U.pos+q,G=new E.cosmos.base.v1beta1.DecCoin;while(U.pos<X){let Q=U.uint32();switch(Q>>>3){case 1:G.denom=U.string();break;case 2:G.amount=U.string();break;default:U.skipType(Q&7);break}}return G},f.decodeDelimited=function(U){if(!(U instanceof h))U=new h(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.denom!=null&&U.hasOwnProperty("denom")){if(!p.isString(U.denom))return"denom: string expected"}if(U.amount!=null&&U.hasOwnProperty("amount")){if(!p.isString(U.amount))return"amount: string expected"}return null},f.fromObject=function(U){if(U instanceof E.cosmos.base.v1beta1.DecCoin)return U;let q=new E.cosmos.base.v1beta1.DecCoin;if(U.denom!=null)q.denom=String(U.denom);if(U.amount!=null)q.amount=String(U.amount);return q},f.toObject=function(U,q){if(!q)q={};let X={};if(q.defaults)X.denom="",X.amount="";if(U.denom!=null&&U.hasOwnProperty("denom"))X.denom=U.denom;if(U.amount!=null&&U.hasOwnProperty("amount"))X.amount=U.amount;return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},f})(),H.IntProto=(()=>{function f(C){if(C){for(let U=Object.keys(C),q=0;q<U.length;++q)if(C[U[q]]!=null)this[U[q]]=C[U[q]]}}return f.prototype.int="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=vy.create();if(U.int!=null&&Object.hasOwnProperty.call(U,"int"))q.uint32(10).string(U.int);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof h))U=h.create(U);let X=q===void 0?U.len:U.pos+q,G=new E.cosmos.base.v1beta1.IntProto;while(U.pos<X){let Q=U.uint32();switch(Q>>>3){case 1:G.int=U.string();break;default:U.skipType(Q&7);break}}return G},f.decodeDelimited=function(U){if(!(U instanceof h))U=new h(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.int!=null&&U.hasOwnProperty("int")){if(!p.isString(U.int))return"int: string expected"}return null},f.fromObject=function(U){if(U instanceof E.cosmos.base.v1beta1.IntProto)return U;let q=new E.cosmos.base.v1beta1.IntProto;if(U.int!=null)q.int=String(U.int);return q},f.toObject=function(U,q){if(!q)q={};let X={};if(q.defaults)X.int="";if(U.int!=null&&U.hasOwnProperty("int"))X.int=U.int;return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},f})(),H.DecProto=(()=>{function f(C){if(C){for(let U=Object.keys(C),q=0;q<U.length;++q)if(C[U[q]]!=null)this[U[q]]=C[U[q]]}}return f.prototype.dec="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=vy.create();if(U.dec!=null&&Object.hasOwnProperty.call(U,"dec"))q.uint32(10).string(U.dec);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof h))U=h.create(U);let X=q===void 0?U.len:U.pos+q,G=new E.cosmos.base.v1beta1.DecProto;while(U.pos<X){let Q=U.uint32();switch(Q>>>3){case 1:G.dec=U.string();break;default:U.skipType(Q&7);break}}return G},f.decodeDelimited=function(U){if(!(U instanceof h))U=new h(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.dec!=null&&U.hasOwnProperty("dec")){if(!p.isString(U.dec))return"dec: string expected"}return null},f.fromObject=function(U){if(U instanceof E.cosmos.base.v1beta1.DecProto)return U;let q=new E.cosmos.base.v1beta1.DecProto;if(U.dec!=null)q.dec=String(U.dec);return q},f.toObject=function(U,q){if(!q)q={};let X={};if(q.defaults)X.dec="";if(U.dec!=null&&U.hasOwnProperty("dec"))X.dec=U.dec;return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,Oy.default.util.toJSONOptions)},f})(),H})(),T})(),y})()});async function $f(){let{$root:y}=await Promise.resolve().then(() => (G5(),X5)),T=await import("@cosmjs/proto-signing"),H=await import("@cosmjs/stargate"),f=T.Registry??T.default?.Registry,C=H.defaultRegistryTypes??H.default?.defaultRegistryTypes;return new f([...C,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function Gf(y){let T=await import("@cosmjs/stargate"),H=T.AminoTypes??T.default?.AminoTypes,f=y===Q5.Chain.THORChain?"thorchain":"mayachain";return new H({"/types.MsgDeposit":{aminoType:`${f}/MsgDeposit`,fromAmino:({signer:C,...U})=>({...U,signer:z0(C)}),toAmino:({signer:C,...U})=>({...U,signer:A0(C)})},"/types.MsgSend":{aminoType:`${f}/MsgSend`,fromAmino:({from_address:C,to_address:U,...q})=>({...q,fromAddress:z0(C),toAddress:z0(U)}),toAmino:({fromAddress:C,toAddress:U,...q})=>({...q,from_address:A0(C),to_address:A0(U)})}})}var Q5;var m1=v(()=>{K1();Q5=require("@swapkit/helpers")});function c1(y){let{assetValue:T,recipient:H,memo:f,sender:C,asSignable:U,asAminoMessage:q}=y;if(H)return Z5({asAminoMessage:q,asSignable:U,assetValue:T,memo:f,recipient:H,sender:C});return W5({asAminoMessage:q,asSignable:U,assetValue:T,memo:f,sender:C})}async function Z5({sender:y,recipient:T,assetValue:H,memo:f="",asSignable:C=!0,asAminoMessage:U=!1,sequence:q,accountNumber:X}){let G=H.chain,Q=await Fy.getRPCUrl(G),Y=await _5({rpcUrl:Q,sender:y}),{chainId:z}=Fy.getChainConfig(G),L=t1({assetValue:H,recipient:T,sender:y}),W=C?await Qf(U?L:_f(L),G):L;return{accountNumber:X||Number(Y.accountNumber),chainId:z,fee:ey(G),memo:f,msgs:[W],sequence:q||Y.sequence}}async function W5({sender:y,assetValue:T,memo:H="",asSignable:f=!0,asAminoMessage:C=!1,sequence:U,accountNumber:q}){let X=T.chain,G=await Fy.getRPCUrl(X),Q=await _5({rpcUrl:G,sender:y}),{chainId:Y}=Fy.getChainConfig(X),z=g1({assetValue:T,memo:H,sender:y}),L=f?await Qf(C?z:_f(z),X):z;return{accountNumber:q||Number(Q.accountNumber),chainId:Y,fee:ey(X),memo:H,msgs:[L],sequence:U||Q.sequence}}function _f(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((T)=>{let H=Fy.AssetValue.from({asset:T.asset}),f=(H.isSynthetic?H.symbol.split("/")?.[1]:H.symbol)?.toUpperCase(),C=(H.isSynthetic?H.symbol.split("/")?.[0]:H.chain)?.toUpperCase();return{...T,asset:{chain:C,symbol:f,synth:H.isSynthetic,ticker:H.ticker}}})}}}async function B0({chain:y,memo:T,msgs:H}){let f=await $f(),C=await Gf(y),U={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:T,messages:H.map((q)=>C.fromAmino(q))}};return f.encode(U)}var Fy,AU,MU,t1=({sender:y,recipient:T,assetValue:H})=>{return{type:`${H.chain===Fy.Chain.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:H.getBaseValue("string"),denom:Xf(H.symbol,!0)}],from_address:y,to_address:T}}},g1=({sender:y,assetValue:T,memo:H=""})=>{return{type:`${T.chain===Fy.Chain.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:T.getBaseValue("string"),asset:M0(T)}],memo:H,signer:y}}},zT=({sender:y,recipient:T,assetValue:H,memo:f})=>{return!T?g1({assetValue:H,memo:f,sender:y}):t1({assetValue:H,recipient:T,sender:y})},Qf=async(y,T)=>{return(await Gf(T)).fromAmino(y)},_5=async({rpcUrl:y,sender:T})=>{let f=await(await yf(y)).getAccount(T);if(!f)throw new Fy.SwapKitError("toolbox_cosmos_account_not_found",{sender:T});return f};var Y5=v(()=>{N0();m1();Fy=require("@swapkit/helpers"),AU=ey(Fy.Chain.THORChain).gas,MU=ey(Fy.Chain.Maya).gas});var L5=()=>{};var J5=v(()=>{L5()});var i1=v(()=>{K1();Y5();m1();J5()});async function a1(y,T){try{let f=(await r1.SwapKitApi.getGasRate()).find((C)=>C.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}async function d1({phrase:y,prefix:T,...H}){let f=await import("@cosmjs/proto-signing"),C=await import("@cosmjs/crypto"),U=f.DirectSecp256k1HdWallet??f.default?.DirectSecp256k1HdWallet,q=C.stringToPath??C.default?.stringToPath,X="derivationPath"in H?H.derivationPath:`${b.DerivationPath[H.chain]}/${H.index}`;return await U.fromMnemonic(y,{hdPaths:[q(X)],prefix:T})}async function NU({privateKey:y,prefix:T}){let H=await import("@cosmjs/proto-signing");return(H.DirectSecp256k1Wallet??H.default?.DirectSecp256k1Wallet).fromKey(y,T)}function N5(y){return async function({signature:H,message:f,address:C}){let U=await y(C);if(!U?.pubkey)throw new b.SwapKitError("toolbox_cosmos_verify_signature_no_pubkey");let q=await import("@cosmjs/crypto"),X=q.Secp256k1Signature??q.default?.Secp256k1Signature,G=q.Secp256k1??q.default?.Secp256k1,Q=X.fromFixedLength(Zf.base64.decode(H));return G.verifySignature(Q,Zf.base64.decode(f),U.pubkey.value)}}function O0({chain:y,...T}){let H=b.CosmosChainPrefixes[y],f="index"in T?T.index||0:0,C=b.derivationPathToString("derivationPath"in T&&T.derivationPath?T.derivationPath:b.updateDerivationPath(b.NetworkDerivationPath[y],{index:f})),U;async function q(){if(U)return U;return U=await D0.match(T).with({phrase:D0.P.string},({phrase:W})=>d1({derivationPath:C,phrase:W,prefix:H})).with({signer:D0.P.any},({signer:W})=>W).otherwise(()=>{return}),U}async function X(W){let N=await b.getRPCUrl(y);return(await yf(N)).getAccount(W)}async function G(){let W=await q(),[N]=await W?.getAccounts()||[];return N?.address}async function Q(){let W=await q(),[N]=await W?.getAccounts()||[];if(!N?.pubkey)throw new b.SwapKitError("toolbox_cosmos_signer_not_defined");return Zf.base64.encode(N?.pubkey)}async function Y(W){let N=await q(),A=await G(),R=await b.getRPCUrl(y);if(!(N&&A))throw new b.SwapKitError("toolbox_cosmos_signer_not_defined");return await(await wf(R,N)).sign(A,W.msgs,W.fee,W.memo,{accountNumber:BigInt(W.accountNumber),chainId:W.chainId,sequence:W.sequence})}async function z(W){let N=await q(),A=await G(),R=await b.getRPCUrl(y);if(!(N&&A))throw new b.SwapKitError("toolbox_cosmos_signer_not_defined");let F=await(await wf(R,N)).signAndBroadcast(A,W.msgs,W.fee,W.memo);if(F.code!==0)throw new b.SwapKitError("core_swap_transaction_error",{code:F.code,message:F.rawLog});return F.transactionHash}async function L({recipient:W,assetValue:N,memo:A="",feeRate:R,feeOptionKey:I=b.FeeOption.Fast}){let F=await q(),D=await G();if(!(F&&D))throw new b.SwapKitError("toolbox_cosmos_signer_not_defined");let O=await b.getRPCUrl(y),J=b.AssetValue.from({chain:y}),_=M0(J),Z=R||OU((await A5(y,z5[y]))[I],_),B=await wf(O,F),w=Xf(N.symbol),k=[{amount:N.getBaseValue("string"),denom:w}],{transactionHash:$}=await B.sendTokens(D,W,k,Z,A);return $}return{createPrivateKeyFromPhrase:kU(C),createTransaction:u1,fetchFeeRateFromSwapKit:a1,getAccount:X,getAddress:G,getBalance:async(W,N)=>{let A=await M5(y)(W),R=await Promise.all(A.filter(({denom:I})=>I&&!I.includes("IBC/")&&!([b.Chain.THORChain,b.Chain.Maya].includes(y)&&I.split("-").length>2)).map(({denom:I,amount:F})=>{let D=[b.Chain.THORChain,b.Chain.Maya].includes(y)&&(I.includes("/")||I.includes("˜"))?`${y}.${I}`:I;return h1(D,F)}));if(R.length===0)return[b.AssetValue.from({chain:y})];return R},getBalanceAsDenoms:M5(y),getFees:()=>A5(y,z5[y]),getPubKey:Q,getSignerFromPhrase:({phrase:W,derivationPath:N})=>d1({derivationPath:b.derivationPathToString(N),index:f,phrase:W,prefix:H}),getSignerFromPrivateKey:async(W)=>{let N=await import("@cosmjs/proto-signing");return(N.DirectSecp256k1Wallet??N.default?.DirectSecp256k1Wallet).fromKey(W,H)},signAndBroadcastTransaction:z,signTransaction:Y,transfer:L,validateAddress:B5(y),verifySignature:N5(X)}}async function BU(y,T){try{let f=(await r1.SwapKitApi.getGasRate()).find((C)=>C.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}function DU({assetValue:{chain:y}}){return b.AssetValue.from({chain:y,value:RU(y)})}async function A5(y,T){let{chainId:H,baseDecimal:f}=b.getChainConfig(y),C=await a1(H,T);return{average:b.SwapKitNumber.fromBigInt(BigInt(C),f),fast:b.SwapKitNumber.fromBigInt(BigInt(b.applyFeeMultiplier(C,b.FeeOption.Fast,!0)),f),fastest:b.SwapKitNumber.fromBigInt(BigInt(b.applyFeeMultiplier(C,b.FeeOption.Fastest,!0)),f)}}function OU(y,T){return{amount:[{amount:y.getBaseValue("string"),denom:T}],gas:"200000"}}function RU(y){return{[b.Chain.Cosmos]:0.007,[b.Chain.Kujira]:0.02,[b.Chain.Noble]:0.01,[b.Chain.THORChain]:0.02,[b.Chain.Maya]:0.02,[b.Chain.Harbor]:0.02}[y]||0}function B5(y){let T=b.CosmosChainPrefixes[y];return function(f){if(!f.startsWith(T))return!1;try{let{prefix:C,words:U}=Zf.bech32.decode(f);return Zf.bech32.encode(C,U)===f.toLocaleLowerCase()}catch{return!1}}}function M5(y){return async function(H){let f=await b.getRPCUrl(y);return(await(await yf(f)).getAllBalances(H)).map((X)=>({...X,denom:X.denom.includes("/")?X.denom.toUpperCase():X.denom}))}}function kU(y){return async function(H){let f=await import("@cosmjs/crypto"),C=f.stringToPath??f.default?.stringToPath,U=f.Slip10Curve??f.default?.Slip10Curve,q=f.Slip10??f.default?.Slip10,X=f.EnglishMnemonic??f.default?.EnglishMnemonic,G=f.Bip39??f.default?.Bip39,Q=new X(H),Y=await G.mnemonicToSeed(Q),{privkey:z}=q.derivePath(U.Secp256k1,Y,C(y));return z}}var Zf,b,r1,D0,z5;var AT=v(()=>{N0();Zf=require("@scure/base"),b=require("@swapkit/helpers"),r1=require("@swapkit/helpers/api"),D0=require("ts-pattern");z5={[b.Chain.Cosmos]:1000,[b.Chain.Kujira]:1000,[b.Chain.Noble]:1000,[b.Chain.THORChain]:5000000,[b.Chain.Maya]:5000000,[b.Chain.Harbor]:5000000}});function wU({prefix:y,derivationPath:T}){return async function(f,C=0){let U=await import("@cosmjs/amino"),q=U.Secp256k1HdWallet??U.default?.Secp256k1HdWallet,X=await import("@cosmjs/crypto"),G=X.stringToPath??X.default?.stringToPath;return q.fromMnemonic(f,{hdPaths:[G(`${T}/${C}`)],prefix:y})}}function $U(y){return Wf.base64.encode(y)}function FU(y){return async function({wallet:H,tx:f}){let{msgs:C,accountNumber:U,sequence:q,chainId:X,fee:G,memo:Q}=typeof f==="string"?JSON.parse(f):f,Y=(await H.getAccounts())?.[0]?.address||"",z=await Gf(y),L=await $f(),W=await l1(H,{aminoTypes:z,registry:L}),N=[];for(let I of C){let F=await Qf(I,y);N.push(F)}let{signatures:[A]}=await W.sign(Y,N,G,Q,{accountNumber:BigInt(U),chainId:X,sequence:q});return{bodyBytes:await B0({chain:y,memo:Q,msgs:C.map(_f)}),signature:$U(A)}}}function xU({prefix:y,chain:T}){return async function(f,C,U,q,X){let G=await yy.getRPCUrl(T),{encodeSecp256k1Pubkey:Q,pubkeyToAddress:Y}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:z}=(await import("@cosmjs/stargate")).default,{sequence:L,fee:W}=JSON.parse(f),N=await D5(U,q),A=C.map((F)=>[Y(Q(Wf.base64.decode(F.pubKey)),y),Wf.base64.decode(F.signature)]),R=await yf(G),{transactionHash:I}=await R.broadcastTx(z(N,L,W,X,new Map(A)));return I}}async function D5(y,T,H=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:C}=(await import("@cosmjs/amino")).default;return f(y.map((U)=>C(Wf.base64.decode(U))),T,H)}function IU(y){return Wf.base64.decode(y)}async function SU({privateKey:y,message:T}){let{Secp256k1:H}=(await import("@cosmjs/crypto")).default,f=await H.createSignature(Wf.base64.decode(T),y);return Wf.base64.encode(Buffer.concat([f.r(32),f.s(32)]))}function s1({chain:y,...T}){let{isStagenet:H}=yy.SKConfig.get("envs"),f=yy.SKConfig.get("thornodeUrls"),C=y===yy.Chain.Maya,U=hf.match({isMayachain:C,isStagenet:H}).with({isMayachain:!0},({isStagenet:F})=>F?f.MAYA_STAGENET:f.MAYA).otherwise(({isStagenet:F})=>F?f.THOR_STAGENET:f.THOR),q=`${H?"s":""}${yy.CosmosChainPrefixes[y]}`,X="index"in T?T.index||0:0,G="derivationPath"in T&&T.derivationPath?T.derivationPath:yy.updateDerivationPath(yy.NetworkDerivationPath[y],{index:X}),Q=O0({chain:y,...T}),Y=ey(y),z;function L(){return z??=hf.match(T).with({phrase:hf.P.string},({phrase:F})=>Q.getSignerFromPhrase({derivationPath:G,phrase:F})).with({signer:hf.P.any},({signer:F})=>Promise.resolve(F)).otherwise(()=>Promise.resolve(void 0)),z}async function W(){let F=await yy.getRPCUrl(y),D=await L();if(!D)throw new yy.SwapKitError("toolbox_cosmos_no_signer");let O=await $f(),J=await Gf(y),_=await wf(F,D,{aminoTypes:J,registry:O});return{signer:D,signingClient:_}}async function N({fee:F,memo:D,msgs:O}){let{signer:J,signingClient:_}=await W(),Z=(await J.getAccounts())?.[0]?.address;if(!Z)throw new yy.SwapKitError("toolbox_cosmos_signer_not_defined");let B=await _.signAndBroadcast(Z,O,F,D);if(B.code!==0)throw new yy.SwapKitError("core_swap_transaction_error",{code:B.code,message:B.rawLog});return B.transactionHash}async function A(){let F,D=`${U}/${C?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:O}}=await yy.RequestClient.get(D);if(!O||Number.isNaN(O)||O<0)throw new yy.SwapKitError("toolbox_cosmos_invalid_fee",{nativeFee:O.toString()});F=new yy.SwapKitNumber(O)}catch{F=new yy.SwapKitNumber({decimal:yy.getChainConfig(y).baseDecimal,value:C?1:0.02})}return{[yy.FeeOption.Average]:F,[yy.FeeOption.Fast]:F,[yy.FeeOption.Fastest]:F}}async function R({assetValue:F,memo:D="",recipient:O}){let{TxRaw:J}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:_,signingClient:Z}=await W(),B=(await _.getAccounts())?.[0]?.address;if(!B)throw new yy.SwapKitError("toolbox_cosmos_no_signer");let w="signAmino"in _,k=zT({assetValue:F,memo:D,recipient:O,sender:B});if(w){let M=await Qf(k,y),{signatures:x,authInfoBytes:V}=await Z.sign(B,[M],Y,D),j=J.encode({authInfoBytes:V,bodyBytes:await B0({chain:y,memo:D,msgs:[k].map(_f)}),signatures:x}).finish();return(await Z.broadcastTx(j)).transactionHash}let $=_f(k),P=await Qf($,y);return N({fee:Y,memo:D,msgs:[P]})}async function I(F){let{signer:D,signingClient:O}=await W(),J=(await D.getAccounts())?.[0]?.address;if(!J)throw new yy.SwapKitError("toolbox_cosmos_signer_not_defined");return O.sign(J,F.msgs,F.fee,F.memo,{accountNumber:BigInt(F.accountNumber),chainId:F.chainId,sequence:F.sequence})}return{...Q,broadcastMultisigTx:xU({chain:y,prefix:q}),buildAminoMsg:zT,buildEncodedTxBody:B0,convertToSignable:Qf,createDefaultAminoTypes:()=>Gf(y),createDefaultRegistry:$f,createMultisig:D5,createTransaction:c1,deposit:R,getFees:A,importSignature:IU,parseAminoMessageForDirectSigning:_f,pubkeyToAddress:async(F)=>{let{pubkeyToAddress:D}=(await import("@cosmjs/amino")).default;return D(F,q)},secp256k1HdWalletFromMnemonic:wU({derivationPath:yy.derivationPathToString(G),prefix:q}),signAndBroadcastTransaction:N,signMultisigTx:FU(y),signTransaction:I,signWithPrivateKey:SU,transfer:R}}var Wf,yy,hf;var e1=v(()=>{i1();N0();AT();Wf=require("@scure/base"),yy=require("@swapkit/helpers"),hf=require("ts-pattern")});var Yf,PU=(y,T)=>{switch(y){case Yf.Chain.Cosmos:case Yf.Chain.Kujira:case Yf.Chain.Noble:return O0({chain:y,...T});case Yf.Chain.Maya:case Yf.Chain.THORChain:return s1({chain:y,...T});default:throw new Yf.SwapKitError("toolbox_cosmos_not_supported",{chain:y})}};var O5=v(()=>{AT();e1();Yf=require("@swapkit/helpers");AT();e1()});var MT={};Dy(MT,{verifySignature:()=>N5,transferMsgAmino:()=>t1,toBase64:()=>YU,parseAminoMessageForDirectSigning:()=>_f,getSignerFromPrivateKey:()=>NU,getSignerFromPhrase:()=>d1,getMsgSendDenom:()=>Xf,getFeeRateFromSwapKit:()=>BU,getDenomWithChain:()=>M0,getDefaultChainFee:()=>ey,getCosmosToolbox:()=>PU,getCosmosAddressValidator:()=>B5,getAssetFromDenom:()=>h1,fromBase64:()=>LU,fetchFeeRateFromSwapKit:()=>a1,estimateTransactionFee:()=>DU,depositMsgAmino:()=>g1,createTransaction:()=>c1,createThorchainToolbox:()=>s1,createStargateClient:()=>yf,createSigningStargateClient:()=>wf,createOfflineStargateClient:()=>l1,createDefaultRegistry:()=>$f,createDefaultAminoTypes:()=>Gf,createCosmosToolbox:()=>O0,cosmosCreateTransaction:()=>u1,convertToSignable:()=>Qf,buildTransferTx:()=>Z5,buildEncodedTxBody:()=>B0,buildDepositTx:()=>W5,buildAminoMsg:()=>zT,bech32ToBase64:()=>z0,base64ToBech32:()=>A0,YUM_KUJIRA_FACTORY_DENOM:()=>H5,USK_KUJIRA_FACTORY_DENOM:()=>p1,THORCHAIN_GAS_VALUE:()=>AU,MAYA_GAS_VALUE:()=>MU,DEFAULT_NOBLE_FEE_MAINNET:()=>q5,DEFAULT_KUJI_FEE_MAINNET:()=>U5,DEFAULT_COSMOS_FEE_MAINNET:()=>C5});module.exports=ky(MT);var NT=v(()=>{i1();O5();N0()});function oU({builder:y,grouping:T="na",orders:H}){return{builder:y,grouping:T,orders:H,type:"order"}}function VU({cancels:y}){return{cancels:y,type:"cancel"}}function EU({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function nU({oid:y,order:T}){return{oid:y,order:T,type:"modify"}}function vU({modifies:y}){return{modifies:y,type:"batchModify"}}function jU({asset:y,isCross:T,leverage:H}){return{asset:y,isCross:T,leverage:H,type:"updateLeverage"}}function bU({asset:y,isBuy:T,ntli:H}){return{asset:y,isBuy:T,ntli:H,type:"updateIsolatedMargin"}}function KU({asset:y,leverage:T}){return{asset:y,leverage:T,type:"topUpIsolatedOnlyMargin"}}function pU({time:y}){return{time:y,type:"scheduleCancel"}}function lU({amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:C}){return{amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:C,type:"usdClassTransfer"}}function uU({amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:C,nonce:U,signatureChainId:q,sourceDex:X,token:G}){return{amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:C,nonce:U,signatureChainId:q,sourceDex:X,token:G,type:"sendAsset"}}function hU({agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:C}){return{agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:C,type:"approveAgent"}}function mU({builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:C}){return{builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:C,type:"approveBuilderFee"}}function tU({hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,validator:C,wei:U}){return{hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,type:"tokenDelegate",validator:C,wei:U}}function Py(...y){let T=y.reduce((C,U)=>C+U.length,0),H=new Uint8Array(T),f=0;for(let C of y)H.set(C,f),f+=C.length;return H}function aU(y,T,H){if(H<T)return new Uint8Array([y+H]);if(H<=255)return new Uint8Array([y+T,H]);if(H<=65535)return new Uint8Array([y+T+1,H>>8,H&255]);return new Uint8Array([y+T+2,H>>>24&255,H>>>16&255,H>>>8&255,H&255])}function Lf(y,T){let H=new Uint8Array(T),f=y;for(let C=T-1;C>=0;C-=1)H[C]=Number(f&0xffn),f>>=8n;return H}function R5(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return Py(new Uint8Array([205]),Lf(y,2));if(y<=0xffffffffn)return Py(new Uint8Array([206]),Lf(y,4));return Py(new Uint8Array([207]),Lf(y,8))}if(y>=-32n)return new Uint8Array([256+Number(y)]);if(y>=-128n)return new Uint8Array([208,256+Number(y)]);if(y>=-32768n)return Py(new Uint8Array([209]),Lf(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return Py(new Uint8Array([210]),Lf(BigInt.asUintN(32,y),4));return Py(new Uint8Array([211]),Lf(BigInt.asUintN(64,y),8))}function $5(y){let T=rU.encode(y);if(T.length<32)return Py(new Uint8Array([160+T.length]),T);return Py(aU(217,0,T.length),T)}function sU(y){let T=y.map((f)=>yH(f)),H=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Py(H,...T)}function eU(y){let T=Object.entries(y).filter(([,f])=>typeof f<"u"),H=T.length<16?new Uint8Array([128+T.length]):T.length<=65535?new Uint8Array([222,T.length>>8,T.length&255]):new Uint8Array([223,T.length>>>24&255,T.length>>>16&255,T.length>>>8&255,T.length&255]);return Py(H,...T.flatMap(([f,C])=>[$5(f),yH(C)]))}function yH(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return $5(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new BT.SwapKitError("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return R5(BigInt(y))}if(typeof y==="bigint")return R5(y);if(y instanceof Uint8Array){let T=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Py(T,y)}if(Array.isArray(y))return sU(y);if(typeof y==="object")return eU(y);throw new BT.SwapKitError("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function yq(y){let T=y.startsWith("0x")?y.slice(2):y;if(T.length%2!==0||/[^a-fA-F0-9]/u.test(T))throw new BT.SwapKitError("helpers_invalid_params",{hexValue:y});let H=new Uint8Array(T.length/2);for(let f=0;f<T.length;f+=2)H[f/2]=Number.parseInt(T.slice(f,f+2),16);return H}function F5(y){return{domain:gU,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...cU.Agent]}}}function x5(y){let T=dU[y.type],H=iU[y.type],{type:f,...C}=y;return{domain:{chainId:Number.parseInt(C.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:k5,version:"1"},message:{...C,hyperliquidChain:C.hyperliquidChain||w5},primaryType:T,types:{[T]:H}}}function I5(y){let T=DT.Signature.from(y);return{r:T.r,s:T.s,v:T.v}}function S5(y,T,{expiresAfter:H,vaultAddress:f}={}){let C=yH(y),U=Lf(BigInt(T),8),q=f?Py(new Uint8Array([1]),yq(f.toLowerCase())):new Uint8Array([0]),X=typeof H==="number"?Py(new Uint8Array([0]),Lf(BigInt(H),8)):new Uint8Array;return DT.keccak256(Py(C,U,q,X))}function P5(y){let T=y.hyperliquidChain||w5;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:T};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:T};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:T};case"tokenDelegate":return{...y,hyperliquidChain:T,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:T};default:return y}}var BT,DT,k5="0x0000000000000000000000000000000000000000",gU,cU,w5="Mainnet",iU,dU,rU;var o5=v(()=>{BT=require("@swapkit/helpers"),DT=require("ethers"),gU={chainId:1337,name:"Exchange",verifyingContract:k5,version:"1"},cU={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},iU={approveAgent:[{name:"hyperliquidChain",type:"string"},{name:"agentAddress",type:"address"},{name:"agentName",type:"string"},{name:"nonce",type:"uint64"}],approveBuilderFee:[{name:"hyperliquidChain",type:"string"},{name:"maxFeeRate",type:"string"},{name:"builder",type:"address"},{name:"nonce",type:"uint64"}],sendAsset:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"sourceDex",type:"string"},{name:"destinationDex",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"fromSubAccount",type:"string"},{name:"nonce",type:"uint64"}],tokenDelegate:[{name:"hyperliquidChain",type:"string"},{name:"validator",type:"address"},{name:"wei",type:"uint64"},{name:"isUndelegate",type:"bool"},{name:"nonce",type:"uint64"}],usdClassTransfer:[{name:"hyperliquidChain",type:"string"},{name:"amount",type:"string"},{name:"toPerp",type:"bool"},{name:"nonce",type:"uint64"}]},dU={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},rU=new TextEncoder});function Ky(y,T){if(!HH(y))throw new Hy.SwapKitError(T,{address:y});return y.toLowerCase()}async function Ff(y){let T=await OT();return Hy.RequestClient.post(`${T}/info`,{json:y})}function Xq({dex:y,user:T}){return Ff({...y?{dex:y}:{},type:"clearinghouseState",user:Ky(T,"helpers_invalid_params")})}function Gq({user:y}){return Ff({type:"spotClearinghouseState",user:Ky(y,"helpers_invalid_params")})}function Qq({dex:y,user:T}){return Ff({...y?{dex:y}:{},type:"openOrders",user:Ky(T,"helpers_invalid_params")})}function _q({dex:y,user:T}){return Ff({...y?{dex:y}:{},type:"frontendOpenOrders",user:Ky(T,"helpers_invalid_params")})}function Zq({oidOrCloid:y,user:T}){return Ff({oid:y,type:"orderStatus",user:Ky(T,"helpers_invalid_params")})}function Wq({aggregateByTime:y,user:T}){return Ff({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:Ky(T,"helpers_invalid_params")})}function Yq({aggregateByTime:y,endTime:T,startTime:H,user:f}){return Ff({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof T==="number"?{endTime:T}:{},startTime:H,type:"userFillsByTime",user:Ky(f,"helpers_invalid_params")})}function V5({coin:y,token:T,value:H,spotMeta:f}){if(!H||Number(H)<=0)return null;let C=y?.toUpperCase()||`TOKEN-${T||"UNKNOWN"}`,U=fq[C]||v5,q=f?.tokens?.find((G)=>G.name===y||T!==void 0&&G.index===Number(T)),X=q?`${dy}.${C}-${q.name}:${q.tokenId}`:`${dy}.${C}`;return new Hy.AssetValue({decimal:U,identifier:X,value:H})}function Lq(y){let T=new Map;for(let H of y){let f=H.toString({includeSynthProtocol:!0}),C=T.get(f);T.set(f,C?C.add(H):H)}if(![...T.values()].some((H)=>H.isGasAsset||H.ticker==="HYPE")){let H=Hy.AssetValue.from({chain:dy,value:0});T.set(H.toString({includeSynthProtocol:!0}),H)}return[...T.values()]}async function OT(){try{return await Hy.getRPCUrl(dy)}catch{let[y]=Hy.getChainConfig(dy).rpcUrls;if(!y)throw new Hy.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:dy});return y}}async function TH(){return`${await OT()}/exchange`}function Jq(y){let T=qq[y.type],{type:H,...f}=y,C=Uq[H];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:Cq,version:"1"},message:f,primaryType:T,types:{[T]:C}}}async function j5({action:y,expiresAfter:T,nonce:H,vaultAddress:f}){let C=H||Date.now(),U=f?Ky(f,"helpers_invalid_params"):void 0,q=await TH(),X=S5(y,C,{expiresAfter:T,vaultAddress:U});return{action:y,endpoint:q,expiresAfter:T,nonce:C,typedData:F5(X),vaultAddress:U}}async function b5({action:y,nonce:T,signatureChainId:H}){let f=T||y.nonce||Date.now(),C=H||y.signatureChainId||"0xa4b1",U=P5({...y,nonce:f,signatureChainId:C});return{action:U,endpoint:await TH(),nonce:f,typedData:x5(U)}}async function fH({assetValue:y,recipient:T,sender:H,signatureChainId:f,time:C}){let U=Ky(T,"core_transaction_invalid_recipient_address"),q=Ky(H,"core_transaction_invalid_sender_address"),X=await TH(),G=y.getValue("string"),Q=C||Date.now(),Y=y.address;if(!Y)throw new Hy.SwapKitError("helpers_invalid_params",{asset:y.toString(),from:q});let z={amount:G,destination:U,hyperliquidChain:Tq,signatureChainId:f||Hq,time:Q,token:Y,type:"spotSend"};return{action:z,endpoint:X,nonce:Q,typedData:Jq(z)}}async function E5(y){let T=await Hy.RequestClient.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(T.status!=="ok")throw new Hy.SwapKitError("core_transaction_failed",{response:T});return T}async function zq(y,T){let H=await OT(),f=T-5000;for(let C=0;C<5;C++){if(C>0)await new Promise((U)=>setTimeout(U,1000));try{let U=await Hy.RequestClient.post(`${H}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),q=Array.isArray(U)?U.find((X)=>X.time&&X.time>=T&&(X.delta?.type==="spotTransfer"||X.delta?.type==="internalTransfer")):void 0;if(q?.hash)return q.hash}catch{}}return""}function HH(y){return y.startsWith("0x")&&Z0(y)}function Aq(y){let T=Sy(dy),H=y&&"index"in y?y.index||0:0,f=Hy.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:Hy.updateDerivationPath(Hy.NetworkDerivationPath[dy],{index:H})),C,U=!1;function q(){if(U)return C;return C=mf.match(y).with({phrase:mf.P.string},({phrase:L})=>{return n5.HDNodeWallet.fromPhrase(L,void 0,f)}).with({signer:mf.P.not(mf.P.nullish)},({signer:L})=>L).otherwise(()=>{return}),U=!0,C}async function X(){let L=q();return L?await L.getAddress():""}async function G(L){let W=q();if(!W)throw new Hy.SwapKitError("toolbox_hypercore_no_signer");let N=await W.signTypedData(L.typedData.domain,L.typedData.types,L.typedData.message);return{action:L.action,endpoint:L.endpoint,nonce:L.nonce,signature:I5(N),..."expiresAfter"in L?{expiresAfter:L.expiresAfter}:{},..."vaultAddress"in L?{vaultAddress:L.vaultAddress}:{}}}async function Q(L){let W=Ky(L,"helpers_invalid_params");try{let N=await OT(),[A,R,I]=await Promise.all([Hy.RequestClient.post(`${N}/info`,{json:{type:"spotClearinghouseState",user:W}}),Hy.RequestClient.post(`${N}/info`,{json:{type:"clearinghouseState",user:W}}),Hy.RequestClient.post(`${N}/info`,{json:{type:"spotMeta"}})]),F=(A.spotState?.balances||A.balances||[]).map(({coin:O,token:J,total:_})=>V5({coin:O,spotMeta:I,token:J,value:_})).filter((O)=>!!O),D=V5({coin:"USDC",spotMeta:I,value:R.withdrawable||R.marginSummary?.accountValue||R.marginSummary?.totalRawUsd});return Lq(D?[...F,D]:F)}catch{return T(W)}}async function Y(L){let W=q();if(!W)throw new Hy.SwapKitError("toolbox_hypercore_no_signer");let N=L.sender||await W.getAddress(),A=await fH({...L,feeRate:0,sender:N}),R=await G(A);return await E5(R),zq(N,A.nonce)}function z(){return Hy.AssetValue.from({chain:dy,value:0})}return{broadcastTransaction:E5,createL1ActionRequest:j5,createTransaction:fH,createUserSignedActionRequest:b5,estimateTransactionFee:z,getAddress:X,getBalance:Q,getState:{clearinghouse:Xq,frontendOpenOrders:_q,openOrders:Qq,orderStatus:Zq,spotClearinghouse:Gq,userFills:Wq,userFillsByTime:Yq},signTransaction:G,transfer:Y,validateAddress:HH}}var Hy,n5,mf,dy,v5,fq,Tq="Mainnet",Hq="0xa4b1",Cq="0x0000000000000000000000000000000000000000",Uq,qq;var K5=v(()=>{E1();sy();o5();Hy=require("@swapkit/helpers"),n5=require("ethers"),mf=require("ts-pattern"),dy=Hy.Chain.Hype,{baseDecimal:v5}=Hy.getChainConfig(dy),fq={HYPE:v5,USDC:6,USDT:6},Uq={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},qq={spotSend:"HyperliquidTransaction:SpotSend"}});var CH={};Dy(CH,{validateHyperCoreAddress:()=>HH,getHyperCoreToolbox:()=>Aq,createUserSignedActionRequest:()=>b5,createTransaction:()=>fH,createL1ActionRequest:()=>j5,buildUsdClassTransferAction:()=>lU,buildUpdateLeverageAction:()=>jU,buildUpdateIsolatedMarginAction:()=>bU,buildTopUpIsolatedOnlyMarginAction:()=>KU,buildTokenDelegateAction:()=>tU,buildSendAssetAction:()=>uU,buildScheduleCancelAction:()=>pU,buildOrderAction:()=>oU,buildModifyAction:()=>nU,buildCancelByCloidAction:()=>EU,buildCancelAction:()=>VU,buildBatchModifyAction:()=>vU,buildApproveBuilderFeeAction:()=>mU,buildApproveAgentAction:()=>hU});module.exports=ky(CH);var UH=v(()=>{K5()});async function u5(y){let T=e.AssetValue.from({address:y,chain:e.Chain.Solana});if(T.symbol!=="UNKNOWN")return{decimals:T.decimal||0,id:y,logoURI:T.getIconUrl(),name:T.symbol,symbol:T.ticker};let H=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(H);if(!f.ok)return null;let C=await f.json();if(!Array.isArray(C)||C.length===0)return null;return C.find((q)=>q.id===y)||null}catch{return null}}async function Mq(y){let T=await ff(),{PublicKey:H}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),C=new H(y),{baseDecimal:U}=e.getChainConfig(e.Chain.Solana),q=await T.getBalance(C),X=[e.AssetValue.from({chain:e.Chain.Solana,fromBaseDecimal:U,value:q||0})],G=await T.getParsedTokenAccountsByOwner(C,{programId:f});for(let{account:Q}of G.value){let Y=Q.data.parsed.info,z=Y.mint,L=Y.tokenAmount.amount;if(Number(L)===0)continue;let W=await u5(z),N=W?.symbol||"UNKNOWN",A=W?.decimals||Y.tokenAmount.decimals;X.push(e.AssetValue.from({asset:`${e.Chain.Solana}.${N}-${z}`,fromBaseDecimal:A,value:L}))}return X}function XH(y){try{let T=new Tf.PublicKey(y);return Tf.PublicKey.isOnCurve(T.toBytes())}catch{return!1}}function Nq(y){let T=y&&"index"in y?y.index||0:0,H=e.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:e.updateDerivationPath(e.NetworkDerivationPath[e.Chain.Solana],{index:T})),f;async function C(){if(f)return f;return f=await R0.match(y).with({phrase:R0.P.string},({phrase:q})=>qH({derivationPath:H,phrase:q})).with({signer:R0.P.any},({signer:q})=>q).otherwise(()=>{return}),f}async function U(){let q=await C();return q?.publicKey?l5(q.publicKey):""}return{broadcastTransaction:RT(ff),createKeysForPath:qH,createTransaction:GH(ff),createTransactionFromInstructions:Rq,estimateTransactionFee:Bq(ff),getAddress:U,getAddressFromPubKey:l5,getBalance:Sy(e.Chain.Solana),getBalanceFromRPC:Mq,getConnection:ff,getPubkeyFromAddress:(q)=>new Tf.PublicKey(q),signAndBroadcastTransaction:async(q)=>{let X=await p5(ff,C)(q);return RT(ff)(X)},signTransaction:p5(ff,C),transfer:kq(ff,C),validateAddress:XH}}function Bq(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:C,sender:U})=>{let q=await y(),G=(await GH(y)({assetValue:H,isProgramDerivedAddress:C,memo:f,recipient:T,sender:U})).compileMessage(),Q=await q.getFeeForMessage(G);if(Q.value===null)throw new e.SwapKitError("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:Y}=e.getChainConfig(e.Chain.Solana);return e.AssetValue.from({chain:e.Chain.Solana,fromBaseDecimal:Y,value:Q.value})}}async function ff(){let{Connection:y}=await import("@solana/web3.js"),T=await e.getRPCUrl(e.Chain.Solana);return new y(T,{commitment:"confirmed",fetchMiddleware:(H,f,C)=>{let U={};for(let[q,X]of Object.entries(f?.headers??{})){let G=q.toLowerCase();if(G!=="pragma"&&G!=="solana-client")U[q]=X}C(H,{...f,headers:U})}})}function Dq(y){return async({assetValue:T,recipient:H,sender:f,isProgramDerivedAddress:C})=>{let U=await y(),q=new Tf.PublicKey(f);if(T.isGasAsset){let{Transaction:X,SystemProgram:G}=await import("@solana/web3.js");return new X().add(G.transfer({fromPubkey:q,lamports:T.getBaseValue("number"),toPubkey:new Tf.PublicKey(H)}))}if(T.address)return Oq({amount:T.getBaseValue("number"),connection:U,decimals:T.decimal,from:q,isProgramDerivedAddress:C,recipient:H,tokenAddress:T.address});return}}async function Oq({tokenAddress:y,recipient:T,from:H,connection:f,amount:C,decimals:U,isProgramDerivedAddress:q}){let{getAssociatedTokenAddress:X,getAccount:G,createAssociatedTokenAccountInstruction:Q,createTransferCheckedInstruction:Y}=await import("@solana/spl-token"),{Transaction:z}=await import("@solana/web3.js"),L=new z,W=new Tf.PublicKey(y),N=await X(W,H),A=new Tf.PublicKey(T),R=await X(W,A,q),I=!1;try{await G(f,R),I=!0}catch{}if(!I)L.add(Q(H,R,A,W));return L.add(Y(N,W,R,H,C,U)),L}function GH(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:C,sender:U})=>{let{createMemoInstruction:q}=await import("@solana/spl-memo"),X=new Tf.PublicKey(U);if(!(C||XH(T)))throw new e.SwapKitError("core_transaction_invalid_recipient_address");let G=await y(),Q=await Dq(y)({assetValue:H,isProgramDerivedAddress:C,recipient:T,sender:U});if(!Q)throw new e.SwapKitError("core_transaction_invalid_sender_address");if(f)Q.add(q(f));let Y=await G.getLatestBlockhash();return Q.recentBlockhash=Y.blockhash,Q.feePayer=X,Q}}async function Rq({instructions:y}){let{Transaction:T}=await import("@solana/web3.js"),H=new T().add(...y);if(!H)throw new e.SwapKitError("core_transaction_invalid_sender_address");return H}function kq(y,T){return async({recipient:H,assetValue:f,memo:C,isProgramDerivedAddress:U})=>{let q=await T();if(!q)throw new e.SwapKitError("core_transaction_invalid_sender_address");let X=q.publicKey?.toString()??(await q.connect()).publicKey.toString(),G=await GH(y)({assetValue:f,isProgramDerivedAddress:U,memo:C,recipient:H,sender:X});if("signTransaction"in q){let Q=await q.signTransaction(G);return RT(y)(Q)}return G.sign(q),RT(y)(G)}}function RT(y){return async(T)=>{return(await y()).sendRawTransaction(T.serialize())}}function p5(y,T){return async(H)=>{let f=await T();if(!f)throw new e.SwapKitError("toolbox_solana_no_signer");let{VersionedTransaction:C}=await import("@solana/web3.js");if(!(H instanceof C)){let q=await(await y()).getLatestBlockhash();H.recentBlockhash=q.blockhash,H.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(H);return H.sign([f]),H}}async function qH({phrase:y,derivationPath:T=e.DerivationPath.SOL}){let{HDKey:H}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:C}=await import("@solana/web3.js"),U=f(y),q=H.fromMasterSeed(U);return C.fromSeed(q.derive(T,!0).privateKey)}function l5(y){return y.toString()}var Tf,e,R0;var h5=v(()=>{sy();Tf=require("@solana/web3.js"),e=require("@swapkit/helpers"),R0=require("ts-pattern")});var QH={};Dy(QH,{validateSolanaAddress:()=>XH,getSolanaToolbox:()=>Nq,fetchTokenMetaData:()=>u5,createKeysForPath:()=>qH});module.exports=ky(QH);var _H=v(()=>{h5()});function kT(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function wT({phrase:y,derivationPath:T=r.DerivationPath.STRK}){let{HDKey:H}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:C,hash:U,encode:q,CallData:X}=await import("starknet"),G=f(y),Y=H.fromMasterSeed(G).derive(T);if(!Y.privateKey)throw new r.SwapKitError("toolbox_starknet_no_signer");let z=q.addHexPrefix(Buffer.from(Y.privateKey).toString("hex")),L=C.starkCurve.grindKey(z),W=q.addHexPrefix(L),N=C.starkCurve.getStarkKey(W),A=X.compile([N,0]);return{address:U.calculateContractAddressFromHash(N,WH,A,0),privateKey:W,publicKey:N}}async function YH({phrase:y,derivationPath:T=r.DerivationPath.STRK}){let{Account:H,RpcProvider:f}=await import("starknet"),{privateKey:C,address:U}=await wT({derivationPath:T,phrase:y}),q=await r.getRPCUrl(r.Chain.Starknet),X=new f({nodeUrl:q});return new H({address:U,provider:X,signer:C})}function t5(y){let T=r.Chain.Starknet,H=y&&"index"in y?y.index||0:0,f=r.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:r.updateDerivationPath(r.NetworkDerivationPath[T],{index:H})),C,U,q;async function X(){if(U)return U;let{RpcProvider:J}=await import("starknet"),_=await r.getRPCUrl(T);return U=new J({nodeUrl:_}),U}async function G(J){let _=await X(),Z=J||await L();if(!Z)return!1;try{return await _.getClassHashAt(Z),!0}catch(B){if(B instanceof Error&&B.message.includes("Contract not found"))return!1;let w=B;if(w?.code===20||w?.code===19)return!1;throw B}}async function Q(){let{CallData:J,hash:_}=await import("starknet"),Z=await X(),B=await z();if(!B)throw new r.SwapKitError("toolbox_starknet_no_signer");if(!q)throw new r.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await G())return B.address;let k=J.compile([q,0]);if(_.calculateContractAddressFromHash(q,WH,k,0).toLowerCase()!==B.address.toLowerCase())throw new r.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let P={addressSalt:q,classHash:WH,constructorCalldata:k},{transaction_hash:M}=await B.deployAccount(P);return await Z.waitForTransaction(M),M}async function Y(){if(!await G()){if(!q)throw new r.SwapKitError({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 z(){if(C)return C;return C=await py.match(y).with({phrase:py.P.string},async({phrase:J})=>{let{Account:_,RpcProvider:Z}=await import("starknet"),{privateKey:B,address:w,publicKey:k}=await wT({derivationPath:f,phrase:J});q=k;let $=await r.getRPCUrl(r.Chain.Starknet),P=new Z({nodeUrl:$});return new _({address:w,provider:P,signer:B})}).with({address:py.P.string,privateKey:py.P.string},async({privateKey:J,address:_})=>{let{Account:Z}=await import("starknet"),B=await X();return new Z({address:_,provider:B,signer:J})}).with({signer:py.P.instanceOf(Object)},({signer:J})=>J).otherwise(()=>{return}),C}async function L(){return(await z())?.address??""}async function W(J){let _=await X(),{uint256:Z,CallData:B}=await import("starknet"),w=[],k=[ZH,m5];for(let $ of k)try{let[P="0",M="0"]=await _.callContract({calldata:B.compile({account:J}),contractAddress:$,entrypoint:"balanceOf"}),x=Z.uint256ToBN({high:P,low:M});py.match($).with(ZH,()=>{w.push(r.AssetValue.from({chain:T,value:x}))}).with(m5,()=>{if(x>0n)w.push(r.AssetValue.from({asset:`${T}.ETH-${$}`,value:x}))}).otherwise(()=>{})}catch{}return w}async function N({recipient:J,assetValue:_}){let{CallData:Z,uint256:B}=await import("starknet");if(!kT(J))throw new r.SwapKitError("core_transaction_invalid_recipient_address",{address:J});let w=_.isGasAsset?ZH:_.address;if(!w)throw new r.SwapKitError("toolbox_starknet_invalid_address",{address:w,assetValue:_});let k=B.bnToUint256(_.getBaseValue("bigint"));return[{calldata:Z.compile([J,k]),contractAddress:w,entrypoint:"transfer"}]}async function A({recipient:J,assetValue:_,sender:Z}){let{baseDecimal:B}=r.getChainConfig(r.Chain.Starknet),w=await z(),k=await py.match({sender:Z,signer:w}).with({sender:py.P.string},async({sender:$})=>{let{Account:P}=await import("starknet"),M=await X();return new P({address:$,provider:M,signer:"0x0"})}).with({signer:py.P.nonNullable},({signer:$})=>$).otherwise(($)=>{throw new r.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:$}})});try{let $=await N({assetValue:_,recipient:J}),P=await k.estimateInvokeFee($);if(P?.overall_fee)return r.AssetValue.from({chain:T,fromBaseDecimal:B,value:P.overall_fee})}catch($){throw new r.SwapKitError("toolbox_starknet_fee_estimation_failed",$)}return r.AssetValue.from({chain:T,value:"0.00001"})}async function R({recipient:J,assetValue:_,memo:Z}){let B=await z();if(!B)throw new r.SwapKitError("toolbox_starknet_no_signer");await Y();let w=await N({assetValue:_,memo:Z,recipient:J});return(await B.execute(w)).transaction_hash}async function I(J){let _=await z();if(!_)throw new r.SwapKitError("toolbox_starknet_no_signer");let Z=await _.signMessage(J);return Array.isArray(Z)?Z:[Z.r.toString(),Z.s.toString()]}async function F(J){let _=await z();if(!_)throw new r.SwapKitError("toolbox_starknet_no_signer");return await Y(),(await _.execute(J)).transaction_hash}function D(J){return F(J)}function O(J,_=!0){try{return Sy(T)(J,_)}catch{return W(J)}}return{broadcastTransaction:F,createKeysForPath:YH,createTransaction:N,deployAccount:Q,estimateTransactionFee:A,getAddress:L,getBalance:O,getProvider:X,isAccountDeployed:G,signAndBroadcastTransaction:D,signMessage:I,transfer:R,validateAddress:kT}}var r,py,ZH="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",m5="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",WH="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var g5=v(()=>{sy();r=require("@swapkit/helpers"),py=require("ts-pattern")});var $T={};Dy($T,{validateStarknetAddress:()=>kT,starknetCreateKeysForPath:()=>YH,getStarknetToolbox:()=>t5,deriveStarknetKeys:()=>wT});module.exports=ky($T);var FT=v(()=>{g5()});async function IT(y,T,H,f,C=[],U){let q=await y.getCoins({coinType:H,cursor:U,owner:T}),X=[...C,...q.data],G=X.reduce((Q,Y)=>Q+BigInt(Y.balance),0n);return q.hasNextPage&&G<f?IT(y,T,H,f,X,q.nextCursor):X}function ST({coinObjectId:y,digest:T,version:H}){return{digest:T,objectId:y,version:H}}function $q(y,T,H){let f=T.reduce((Q,Y)=>Q+BigInt(Y.balance),0n);if(f<H)throw new Ty.SwapKitError("toolbox_sui_insufficient_balance",{available:f.toString(),required:H.toString()});let{selectedCoins:C}=T.reduce((Q,Y)=>{if(Q.total>=H)return Q;return{selectedCoins:[...Q.selectedCoins,Y],total:Q.total+BigInt(Y.balance)}},{selectedCoins:[],total:0n}),U=C[0],q=y.objectRef(ST(U)),X=C.slice(1).map((Q)=>y.objectRef(ST(Q)));if(X.length>0)y.mergeCoins(q,X);let[G]=y.splitCoins(q,[H]);return G}function c5(y,T){let H=y.reduce((f,C)=>f+BigInt(C.balance),0n);if(H<T)throw new Ty.SwapKitError("toolbox_sui_insufficient_balance",{available:H.toString(),required:T.toString()})}function r5(y){try{return d5.isValidSuiAddress(y)}catch{return!1}}function i5(y){return"signWithIntent"in y}function Fq({provider:y,...T}={}){let H;async function f(){if(H)return H;return H=await k0.match(T).with({phrase:k0.P.string},async({phrase:A})=>{let{Ed25519Keypair:R}=await import("@mysten/sui/keypairs/ed25519");return R.deriveKeypair(A)}).with({signer:k0.P.any},({signer:A})=>A).otherwise(()=>{return}),H}async function C(A=y){let{SuiJsonRpcClient:R}=await import("@mysten/sui/jsonRpc");return new R({network:"mainnet",url:A||Ty.getRPCUrlSync(Ty.Chain.Sui)})}async function U(A){return BigInt(await A.getReferenceGasPrice())}async function q(){return(await f())?.toSuiAddress()||""}function X(A){try{let R=Ty.AssetValue.from({address:A,chain:Ty.Chain.Sui});return{asset:R.toString(),decimals:R.decimal}}catch{}return null}async function G(A){let R=A||await q();if(!R)throw new Ty.SwapKitError("toolbox_sui_address_required");let{baseDecimal:I,chain:F}=Ty.getChainConfig(Ty.Chain.Sui);try{let O=await(await C()).getAllBalances({owner:R}),J=O.find(({coinType:Z})=>Z===xT)?.totalBalance||"0",_=[Ty.AssetValue.from({chain:F,fromBaseDecimal:I,value:J})];for(let{coinType:Z,totalBalance:B}of O){if(Z===xT||Number(B)<=0)continue;let w=X(Z);if(w)_.push(Ty.AssetValue.from({asset:w.asset,fromBaseDecimal:w.decimals,value:B}))}return _}catch{return[Ty.AssetValue.from({chain:F})]}}async function Q(A){let R=Ty.AssetValue.from({chain:Ty.Chain.Sui,value:"0.01"});if(!A)return R;try{let I=await C(),{txBytes:F}=await Y(A),{effects:{status:D,gasUsed:O}}=await I.dryRunTransactionBlock({transactionBlock:F});if(D.status!=="success")return R;let{baseDecimal:J}=Ty.getChainConfig(Ty.Chain.Sui),_=BigInt(O.computationCost)+BigInt(O.storageCost)-BigInt(O.storageRebate);return Ty.AssetValue.from({chain:Ty.Chain.Sui,fromBaseDecimal:J,value:_.toString()})}catch{return R}}async function Y({recipient:A,assetValue:R,gasBudget:I,sender:F}){let{Transaction:D}=await import("@mysten/sui/transactions"),O=F||await q(),J=I||wq;if(!O)throw new Ty.SwapKitError("toolbox_sui_no_sender");try{let _=await C(),Z=new D;if(Z.setSender(O),R.isGasAsset||R.symbol==="SUI"){let w=R.getBaseValue("bigint"),[k,$]=await Promise.all([U(_),IT(_,O,xT,w+BigInt(J))]);c5($,w+BigInt(J)),Z.setGasPrice(k),Z.setGasPayment($.map(ST));let[P]=Z.splitCoins(Z.gas,[R.getBaseValue("string")]);Z.transferObjects([P],A)}else{let w=R.address;if(!w)throw new Ty.SwapKitError("toolbox_sui_missing_coin_type");let k=R.getBaseValue("bigint"),[$,P,M]=await Promise.all([U(_),IT(_,O,xT,BigInt(J)),IT(_,O,w,k)]);if(!M.length)throw new Ty.SwapKitError("toolbox_sui_no_coins_found",{coinType:w});c5(P,BigInt(J)),Z.setGasPrice($),Z.setGasPayment(P.map(ST));let x=$q(Z,M,k);Z.transferObjects([x],A)}Z.setGasBudget(J);let B=await Z.build({client:_});return{tx:Z,txBytes:B}}catch(_){if(_ instanceof Ty.SwapKitError)throw _;throw new Ty.SwapKitError("toolbox_sui_transaction_creation_error",{error:_})}}async function z(A){let R=await f();if(!R)throw new Ty.SwapKitError("toolbox_sui_no_signer");if(A instanceof Uint8Array)return R.signTransaction(A);let{txBytes:I}="tx"in A?A:await Y(A);return R.signTransaction(I)}async function L({assetValue:A,gasBudget:R,recipient:I}){let F=await f();if(!F)throw new Ty.SwapKitError("toolbox_sui_no_signer");let D=F.toSuiAddress()||await q();if(!D)throw new Ty.SwapKitError("toolbox_sui_no_sender");let{txBytes:O}=await Y({assetValue:A,gasBudget:R,recipient:I,sender:D}),J=await C();if(!i5(F)){let Z=await F.signTransaction(O),{digest:B}=await J.executeTransactionBlock({signature:Z.signature,transactionBlock:Z.bytes});return B}let{digest:_}=await J.signAndExecuteTransaction({signer:F,transaction:O});return _}async function W(A){let R=await C(),{digest:I}=await R.executeTransactionBlock({signature:A.signature,transactionBlock:A.bytes});return I}async function N(A){let R=await f();if(!R)throw new Ty.SwapKitError("toolbox_sui_no_signer");let I=await C(),F;if(typeof A==="string")F=Uint8Array.from(Buffer.from(A,"base64"));else if(A instanceof Uint8Array)F=A;else F=await A.build({client:I});if(!i5(R)){let O=await R.signTransaction(F),{digest:J}=await I.executeTransactionBlock({signature:O.signature,transactionBlock:O.bytes});return J}let{digest:D}=await I.signAndExecuteTransaction({signer:R,transaction:F});return D}return{broadcastTransaction:W,createTransaction:Y,estimateTransactionFee:Q,getAddress:q,getBalance:G,signAndBroadcastTransaction:N,signTransaction:z,transfer:L,validateAddress:r5}}var d5,Ty,k0,xT="0x2::sui::SUI",wq=50000000;var a5=v(()=>{d5=require("@mysten/sui/utils"),Ty=require("@swapkit/helpers"),k0=require("ts-pattern")});var PT={};Dy(PT,{validateSuiAddress:()=>r5,getSuiToolbox:()=>Fq});module.exports=ky(PT);var oT=v(()=>{a5()});async function Vq(){let y=Date.now();if(VT&&y-e5<oq)return VT;let{getHttpEndpoint:T}=await import("@orbs-network/ton-access");return VT=await T(),e5=y,VT}async function Eq(){let[y]=zy.SKConfig.get("rpcUrls")[zy.Chain.Ton]??[];if(y)return y;return await Vq()}function nq(y={}){let T,H,f;async function C(){if(!T){let{TonClient:J}=await import("@ton/ton"),_=y.provider??await Eq();T=new J({endpoint:_})}return T}async function U(){return(await X()).address.toString()}async function q(){if(f)return f;return f=await xf.match(y).with({phrase:xf.P.string},async({phrase:J})=>{let{mnemonicToWalletKey:_}=await import("@ton/crypto");return _(J.split(" "))}).with({signer:xf.P.any},({signer:J})=>J).otherwise(()=>{return}),f}async function X(J){if(!H||J){let _=await q(),Z=await C(),B=J||_;if(!B)throw new zy.SwapKitError("core_wallet_connection_not_found");let{WalletContractV4:w}=await import("@ton/ton"),k=w.create({publicKey:B.publicKey,workchain:0});H=Z.open(k)}return H}let G=Sy(zy.Chain.Ton);async function Q({assetValue:J,recipient:_,memo:Z,sender:B,sweep:w}){if(J.isGasAsset){let m=Z?O(Z).toBoc().toString("base64"):void 0;return[{address:_,amount:J.getBaseValue("string"),payload:m}]}if(w)throw new zy.SwapKitError({errorKey:"core_swap_invalid_params",info:{asset:J.toString(),reason:"TON sweep is only supported for the native gas asset"}});let k=J.address;if(!k)throw new zy.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:J.toString()}});let $=B??await U(),P=await F({jettonMasterAddress:k,ownerAddress:$}),M=fy.Address.parse(_),x=fy.Address.parse($),V=J.getBaseValue("bigint"),j=Z?O(Z):void 0,n=D({destinationAddress:M,forwardPayload:j,jettonAmount:V,responseAddress:x});return[{address:P.toString(),amount:Sq.toString(),payload:n.toBoc().toString("base64")}]}async function Y({sender:J,sweep:_,...Z}){return{messages:await Q({...Z,sender:J,sweep:_}),sendMode:_?Pq:s5}}function z(J){if(!Array.isArray(J))return J;let[_]=J;return{messages:J.map(({sendMode:B,...w})=>w),sendMode:_?.sendMode??s5}}function L(J){return J.map((_)=>{let Z=_.payload?fy.Cell.fromBase64(_.payload):void 0,B=_.stateInit?fy.loadStateInit(fy.Cell.fromBase64(_.stateInit).asSlice()):void 0,w=fy.Address.parse(_.address),k=fy.Address.isFriendly(_.address)?fy.Address.parseFriendly(_.address).isBounceable:!0;return fy.internal({body:Z,bounce:k,init:B,to:w,value:BigInt(_.amount)})})}async function W(J){let _=await q(),Z=await X();if(!Z||!_)throw new zy.SwapKitError("core_wallet_connection_not_found");let B=await C(),{state:w}=await B.getContractState(Z.address),k=w==="active",$=k?await Z.getSeqno():0,{messages:P,sendMode:M}=z(J),x=Z.createTransfer({messages:L(P),secretKey:_.secretKey,sendMode:M,seqno:$}),V=fy.external({body:x,init:k?void 0:Z.init,to:Z.address});return fy.beginCell().store(fy.storeMessage(V)).endCell()}async function N(J){return await(await C()).sendFile(J.toBoc()),J.hash().toString("hex")}async function A(J){let _=await W(J);return N(_)}async function R({assetValue:J,recipient:_,memo:Z,sweep:B}){let w=await Y({assetValue:J,memo:Z,recipient:_,sweep:B});return A(w)}async function I({sender:J,..._}){let{baseDecimal:Z}=zy.getChainConfig(zy.Chain.Ton),B=await xf.match(J).with(xf.P.string,($)=>{return fy.Address.parseFriendly($).address}).otherwise(async()=>{return(await X()).address});if(!B)throw new zy.SwapKitError("toolbox_fee_estimation_failed",{chain:zy.Chain.Ton});let w=zy.AssetValue.from({chain:zy.Chain.Ton,value:"0.01"}),k=await C();try{let $=await Y({sender:J,..._}),P=await q(),M=await X();if(!M||!P)return w;let x=await M.getSeqno(),V=M.createTransfer({messages:L($.messages),secretKey:P.secretKey,sendMode:$.sendMode,seqno:x}),{source_fees:j}=await k.estimateExternalMessageFee(B,{body:V,ignoreSignature:!0,initCode:null,initData:null}),n=j.in_fwd_fee+j.storage_fee+j.gas_fee+j.fwd_fee;return w.set(zy.SwapKitNumber.fromBigInt(BigInt(n),Z))}catch{return w}}async function F({jettonMasterAddress:J,ownerAddress:_}){try{let Z=await C(),B=fy.Address.parse(J),w=fy.Address.parse(_),{JettonMaster:k}=await import("@ton/ton");return await Z.open(k.create(B)).getWalletAddress(w)}catch{throw new zy.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:J,ownerAddress:_}})}}function D({jettonAmount:J,destinationAddress:_,responseAddress:Z,forwardAmount:B=Iq,forwardPayload:w}){let k=fy.beginCell().storeUint(xq,32).storeUint(0,64).storeCoins(J).storeAddress(_).storeAddress(Z).storeBit(0).storeCoins(B);if(w)k.storeBit(1).storeRef(w);else k.storeBit(0);return k.endCell()}function O(J){return fy.beginCell().storeUint(0,32).storeStringTail(J).endCell()}return{broadcastTransaction:N,createTransaction:Y,estimateTransactionFee:I,getAddress:U,getBalance:G,getJettonWalletAddress:F,sign:W,signAndBroadcastTransaction:A,transfer:R,validateAddress:y2}}function y2(y){try{return fy.Address.parse(y),!0}catch{return!1}}var zy,fy,xf,xq=260734629,Iq,Sq,s5,Pq,oq=60000,VT,e5=0;var f2=v(()=>{sy();zy=require("@swapkit/helpers"),fy=require("@ton/core"),xf=require("ts-pattern"),Iq=fy.toNano("0.01"),Sq=fy.toNano("0.05"),s5=fy.SendMode.PAY_GAS_SEPARATELY+fy.SendMode.IGNORE_ERRORS,Pq=fy.SendMode.CARRY_ALL_REMAINING_BALANCE+fy.SendMode.IGNORE_ERRORS});var ET={};Dy(ET,{validateTonAddress:()=>y2,getTONToolbox:()=>nq});module.exports=ky(ET);var nT=v(()=>{f2()});function ly(y,T){if(!Number.isInteger(T)||T<0)throw RangeError(`${y} must be a non-negative integer, got: ${T}`)}function Jf({accountIndex:y,chain:T,derivationPath:H}){if(y!==void 0)ly("accountIndex",y);let f=[...H?.slice(0,3)??T2.NetworkDerivationPath[T].slice(0,3)];if(y!==void 0)f[2]=y;return f}function tf({accountIndex:y,change:T=!1,chain:H,derivationPath:f,index:C}){return ly("index",C),[...Jf({accountIndex:y,chain:H,derivationPath:f}),Number(T),C]}function If(y){return y[2]??0}function H2({deriveAddress:y,getBalance:T,getUtxos:H}){async function f(X){let{accountIndex:G,count:Q,startIndex:Y=0,change:z=!1}=X;if(ly("count",Q),Q<1)throw RangeError("count must be at least 1");ly("startIndex",Y);let L=[];for(let W=0;W<Q;W++){let N=await y({accountIndex:G,change:z,index:Y+W});if(N)L.push(N)}return L}async function C(X){let{gapLimit:G=20,change:Q=!1}=X??{},Y=[],z=0,L=0;while(z<G){let W=await y({change:Q,index:L});if(!W)break;if((await T(W.address)).some((R)=>R.getValue("number")>0))Y.push(W),z=0;else z++;L++}return Y}async function U(X=20){let[G,Q]=await Promise.all([C({change:!1,gapLimit:X}),C({change:!0,gapLimit:X})]),Y=[...G,...Q],z=await Promise.all(Y.map(async(W)=>{let A=(await T(W.address)).reduce((R,I)=>R+I.getValue("number"),0);return{...W,balance:A}})),L=z.reduce((W,N)=>W+N.balance,0);return{addresses:z,total:L}}async function q(X=20){let[G,Q]=await Promise.all([C({change:!1,gapLimit:X}),C({change:!0,gapLimit:X})]),Y=[...G,...Q];return(await Promise.all(Y.map(async(L)=>{return(await H(L.address)).map((N)=>({...N,address:L.address,derivationIndex:L.index,isChange:L.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:U,getAggregatedUtxos:q,scanForAddresses:C}}var T2;var w0=v(()=>{T2=require("@swapkit/helpers")});async function vq({chain:y,txHash:T}){let H=`${$0(y)}/push/transaction`,f=JSON.stringify({data:T});try{let C=await i.RequestClient.post(H,{body:f,headers:{"Content-Type":"application/json"}});if(C.context.code!==200)throw new i.SwapKitError("toolbox_utxo_broadcast_failed",{error:C.context.error||"Transaction broadcast failed"});return C.data?.transaction_hash||T}catch(C){let U=await i.getRPCUrl(y);if(U){let q=JSON.stringify({id:BC(),jsonrpc:"2.0",method:"sendrawtransaction",params:[T]}),X=await i.RequestClient.post(U,{body:q,headers:{"Content-Type":"application/json"}});if(X.error)throw new i.SwapKitError("toolbox_utxo_broadcast_failed",{error:X.error?.message});if(X.result.includes('"code":-26'))throw new i.SwapKitError("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return X.result}throw C}}function $0(y){return`https://api.blockchair.com/${jq(y)}`}function C2(y){switch(y){case i.Chain.Bitcoin:return 5;case i.Chain.Dogecoin:return 1e4;case i.Chain.Litecoin:return 1;case i.Chain.Zcash:return 1;default:return 2}}function jq(y){switch(y){case i.Chain.BitcoinCash:return"bitcoin-cash";case i.Chain.Litecoin:return"litecoin";case i.Chain.Dash:return"dash";case i.Chain.Dogecoin:return"dogecoin";case i.Chain.Zcash:return"zcash";case i.Chain.Polkadot:return"polkadot";default:return"bitcoin"}}async function bq(y){try{let{feePerKb:T}=await i.RequestClient.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),H=T/1000;return Math.max(H,C2(y))}catch{return C2(y)}}async function vT(y,T){let H=await i.RequestClient.get(`${y}${T?`${y.includes("?")?"&":"?"}key=${T}`:""}`);if(!H||H.context.code!==200)throw new i.SwapKitError("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return H.data}async function q2({address:y,chain:T,apiKey:H}){if(!y)throw new i.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await vT(`${$0(T)}/dashboards/address/${y}?transaction_details=true`,H))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function Kq({address:y,chain:T,apiKey:H}){return(await q2({address:y,apiKey:H,chain:T}))?.address.balance||0}async function X2({chain:y,apiKey:T,txHash:H}){if(!H)throw new i.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await vT(`${$0(y)}/raw/transaction/${H}`,T))?.[H]?.raw_transaction||""}catch(f){let C=f instanceof Error?f.message:String(f);return console.error(`Failed to fetch raw transaction: ${C}`),""}}async function lq({chain:y,apiKey:T,txHash:H}){if(!H)throw new i.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});let C=(await vT(`${$0(y)}/dashboards/transaction/${H}`,T))?.[H];if(!C)throw new i.SwapKitError("toolbox_utxo_tx_not_found",{txHash:H});let{transaction:U,inputs:q,outputs:X}=C,G=q.map((Y)=>Y.spending_sequence),Q=U.is_rbf===!0||G.some((Y)=>Y<pq);return{blockId:U.block_id,confirmed:U.block_id!==-1,fee:U.fee,inputs:q,isRBF:Q,outputs:X,sequences:G,size:U.size,txid:U.hash,weight:U.weight}}async function uq({chain:y,address:T,apiKey:H,offset:f=0,limit:C=30}){return(await vT(`${$0(y)}/outputs?q=recipient(${T}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${C}&offset=${f}`,H)).map(({is_spent:G,script_hex:Q,block_id:Y,transaction_hash:z,index:L,value:W,spending_signature_hex:N})=>({hash:z,index:L,is_confirmed:Y!==-1,is_spent:G,script_hex:Q,txHex:N,value:W}))}function hq(y){return y.reduce((T,H)=>T+H.value,0)}function U2(y,T){let H=[...y].sort((f,C)=>C.value-f.value);if(T){let f=[],C=0;for(let U of H)if(f.push(U),C+=U.value,C>=T)break;return f}return H}async function G2({chain:y,address:T,apiKey:H,targetValue:f,accumulativeValue:C=0,offset:U=0,limit:q=30}){if(!T)throw new i.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{let X=await uq({address:T,apiKey:H,chain:y,limit:q,offset:U,targetValue:f}),Q=X.length<q,Y=X.filter(({is_spent:R})=>!R),z=hq(Y),L=C+z,W=f&&L>=f;if(Q||W)return U2(Y,f);let N=await G2({accumulativeValue:L,address:T,apiKey:H,chain:y,limit:q,offset:U+q,targetValue:f}),A=[...Y,...N];return U2(A,f)}catch(X){let G=X instanceof Error?X.message:String(X);return console.error(`Failed to fetch unspent UTXOs: ${G}`),[]}}async function mq({address:y,chain:T,apiKey:H,fetchTxHex:f=!0,targetValue:C}){let U=await G2({address:y,apiKey:H,chain:T,targetValue:C}),q=[];for(let{hash:X,index:G,script_hex:Q,value:Y}of U){let z;if(f)z=await X2({apiKey:H,chain:T,txHash:X});q.push({address:y,hash:X,index:G,txHex:z,value:Y,witnessUtxo:{script:Buffer.from(Q,"hex"),value:Y}})}return q}function Ry(y){let T=i.SKConfig.get("apiKeys").blockchair||"";return i.warnOnce({condition:!T,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(H)=>vq({chain:y,txHash:H}),getAddressData:(H)=>q2({address:H,apiKey:T,chain:y}),getBalance:(H)=>Kq({address:H,apiKey:T,chain:y}),getRawTx:(H)=>X2({apiKey:T,chain:y,txHash:H}),getSuggestedTxFee:()=>bq(y),getTransactionDetails:(H)=>lq({apiKey:T,chain:y,txHash:H}),getUtxos:(H)=>mq({...H,apiKey:T,chain:y})}}function tq(y){return y}function gq(){return function(T){switch(T){case i.Chain.Bitcoin:return Sf.NETWORKS.bitcoin;case i.Chain.BitcoinCash:return Sf.NETWORKS.bitcoinCash;case i.Chain.Dash:return Sf.NETWORKS.dash;case i.Chain.Litecoin:return Sf.NETWORKS.litecoin;case i.Chain.Dogecoin:return Sf.NETWORKS.dogecoin;case i.Chain.Zcash:return Sf.NETWORKS.zcash;default:throw new i.SwapKitError("toolbox_utxo_not_supported",{chain:T})}}}var i,Sf,pq=4294967294;var Q2=v(()=>{sy();i=require("@swapkit/helpers"),Sf=require("@swapkit/utxo-signer")});function dq(y,T,H){return Hf.encodeCashAddr({hash:H,prefix:y,type:cq[T]})}function rq(y){let T=Hf.decodeCashAddr(y),H=iq[T.type];if(!H)throw Error(`Unknown CashAddr type: ${T.type}`);return{hash:T.hash,prefix:T.prefix,type:H}}var Hf,cq,iq,LH;var _2=v(()=>{Hf=require("@swapkit/utxo-signer"),cq={P2PKH:Hf.CashAddrType.P2PKH,P2SH:Hf.CashAddrType.P2SH},iq={[Hf.CashAddrType.P2PKH]:"P2PKH",[Hf.CashAddrType.P2SH]:"P2SH"};LH={decode:rq,encode:dq}});function AH(y){try{return jT(y),!0}catch{return!1}}function MH(y){return jT(y)?.network}function Cf(y){let T=jT(y);if(T?.format==="legacy")return y;return eq(T)}function F0(y){let T=jT(y);return yX(T)}function jT(y){try{let T=aq(y);if(T)return T}catch{}try{let T=sq(y);if(T)return T}catch{}throw new JH.SwapKitError("toolbox_utxo_invalid_address",{address:y})}function aq(y){try{let T=L2.decode(y);if(T.length!==21)throw new JH.SwapKitError("toolbox_utxo_invalid_address",{address:y});let H=T[0],f=Array.prototype.slice.call(T,1);switch(H){case Pf.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case Pf.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case Pf.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case Pf.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case Pf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case Pf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function sq(y){if(y.indexOf(":")!==-1)try{return Z2(y)}catch{}else{let T=["bitcoincash","bchtest","bchreg"];for(let H of T)try{return Z2(`${H}:${y}`)}catch{}}return}function Z2(y){try{let{hash:T,prefix:H,type:f}=LH.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(T,0),network:H==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function eq(y){let T=Pf.legacy[y.network][y.type],H=Buffer.alloc(1+y.hash.length);return H[0]=T,H.set(y.hash,1),L2.encode(H)}function yX(y){let T=y.network==="mainnet"?"bitcoincash":"bchtest",H=y.type==="p2pkh"?"P2PKH":"P2SH",f=new Uint8Array(y.hash);return LH.encode(T,H,f)}var W2,Y2,JH,L2,zH,Pf;var J2=v(()=>{_2();W2=require("@noble/hashes/sha2.js"),Y2=require("@scure/base"),JH=require("@swapkit/helpers"),L2=Y2.createBase58check(W2.sha256);((H)=>{H.Mainnet="mainnet";H.Testnet="testnet"})(zH||={});Pf={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});function ny(y){let T=new Uint8Array(Buffer.from(y,"utf8"));return A2.Script.encode(["RETURN",T])}var z2,A2,fX=1000,KT=10,pT=2,M2=10,TX=41,HX=107,lT,bT,x0,gf=(y)=>{if(y.startsWith("bc1")||y.startsWith("tb1")||y.startsWith("ltc1")||y.startsWith("tltc1"))return"P2WPKH";if(y.startsWith("1")||y.startsWith("m")||y.startsWith("n")||y.startsWith("bitcoincash:q")||y.startsWith("bitcoincash:p")||y.startsWith("q")||y.startsWith("p")||y.startsWith("L")||y.startsWith("M")||y.startsWith("3")||y.startsWith("D")||y.startsWith("A")||y.startsWith("9")||y.startsWith("X")||y.startsWith("7")||y.startsWith("y")||y.startsWith("t1")||y.startsWith("t3")||y.startsWith("tm"))return"P2PKH";throw new z2.SwapKitError("toolbox_utxo_invalid_address",{address:y})},of=({inputs:y,outputs:T,feeRate:H})=>{let f=y[0]&&"address"in y[0]&&y[0].address?gf(y[0].address):"P2PKH",U=(H?y.filter((Q)=>Q.value>=bT["type"in Q&&Q.type?Q.type:"P2PKH"]*Math.ceil(H)):y).reduce((Q,Y)=>Q+zf(Y),0),q=T?.reduce((Q,Y)=>Q+I0(Y),0)||x0[f],X=KT+U+q;return f==="P2WPKH"?Math.ceil(X+pT/4):X},zf=(y)=>{if("type"in y&&y.type)return bT[y.type];if("address"in y&&y.address)return bT[gf(y.address)];return TX+HX},I0=(y,T)=>{if(y?.script)return M2+y.script.length+(y.script.length>=74?2:1);if(T)return x0[T];if("address"in y&&y.address)return x0[gf(y.address)];return x0.P2PKH};var NH=v(()=>{z2=require("@swapkit/helpers"),A2=require("@swapkit/utxo-signer");((H)=>{H.P2PKH="P2PKH";H.P2WPKH="P2WPKH"})(lT||={});bT={["P2PKH"]:148,["P2WPKH"]:68},x0={["P2PKH"]:34,["P2WPKH"]:31}});function S0(y){switch(y){case ry.Chain.Bitcoin:case ry.Chain.BitcoinCash:return 550;case ry.Chain.Dash:case ry.Chain.Litecoin:return 5500;case ry.Chain.Dogecoin:return 1e5;case ry.Chain.Zcash:return 546;default:throw new ry.SwapKitError("toolbox_utxo_not_supported",{chain:y})}}function uy({inputs:y,outputs:T,feeRate:H=1,chain:f=ry.Chain.Bitcoin,changeAddress:C=""}){let U=y[0]&&"address"in y[0]&&y[0].address?gf(y[0].address):"P2PKH",q=y.filter((N)=>zf(N)*H<=N.value),G=U==="P2WPKH"?Math.ceil(pT/4):0,Q=KT+G+T.reduce((N,A)=>N+I0(A),0),Y=T.reduce((N,A)=>N+A.value,0),z=Q*H,L=0,W=[];for(let N of q){let A=zf(N),R=H*A;z+=R,L+=N.value,W.push(N);let I=z+Y;if(L<I)continue;let F=L-I,D=H*I0({address:C,value:0});if(F>D){let O=D+z,J=L-(Y+Math.ceil(O));if(J>Math.max(zf({value:0})*H,S0(f)))return{fee:Math.ceil(O),inputs:W,outputs:T.concat({address:C,value:J})}}return{fee:Math.ceil(z),inputs:W,outputs:T}}return{fee:Math.ceil(H*of({inputs:y,outputs:T}))}}var ry;var N2=v(()=>{NH();ry=require("@swapkit/helpers")});var cf=v(()=>{Q2();J2();N2();NH()});function Vf(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function Af(y){let T=Vf(y);return AH(T)&&MH(T)==="mainnet"}var Ef;var P0=v(()=>{cf();Ef=require("@swapkit/utxo-signer")});function OH({address:y,chain:T}){return DH.match(T).with(o.Chain.BitcoinCash,()=>Af(y)).with(o.Chain.Zcash,()=>Ef.validateZcashAddress(y)).otherwise(()=>{try{return s.Address(xy(T)).decode(y),!0}catch{return!1}})}function xy(y){return DH.match(y).with(o.Chain.Bitcoin,()=>s.NETWORKS.bitcoin).with(o.Chain.BitcoinCash,()=>s.NETWORKS.bitcoinCash).with(o.Chain.Dash,()=>s.NETWORKS.dash).with(o.Chain.Dogecoin,()=>s.NETWORKS.dogecoin).with(o.Chain.Litecoin,()=>s.NETWORKS.litecoin).with(o.Chain.Zcash,()=>s.NETWORKS.zcash).exhaustive()}function CX({phrase:y,derivationPath:T,network:H,seed:f}){let C=f??hT.mnemonicToSeedSync(y),q=BH.HDKey.fromMasterSeed(C,H.bip32).derive(T);if(!q.privateKey)throw new o.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return q.privateKey}function B2(y){return D2.secp256k1.getPublicKey(y,!0)}function V0({publicKey:y,chain:T,network:H}){if(T===o.Chain.BitcoinCash){let U=s.p2pkh(y,H);if(!U.hash)throw new o.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return s.encodeCashAddr({hash:U.hash,prefix:s.CashAddrPrefix.MAINNET,type:s.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}let C=!o0.includes(T)?s.p2wpkh(y,H):s.p2pkh(y,H);if(!C.address)throw new o.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive address"});return C.address}function df({phrase:y,derivationPath:T,chain:H,wif:f,seed:C}){let U=xy(H);if(f){let Q=s.WIF(U).decode(f),Y=B2(Q);return{privateKey:Q,publicKey:Y}}if(!y)throw new o.SwapKitError("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let q=T||o.derivationPathToString(o.NetworkDerivationPath[H]),X=CX({derivationPath:q,network:U,phrase:y,seed:C}),G=B2(X);return{privateKey:X,publicKey:G}}function UX(y,T){return s.WIF(xy(T)).encode(y)}function qX({phrase:y,derivationPath:T,chain:H,seed:f}){let C=T.split("/");if(C.length<4)throw new o.SwapKitError("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${C.length}): ${T}`});let U=xy(H),q=f??hT.mnemonicToSeedSync(y),X=BH.HDKey.fromMasterSeed(q,U.bip32),G=C.slice(0,4).join("/");return X.derive(G)}function Nf({inputs:y,outputs:T,chain:H,tx:f,sender:C,compiledMemo:U,enableRBF:q=!1}){let X=xy(H),G=!o0.includes(H),Q=q?s.RBF_SEQUENCE:void 0,Y=new Set;for(let z of y){let L=`${z.hash}:${z.index}`;if(Y.has(L))throw new o.SwapKitError("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});Y.add(L);let W=typeof z.hash==="string"?Mf.hex.decode(z.hash):z.hash;if(G&&z.witnessUtxo)f.addInput({index:z.index,sequence:Q,txid:W,witnessUtxo:{amount:BigInt(z.witnessUtxo.value),script:z.witnessUtxo.script}});else if(z.txHex)f.addInput({index:z.index,nonWitnessUtxo:Mf.hex.decode(z.txHex),sequence:Q,txid:W,...H===o.Chain.BitcoinCash?{sighashType:s.BCHSigHash.ALL}:{}});else throw new o.SwapKitError("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let z of T){let L="address"in z&&z.address?z.address:C;if(H===o.Chain.BitcoinCash)L=Cf(L);if(z.script){if(U)f.addOutput({amount:0n,script:U})}else f.addOutputAddress(L,BigInt(z.value),X)}return{inputs:y,tx:f}}async function rf(y){let T=await Ry(y).getSuggestedTxFee();return{[o.FeeOption.Average]:T,[o.FeeOption.Fast]:o.applyFeeMultiplier(T,o.FeeOption.Fast),[o.FeeOption.Fastest]:o.applyFeeMultiplier(T,o.FeeOption.Fastest)}}async function O2({assetValue:y,recipient:T,memo:H,sender:f,fetchTxHex:C=!1}){let U=y.chain,q=(await rf(U))[o.FeeOption.Fastest],X=C||o0.includes(U),G=y.getBaseValue("number"),Q=Math.ceil(G+q*5000);return{inputs:await Ry(U).getUtxos({address:f,fetchTxHex:X,targetValue:Q}),outputs:[{address:T,value:G},...H?[{address:"",script:ny(H),value:0}]:[]]}}async function R2({assetValue:y,recipient:T,memo:H,feeRate:f,sender:C,fetchTxHex:U=!1,enableRBF:q=!1}){let X=y.chain,G=H?ny(H):null,Q=await O2({assetValue:y,fetchTxHex:U,memo:H,recipient:T,sender:C}),{inputs:Y,outputs:z}=uy({...Q,chain:X,feeRate:f});if(!(Y&&z))throw new o.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:C});let L=new s.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!G,version:1}),{inputs:W,tx:N}=Nf({chain:X,compiledMemo:G,enableRBF:q,inputs:Y,outputs:z,sender:C,tx:L});return{inputs:W,tx:N,utxos:Q.inputs}}async function k2({assetValue:y,feeOptionKey:T=o.FeeOption.Fast,feeRate:H,memo:f,sender:C,recipient:U}){let q=y.chain,X=await O2({assetValue:y,memo:f,recipient:U,sender:C}),G=H?Math.floor(H):(await rf(q))[T];return uy({...X,chain:q,feeRate:G})}function XX(y){return async function({from:H,memo:f,feeRate:C,feeOptionKey:U=o.FeeOption.Fast,recipients:q=1}){let X=await Ry(y).getAddressData(H),G=C?Math.ceil(C):(await rf(y))[U],Q=X?.utxo.map((A)=>({...A,hash:"",type:"P2PKH"})).filter((A)=>A.value>Math.max(S0(y),zf(A)*G));if(!Q?.length)return o.AssetValue.from({chain:y});let Y=BigInt(Q.reduce((A,R)=>A+R.value,0)),z=o.AssetValue.from({chain:y,value:Y}),L=typeof q==="number"?Array.from({length:q},()=>({address:H,value:0})):q;if(f)L.push({address:H,script:ny(f),value:0});let W=of({inputs:Q,outputs:L}),N=o.AssetValue.from({chain:y,value:BigInt(W*G)});return z.sub(N)}}function GX(y){return async function(H){let{fee:f}=await k2(H);return o.AssetValue.from({chain:y,value:o.SwapKitNumber.fromBigInt(BigInt(f),8).getValue("string")})}}function QX({chain:y,phrase:T,derivationPath:H,seed:f}){let C=xy(y),{privateKey:U,publicKey:q}=df({chain:y,derivationPath:H,phrase:T,seed:f}),X=y===o.Chain.BitcoinCash?[s.BCHSigHash.ALL]:[s.SigHash.ALL];return{getAddress:()=>V0({chain:y,network:C,publicKey:q}),privateKey:U,publicKey:q,signTransaction:(G)=>{return G.sign(U,X),G}}}function _X(y,T){return async function({memo:f,recipient:C,feeOptionKey:U,feeRate:q,assetValue:X,enableRBF:G=!1}){let Q=await T?.getAddress();if(!(T&&Q))throw new o.SwapKitError("toolbox_utxo_no_signer");if(!C)throw new o.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});o.warnOnce({condition:G&&!uT.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let Y=G&&uT.includes(y),z=q||(await rf(y))[U||o.FeeOption.Fast],{tx:L}=await R2({assetValue:X,enableRBF:Y,feeRate:z,memo:f,recipient:C,sender:Q}),W=await T.signTransaction(L);return W.finalize(),Ry(y).broadcastTx(Mf.hex.encode(W.extract()))}}function RH(y){return(T)=>OH({address:T,chain:y})}function kH(y){let T=xy(y);return function(f){if(!f)throw new o.SwapKitError("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return V0({chain:y,network:T,publicKey:f.publicKey})}}function Bf({chain:y,...T}){let H="phrase"in T?T.phrase:void 0,f="index"in T?T.index||0:0,C=H?hT.mnemonicToSeedSync(H):void 0,U="derivationPath"in T&&T.derivationPath?T.derivationPath:o.updateDerivationPath(o.NetworkDerivationPath[y],{index:f}),q=o.derivationPathToString(U),X=H?QX({chain:y,derivationPath:q,phrase:H,seed:C}):void 0,G="signer"in T?T.signer:void 0,Q=X||G,Y=H?df({chain:y,derivationPath:q,phrase:H,seed:C}):void 0;function z(){if(Q)return Q.getAddress();return Promise.resolve(void 0)}function L(k){if(!H)return;let $=Jf({accountIndex:k,chain:y,derivationPath:U});return qX({chain:y,derivationPath:o.derivationPathToString($),phrase:H,seed:C})}let W=L();function N(){if(!W)return;return W.publicExtendedKey}function A({accountIndex:k}={}){let $=k===void 0?W:L(k);if(!$)return;let P=Jf({accountIndex:k,chain:y,derivationPath:U});return{accountIndex:If(P),path:o.derivationPathToString(P),xpub:$.publicExtendedKey}}function R({accountIndex:k,index:$,change:P=!1}){let M=k===void 0?W:L(k);if(!M)return;let x=tf({accountIndex:k,chain:y,change:P,derivationPath:U,index:$}),V=xy(y),j=M.deriveChild(Number(P)).deriveChild($);if(!j.publicKey)throw new o.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let n=V0({chain:y,network:V,publicKey:j.publicKey}),m=Mf.hex.encode(j.publicKey);return{accountIndex:If(x),address:n,change:P,index:$,path:o.derivationPathToString(x),pubkey:m}}async function I(k){if(!uT.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let $=await Ry(y).getTransactionDetails(k);return{canReplace:$.isRBF&&!$.confirmed,confirmed:$.confirmed,enabled:$.isRBF,fee:$.fee,sequences:$.sequences,supported:!0}}async function F({txid:k,newFeeRate:$,recipient:P,memo:M}){if(!uT.includes(y))throw new o.SwapKitError("toolbox_utxo_rbf_not_supported",{chain:y});let x=await Ry(y).getTransactionDetails(k);if(!x.isRBF)throw new o.SwapKitError("toolbox_utxo_tx_not_replaceable",{txid:k});if(x.confirmed)throw new o.SwapKitError("toolbox_utxo_tx_already_confirmed",{blockId:x.blockId,txid:k});let V=x.inputs.reduce((Ny,by)=>Ny+by.value,0),n=x.outputs.find((Ny)=>Ny.recipient===P)?.value||0;if(n===0)throw new o.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let m=await Promise.all(x.inputs.map(async(Ny)=>{let by=await Ry(y).getRawTx(Ny.transaction_hash);return{hash:Ny.transaction_hash,index:Ny.index,txHex:by,value:Ny.value,witnessUtxo:void 0}})),d=M?ny(M):null,Xy=of({feeRate:$,inputs:m.map((Ny)=>({...Ny,type:"P2WPKH"})),outputs:[{address:P,value:n}]}),Wy=Math.ceil(Xy*$);if(Wy<=x.fee)throw new o.SwapKitError("toolbox_utxo_rbf_fee_too_low",{newFee:Wy,originalFee:x.fee});let $y=Wy-x.fee,Ay=n-$y;if(Ay<=0)throw new o.SwapKitError("toolbox_utxo_rbf_insufficient_change");let ty=new s.Transaction({allowLegacyWitnessUtxo:!0,version:1}),gy=[{address:P,value:Ay},...M?[{address:"",script:ny(M),value:0}]:[]],cy=V-Ay-Wy,Iy=await z();if(cy>S0(y)&&Iy)gy.push({address:Iy,value:cy});return Nf({chain:y,compiledMemo:d,inputs:m,outputs:gy,sender:Iy||P,tx:ty}),{feeDelta:$y,newFee:Wy,originalFee:x.fee,tx:ty}}async function D({txid:k,newFeeRate:$,recipient:P,memo:M}){let{tx:x,originalFee:V,newFee:j}=await F({memo:M,newFeeRate:$,recipient:P,txid:k}),n=await B(x);n.finalize();let m=await Ry(y).broadcastTx(Mf.hex.encode(n.extract()));return{newFee:j,originalFee:V,txid:m}}function O({accountIndex:k,index:$,change:P=!1}){ly("index",$);let M=k===void 0?W:L(k);if(!M)return;return M.deriveChild(Number(P)).deriveChild($).privateKey||void 0}function J({tx:k,inputDerivations:$}){if(!W)throw new o.SwapKitError("toolbox_utxo_no_signer");let P=y===o.Chain.BitcoinCash?[s.BCHSigHash.ALL]:[s.SigHash.ALL];for(let M=0;M<$.length;M++){let x=$[M];if(!x)continue;let{derivationIndex:V,isChange:j}=x,n=O({change:j,index:V});if(!n)throw new o.SwapKitError("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${M} at index ${V}`});k.signIdx(n,M,P)}return k}async function _({utxos:k,recipient:$,assetValue:P,memo:M,feeRate:x,feeOptionKey:V,changeAddress:j}){if(!W)throw new o.SwapKitError("toolbox_utxo_no_signer");let n=x||(await rf(y))[V||o.FeeOption.Fast],m=M?ny(M):null,d=[{address:$,value:P.getBaseValue("number")}];if(m)d.push({address:"",script:m,value:0});let Xy=k.map(({hash:Iy,index:Ny,value:by,txHex:P8,witnessUtxo:_1})=>({hash:Iy,index:Ny,txHex:P8,value:by,witnessUtxo:_1?{script:_1.script,value:_1.value}:void 0})),{inputs:Wy,outputs:$y}=uy({chain:y,feeRate:n,inputs:Xy,outputs:d});if(!(Wy&&$y))throw new o.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:P,sender:"multiple addresses"});let Ay=new s.Transaction({allowLegacyWitnessUtxo:!0,version:1}),ty=k[0]?.address,gy=j||await z()||ty||$;Nf({chain:y,compiledMemo:m,inputs:Wy,outputs:$y,sender:gy,tx:Ay});let cy=Wy.map((Iy)=>{let Ny=k.find((by)=>by.hash===Iy.hash&&by.index===Iy.index);return Ny?{derivationIndex:Ny.derivationIndex,isChange:Ny.isChange}:{derivationIndex:0,isChange:!1}});return J({inputDerivations:cy,tx:Ay}),Ay.finalize(),Ry(y).broadcastTx(Mf.hex.encode(Ay.extract()))}function Z({address:k,gapLimit:$=20}){if(!W)return;for(let P=0;P<$;P++){let M=R({change:!1,index:P}),x=R({change:!0,index:P}),V=M?.address===k?!1:x?.address===k;if(M?.address===k||x?.address===k)return{change:V,index:P}}return}function B(k){if(!Q)throw new o.SwapKitError("toolbox_utxo_no_signer");return Q.signTransaction(k)}async function w(k){let $=await B(k);return $.finalize(),await Ry(y).broadcastTx(Mf.hex.encode($.extract()))}return{accumulative:uy,broadcastTx:(k)=>Ry(y).broadcastTx(k),bumpFee:D,calculateTxSize:of,createKeysForPath:(k)=>df({...k,chain:y}),createReplacementTransaction:F,createTransaction:R2,deriveAddressAtIndex:R,derivePrivateKeyAtIndex:O,estimateMaxSendableAmount:XX(y),estimateTransactionFee:GX(y),getAddress:z,getAddressFromKeys:kH(y),getBalance:Sy(y),getExtendedPublicKey:N,getExtendedPublicKeyInfo:A,getFeeRates:()=>rf(y),getInputsOutputsFee:k2,getNetworkForChain:()=>xy(y),getPrivateKeyFromMnemonic:(k)=>UX(df({...k,chain:y}).privateKey,y),isRBFEnabled:I,keys:Y,resolveDerivationIndex:Z,signAndBroadcastTransaction:w,signTransaction:B,signTransactionWithMultipleKeys:J,transfer:_X(y,Q),transferFromMultipleAddresses:_,validateAddress:RH(y)}}var D2,Mf,BH,hT,o,s,DH,o0,uT;var af=v(()=>{sy();w0();cf();P0();D2=require("@noble/curves/secp256k1.js"),Mf=require("@scure/base"),BH=require("@scure/bip32"),hT=require("@scure/bip39"),o=require("@swapkit/helpers"),s=require("@swapkit/utxo-signer"),DH=require("ts-pattern"),o0=[o.Chain.Dash,o.Chain.Dogecoin,o.Chain.Zcash,o.Chain.BitcoinCash],uT=[o.Chain.Bitcoin]});function E0(y){return Vf(F0(y))}function ZX(y){let T=xy(ay);function H(C){return C.sign(y.privateKey,[By.BCHSigHash.ALL]),C}function f(){let C=By.p2pkh(y.publicKey,T);if(!C.hash)throw new My.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let U=By.encodeCashAddr({hash:C.hash,prefix:By.CashAddrPrefix.MAINNET,type:By.CashAddrType.P2PKH});return Promise.resolve(U.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:H}}function $H(y){let T="phrase"in y?y.phrase:void 0,H="index"in y?y.index||0:0,f=My.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:My.updateDerivationPath(My.NetworkDerivationPath[ay],{index:H})),C=T?df({chain:ay,derivationPath:f,phrase:T}):void 0,U=C?ZX(C):("signer"in y)?y.signer:void 0;function q(){return Promise.resolve(U?.getAddress())}let{getBalance:X,getFeeRates:G,broadcastTx:Q,...Y}=Bf({chain:ay});function z(N,A=!0){return X(Vf(F0(N)))}function L(N){if(!U)throw new My.SwapKitError("toolbox_utxo_no_signer");return U.signTransaction(N)}async function W(N){let A=await L(N);return A.finalize(),await Q(wH.hex.encode(A.extract()))}return{...Y,broadcastTx:Q,buildTx:YX,createTransaction:w2,getAddress:q,getAddressFromKeys:LX,getBalance:z,getFeeRates:G,signAndBroadcastTransaction:W,signTransaction:L,stripPrefix:Vf,stripToCashAddress:E0,transfer:WX({broadcastTx:Q,getFeeRates:G,signer:U}),validateAddress:Af}}async function w2({assetValue:y,recipient:T,memo:H,feeRate:f,sender:C}){if(!Af(T))throw new My.SwapKitError("toolbox_utxo_invalid_address",{address:T});let U=Math.ceil(y.getBaseValue("number")+f*7500),q=await Ry(ay).getUtxos({address:E0(C),fetchTxHex:!0,targetValue:U}),X=H?ny(H):null,G=[],Q=Cf(T);if(G.push({address:Q,value:y.getBaseValue("number")}),X)G.push({script:X,value:0});let{inputs:Y,outputs:z}=uy({chain:ay,feeRate:f,inputs:q,outputs:G});if(!(Y&&z))throw new My.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:C});let L=new By.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!X,version:1}),W=Cf(C),{inputs:N,tx:A}=Nf({chain:ay,compiledMemo:X,inputs:Y,outputs:z.map((R)=>("address"in R)&&R.address?{...R,address:Cf(R.address)}:R),sender:W,tx:L});return{inputs:N,tx:A,utxos:Y}}function WX({broadcastTx:y,getFeeRates:T,signer:H}){return async function({recipient:C,assetValue:U,feeOptionKey:q=My.FeeOption.Fast,...X}){let G=await H?.getAddress();if(!(H&&G))throw new My.SwapKitError("toolbox_utxo_no_signer");if(!C)throw new My.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Q=X.feeRate||(await T())[q],{tx:Y}=await w2({...X,assetValue:U,feeRate:Q,recipient:C,sender:G}),z=await H.signTransaction(Y);return z.finalize(),y(wH.hex.encode(z.extract()))}}async function YX({assetValue:y,recipient:T,memo:H,feeRate:f,sender:C}){let U=F0(T);if(!Af(U))throw new My.SwapKitError("toolbox_utxo_invalid_address",{address:U});let q=Math.ceil(y.getBaseValue("number")+f*7500),X=await Ry(ay).getUtxos({address:E0(C),fetchTxHex:!0,targetValue:q}),G=Number(f.toFixed(0)),Q=H?ny(H):null,Y=[];if(Y.push({address:Cf(T),value:y.getBaseValue("number")}),Q)Y.push({script:Q,value:0});let{inputs:z,outputs:L}=uy({chain:ay,feeRate:G,inputs:X,outputs:Y});if(!(z&&L))throw new My.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:C});let W=new By.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Q,version:1}),{inputs:N,tx:A}=Nf({chain:ay,compiledMemo:Q,inputs:z,outputs:L,sender:Cf(C),tx:W});return{inputs:N,tx:A,utxos:X}}function LX(y){let T=By.NETWORKS.bitcoinCash,H=By.p2pkh(y.publicKey,T);if(!H.hash)throw new My.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return By.encodeCashAddr({hash:H.hash,prefix:By.CashAddrPrefix.MAINNET,type:By.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}var wH,My,By,ay;var mT=v(()=>{cf();af();P0();wH=require("@scure/base"),My=require("@swapkit/helpers"),By=require("@swapkit/utxo-signer"),ay=My.Chain.BitcoinCash});function IH(){let{isStagenet:y}=Zy.SKConfig.get("envs");return y?Uy.ZCASH_TEST_NETWORK:Uy.ZCASH_NETWORK}function zX(y){return JX.encode(y)}function AX({phrase:y,derivationPath:T}){let H=xH.mnemonicToSeedSync(y),C=FH.HDKey.fromMasterSeed(H).derive(T);if(!C.privateKey||!C.publicKey)throw new Zy.SwapKitError("toolbox_utxo_invalid_params");let{privateKey:U,publicKey:q}=C,X=Uy.utils.hash160(q),{isStagenet:G}=Zy.SKConfig.get("envs"),Q=G?new Uint8Array([29,37]):new Uint8Array([28,184]),Y=new Uint8Array(Q.length+X.length);Y.set(Q,0),Y.set(X,Q.length);let z=zX(Y);return{getAddress:()=>Promise.resolve(z),signTransaction:(L)=>{if(L instanceof Uy.ZcashPSBT){let W=L.toPCZT();return W.signAllInputs(U,q,Uy.ZcashSigHash.ALL),W.finalizeAllInputs(),Promise.resolve(W.extract())}if(L instanceof Uy.PCZT)return L.signAllInputs(U,q,Uy.ZcashSigHash.ALL),L.finalizeAllInputs(),Promise.resolve(L.extract());return L.signAllInputs(U,q,Uy.ZcashSigHash.ALL),Promise.resolve(L)}}}function MX({inputs:y,outputs:T,tx:H,sender:f,compiledMemo:C}){let U=IH();for(let q of y){let X=Uy.Address(U).decode(f),G=Uy.OutScript.encode(X);H.addInput({index:q.index,script:G,sequence:4294967295,txid:tT.hex.decode(q.hash),value:BigInt(q.value)})}for(let q of T){let X="address"in q&&q.address?q.address:f,G=q.script;if(G&&!C)continue;if(G&&C)H.addOutput({amount:0n,script:C});else H.addOutputAddress(X,BigInt(q.value),U)}return{inputs:y,tx:H}}async function $2(y){let{assetValue:T,recipient:H,memo:f,feeRate:C,sender:U,fetchTxHex:q}=y,X=IH();if(!Uy.isTransparentZcashAddress(U,X))throw new Zy.SwapKitError("toolbox_utxo_invalid_address",{address:U});if(!Uy.isTransparentZcashAddress(H,X))throw new Zy.SwapKitError("toolbox_utxo_invalid_address",{address:H,error:"Zcash transaction creation currently supports transparent addresses only"});let G=f?ny(f):null,Q=await Ry(Zy.Chain.Zcash).getUtxos({address:U,fetchTxHex:q!==!1}),Y=[{address:H,value:Number(T.getBaseValue("string"))},...G?[{script:G,value:0}]:[]],{inputs:z,outputs:L}=uy({chain:Zy.Chain.Zcash,changeAddress:U,feeRate:C,inputs:Q,outputs:Y});if(!(z&&L))throw new Zy.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:T,sender:U});let W=Uy.createZcashTransaction({consensusBranchId:Uy.ZcashConsensusBranchId.NU6_2,expiryHeight:0,lockTime:0,version:4,versionGroupId:Uy.ZcashVersionGroupId.SAPLING}),{tx:N,inputs:A}=MX({compiledMemo:G,inputs:z,outputs:L,sender:U,tx:W});return{inputs:A,outputs:L,tx:N}}function SH(y){let T=sf.match(y).with({signer:sf.P.not(sf.P.nullish)},({signer:G})=>G).with({phrase:sf.P.string},({phrase:G,derivationPath:Q,index:Y=0})=>{let z=Q||Zy.NetworkDerivationPath[Zy.Chain.Zcash]||[44,133,0,0,0],L=Zy.updateDerivationPath(z,{index:Y}),W=Zy.derivationPathToString(L);return AX({derivationPath:W,phrase:G})}).otherwise(()=>{return}),H=Bf({chain:Zy.Chain.Zcash,signer:T});async function f(G){if(!T)throw new Zy.SwapKitError("toolbox_utxo_no_signer");return await T.signTransaction(G)}async function C(G){let Q=await f(G);return H.broadcastTx(Q.toHex())}async function U({recipient:G,assetValue:Q,feeOptionKey:Y=Zy.FeeOption.Fast,...z}){let L=await T?.getAddress();if(!(T&&L))throw new Zy.SwapKitError("toolbox_utxo_no_signer");let W=z.feeRate||(await H.getFeeRates())[Y],{tx:N}=await $2({...z,assetValue:Q,feeRate:W,recipient:G,sender:L}),R=(await T.signTransaction(N)).toHex();return H.broadcastTx(R)}function q({phrase:G,derivationPath:Q="m/44'/133'/0'/0/0"}){let Y=xH.mnemonicToSeedSync(G),L=FH.HDKey.fromMasterSeed(Y).derive(Q);if(!L.privateKey||!L.publicKey)throw new Zy.SwapKitError("toolbox_utxo_invalid_params");return{privateKey:L.privateKey,publicKey:L.publicKey}}function X({phrase:G,derivationPath:Q="m/44'/133'/0'/0/0"}){let Y=q({derivationPath:Q,phrase:G}),z=IH();return Uy.WIF(z).encode(Y.privateKey)}return{...H,createKeysForPath:q,createTransaction:$2,getPrivateKeyFromMnemonic:X,signAndBroadcastTransaction:C,signTransaction:f,transfer:U,validateAddress:Ef.validateZcashAddress}}var tT,FH,xH,Zy,Uy,sf,JX;var PH=v(()=>{cf();af();P0();tT=require("@scure/base"),FH=require("@scure/bip32"),xH=require("@scure/bip39"),Zy=require("@swapkit/helpers"),Uy=require("@swapkit/utxo-signer"),sf=require("ts-pattern");JX=tT.createBase58check(Uy.utils.sha256)});function S2({xpub:y,chain:T,count:H,startIndex:f=0,accountIndex:C}){if(ly("count",H),H<1)throw RangeError("count must be at least 1");ly("startIndex",f);let U=xy(T),q=x2.HDKey.fromExtendedKey(y,U.bip32),X=Jf({accountIndex:C,chain:T}),G=If(X),Q=[];for(let Y of[!1,!0]){let z=q.deriveChild(Number(Y));for(let L=0;L<H;L++){let W=f+L,N=z.deriveChild(W);if(!N.publicKey)continue;let A=tf({accountIndex:C,chain:T,change:Y,index:W});Q.push({accountIndex:G,address:V0({chain:T,network:U,publicKey:N.publicKey}),change:Y,index:W,path:I2.derivationPathToString(A),pubkey:F2.hex.encode(N.publicKey)})}}return Q}var F2,x2,I2;var P2=v(()=>{w0();af();F2=require("@scure/base"),x2=require("@scure/bip32"),I2=require("@swapkit/helpers")});function NX(y,T){switch(y){case Uf.Chain.BitcoinCash:return $H(T||{});case Uf.Chain.Zcash:return SH(T);case Uf.Chain.Bitcoin:case Uf.Chain.Dogecoin:case Uf.Chain.Litecoin:case Uf.Chain.Dash:return Bf({chain:y,...T});default:throw new Uf.SwapKitError("toolbox_utxo_not_supported",{chain:y})}}var Uf;var o2=v(()=>{mT();af();PH();w0();P2();mT();P0();Uf=require("@swapkit/helpers")});var oH={};Dy(oH,{validateZcashAddress:()=>Ef.validateZcashAddress,validateUtxoAddress:()=>OH,validateBchAddress:()=>Af,toLegacyAddress:()=>Cf,toCashAddress:()=>F0,stripToCashAddress:()=>E0,stripPrefix:()=>Vf,nonSegwitChains:()=>o0,isValidAddress:()=>AH,getUtxoToolbox:()=>NX,getUtxoNetwork:()=>gq,getUtxoApi:()=>Ry,getUTXOAddressValidator:()=>RH,getUTXOAddressPath:()=>tf,getUTXOAccountPath:()=>Jf,getUTXOAccountIndexFromPath:()=>If,getScriptTypeForAddress:()=>gf,getOutputSize:()=>I0,getNetworkForChain:()=>xy,getInputSize:()=>zf,getDustThreshold:()=>S0,detectAddressNetwork:()=>MH,deriveAddressesFromXpub:()=>S2,createZcashToolbox:()=>SH,createUTXOToolbox:()=>Bf,createHDWalletHelpers:()=>H2,createCustomUtxoApi:()=>tq,createBCHToolbox:()=>$H,compileMemo:()=>ny,calculateTxSize:()=>of,assertDerivationIndex:()=>ly,addressFromKeysGetter:()=>kH,addInputsAndOutputs:()=>Nf,accumulative:()=>uy,UtxoNetwork:()=>zH,UTXOScriptType:()=>lT,TX_OVERHEAD:()=>KT,SEGWIT_MARKER_FLAG_WEIGHT:()=>pT,OutputSizes:()=>x0,OP_RETURN_OVERHEAD:()=>M2,MIN_TX_FEE:()=>fX,InputSizes:()=>bT});module.exports=ky(oH);var VH=v(()=>{af();w0();cf();o2();mT();PH()});function n0(y){return y.length>=2&&y.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(y)}async function cT(y){let{KeyPair:T}=await import("@near-js/crypto"),H=y.index||0,f=y.derivationPath?gT.derivationPathToString(y.derivationPath.slice(0,3)):`m/44'/397'/${H}'`,{parseSeedPhrase:C}=await import("near-seed-phrase"),{secretKey:U}=C(y.phrase,f),q=T.fromString(U);return V2(q)}async function EH(y){let{KeyPair:T}=await import("@near-js/crypto"),H=T.fromString(y);return V2(H)}async function V2(y){let{KeyPairSigner:T}=await import("@near-js/signers");class H extends T{#y;constructor(f){super(f);this.#y=f}getAddress(){let f=this.#y.getPublicKey(),C=Buffer.from(f.data).toString("hex");return Promise.resolve(C)}}return new H(y)}async function iT(y,T){let f=(await y.query({account_id:T,finality:"final",request_type:"view_access_key_list"})).keys.find((X)=>X.access_key.permission==="FullAccess");if(!f)throw new gT.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:C}=await import("@near-js/crypto"),U=C.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:U}}var gT;var nH=v(()=>{gT=require("@swapkit/helpers")});function vH(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function jH(y){return"contractId"in y&&"methodName"in y}function bH(y){return"actions"in y}function KH(y){return"newAccountId"in y}function pH(y){return"contractCode"in y}function lH(y){return"customEstimator"in y}function uH(y){let T=0;for(let H of y)switch(H.enum){case"transfer":T+=Number(wy.SIMPLE_TRANSFER);break;case"functionCall":T+=Number(wy.CONTRACT_CALL);break;case"createAccount":T+=Number(wy.ACCOUNT_CREATION);break;case"deployContract":T+=Number(wy.CONTRACT_DEPLOYMENT);break;case"addKey":T+=Number(wy.ACCESS_KEY_ADDITION);break;case"deleteKey":T+=Number(wy.ACCESS_KEY_DELETION);break;case"stake":T+=Number(wy.STAKE);break;default:T+=Number(wy.CONTRACT_CALL)}return T.toString()}function hH(y){if(y==="ft_transfer"||y==="ft_transfer_call")return wy.TOKEN_TRANSFER;if(y==="storage_deposit")return wy.STORAGE_DEPOSIT;return wy.CONTRACT_CALL}function BX(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function DX(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var wy;var mH=v(()=>{wy={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 tH({account:y,contractId:T,viewMethods:H,changeMethods:f}){let{Contract:C}=await import("@near-js/accounts");return new C(y,T,{changeMethods:f,useLocalViewExecution:!0,viewMethods:H})}function OX(y){let T;async function H(){if(T)return T;return T=await ef.match(y).with({phrase:ef.P.string},async(M)=>{return await cT(M)}).with({signer:ef.P.any},({signer:M})=>M).otherwise(()=>{return}),T}async function f(){let{JsonRpcProvider:M}=await import("@near-js/providers"),x=await Cy.getRPCUrl(Cy.Chain.Near);return new M({url:x})}async function C(M){let{Account:x}=await import("@near-js/accounts"),V=await f(),j=await H(),n=M||await U();return new x(n,V,j)}async function U(){let M=await H();if(!M)throw new Cy.SwapKitError("toolbox_near_no_signer");return await M.getAddress()}async function q(M){return(await Z({changeMethods:[],contractId:M.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:M.accountId})}async function X(M){let V=[await L({args:{account_id:M.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await L({args:{amount:M.assetValue.getBaseValue("string"),memo:M.memo||null,receiver_id:M.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return B({actions:V,receiverId:M.contractId})}async function G(M){if(!await H())throw new Cy.SwapKitError("toolbox_near_no_signer");let{assetValue:V,recipient:j,memo:n}=M,m=await U();if(!V.isGasAsset&&V.address){if(!await q({accountId:j,contractId:V.address}))return X({assetValue:V,contractId:V.address,memo:n,recipient:j})}let d=await Q({...M,sender:m});return F(d)}async function Q({recipient:M,assetValue:x,memo:V,attachedDeposit:j,sender:n,functionCall:m}){let d=await f();if(!n0(M))throw new Cy.SwapKitError("toolbox_near_invalid_address",{recipient:M});if(!n0(n))throw new Cy.SwapKitError("toolbox_near_invalid_address",{sender:n});if(m)return z({...m,sender:n});if(!x.isGasAsset){let by=x.address;if(!by)throw new Cy.SwapKitError("toolbox_near_missing_contract_address");return z({args:{amount:x.getBaseValue("string"),memo:V||null,receiver_id:M},attachedDeposit:j||"1",contractId:by,gas:"250000000000000",methodName:"ft_transfer",sender:n})}let{publicKey:Xy,nonce:Wy}=await iT(d,n),$y=x.getBaseValue("bigint"),{actionCreators:Ay,createTransaction:ty}=await import("@near-js/transactions"),{baseDecode:gy}=await import("@near-js/utils"),cy=[Ay.transfer($y)];if(V&&j)cy.push(Ay.functionCall("memo",{memo:V},BigInt("250000000000000"),BigInt(j)));let Iy=await d.block({finality:"final"}),Ny=gy(Iy.header.hash);return ty(n,Xy,M,Wy+1,cy,Ny)}function Y(M){let x=M.encode();return Buffer.from(x).toString("base64")}async function z({args:M,attachedDeposit:x,contractId:V,gas:j,methodName:n,sender:m}){let d=await f(),{publicKey:Xy,nonce:Wy}=await iT(d,m),{createTransaction:$y,actionCreators:Ay}=await import("@near-js/transactions"),{baseDecode:ty}=await import("@near-js/utils"),gy=await d.block({finality:"final"}),cy=ty(gy.header.hash),Iy=[Ay.functionCall(n,Buffer.from(JSON.stringify(M)),BigInt(j),BigInt(x))];return $y(m,Xy,V,Wy+1,Iy,cy)}async function L(M){let{actionCreators:x}=await import("@near-js/transactions");return x.functionCall(M.methodName,Buffer.from(JSON.stringify(M.args)),BigInt(M.gas),BigInt(M.attachedDeposit))}async function W(M){let x=await H();if(!x)throw new Cy.SwapKitError("toolbox_near_no_signer");await N(M);let[V,j]=await x.signTransaction(M);return j}async function N(M){let x=M.publicKey;if(x.toString?.().startsWith("ed25519:")||x.toString?.().startsWith("secp256k1:"))return;let{KeyType:V,PublicKey:j}=await import("@near-js/crypto"),n=x.data||x.ed25519Key?.data,m=x.secp256k1Key?.data;if(n){M.publicKey=new j({data:Uint8Array.from(n),keyType:V.ED25519});return}if(m)M.publicKey=new j({data:Uint8Array.from(m),keyType:V.SECP256K1})}function A(M){if(typeof M==="string")return M;if(Array.isArray(M))return M.map(A).find(Boolean);if(!(M&&typeof M==="object"))return;let x=M;return x.transaction?.hash||x.transaction_outcome?.id}function R(M){return M instanceof Error?M.message:String(M)}async function I(M){let V=await(await f()).sendTransaction(M),j=A(V);if(!j)throw new Cy.SwapKitError("toolbox_near_transfer_failed",{result:V});return j}async function F(M){let x=await H();if(!x)throw new Cy.SwapKitError("toolbox_near_no_signer");let V;try{V=await W(M)}catch(j){let n;try{n=x.signAndSendTransaction?await x.signAndSendTransaction({actions:M.actions,receiverId:M.receiverId,signerId:M.signerId}):await x.signAndSendTransactions?.({transactions:[M]})}catch(d){throw new Cy.SwapKitError({errorKey:"toolbox_near_sign_transaction_failed",info:{directSignError:R(j),signAndSendError:R(d)}},d)}let m=A(n);if(m)return m;throw j}return I(V)}async function D(M){let x=await H();if("assetValue"in M){let j=await O();try{let n=await Cy.getRPCUrl(Cy.Chain.Near),m=await fetch(n,{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:d}}=await m.json(),{execution:Xy,send_sir:Wy}=d.transaction_costs.action_receipt_creation_config,{execution:$y,send_sir:Ay}=d.transaction_costs.action_creation_config.transfer_cost,ty=BigInt(Ay)+BigInt($y),gy=BigInt(Wy)+BigInt(Xy),Iy=(ty+gy)*BigInt(j.toString());return Cy.AssetValue.from({chain:Cy.Chain.Near,value:Iy})}catch(n){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",n);let m=BigInt("115123062500"),d=BigInt("108059500000"),Wy=(m+d)*BigInt(j.toString());return Cy.AssetValue.from({chain:Cy.Chain.Near,value:Wy})}}let V=x?await C():void 0;return w(M,V)}async function O(){let M=await f();try{return await M.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function J(M,x,V){if(!await H())throw new Cy.SwapKitError("toolbox_near_no_signer");let n=await C(),{formatNearAmount:m}=await import("@near-js/utils"),{PublicKey:d}=await import("@near-js/crypto"),Xy=m(V)||"0";return(await n.createAccount(M,d.fromString(x),BigInt(Xy))).transaction.hash}async function _(M){let x=await H();try{if(!x)throw new Cy.SwapKitError("toolbox_near_no_signer");let{actionCreators:V}=await import("@near-js/transactions"),{contractId:j,methodName:n,args:m,deposit:d}=M,Xy=await C(),Wy=await w({args:m||{},contractId:j,methodName:n}),$y=V.functionCall(n,m||{},Wy.getBaseValue("bigint"),BigInt(d||"1"));return(await Xy.signAndSendTransaction({actions:[$y],receiverId:j})).transaction_outcome.id}catch(V){throw new Cy.SwapKitError("toolbox_near_transfer_failed",{error:V})}}async function Z(M){let x=await C();return tH({account:x,changeMethods:M.changeMethods,contractId:M.contractId,viewMethods:M.viewMethods})}async function B(M){if(!await H())throw new Cy.SwapKitError("toolbox_near_no_signer");if(M.actions.length===0)throw new Cy.SwapKitError("toolbox_near_empty_batch");return(await(await C()).signAndSendTransaction({actions:M.actions,receiverId:M.receiverId})).transaction.hash}async function w(M,x){let V=await ef.match(M).when(vH,()=>wy.SIMPLE_TRANSFER).when(jH,(n)=>hH(n.methodName)).when(bH,(n)=>uH(n.actions)).when(KH,()=>wy.ACCOUNT_CREATION).when(pH,()=>wy.CONTRACT_DEPLOYMENT).when(lH,(n)=>{if(!x)throw new Cy.SwapKitError("toolbox_near_no_account");return n.customEstimator(x)}).otherwise(()=>{throw new Cy.SwapKitError("toolbox_near_invalid_gas_params")}),j=BigInt(V)*BigInt(1000000000000);return Cy.AssetValue.from({chain:Cy.Chain.Near,value:j})}function k(M,x){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),w(M,x)}async function $(){let M=await f();try{return(await M.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function P(){let M=await H();return M?(await M.getPublicKey()).toString():""}return{broadcastTransaction:I,callFunction:_,createAction:L,createContract:Z,createContractFunctionCall:z,createSubAccount:J,createTransaction:Q,estimateGas:k,estimateGasLimit:w,estimateTransactionFee:D,executeBatchTransaction:B,getAddress:U,getBalance:Sy(Cy.Chain.Near),getGasPrice:$,getNearProvider:f,getPublicKey:P,getSignerFromPhrase:cT,getSignerFromPrivateKey:EH,serializeTransaction:Y,signAndBroadcastTransaction:F,signTransaction:W,transfer:G,validateAddress:n0}}var Cy,ef;var gH=v(()=>{sy();nH();mH();Cy=require("@swapkit/helpers"),ef=require("ts-pattern")});var E2=v(()=>{gH()});var cH={};Dy(cH,{validateNearAddress:()=>n0,tgasToGas:()=>BX,isSimpleTransfer:()=>vH,isCustomEstimator:()=>lH,isContractDeployment:()=>pH,isContractCall:()=>jH,isBatchTransaction:()=>bH,isAccountCreation:()=>KH,getNearToolbox:()=>OX,getNearSignerFromPrivateKey:()=>EH,getNearSignerFromPhrase:()=>cT,getFullAccessPublicKey:()=>iT,getContractMethodGas:()=>hH,gasToTGas:()=>DX,estimateBatchGas:()=>uH,createNearContract:()=>tH,GAS_COSTS:()=>wy});module.exports=ky(cH);var iH=v(()=>{nH();mH();gH();E2()});var dH={};Dy(dH,{validateRadixAddress:()=>n2,getRadixToolbox:()=>$X});module.exports=ky(dH);function n2(y){return y.startsWith("account_rdx1")&&y.length===66}async function RX({address:y,networkApi:T}){let H=!0,f,C=[],U=await wX(T);while(H){let q={address:y,at_ledger_state:{state_version:U},cursor:f,limit_per_page:100},X=await T.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:q});if(C=C.concat(X.items),X.next_cursor)f=X.next_cursor;else H=!1}return C}async function kX({resources:y,networkApi:T}){let H=[],f=50,C=[];for(let U=0;U<y.length;U+=50)C.push(y.slice(U,U+50));for(let U of C){let q=U.map((Q)=>Q.resource_address),X=await T.state.getEntityDetailsVaultAggregated(q),G=new Map;for(let Q of X)if(Q.details!==void 0){let Y=Q.metadata?.items.find((L)=>L.key==="symbol"),z=Y?.value.typed.type==="String"?Y.value.typed.value:"?";if(Q.details.type==="FungibleResource")G.set(Q.address,{decimals:Q.details.divisibility,symbol:z})}for(let Q of U)if(Q.aggregation_level==="Global"){let Y=G.get(Q.resource_address)||{decimals:0,symbol:"?"},z=hy.AssetValue.from({asset:Y.symbol!==hy.Chain.Radix?`${hy.Chain.Radix}.${Y.symbol}-${Q.resource_address}`:"XRD.XRD",value:Q.amount});H.push(z)}}return H}async function wX(y){return(await y.status.getCurrent()).ledger_state.state_version}function $X({dappConfig:y}={}){let T=y||hy.SKConfig.get("integrations").radix,H;async function f(){if(H)return H;let{GatewayApiClient:U}=await import("@radixdlt/babylon-gateway-api-sdk"),{RadixDappToolkit:q}=await import("@radixdlt/radix-dapp-toolkit"),X=q({...T,networkId:T.network?.networkId||1});return H=U.initialize(X.gatewayApi.clientConfig),H}async function C(U){let q=await f(),X=await RX({address:U,networkApi:q}),G=await kX({networkApi:q,resources:X});if(!G.some((Y)=>Y.isGasAsset))return[hy.AssetValue.from({chain:hy.Chain.Radix}),...G];return G}return{getAddress:()=>"",getBalance:C,getNetworkApi:f,signAndBroadcast:()=>{throw new hy.SwapKitError("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:n2}}var hy;var rH=v(()=>{hy=require("@swapkit/helpers")});function dT(y){return/^[0-9A-Fa-f]{40}$/.test(y)}function v0(y){if(dT(y))return y.toUpperCase();if(y.length<=3){let H=Buffer.from(y.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${H}${"0".repeat(10)}`.toUpperCase()}let T=Buffer.from(y).toString("hex").toUpperCase();if(T.length>40)throw new v2.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return T.padEnd(40,"0")}function FX(y){if(!dT(y))return y;if(y.toUpperCase().startsWith("00")){let T=y.slice(24,30);try{let H=Buffer.from(T,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(H)&&H.length>0)return H}catch{}return y.toUpperCase()}try{let T=y.replace(/0+$/,""),H=T.length%2===0?T:`${T}0`,f=Buffer.from(H,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function y0(y){if(dT(y))return y.toUpperCase();if(y.length<=3)return y;return v0(y)}var v2;var rT=v(()=>{v2=require("@swapkit/helpers")});async function xX(y,T){let H=y0(y),f=sT.find((C)=>y0(C.currency)===H&&C.issuer===T);if(f)return f;try{let C=await aT.RequestClient.get(`https://api.xrplmeta.org/token/${y}:${T}`);if(C)return{currency:y,decimals:15,description:C.desc,domain:C.domain,icon:C.icon,issuer:T,name:C.name,verified:C.self_assessment?.is_regulated||C.self_assessment?.is_licensed}}catch(C){aT.warnOnce({condition:!0,id:`xrpl_token_lookup_${y}_${T}`,warning:`Failed to fetch XRPL token info for ${y}:${T}: ${C}`})}return{currency:y,decimals:15,issuer:T,verified:!1}}function IX(y){return sT.filter((T)=>T.issuer===y)}function SX(y,T){let H=y0(y);return sT.some((f)=>y0(f.currency)===H&&f.issuer===T)}var aT,sT;var j2=v(()=>{rT();aT=require("@swapkit/helpers"),sT=[{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 aH={};Dy(aH,{validateRippleAddress:()=>j0,parseXrplTokenIdentifier:()=>p2,normalizeCurrency:()=>y0,isKnownToken:()=>SX,isHexCurrency:()=>dT,hexToCurrency:()=>FX,getXrplTokenInfo:()=>xX,getRippleToolbox:()=>oX,getKnownTokensByIssuer:()=>IX,formatXrplTokenIdentifier:()=>l2,currencyToHex:()=>v0,XRPL_TOKEN_ERROR_CODES:()=>eT,XRPL_KNOWN_TOKENS:()=>sT});module.exports=ky(aH);function p2(y){let T=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!T?.[1]||!T?.[2])return null;if(!j0(T[2]))return null;return{currency:T[1],issuer:T[2]}}function l2(y,T){return`${a.Chain.Ripple}.${y}-${T}`}async function PX(y){if(y.isGasAsset){let{xrpToDrops:H}=await import("xrpl");return H(y.getValue("string"))}let T=p2(y.toString());if(!T)throw new a.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:T.currency,issuer:T.issuer,value:y.getValue("string")}}function K2(y){let T,H=()=>{return T??=import("xrpl").then(({Wallet:f})=>f.fromMnemonic(y)),T};return{getAddress:async()=>(await H()).address,signTransaction:async(f)=>(await H()).sign(f)}}function j0(y){return y1.isValidClassicAddress(y)||y1.isValidXAddress(y)}function oX(y={}){let T;async function H(){if(T)return T;return T=await f0.match(y).with({phrase:f0.P.string},({phrase:D})=>K2(D)).with({signer:f0.P.any},({signer:D})=>D).otherwise(()=>{return}),T}let f;async function C(){let D=await a.getRPCUrl(a.Chain.Ripple);if(!D)throw new a.SwapKitError({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:a.Chain.Ripple}});let{Client:O}=await import("xrpl"),J=new O(D);return await J.connect(),J}async function U(){if(f){let D=await f.catch(()=>null);if(D?.isConnected())return D}return f=C(),f}let q=async()=>{let D=await H();if(!D)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return D.getAddress()},X=async(D)=>{let O=D||await q(),{baseDecimal:J}=a.getChainConfig(a.Chain.Ripple),_=await U();try{let[Z,B]=await Promise.all([_.request({account:O,command:"account_info"}),_.request({account:O,command:"account_lines"})]),w=Z.result.account_data.Balance,k=[a.AssetValue.from({chain:a.Chain.Ripple,fromBaseDecimal:J,value:w})];for(let $ of B.result.lines){let P=l2($.currency,$.account);if(Number.parseFloat($.balance)!==0)k.push(a.AssetValue.from({asset:P,asyncTokenLookup:!1,value:$.balance}))}return k}catch(Z){if(Z.data?.error_code===b2.ACCOUNT_NOT_FOUND)return[a.AssetValue.from({chain:a.Chain.Ripple,value:0})];throw new a.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{address:O,error:Z}})}},G=async()=>{let{baseDecimal:D}=a.getChainConfig(a.Chain.Ripple),_=(await(await U()).request({command:"fee"})).result.drops.open_ledger_fee;return a.AssetValue.from({chain:a.Chain.Ripple,fromBaseDecimal:D,value:_})};async function Q(D){let O=D||await q(),J=await U();try{return(await J.request({account:O,command:"account_lines"})).result.lines.map((Z)=>({account:Z.account,authorized:Z.authorized??!1,balance:Z.balance,currency:Z.currency,freeze:Z.freeze??!1,freezePeer:Z.freeze_peer??!1,limit:Z.limit,limitPeer:Z.limit_peer,noRipple:Z.no_ripple??!1,noRipplePeer:Z.no_ripple_peer??!1,peerAuthorized:Z.peer_authorized??!1,qualityIn:Z.quality_in??0,qualityOut:Z.quality_out??0}))}catch(_){if(_.data?.error_code===b2.ACCOUNT_NOT_FOUND)return[];throw new a.SwapKitError({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:O,error:_}})}}async function Y({address:D,currency:O,issuer:J}){let _=await Q(D),Z=v0(O);return _.some((B)=>{return v0(B.currency)===Z&&B.account===J})}async function z({currency:D,issuer:O,limit:J,sender:_}){let Z=_||await q();if(!j0(O))throw new a.SwapKitError({errorKey:"core_transaction_invalid_recipient_address",info:{address:O}});let B=Number.parseFloat(J);if(Number.isNaN(B)||B<0)throw new a.SwapKitError({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:J}});let w=await U(),k={Account:Z,LimitAmount:{currency:D,issuer:O,value:J},TransactionType:"TrustSet"};return w.autofill(k)}async function L({assetValue:D,recipient:O,memo:J,sender:_,destinationTag:Z,extendBySeconds:B=150}){if(!j0(O))throw new a.SwapKitError({errorKey:"core_transaction_invalid_recipient_address"});let w=_||await q();if(D.chain!==a.Chain.Ripple)throw new a.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:D.toString()}});let k=await PX(D),$={Account:w,Amount:k,Destination:O,TransactionType:"Payment",...Z!==void 0&&{DestinationTag:Z}};if(J)$.Memos=[{Memo:{MemoData:Buffer.from(J).toString("hex")}}];let M=await(await U()).autofill($);if(M.LastLedgerSequence&&B>0)M.LastLedgerSequence+=Math.ceil(B/4);return M}async function W(D){let O=await H();if(!O)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return O.signTransaction(D)}async function N(D){let J=await(await U()).submitAndWait(D),{result:_}=J;if(_.validated)return _.hash;let Z=_.meta?.TransactionResult,B=f0.match(Z).with(eT.tecNO_LINE,()=>"No trust line exists for this token").with(eT.tecPATH_DRY,()=>"Payment path could not deliver funds").with(eT.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new a.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:a.Chain.Ripple,...B?{reason:B}:{txResult:Z}}})}let A=async(D)=>{try{let O=await W(D);return N(O.tx_blob)}catch(O){if(O instanceof a.SwapKitError)throw O;throw new a.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:a.Chain.Ripple,error:O}})}};async function R(D){let O=await H();if(!O)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let J=await O.getAddress(),_=await L({...D,sender:J}),Z=await W(_);return N(Z.tx_blob)}async function I(D){let O=await H();if(!O)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let J=await O.getAddress(),_=await z({...D,sender:J}),Z=await W(_);return N(Z.tx_blob)}function F(){let D=f;if(f=null,D)D.then((O)=>{if(O?.isConnected())return O.disconnect();return}).catch((O)=>{console.warn("XRPL Cleanup failed silently:",O)})}return{broadcastTransaction:N,createSigner:K2,createTransaction:L,disconnect:F,estimateTransactionFee:G,getAddress:q,getBalance:X,getTrustLines:Q,hasTrustLine:Y,setTrustLine:z,setTrustLineAndBroadcast:I,signAndBroadcastTransaction:A,signTransaction:W,transfer:R,validateAddress:j0}}var a,y1,f0,b2,eT;var sH=v(()=>{rT();a=require("@swapkit/helpers"),y1=require("ripple-address-codec"),f0=require("ts-pattern");rT();j2();b2={ACCOUNT_NOT_FOUND:19},eT={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});function eH(y,T){let H=0n,f=0n,C=T;while(C<y.length&&C-T<10){let U=y[C++];if(U===void 0)break;if(H|=BigInt(U&127)<<f,f+=7n,(U&128)===0)return[H,C]}throw new nf.SwapKitError("toolbox_tron_transaction_creation_failed")}function b0(y){let T=[],H=y<0n?y+2n**64n:y;while(H>=128n)T.push(Number(H&0x7fn)|128),H>>=7n;return T.push(Number(H)),T}function f1(y,T,H){let f=y.get(T);if(f)f.push(H);else y.set(T,[H])}function vX(y){let T=new Map,H=0;while(H<y.length){let[f,C]=eH(y,H);H=C;let U=Number(f>>3n),q=Number(f&7n);if(q===T1){let[X,G]=eH(y,H);H=G,f1(T,U,{data:new Uint8Array(b0(X)),wireType:T1})}else if(q===H1){let[X,G]=eH(y,H);H=G;let Q=Number(X);if(Q<0||H+Q>y.length)throw new nf.SwapKitError("toolbox_tron_transaction_creation_failed");let Y=y.slice(H,H+Q);H+=Q,f1(T,U,{data:Y,wireType:H1})}else if(q===u2){if(H+8>y.length)throw new nf.SwapKitError("toolbox_tron_transaction_creation_failed");let X=y.slice(H,H+8);H+=8,f1(T,U,{data:X,wireType:u2})}else if(q===h2){if(H+4>y.length)throw new nf.SwapKitError("toolbox_tron_transaction_creation_failed");let X=y.slice(H,H+4);H+=4,f1(T,U,{data:X,wireType:h2})}else throw new nf.SwapKitError("toolbox_tron_transaction_creation_failed")}return T}function jX(y){let T=[];for(let[U,q]of[...y.entries()].sort(([X],[G])=>X-G))for(let{wireType:X,data:G}of q){let Q=BigInt(U<<3|X);if(T.push(new Uint8Array(b0(Q))),X===H1)T.push(new Uint8Array(b0(BigInt(G.length))));T.push(G)}let H=T.reduce((U,q)=>U+q.length,0),f=new Uint8Array(H),C=0;for(let U of T)f.set(U,C),C+=U.length;return f}function t2(y,T){if(!y||y.length%2!==0)throw new nf.SwapKitError("toolbox_tron_transaction_creation_failed");let H=T0.hexToBytes(y),f=vX(H);if(T.expiration!==void 0)f.set(VX,[{data:new Uint8Array(b0(BigInt(T.expiration))),wireType:T1}]);if(T.data!==void 0)f.set(EX,[{data:T0.hexToBytes(T.data),wireType:H1}]);if(T.fee_limit!==void 0)f.set(nX,[{data:new Uint8Array(b0(BigInt(T.fee_limit))),wireType:T1}]);let C=jX(f),U=T0.bytesToHex(C),q=T0.bytesToHex(m2.sha256(C));return{raw_data_hex:U,txID:q}}var m2,T0,nf,T1=0,u2=1,H1=2,h2=5,VX=8,EX=10,nX=18;var g2=v(()=>{m2=require("@noble/hashes/sha2.js"),T0=require("@noble/hashes/utils.js"),nf=require("@swapkit/helpers")});function my(y){if(typeof y!=="string")return!1;try{let T=C1.decode(y);return T.length===21&&T[0]===d2}catch{return!1}}function r2(y){return jy.bytesToHex(C1.decode(y))}function KX(y){return C1.decode(y).slice(1)}function a2(y){let T=yC.secp256k1.getPublicKey(jy.hexToBytes(y),!1),H=c2.keccak_256(T.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=d2,f.set(H,1),C1.encode(f)}function s2({txID:y,privateKey:T}){let H=yC.secp256k1.sign(jy.hexToBytes(y),jy.hexToBytes(T),{format:"recovered",prehash:!1}),f=H[0]??0,C=jy.bytesToHex(H.slice(1,33)),U=jy.bytesToHex(H.slice(33,65)),q=(f+27).toString(16).padStart(2,"0");return C+U+q}function H0({txID:y,raw_data_hex:T}){let H=jy.bytesToHex(fC.sha256(jy.hexToBytes(T)));if(y!==H)throw new TC.SwapKitError("toolbox_tron_invalid_transaction_integrity",{expected:H,txID:y})}function pX(y){return`000000000000000000000000${jy.bytesToHex(KX(y))}`}function lX(y){let T=typeof y==="bigint"?y:BigInt(y);if(T<0n||T>=bX)throw new TC.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:T.toString()});return T.toString(16).padStart(64,"0")}function C0(y){return y.map(({type:T,value:H})=>T==="address"?pX(H):lX(BigInt(H))).join("")}function e2(y){return jy.bytesToHex(new TextEncoder().encode(y))}var yC,fC,c2,jy,i2,TC,C1,d2=65,bX;var HC=v(()=>{yC=require("@noble/curves/secp256k1.js"),fC=require("@noble/hashes/sha2.js"),c2=require("@noble/hashes/sha3.js"),jy=require("@noble/hashes/utils.js"),i2=require("@scure/base"),TC=require("@swapkit/helpers"),C1=i2.createBase58check(fC.sha256),bX=2n**256n});function T8(){try{return _y.getRPCUrlSync(_y.Chain.Tron)}catch{return f8}}function H8(){let y=new AbortController,T=setTimeout(()=>y.abort(),gX);return{cleanup:()=>clearTimeout(T),signal:y.signal}}async function vf(y,T){let{signal:H,cleanup:f}=H8();try{let C=await fetch(`${T8()}${y}`,{body:JSON.stringify(T),headers:{"Content-Type":"application/json"},method:"POST",signal:H});if(!C.ok)throw new _y.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${C.status} ${C.statusText} on ${y}`});return await C.json()}finally{f()}}async function C8(y,T){let{signal:H,cleanup:f}=H8();try{let C=await fetch(`${T??T8()}${y}`,{headers:{"Content-Type":"application/json"},signal:H});if(!C.ok)throw new _y.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${C.status} ${C.statusText} on ${y}`});return await C.json()}finally{f()}}async function U8(y){if(!my(y))throw new _y.SwapKitError("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let T=await C8(`/v1/accounts/${y}`,f8);if(!(T.success&&T.data)||T.data.length===0)return;let H;try{H=r2(y).toLowerCase()}catch{H=y.toLowerCase()}let f=T.data.find((C)=>C.address.toLowerCase()===H);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(T){if(T instanceof _y.SwapKitError)throw T;throw new _y.SwapKitError("toolbox_tron_trongrid_api_error",{address:y,message:T instanceof Error?T.message:"Unknown error"})}}async function q8({from:y,to:T,amount:H}){let C=await vf("/wallet/createtransaction",{amount:H,owner_address:y,to_address:T,visible:!0});if(!C.txID||!C.raw_data_hex||!C.raw_data)throw new _y.SwapKitError("toolbox_tron_transaction_creation_failed");let q=C.raw_data?.contract?.[0]?.parameter?.value;if(q?.to_address!==T||q?.owner_address!==y||q?.amount!==H)throw new _y.SwapKitError("toolbox_tron_transaction_creation_failed");return H0(C),C}async function X8({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f,feeLimit:C,callValue:U=0}){let q=await vf("/wallet/triggersmartcontract",{call_value:U,contract_address:T,fee_limit:C,function_selector:H,owner_address:y,parameter:f,visible:!0});if(!q.result.result||!q.transaction?.txID||!q.transaction?.raw_data_hex)throw new _y.SwapKitError("toolbox_tron_transaction_creation_failed");let G=q.transaction.raw_data?.contract?.[0]?.parameter?.value;if(G?.contract_address!==T||G?.owner_address!==y)throw new _y.SwapKitError("toolbox_tron_transaction_creation_failed");return H0(q.transaction),q.transaction}function G8({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return vf("/wallet/triggerconstantcontract",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}function cX({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return vf("/wallet/estimateenergy",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}function y8(y){let T=typeof y==="number"?y:typeof y==="string"?Number(y):Number.NaN;return Number.isFinite(T)&&T>0?T:void 0}async function K0(y){try{let{result:T,txid:H}=await vf("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!T||!H)throw new _y.SwapKitError("toolbox_tron_token_transfer_failed");return H}catch(T){throw new _y.SwapKitError("toolbox_tron_broadcast_failed",{error:T})}}async function p0(){let y={};try{let{chainParameter:T}=await C8("/wallet/getchainparameters");for(let H of T)y[H.key]=H.value}catch(T){_y.warnOnce({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${T instanceof Error?T.message:T}`})}return{bandwidthFee:y.getTransactionFee??uX,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??hX,energyFee:y.getEnergyFee??mX,memoFee:y.getMemoFee??tX}}async function CC(y){try{let T=await vf("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(T.freeNetLimit??600)-(T.freeNetUsed??0),total:T.NetLimit??0,used:T.NetUsed??0},energy:{total:T.EnergyLimit??0,used:T.EnergyUsed??0}}}catch(T){return _y.warnOnce({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${T instanceof Error?T.message:T}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function l0(y){try{let T=await vf("/wallet/getaccount",{address:y,visible:!0});return T&&Object.keys(T).length>0}catch{return!1}}async function UC(y){try{let T=await cX({...y,ownerAddress:y.sender}),H=T.energy_required??T.energyRequired;if(T.result&&!T.result.result)throw new _y.SwapKitError("toolbox_tron_trongrid_api_error",{message:T.result.message||"estimateenergy failed"});if(H!==void 0){let f=y8(H);if(f!==void 0)return f;throw new _y.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(T){_y.warnOnce({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${T instanceof Error?T.message:T}`})}try{let{energy_used:T}=await G8({...y,ownerAddress:y.sender}),H=y8(T);if(H!==void 0)return H;throw new _y.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid triggerconstantcontract energy response"})}catch(T){throw _y.warnOnce({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy: ${T instanceof Error?T.message:T}`}),new _y.SwapKitError("toolbox_tron_trongrid_api_error",{message:`Unable to estimate contract energy: ${T instanceof Error?T.message:T}`})}}async function Q8({assetAddress:y,owner:T,spender:H}){let f=C0([{type:"address",value:T},{type:"address",value:H}]),U=(await G8({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:H,parameter:f})).constant_result?.[0];if(!U)return 0n;try{return BigInt(`0x${U}`)}catch{return 0n}}var _y,f8="https://api.trongrid.io",uX=1000,hX=1e6,mX=420,tX=1e6,gX=30000;var _8=v(()=>{HC();_y=require("@swapkit/helpers")});function N8({phrase:y,derivationPath:T}){let H=z8.HDKey.fromMasterSeed(A8.mnemonicToSeedSync(y)).derive(T);if(!H.privateKey)throw new K.SwapKitError("toolbox_tron_no_signer");return J8.bytesToHex(H.privateKey)}function B8(y,T){return{...y,value:String(T)}}function D8(y,T){if(!T)return y;return{...y,data:T.startsWith("0x")?T:`0x${T}`}}function O8({phrase:y,derivationPath:T,index:H}){let f=T||K.derivationPathToString(K.updateDerivationPath(K.NetworkDerivationPath[K.Chain.Tron],{index:H||0}));return N8({derivationPath:f,phrase:y})}function dX({phrase:y,derivationPath:T}){let H=N8({derivationPath:T,phrase:y}),f=a2(H);return{getAddress:()=>Promise.resolve(f),signTransaction:(C)=>{H0(C);let U=s2({privateKey:H,txID:C.txID});return Promise.resolve({...C,signature:[U]})}}}function L8({transaction:y,memo:T,expiration:H,feeLimit:f}){let C={},U={};if(f!==void 0&&y.raw_data)C.fee_limit=f,U.fee_limit=f;if(T){let G=T.startsWith("0x")?T.replace(/^0x/,""):e2(T);C.data=G,U.data=G}if(H){let G=y.raw_data.expiration+H*1000;C.expiration=G,U.expiration=G}if(Object.keys(C).length===0)return y;let{raw_data_hex:q,txID:X}=t2(y.raw_data_hex,C);return{...y,raw_data:{...y.raw_data,...U},raw_data_hex:q,txID:X}}function R8(y={}){let T="index"in y?y.index||0:0,H=K.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:K.updateDerivationPath(K.NetworkDerivationPath[K.Chain.Tron],{index:T})),f,C=!1;function U(){if(C)return Promise.resolve(f);return f=U0.match(y).with({phrase:U0.P.string},({phrase:_})=>dX({derivationPath:H,phrase:_})).with({signer:U0.P.not(U0.P.nullish)},({signer:_})=>_).otherwise(()=>{return}),C=!0,Promise.resolve(f)}async function q(){let _=await U();if(!_)throw new K.SwapKitError("toolbox_tron_no_signer");return _.getAddress()}async function X(_,Z){let B=_||W8,w=Z??(await p0()).energyFee,k=B*w,$=Math.ceil(k*1.5);return Math.min(Math.max($,1e7),150000000)}async function G({contractAddress:_,functionSelector:Z,parameter:B,sender:w,memo:k,expiration:$,extraEnergy:P=0}){let M=await UC({contractAddress:_,functionSelector:Z,parameter:B,sender:w}),x=await X(M+P),V=await X8({contractAddress:_,feeLimit:x,functionSelector:Z,ownerAddress:w,parameter:B});return L8({expiration:$,feeLimit:x,memo:k,transaction:V})}async function Q(_){if(!my(_))return[K.AssetValue.from({chain:K.Chain.Tron})];try{let Z=await U8(_);if(!Z)return[K.AssetValue.from({chain:K.Chain.Tron})];let B=[K.AssetValue.from({chain:K.Chain.Tron,fromBaseDecimal:6,value:String(Z.balance)})],w=Z.trc20?.find((k)=>(XC in k));if(w){let k=w[XC];B.push(K.AssetValue.from({asset:`TRON.USDT-${XC}`,fromBaseDecimal:6,value:k}))}return B}catch(Z){return K.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${Z instanceof Error?Z.message:Z}`}),[K.AssetValue.from({chain:K.Chain.Tron})]}}async function Y({recipient:_,assetValue:Z,memo:B,expiration:w}){if(!my(_))throw new K.SwapKitError("toolbox_tron_token_transfer_failed",{message:"invalid address"});let k=await U();if(!k)throw new K.SwapKitError("toolbox_tron_no_signer");try{let $=await q(),P=await R({assetValue:Z,expiration:w,memo:B,recipient:_,sender:$}),M=await k.signTransaction(P),x=await K0(M);if(!x)throw new K.SwapKitError("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return x}catch($){throw new K.SwapKitError("toolbox_tron_token_transfer_failed",{message:$ instanceof Error?$.message:String($)})}}function z({requiredBandwidth:_,resources:Z,feePerUnit:B}){let w=Math.max(0,Z.free+Z.total-Z.used);return _>w?(_-w)*B:0}async function L({memo:_,recipient:Z,senderAddress:B}){let[w,k,$]=await Promise.all([p0(),l0(Z),CC(B)]),P=k?0:w.createAccountFee,M=z({feePerUnit:w.bandwidthFee,requiredBandwidth:Z8,resources:$.bandwidth}),x=_?w.memoFee:0;return K.AssetValue.from({chain:K.Chain.Tron,fromBaseDecimal:K.BaseDecimal.TRON,value:P+M+x})}async function W({assetValue:_,memo:Z,recipient:B,senderAddress:w}){let k=_.address;if(!k)throw new K.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:_.toString()});let[$,P,M,x]=await Promise.all([p0(),l0(B),CC(w),UC({contractAddress:k,functionSelector:"transfer(address,uint256)",parameter:C0([{type:"address",value:B},{type:"uint256",value:_.getBaseValue("string")}]),sender:w})]),j=x+(P?0:qC),n=z({feePerUnit:$.bandwidthFee,requiredBandwidth:Y8,resources:M.bandwidth}),m=Math.max(0,M.energy.total-M.energy.used),d=j>m?(j-m)*$.energyFee:0,Xy=Z?$.memoFee:0;return K.AssetValue.from({chain:K.Chain.Tron,fromBaseDecimal:K.BaseDecimal.TRON,value:n+d+Xy})}async function N({assetValue:_,memo:Z,recipient:B}){let[w,k]=await Promise.all([p0(),l0(B)]);if(_.isGasAsset){let x=k?0:w.createAccountFee,V=Z?w.memoFee:0;return K.AssetValue.from({chain:K.Chain.Tron,fromBaseDecimal:K.BaseDecimal.TRON,value:x+Z8*w.bandwidthFee+V})}let P=await X(W8+(k?0:qC),w.energyFee),M=Z?w.memoFee:0;return K.AssetValue.from({chain:K.Chain.Tron,fromBaseDecimal:K.BaseDecimal.TRON,value:P+Y8*w.bandwidthFee+M})}async function A({assetValue:_,memo:Z,recipient:B,sender:w}){let k=await U();try{let $=w?w:k?await q():void 0;if(!$)return N({assetValue:_,memo:Z,recipient:B});return _.isGasAsset?L({memo:Z,recipient:B,senderAddress:$}):W({assetValue:_,memo:Z,recipient:B,senderAddress:$})}catch($){throw K.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${$ instanceof Error?$.message:$}`}),new K.SwapKitError("toolbox_fee_estimation_failed",{chain:K.Chain.Tron,error:$})}}async function R({recipient:_,assetValue:Z,memo:B,sender:w,expiration:k}){if(!my(_)||!my(w))throw new K.SwapKitError("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(Z.isGasAsset){let M=await q8({amount:Z.getBaseValue("number"),from:w,to:_});return L8({expiration:k,memo:B,transaction:M})}let $=Z.address;if(!$)throw new K.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:Z.toString()});let P=await l0(_);return G({contractAddress:$,expiration:k,extraEnergy:P?0:qC,functionSelector:"transfer(address,uint256)",memo:B,parameter:C0([{type:"address",value:_},{type:"uint256",value:Z.getBaseValue("string")}]),sender:w})}async function I(_){H0(_);let Z=await U();if(!Z)throw new K.SwapKitError("toolbox_tron_no_signer");return Z.signTransaction(_)}async function F(_){let Z=await I(_);return K0(Z)}function D({assetAddress:_,spenderAddress:Z,from:B}){return Q8({assetAddress:_,owner:B,spender:Z})}async function O({assetAddress:_,spenderAddress:Z,from:B,amount:w}){let k=await D({assetAddress:_,from:B,spenderAddress:Z});if(!w)return k>0n;return k>=BigInt(w)}async function J({assetAddress:_,spenderAddress:Z,amount:B,from:w}){if(!my(_)||!my(Z))throw new K.SwapKitError("toolbox_tron_approve_failed");let k=await U();if(!k)throw new K.SwapKitError("toolbox_tron_no_signer");let $=w||await q(),P=B!==void 0?BigInt(B).toString():iX;try{let M=await G({contractAddress:_,functionSelector:"approve(address,uint256)",parameter:C0([{type:"address",value:Z},{type:"uint256",value:P}]),sender:$}),x=await k.signTransaction(M),V=await K0(x);if(!V)throw new K.SwapKitError("toolbox_tron_approve_failed");return V}catch(M){if(M instanceof K.SwapKitError)throw M;throw new K.SwapKitError("toolbox_tron_approve_failed",{error:M})}}return{approve:J,broadcastTransaction:K0,createTransaction:R,estimateTransactionFee:A,getAddress:q,getApprovedAmount:D,getBalance:Q,getRpcUrl:()=>K.getRPCUrl(K.Chain.Tron),isApproved:O,signAndBroadcastTransaction:F,signTransaction:I,transfer:Y,validateAddress:my}}var J8,z8,A8,K,U0,M8,Z8=268,W8=65000,qC=25000,Y8=345,XC="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",iX="115792089237316195423570985008687907853269984665640564039457584007913129639935";var k8=v(()=>{g2();_8();HC();J8=require("@noble/hashes/utils.js"),z8=require("@scure/bip32"),A8=require("@scure/bip39"),K=require("@swapkit/helpers"),U0=require("ts-pattern"),M8=my});var GC={};Dy(GC,{withTronTransactionValue:()=>B8,withTronTransactionData:()=>D8,validateTronAddress:()=>M8,getTronToolbox:()=>R8,getTronPrivateKeyFromMnemonic:()=>O8});module.exports=ky(GC);var QC=v(()=>{k8()});async function yG(y){if(U1&&Date.now()-U1.timestamp<eX)return U1.value;let H=(await y.ledgers().order("desc").limit(1).call()).records[0]?.base_reserve_in_stroops;if(H===void 0)throw new g.SwapKitError({errorKey:"toolbox_stellar_balance_error",info:{reason:"base_reserve_unavailable"}});return U1={timestamp:Date.now(),value:H},H}function w8(y){return g.AssetValue.from({chain:g.Chain.Stellar,value:y}).getBaseValue("bigint")}function fG({balance:y,baseReserveInStroops:T,numSponsored:H,numSponsoring:f,sellingLiabilities:C,subentryCount:U}){let q=w8(y),X=w8(C),G=sX+U+f-H,Q=BigInt(G)*BigInt(T),Y=q-Q-X;return Y>0n?Y:0n}function X1(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return rX.test(y)}function F8(y){if(typeof y!=="object"||y===null)return;let T="response"in y?y.response:void 0;return typeof T?.status==="number"?T.status:void 0}function TG(y){return F8(y)===504}function HG(y){return y.hash?.().toString("hex")}function CG(y){return[...new Set([y,...g.SKConfig.get("rpcUrls")[g.Chain.Stellar]])].filter(Boolean)}async function x8(y){if(!X1(y))return!1;try{let{StrKey:T}=await import("@stellar/stellar-sdk");return T.isValidEd25519PublicKey(y)}catch{return!1}}async function $8(y){let{address:T,ticker:H}=y,f=T?await x8(T):!1;if(y.chain!==g.Chain.Stellar||y.isGasAsset||!aX.test(H)||!T||!f)throw new g.SwapKitError({errorKey:"helpers_invalid_asset_identifier",info:{identifier:y.toString()}});return{assetCode:H,issuer:T}}function I8(y={}){let T,H=y.derivationPath||g.NetworkDerivationPath[g.Chain.Stellar],f=g.derivationPathToString(H.slice(0,3));async function C({phrase:D,path:O}){let{HDKey:J}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:_}=await import("@scure/bip39"),{Keypair:Z}=await import("@stellar/stellar-sdk"),B=_(D),k=J.fromMasterSeed(B).derive(O,!0);return Z.fromRawEd25519Seed(Buffer.from(k.privateKey))}async function U(){if(T)return T;let D=q1.match(y).with({phrase:q1.P.string},({phrase:O})=>O).otherwise(()=>{return});if(!D)throw new g.SwapKitError("toolbox_stellar_no_signer");return T=await C({path:f,phrase:D}),T}async function q(D){let{Horizon:O}=await import("@stellar/stellar-sdk"),J=D||await g.getRPCUrl(g.Chain.Stellar);return new O.Server(J)}async function X(D,O){for(let J of O)try{return(await(await q(J)).transactions().transaction(D).call()).hash||D}catch{}return}async function G(D,O){let J=await g.getRPCUrl(g.Chain.Stellar),_=CG(J),Z=HG(D),B;for(let w of _)try{let k=await q(w),{hash:$}=await k.submitTransaction(D);return $}catch(k){if(B=k,!TG(k))break;let $=Z?await X(Z,_):void 0;if($)return $}throw new g.SwapKitError(O,B)}async function Q(){try{return(await U()).publicKey()}catch{return""}}async function Y(D){let O=D||await Q();if(!O)throw new g.SwapKitError("toolbox_stellar_account_not_found");let J=await q(),[_,Z]=await Promise.allSettled([J.loadAccount(O),yG(J)]);if(_.status==="rejected"){let B=_.reason;if(F8(B)===404)return[g.AssetValue.from({chain:g.Chain.Stellar,value:0})];throw B}if(Z.status==="rejected")throw Z.reason;return _.value.balances.map((B)=>{if(B.asset_type==="native"){let $=fG({balance:B.balance,baseReserveInStroops:Z.value,numSponsored:_.value.num_sponsored,numSponsoring:_.value.num_sponsoring,sellingLiabilities:B.selling_liabilities,subentryCount:_.value.subentry_count}),{baseDecimal:P}=g.getChainConfig(g.Chain.Stellar);return g.AssetValue.from({chain:g.Chain.Stellar,fromBaseDecimal:P,value:$})}let w="asset_code"in B?B.asset_code:"",k="asset_issuer"in B?B.asset_issuer:"";return g.AssetValue.from({asset:`${g.Chain.Stellar}.${w}-${k}`,asyncTokenLookup:!1,value:B.balance})})}async function z({recipient:D,assetValue:O,memo:J,sender:_}){if(J){if(new TextEncoder().encode(J).length>28)throw new g.SwapKitError("helpers_invalid_memo_type")}if(!await x8(D))throw new g.SwapKitError("core_transaction_invalid_recipient_address");let B=_||await Q();if(!B)throw new g.SwapKitError("toolbox_stellar_no_signer");let{Asset:w,Memo:k,Networks:$,Operation:P,TransactionBuilder:M}=await import("@stellar/stellar-sdk"),x=await q(),V=await x.fetchBaseFee(),j=await x.loadAccount(B),n=new M(j,{fee:String(V),networkPassphrase:$.PUBLIC});if(O.isGasAsset)try{await x.loadAccount(D),n.addOperation(P.payment({amount:O.getValue("string"),asset:w.native(),destination:D}))}catch{n.addOperation(P.createAccount({destination:D,startingBalance:O.getValue("string")}))}else{let{assetCode:d,issuer:Xy}=await $8(O);n.addOperation(P.payment({amount:O.getValue("string"),asset:new w(d,Xy),destination:D}))}if(J)n.addMemo(k.text(J));return n.setTimeout(30).build()}async function L({assetValue:D,limit:O,sender:J}){let _=J||await Q();if(!_)throw new g.SwapKitError("toolbox_stellar_no_signer");let{Asset:Z,Networks:B,Operation:w,TransactionBuilder:k}=await import("@stellar/stellar-sdk"),{assetCode:$,issuer:P}=await $8(D),M=await q(),[x,V]=await Promise.all([M.fetchBaseFee(),M.loadAccount(_)]),j=new Z($,P),n=O!==void 0?w.changeTrust({asset:j,limit:O}):w.changeTrust({asset:j});return new k(V,{fee:String(x),networkPassphrase:B.PUBLIC}).addOperation(n).setTimeout(30).build()}async function W(D){let{TransactionBuilder:O,Networks:J}=await import("@stellar/stellar-sdk"),_=await U(),Z=O.fromXDR(D.toXDR(),J.PUBLIC);return Z.sign(_),Z}function N(D){return G(D,"toolbox_stellar_broadcast_error")}async function A({recipient:D,assetValue:O,memo:J}){let _=await U(),Z=_.publicKey(),B=await z({assetValue:O,memo:J,recipient:D,sender:Z});return B.sign(_),G(B,"toolbox_stellar_transaction_failed")}async function R({assetValue:D,limit:O}){let J=await U(),_=await L({assetValue:D,limit:O,sender:J.publicKey()});return _.sign(J),G(_,"toolbox_stellar_transaction_failed")}async function I(D){let O=await W(D);return N(O)}async function F(){let{baseDecimal:D}=g.getChainConfig(g.Chain.Stellar);try{let _=(await(await q()).feeStats()).fee_charged.p50;return g.AssetValue.from({chain:g.Chain.Stellar,fromBaseDecimal:D,value:_})}catch{return g.AssetValue.from({chain:g.Chain.Stellar,fromBaseDecimal:D,value:"100"})}}return{broadcastTransaction:N,createTransaction:z,createTrustline:R,createTrustlineTransaction:L,estimateTransactionFee:F,getAddress:Q,getBalance:Y,signAndBroadcastTransaction:I,signTransaction:W,transfer:A,validateAddress:X1}}var g,q1,rX,aX,sX=2,eX=600000,U1;var S8=v(()=>{g=require("@swapkit/helpers"),q1=require("ts-pattern"),rX=/^G[A-Z2-7]{55}$/,aX=/^[A-Za-z0-9]{1,12}$/});var G1={};Dy(G1,{validateStellarAddress:()=>X1,getStellarToolbox:()=>I8});module.exports=ky(G1);var Q1=v(()=>{S8()});var XG={};Dy(XG,{getToolbox:()=>_C,getFeeEstimator:()=>qG,getAddressValidator:()=>UG});module.exports=ky(XG);var l=require("@swapkit/helpers");async function UG(){let{match:y}=await import("ts-pattern"),{validateAptosAddress:T}=await Promise.resolve().then(() => (h0(),u0)),{validateEVMAddress:H}=await Promise.resolve().then(() => (E1(),tC)),{validateCardanoAddress:f}=await Promise.resolve().then(() => (b1(),j1)),{getCosmosAddressValidator:C}=await Promise.resolve().then(() => (NT(),MT)),{validateHyperCoreAddress:U}=await Promise.resolve().then(() => (UH(),CH)),{validateSolanaAddress:q}=await Promise.resolve().then(() => (_H(),QH)),{validateStarknetAddress:X}=await Promise.resolve().then(() => (FT(),$T)),{validateSuiAddress:G}=await Promise.resolve().then(() => (oT(),PT)),{validateTonAddress:Q}=await Promise.resolve().then(() => (nT(),ET)),{getUTXOAddressValidator:Y}=await Promise.resolve().then(() => (VH(),oH)),{validateNearAddress:z}=await Promise.resolve().then(() => (iH(),cH)),{validateRadixAddress:L}=await Promise.resolve().then(() => (rH(),dH)),{validateRippleAddress:W}=await Promise.resolve().then(() => (sH(),aH)),{validateTronAddress:N}=await Promise.resolve().then(() => (QC(),GC)),{validateStellarAddress:A}=await Promise.resolve().then(() => (Q1(),G1));return function({address:I,chain:F}){return y(F).with(...l.EVMChains,()=>H(I)).with(...l.UTXOChains,(O)=>{return Y(O)(I)}).with(...l.CosmosChains,(O)=>{return C(O)(I)}).with(l.Chain.Aptos,()=>T(I)).with(l.Chain.Radix,()=>L(I)).with(l.Chain.Hype,()=>U(I)).with(l.Chain.Near,()=>z(I)).with(l.Chain.Ripple,()=>W(I)).with(l.Chain.Solana,()=>q(I)).with(l.Chain.Stellar,()=>A(I)).with(l.Chain.Starknet,()=>X(I)).with(l.Chain.Sui,()=>G(I)).with(l.Chain.Ton,()=>Q(I)).with(l.Chain.Tron,()=>N(I)).with(l.Chain.Cardano,()=>f(I)).otherwise(()=>!1)}}function qG(y){return async function(H){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...l.EVMChains,async(C)=>{let U=await _C(C),q=await U.createTransaction(H),X="feeOptionKey"in H?H.feeOptionKey:l.FeeOption.Fast;return U.estimateTransactionFee({...q,feeOption:X})}).with(l.Chain.Bitcoin,l.Chain.BitcoinCash,l.Chain.Dogecoin,l.Chain.Dash,l.Chain.Litecoin,l.Chain.Solana,l.Chain.Ripple,l.Chain.Tron,l.Chain.Near,l.Chain.Cardano,l.Chain.Hype,async(C)=>{return(await _C(C)).estimateTransactionFee(H)}).with(l.Chain.Aptos,async()=>{let{getAptosToolbox:C}=await Promise.resolve().then(() => (h0(),u0));return C().estimateTransactionFee(H)}).with(l.Chain.Starknet,async()=>{let{getStarknetToolbox:C}=await Promise.resolve().then(() => (FT(),$T));return(await C()).estimateTransactionFee(H)}).with(l.Chain.Stellar,async()=>{let{getStellarToolbox:C}=await Promise.resolve().then(() => (Q1(),G1));return C().estimateTransactionFee()}).with(l.Chain.Sui,async()=>{let{getSuiToolbox:C}=await Promise.resolve().then(() => (oT(),PT));return C().estimateTransactionFee(H)}).with(l.Chain.Ton,async()=>{let{getTONToolbox:C}=await Promise.resolve().then(() => (nT(),ET));return C().estimateTransactionFee(H)}).with(...l.CosmosChains,async()=>{let{estimateTransactionFee:C}=await Promise.resolve().then(() => (NT(),MT));return C(H)}).otherwise(async()=>l.AssetValue.from({chain:y}))}}async function _C(y,T){let{match:H}=await import("ts-pattern");return H(y).returnType().with(...l.EVMChains,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (V1(),uC));return await f(y,T)}).with(...l.UTXOChains,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (VH(),oH));return f(y,T)}).with(...l.CosmosChains,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (NT(),MT));return f(y,T)}).with(l.Chain.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (h0(),u0));return f(T)}).with(l.Chain.Hype,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (UH(),CH));return f(T)}).with(l.Chain.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (rH(),dH));return f(T)}).with(l.Chain.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (sH(),aH));return f(T)}).with(l.Chain.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => (_H(),QH));return f(T)}).with(l.Chain.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (Q1(),G1));return f(T)}).with(l.Chain.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (FT(),$T));return f(T)}).with(l.Chain.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (oT(),PT));return f(T)}).with(l.Chain.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (QC(),GC));return f(T)}).with(l.Chain.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (iH(),cH));return f(T)}).with(l.Chain.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (b1(),j1));return f(T)}).with(l.Chain.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (nT(),ET));return f(T)}).otherwise(()=>{throw new l.SwapKitError("toolbox_not_supported",{chain:y})})}
|