@swapkit/toolboxes 4.0.0-beta.50 → 4.0.0-beta.52
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/dist/src/cosmos/index.cjs +2 -2
- package/dist/src/cosmos/index.cjs.map +10 -6
- package/dist/src/cosmos/index.js +2 -2
- package/dist/src/cosmos/index.js.map +10 -6
- package/dist/src/evm/index.cjs +2 -2
- package/dist/src/evm/index.cjs.map +10 -8
- package/dist/src/evm/index.js +2 -2
- package/dist/src/evm/index.js.map +10 -8
- package/dist/src/index.cjs +4 -2
- package/dist/src/index.cjs.map +54 -4
- package/dist/src/index.js +4 -2
- package/dist/src/index.js.map +54 -4
- package/dist/src/near/index.cjs +2 -2
- package/dist/src/near/index.cjs.map +7 -5
- package/dist/src/near/index.js +2 -2
- package/dist/src/near/index.js.map +7 -5
- package/dist/src/radix/index.cjs +2 -2
- package/dist/src/radix/index.cjs.map +2 -2
- package/dist/src/radix/index.js +2 -2
- package/dist/src/radix/index.js.map +2 -2
- package/dist/src/ripple/index.cjs +2 -2
- package/dist/src/ripple/index.cjs.map +2 -2
- package/dist/src/ripple/index.js +2 -2
- package/dist/src/ripple/index.js.map +2 -2
- package/dist/src/solana/index.cjs +2 -2
- package/dist/src/solana/index.cjs.map +5 -4
- package/dist/src/solana/index.js +2 -2
- package/dist/src/solana/index.js.map +5 -4
- package/dist/src/substrate/index.cjs +2 -2
- package/dist/src/substrate/index.cjs.map +6 -5
- package/dist/src/substrate/index.js +2 -2
- package/dist/src/substrate/index.js.map +6 -5
- package/dist/src/tron/index.cjs +2 -2
- package/dist/src/tron/index.cjs.map +6 -5
- package/dist/src/tron/index.js +2 -2
- package/dist/src/tron/index.js.map +6 -5
- package/dist/src/utxo/index.cjs +4 -4
- package/dist/src/utxo/index.cjs.map +10 -7
- package/dist/src/utxo/index.js +4 -4
- package/dist/src/utxo/index.js.map +10 -7
- package/{src/cosmos/index.ts → dist/types/cosmos/index.d.ts} +1 -0
- package/dist/types/cosmos/index.d.ts.map +1 -0
- package/dist/types/cosmos/thorchainUtils/addressFormat.d.ts +5 -0
- package/dist/types/cosmos/thorchainUtils/addressFormat.d.ts.map +1 -0
- package/{src/cosmos/thorchainUtils/index.ts → dist/types/cosmos/thorchainUtils/index.d.ts} +1 -0
- package/dist/types/cosmos/thorchainUtils/index.d.ts.map +1 -0
- package/dist/types/cosmos/thorchainUtils/messages.d.ts +208 -0
- package/dist/types/cosmos/thorchainUtils/messages.d.ts.map +1 -0
- package/dist/types/cosmos/thorchainUtils/registry.d.ts +4 -0
- package/dist/types/cosmos/thorchainUtils/registry.d.ts.map +1 -0
- package/dist/types/cosmos/thorchainUtils/types/MsgCompiled.d.ts +2 -0
- package/dist/types/cosmos/thorchainUtils/types/MsgCompiled.d.ts.map +1 -0
- package/dist/types/cosmos/thorchainUtils/types/client-types.d.ts +66 -0
- package/dist/types/cosmos/thorchainUtils/types/client-types.d.ts.map +1 -0
- package/dist/types/cosmos/thorchainUtils/types/index.d.ts +2 -0
- package/dist/types/cosmos/thorchainUtils/types/index.d.ts.map +1 -0
- package/dist/types/cosmos/toolbox/cosmos.d.ts +93 -0
- package/dist/types/cosmos/toolbox/cosmos.d.ts.map +1 -0
- package/dist/types/cosmos/toolbox/index.d.ts +14 -0
- package/dist/types/cosmos/toolbox/index.d.ts.map +1 -0
- package/dist/types/cosmos/toolbox/thorchain.d.ts +158 -0
- package/dist/types/cosmos/toolbox/thorchain.d.ts.map +1 -0
- package/{src/cosmos/types.ts → dist/types/cosmos/types.d.ts} +24 -29
- package/dist/types/cosmos/types.d.ts.map +1 -0
- package/dist/types/cosmos/util.d.ts +68 -0
- package/dist/types/cosmos/util.d.ts.map +1 -0
- package/dist/types/evm/api.d.ts +8 -0
- package/dist/types/evm/api.d.ts.map +1 -0
- package/dist/types/evm/contracts/eth/multicall.d.ts +36 -0
- package/dist/types/evm/contracts/eth/multicall.d.ts.map +1 -0
- package/dist/types/evm/contracts/op/gasOracle.d.ts +40 -0
- package/dist/types/evm/contracts/op/gasOracle.d.ts.map +1 -0
- package/dist/types/evm/helpers.d.ts +20 -0
- package/dist/types/evm/helpers.d.ts.map +1 -0
- package/{src/evm/index.ts → dist/types/evm/index.d.ts} +1 -0
- package/dist/types/evm/index.d.ts.map +1 -0
- package/dist/types/evm/toolbox/baseEVMToolbox.d.ts +82 -0
- package/dist/types/evm/toolbox/baseEVMToolbox.d.ts.map +1 -0
- package/dist/types/evm/toolbox/evm.d.ts +367 -0
- package/dist/types/evm/toolbox/evm.d.ts.map +1 -0
- package/dist/types/evm/toolbox/index.d.ts +89 -0
- package/dist/types/evm/toolbox/index.d.ts.map +1 -0
- package/dist/types/evm/toolbox/op.d.ts +62 -0
- package/dist/types/evm/toolbox/op.d.ts.map +1 -0
- package/dist/types/evm/types.d.ts +98 -0
- package/dist/types/evm/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +63 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/near/helpers/core.d.ts +15 -0
- package/dist/types/near/helpers/core.d.ts.map +1 -0
- package/dist/types/near/helpers/gasEstimation.d.ts +41 -0
- package/dist/types/near/helpers/gasEstimation.d.ts.map +1 -0
- package/dist/types/near/helpers/nep141.d.ts +72 -0
- package/dist/types/near/helpers/nep141.d.ts.map +1 -0
- package/dist/types/near/index.d.ts +10 -0
- package/dist/types/near/index.d.ts.map +1 -0
- package/dist/types/near/toolbox.d.ts +4 -0
- package/dist/types/near/toolbox.d.ts.map +1 -0
- package/dist/types/near/types/contract.d.ts +38 -0
- package/dist/types/near/types/contract.d.ts.map +1 -0
- package/dist/types/near/types/nep141.d.ts +56 -0
- package/dist/types/near/types/nep141.d.ts.map +1 -0
- package/dist/types/near/types/toolbox.d.ts +57 -0
- package/dist/types/near/types/toolbox.d.ts.map +1 -0
- package/dist/types/near/types.d.ts +44 -0
- package/dist/types/near/types.d.ts.map +1 -0
- package/dist/types/radix/index.d.ts +14 -0
- package/dist/types/radix/index.d.ts.map +1 -0
- package/dist/types/ripple/index.d.ts +43 -0
- package/dist/types/ripple/index.d.ts.map +1 -0
- package/dist/types/solana/index.d.ts +37 -0
- package/dist/types/solana/index.d.ts.map +1 -0
- package/dist/types/solana/toolbox.d.ts +41 -0
- package/dist/types/solana/toolbox.d.ts.map +1 -0
- package/dist/types/substrate/balance.d.ts +17 -0
- package/dist/types/substrate/balance.d.ts.map +1 -0
- package/{src/substrate/index.ts → dist/types/substrate/index.d.ts} +1 -0
- package/dist/types/substrate/index.d.ts.map +1 -0
- package/dist/types/substrate/substrate.d.ts +148 -0
- package/dist/types/substrate/substrate.d.ts.map +1 -0
- package/dist/types/substrate/types.d.ts +100 -0
- package/dist/types/substrate/types.d.ts.map +1 -0
- package/dist/types/tron/helpers/trc20.abi.d.ts +156 -0
- package/dist/types/tron/helpers/trc20.abi.d.ts.map +1 -0
- package/dist/types/tron/helpers/trongrid.d.ts +8 -0
- package/dist/types/tron/helpers/trongrid.d.ts.map +1 -0
- package/dist/types/tron/index.d.ts +6 -0
- package/dist/types/tron/index.d.ts.map +1 -0
- package/dist/types/tron/toolbox.d.ts +26 -0
- package/dist/types/tron/toolbox.d.ts.map +1 -0
- package/dist/types/tron/types.d.ts +101 -0
- package/dist/types/tron/types.d.ts.map +1 -0
- package/dist/types/types.d.ts +18 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/utils.d.ts +4 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/dist/types/utxo/helpers/api.d.ts +133 -0
- package/dist/types/utxo/helpers/api.d.ts.map +1 -0
- package/dist/types/utxo/helpers/bchaddrjs.d.ts +10 -0
- package/dist/types/utxo/helpers/bchaddrjs.d.ts.map +1 -0
- package/dist/types/utxo/helpers/coinselect.d.ts +16 -0
- package/dist/types/utxo/helpers/coinselect.d.ts.map +1 -0
- package/{src/utxo/helpers/index.ts → dist/types/utxo/helpers/index.d.ts} +1 -0
- package/dist/types/utxo/helpers/index.d.ts.map +1 -0
- package/dist/types/utxo/helpers/txSize.d.ts +21 -0
- package/dist/types/utxo/helpers/txSize.d.ts.map +1 -0
- package/{src/utxo/index.ts → dist/types/utxo/index.d.ts} +1 -0
- package/dist/types/utxo/index.d.ts.map +1 -0
- package/dist/types/utxo/toolbox/bitcoinCash.d.ts +104 -0
- package/dist/types/utxo/toolbox/bitcoinCash.d.ts.map +1 -0
- package/dist/types/utxo/toolbox/index.d.ts +50 -0
- package/dist/types/utxo/toolbox/index.d.ts.map +1 -0
- package/dist/types/utxo/toolbox/utxo.d.ts +102 -0
- package/dist/types/utxo/toolbox/utxo.d.ts.map +1 -0
- package/dist/types/utxo/toolbox/zcash.d.ts +83 -0
- package/dist/types/utxo/toolbox/zcash.d.ts.map +1 -0
- package/dist/types/utxo/types.d.ts +46 -0
- package/dist/types/utxo/types.d.ts.map +1 -0
- package/package.json +15 -18
- package/dist/chunk-0h4xdrwz.js +0 -5
- package/dist/chunk-0h4xdrwz.js.map +0 -10
- package/dist/chunk-4yap1fvd.js +0 -4
- package/dist/chunk-4yap1fvd.js.map +0 -10
- package/dist/chunk-9bqegm61.js +0 -4
- package/dist/chunk-9bqegm61.js.map +0 -10
- package/dist/chunk-fazw0jvt.js +0 -4
- package/dist/chunk-fazw0jvt.js.map +0 -9
- package/dist/chunk-fjfxga2v.js +0 -4
- package/dist/chunk-fjfxga2v.js.map +0 -10
- package/dist/chunk-s47y8512.js +0 -5
- package/dist/chunk-s47y8512.js.map +0 -9
- package/dist/chunk-vtd17cje.js +0 -4
- package/dist/chunk-vtd17cje.js.map +0 -10
- package/dist/chunk-zcdeg6h9.js +0 -5
- package/dist/chunk-zcdeg6h9.js.map +0 -10
- package/src/cosmos/thorchainUtils/addressFormat.ts +0 -26
- package/src/cosmos/thorchainUtils/messages.ts +0 -262
- package/src/cosmos/thorchainUtils/registry.ts +0 -44
- package/src/cosmos/thorchainUtils/types/MsgCompiled.ts +0 -2800
- package/src/cosmos/thorchainUtils/types/client-types.ts +0 -73
- package/src/cosmos/thorchainUtils/types/index.ts +0 -1
- package/src/cosmos/toolbox/cosmos.ts +0 -375
- package/src/cosmos/toolbox/index.ts +0 -33
- package/src/cosmos/toolbox/thorchain.ts +0 -313
- package/src/cosmos/util.ts +0 -266
- package/src/evm/__tests__/address-validation.test.ts +0 -86
- package/src/evm/__tests__/ethereum.test.ts +0 -141
- package/src/evm/api.ts +0 -21
- package/src/evm/contracts/eth/multicall.ts +0 -165
- package/src/evm/contracts/op/gasOracle.ts +0 -151
- package/src/evm/helpers.ts +0 -194
- package/src/evm/toolbox/baseEVMToolbox.ts +0 -762
- package/src/evm/toolbox/evm.ts +0 -66
- package/src/evm/toolbox/index.ts +0 -52
- package/src/evm/toolbox/op.ts +0 -131
- package/src/evm/types.ts +0 -146
- package/src/index.ts +0 -263
- package/src/near/__tests__/core.test.ts +0 -80
- package/src/near/helpers/contractFactory.ts +0 -22
- package/src/near/helpers/core.ts +0 -91
- package/src/near/helpers/gasEstimation.ts +0 -110
- package/src/near/helpers/index.ts +0 -5
- package/src/near/helpers/nep141.ts +0 -110
- package/src/near/index.ts +0 -24
- package/src/near/toolbox.ts +0 -509
- package/src/near/types/contract.ts +0 -48
- package/src/near/types/nep141.ts +0 -66
- package/src/near/types.ts +0 -57
- package/src/radix/index.ts +0 -156
- package/src/ripple/index.ts +0 -192
- package/src/solana/index.ts +0 -55
- package/src/solana/toolbox.ts +0 -433
- package/src/substrate/balance.ts +0 -92
- package/src/substrate/substrate.ts +0 -320
- package/src/substrate/types.ts +0 -120
- package/src/tron/__tests__/toolbox.test.ts +0 -147
- package/src/tron/helpers/trc20.abi.ts +0 -107
- package/src/tron/helpers/trongrid.ts +0 -54
- package/src/tron/index.ts +0 -17
- package/src/tron/toolbox.ts +0 -650
- package/src/tron/types.ts +0 -120
- package/src/utils.ts +0 -27
- package/src/utxo/__tests__/zcash-integration.test.ts +0 -114
- package/src/utxo/helpers/api.ts +0 -560
- package/src/utxo/helpers/bchaddrjs.ts +0 -183
- package/src/utxo/helpers/coinselect.ts +0 -98
- package/src/utxo/helpers/txSize.ts +0 -104
- package/src/utxo/toolbox/bitcoinCash.ts +0 -320
- package/src/utxo/toolbox/index.ts +0 -90
- package/src/utxo/toolbox/utxo.ts +0 -525
- package/src/utxo/toolbox/zcash.ts +0 -208
- package/src/utxo/types.ts +0 -57
package/dist/src/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import{d as t,e as a}from"../chunk-s47y8512.js";import{AssetValue as d,Chain as o,FeeOption as f,SwapKitError as g}from"@swapkit/helpers";async function S(){let{match:s}=await import("ts-pattern"),{cosmosValidateAddress:r}=await import("@swapkit/toolboxes/cosmos"),{evmValidateAddress:l}=await import("@swapkit/toolboxes/evm"),{substrateValidateAddress:e}=await import("@swapkit/toolboxes/substrate"),{getUTXOAddressValidator:i}=await import("@swapkit/toolboxes/utxo"),{getSolanaAddressValidator:T}=await import("@swapkit/toolboxes/solana"),{getValidateNearAddress:x}=await import("@swapkit/toolboxes/near"),{rippleValidateAddress:c}=await import("@swapkit/toolboxes/ripple"),{radixValidateAddress:b}=await import("@swapkit/toolboxes/radix"),{getTronAddressValidator:y}=await import("@swapkit/toolboxes/tron"),h=await T(),w=await i(),C=await y(),u=await x();return function P({address:n,chain:p}){return s(p).with(o.Arbitrum,o.Aurora,o.Avalanche,o.Base,o.Berachain,o.BinanceSmartChain,o.Ethereum,o.Gnosis,o.Optimism,o.Polygon,()=>l({address:n})).with(o.Litecoin,o.Dash,o.Dogecoin,o.BitcoinCash,o.Bitcoin,()=>w({address:n,chain:p})).with(o.Cosmos,o.Kujira,o.Maya,o.THORChain,()=>r({address:n,chain:p})).with(o.Chainflip,o.Polkadot,()=>e({address:n,chain:p})).with(o.Radix,()=>b(n)).with(o.Near,()=>u(n)).with(o.Ripple,()=>c(n)).with(o.Solana,()=>h(n)).with(o.Tron,()=>C(n)).otherwise(()=>!1)}}function k(s){return async function r(l){let{match:e}=await import("ts-pattern");return e(s).returnType().with(o.Arbitrum,o.Aurora,o.Avalanche,o.Base,o.Berachain,o.BinanceSmartChain,o.Ethereum,o.Gnosis,o.Optimism,o.Polygon,async(i)=>{let T=await m(i),x=await T.createTransaction(l);return T.estimateTransactionFee({...x,feeOption:l.feeOptionKey||f.Fast,chain:i})}).with(o.Bitcoin,o.BitcoinCash,o.Dogecoin,o.Dash,o.Litecoin,o.Polkadot,o.Solana,o.Ripple,o.Tron,o.Near,async(i)=>{return(await m(i)).estimateTransactionFee(l)}).with(o.THORChain,o.Maya,o.Kujira,o.Cosmos,async()=>{let{estimateTransactionFee:i}=await import("@swapkit/toolboxes/cosmos");return i(l)}).otherwise(async()=>d.from({chain:s}))}}async function m(s,r){let{match:l}=await import("ts-pattern");return l(s).returnType().with(o.Arbitrum,o.Aurora,o.Avalanche,o.Base,o.Berachain,o.BinanceSmartChain,o.Ethereum,o.Gnosis,o.Optimism,o.Polygon,async()=>{let{getEvmToolbox:e}=await import("@swapkit/toolboxes/evm");return await e(s,r)}).with(o.Litecoin,o.Dash,o.Dogecoin,o.BitcoinCash,o.Bitcoin,o.Zcash,async()=>{let{getUtxoToolbox:e}=await import("@swapkit/toolboxes/utxo");return await e(s,r)}).with(o.Cosmos,o.Kujira,o.Maya,o.THORChain,async()=>{let{getCosmosToolbox:e}=await import("@swapkit/toolboxes/cosmos");return await e(s,r)}).with(o.Chainflip,o.Polkadot,async()=>{let{getSubstrateToolbox:e}=await import("@swapkit/toolboxes/substrate");return await e(s,r)}).with(o.Radix,async()=>{let{RadixToolbox:e}=await import("@swapkit/toolboxes/radix");return await e(r)}).with(o.Ripple,async()=>{let{getRippleToolbox:e}=await import("@swapkit/toolboxes/ripple");return await e(r)}).with(o.Solana,async()=>{let{getSolanaToolbox:e}=await import("@swapkit/toolboxes/solana");return await e(r)}).with(o.Tron,async()=>{let{createTronToolbox:e}=await import("@swapkit/toolboxes/tron");return await e(r)}).with(o.Near,async()=>{let{getNearToolbox:e}=await import("@swapkit/toolboxes/near");return await e(r)}).otherwise(()=>{throw new g("toolbox_not_supported",{chain:s})})}export{m as getToolbox,k as getFeeEstimator,S as getAddressValidator};
|
|
1
|
+
var EX=Object.create;var{getPrototypeOf:vX,defineProperty:C5,getOwnPropertyNames:PX}=Object;var lX=Object.prototype.hasOwnProperty;var _=(T,f,x)=>{x=T!=null?EX(vX(T)):{};let y=f||!T||!T.__esModule?C5(x,"default",{value:T,enumerable:!0}):x;for(let X of PX(T))if(!lX.call(y,X))C5(y,X,{get:()=>T[X],enumerable:!0});return y};var Zy=(T,f)=>{for(var x in f)C5(T,x,{get:f[x],enumerable:!0,configurable:!0,set:(y)=>f[x]=()=>y})};var E=(T,f)=>()=>(T&&(f=T(T=0)),f);var R=((T)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(T,{get:(f,x)=>(typeof require!=="undefined"?require:f)[x]}):T)(function(T){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+T+'" is not supported')});import{base64 as G1,bech32 as jT}from"@scure/base";import{SwapKitError as VX}from"@swapkit/helpers";import{fromByteArray as $X,toByteArray as FX}from"base64-js";function QT(T){return G1.encode(Uint8Array.from(jT.fromWords(jT.decode(T).words)))}function qT(T,f="thor"){return jT.encode(f,jT.toWords(G1.decode(T)))}function KX(T){return $X(T)}function AX(T){if(!T.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new VX("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return FX(T)}var O5=()=>{};import{AssetValue as w5,BaseDecimal as Oy,Chain as F,ChainId as k5,SKConfig as W1,SwapKitError as H1}from"@swapkit/helpers";function Wy(T){switch(T){case F.Maya:return{amount:[],gas:"10000000000"};case F.THORChain:return{amount:[],gas:"500000000"};case F.Kujira:return _1;default:return Y1}}async function Hy(T){let f=await import("@cosmjs/stargate"),x=f.StargateClient??f.default?.StargateClient,y=typeof window!=="undefined"?{}:{referrer:"https://sdk.swapkit.dev",referer:"https://sdk.swapkit.dev"};return x.connect({url:T,headers:y})}async function MT(T,f,x={}){let y=await import("@cosmjs/stargate"),X=y.SigningStargateClient??y.default?.SigningStargateClient,L=y.GasPrice??y.default?.GasPrice,Z=typeof x==="string"?x:"0.0003uatom",J=typeof x==="string"?{}:x;return X.connectWithSigner(T,f,{gasPrice:L.fromString(Z),...J})}async function v5(T,f){let x=await import("@cosmjs/stargate");return(x.SigningStargateClient??x.default?.SigningStargateClient).offline(T,f)}var E5="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",U1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",Y1,_1,ky=(T,f=!1)=>{if(f)return T.toLowerCase();switch(T){case"uUSK":case"USK":return E5;case"uYUM":case"YUM":return U1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";default:return T}},zT=({symbol:T,chain:f})=>{if(f===F.Maya)return(T.toUpperCase()!=="CACAO"?T:`${F.Maya}.${T}`).toUpperCase();if(f===F.THORChain)return(["RUNE","TCY","RUJI"].includes(T.toUpperCase())?`${F.THORChain}.${T}`:T).toUpperCase();return ky(T,!1)},R1=(T)=>{let{isStagenet:f}=W1.get("envs"),x=W1.get("rpcUrls");switch(T){case k5.Kujira:return x.KUJI;case k5.THORChain:case"thorchain-mainnet-v1":return f?x.THOR_STAGENET:x.THOR;case k5.Maya:return f?x.MAYA_STAGENET:x.MAYA;default:return x.GAIA}},SX=(T)=>{switch(T){case F.Maya:case F.THORChain:return"/types.MsgSend";case F.Cosmos:case F.Kujira:return"/cosmos.bank.v1beta1.MsgSend";default:throw new H1("toolbox_cosmos_not_supported",{chain:T})}},P5=async({sender:T,recipient:f,assetValue:x,memo:y="",feeRate:X,sequence:L,accountNumber:Z})=>{let{chain:J,chainId:Q}=x,q=R1(Q),B=await(await Hy(q)).getAccount(T);if(!B)throw new H1("toolbox_cosmos_account_not_found",{sender:T});let M=w5.from({chain:J}),W=ky(M.symbol),G=Wy(J),Y=W&&X?{amount:[{denom:W,amount:X.toString()}],gas:G.gas}:G,I={fromAddress:T,toAddress:f,amount:[{amount:x.getBaseValue("string"),denom:ky(x.symbol)}]};return{accountNumber:Z??B.accountNumber,chainId:Q,fee:Y,memo:y,sequence:L??B.sequence,msgs:[{typeUrl:SX(J),value:I}]}},uX,l5=(T,f)=>{let x=uX[T.toLowerCase()];if(!x)return w5.from({asset:T,value:f,fromBaseDecimal:8});let{chain:y,asset:X,decimals:L}=x,Z=y?{chain:y}:{asset:X};return w5.from({...Z,value:f,fromBaseDecimal:L})};var BT=E(()=>{Y1={amount:[{denom:"uatom",amount:"500"}],gas:"200000"},_1={amount:[{denom:"ukuji",amount:"1000"}],gas:"200000"};uX={rune:{chain:F.THORChain,decimals:Oy[F.THORChain]},tcy:{asset:"THOR.TCY",decimals:Oy[F.THORChain]},"x/kuji":{asset:"THOR.KUJI",decimals:Oy[F.THORChain]},uatom:{chain:F.Cosmos,decimals:Oy[F.Cosmos]},atom:{chain:F.Cosmos,decimals:Oy[F.Cosmos]},cacao:{chain:F.Maya,decimals:10},maya:{asset:`${F.Maya}.${F.Maya}`,decimals:4},ukuji:{chain:F.Kujira,decimals:Oy[F.Kujira]},kuji:{chain:F.Kujira,decimals:Oy[F.Kujira]},[E5.toLowerCase()]:{asset:`${F.Kujira}.USK`,decimals:Oy[F.Kujira]}}});var D1={};Zy(D1,{$root:()=>D});import g from"protobufjs/minimal.js";var P,yy,C,D;var N1=E(()=>{P=g.Reader,yy=g.Writer,C=g.util,D=g.roots.default||(g.roots.default={});D.common=(()=>{let T={};return T.Asset=(()=>{function f(x){if(x){for(let y=Object.keys(x),X=0;X<y.length;++X)if(x[y[X]]!=null)this[y[X]]=x[y[X]]}}return f.prototype.chain="",f.prototype.symbol="",f.prototype.ticker="",f.prototype.synth=!1,f.create=function x(y){return new f(y)},f.encode=function x(y,X){if(!X)X=yy.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))X.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))X.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))X.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))X.uint32(32).bool(y.synth);return X},f.encodeDelimited=function x(y,X){return this.encode(y,X).ldelim()},f.decode=function x(y,X){if(!(y instanceof P))y=P.create(y);let L=X===void 0?y.len:y.pos+X,Z=new D.common.Asset;while(y.pos<L){let J=y.uint32();switch(J>>>3){case 1:Z.chain=y.string();break;case 2:Z.symbol=y.string();break;case 3:Z.ticker=y.string();break;case 4:Z.synth=y.bool();break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function x(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function x(y){if(typeof y!=="object"||y===null)return"object expected";if(y.chain!=null&&y.hasOwnProperty("chain")){if(!C.isString(y.chain))return"chain: string expected"}if(y.symbol!=null&&y.hasOwnProperty("symbol")){if(!C.isString(y.symbol))return"symbol: string expected"}if(y.ticker!=null&&y.hasOwnProperty("ticker")){if(!C.isString(y.ticker))return"ticker: string expected"}if(y.synth!=null&&y.hasOwnProperty("synth")){if(typeof y.synth!=="boolean")return"synth: boolean expected"}return null},f.fromObject=function x(y){if(y instanceof D.common.Asset)return y;let X=new D.common.Asset;if(y.chain!=null)X.chain=String(y.chain);if(y.symbol!=null)X.symbol=String(y.symbol);if(y.ticker!=null)X.ticker=String(y.ticker);if(y.synth!=null)X.synth=Boolean(y.synth);return X},f.toObject=function x(y,X){if(!X)X={};let L={};if(X.defaults)L.chain="",L.symbol="",L.ticker="",L.synth=!1;if(y.chain!=null&&y.hasOwnProperty("chain"))L.chain=y.chain;if(y.symbol!=null&&y.hasOwnProperty("symbol"))L.symbol=y.symbol;if(y.ticker!=null&&y.hasOwnProperty("ticker"))L.ticker=y.ticker;if(y.synth!=null&&y.hasOwnProperty("synth"))L.synth=y.synth;return L},f.prototype.toJSON=function x(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.Coin=(()=>{function f(x){if(x){for(let y=Object.keys(x),X=0;X<y.length;++X)if(x[y[X]]!=null)this[y[X]]=x[y[X]]}}return f.prototype.asset=null,f.prototype.amount="",f.prototype.decimals=C.Long?C.Long.fromBits(0,0,!1):0,f.create=function x(y){return new f(y)},f.encode=function x(y,X){if(!X)X=yy.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))D.common.Asset.encode(y.asset,X.uint32(10).fork()).ldelim();if(y.amount!=null&&Object.hasOwnProperty.call(y,"amount"))X.uint32(18).string(y.amount);if(y.decimals!=null&&Object.hasOwnProperty.call(y,"decimals"))X.uint32(24).int64(y.decimals);return X},f.encodeDelimited=function x(y,X){return this.encode(y,X).ldelim()},f.decode=function x(y,X){if(!(y instanceof P))y=P.create(y);let L=X===void 0?y.len:y.pos+X,Z=new D.common.Coin;while(y.pos<L){let J=y.uint32();switch(J>>>3){case 1:Z.asset=D.common.Asset.decode(y,y.uint32());break;case 2:Z.amount=y.string();break;case 3:Z.decimals=y.int64();break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function x(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function x(y){if(typeof y!=="object"||y===null)return"object expected";if(y.asset!=null&&y.hasOwnProperty("asset")){let X=D.common.Asset.verify(y.asset);if(X)return"asset."+X}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!C.isString(y.amount))return"amount: string expected"}if(y.decimals!=null&&y.hasOwnProperty("decimals")){if(!C.isInteger(y.decimals)&&!(y.decimals&&C.isInteger(y.decimals.low)&&C.isInteger(y.decimals.high)))return"decimals: integer|Long expected"}return null},f.fromObject=function x(y){if(y instanceof D.common.Coin)return y;let X=new D.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");X.asset=D.common.Asset.fromObject(y.asset)}if(y.amount!=null)X.amount=String(y.amount);if(y.decimals!=null){if(C.Long)(X.decimals=C.Long.fromValue(y.decimals)).unsigned=!1;else if(typeof y.decimals==="string")X.decimals=Number.parseInt(y.decimals,10);else if(typeof y.decimals==="number")X.decimals=y.decimals;else if(typeof y.decimals==="object")X.decimals=new C.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber()}return X},f.toObject=function x(y,X){if(!X)X={};let L={};if(X.defaults)if(L.asset=null,L.amount="",C.Long){let Z=new C.Long(0,0,!1);L.decimals=X.longs===String?Z.toString():X.longs===Number?Z.toNumber():Z}else L.decimals=X.longs===String?"0":0;if(y.asset!=null&&y.hasOwnProperty("asset"))L.asset=D.common.Asset.toObject(y.asset,X);if(y.amount!=null&&y.hasOwnProperty("amount"))L.amount=y.amount;if(y.decimals!=null&&y.hasOwnProperty("decimals"))if(typeof y.decimals==="number")L.decimals=X.longs===String?String(y.decimals):y.decimals;else L.decimals=X.longs===String?C.Long.prototype.toString.call(y.decimals):X.longs===Number?new C.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber():y.decimals;return L},f.prototype.toJSON=function x(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.PubKeySet=(()=>{function f(x){if(x){for(let y=Object.keys(x),X=0;X<y.length;++X)if(x[y[X]]!=null)this[y[X]]=x[y[X]]}}return f.prototype.secp256k1="",f.prototype.ed25519="",f.create=function x(y){return new f(y)},f.encode=function x(y,X){if(!X)X=yy.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))X.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))X.uint32(18).string(y.ed25519);return X},f.encodeDelimited=function x(y,X){return this.encode(y,X).ldelim()},f.decode=function x(y,X){if(!(y instanceof P))y=P.create(y);let L=X===void 0?y.len:y.pos+X,Z=new D.common.PubKeySet;while(y.pos<L){let J=y.uint32();switch(J>>>3){case 1:Z.secp256k1=y.string();break;case 2:Z.ed25519=y.string();break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function x(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function x(y){if(typeof y!=="object"||y===null)return"object expected";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1")){if(!C.isString(y.secp256k1))return"secp256k1: string expected"}if(y.ed25519!=null&&y.hasOwnProperty("ed25519")){if(!C.isString(y.ed25519))return"ed25519: string expected"}return null},f.fromObject=function x(y){if(y instanceof D.common.PubKeySet)return y;let X=new D.common.PubKeySet;if(y.secp256k1!=null)X.secp256k1=String(y.secp256k1);if(y.ed25519!=null)X.ed25519=String(y.ed25519);return X},f.toObject=function x(y,X){if(!X)X={};let L={};if(X.defaults)L.secp256k1="",L.ed25519="";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1"))L.secp256k1=y.secp256k1;if(y.ed25519!=null&&y.hasOwnProperty("ed25519"))L.ed25519=y.ed25519;return L},f.prototype.toJSON=function x(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.Tx=(()=>{function f(x){if(this.coins=[],this.gas=[],x){for(let y=Object.keys(x),X=0;X<y.length;++X)if(x[y[X]]!=null)this[y[X]]=x[y[X]]}}return f.prototype.id="",f.prototype.chain="",f.prototype.fromAddress="",f.prototype.toAddress="",f.prototype.coins=C.emptyArray,f.prototype.gas=C.emptyArray,f.prototype.memo="",f.create=function x(y){return new f(y)},f.encode=function x(y,X){if(!X)X=yy.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))X.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))X.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))X.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))X.uint32(34).string(y.toAddress);if(y.coins?.length)for(let L=0;L<y.coins.length;++L)D.common.Coin.encode(y.coins[L],X.uint32(42).fork()).ldelim();if(y.gas?.length)for(let L=0;L<y.gas.length;++L)D.common.Coin.encode(y.gas[L],X.uint32(50).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))X.uint32(58).string(y.memo);return X},f.encodeDelimited=function x(y,X){return this.encode(y,X).ldelim()},f.decode=function x(y,X){if(!(y instanceof P))y=P.create(y);let L=X===void 0?y.len:y.pos+X,Z=new D.common.Tx;while(y.pos<L){let J=y.uint32();switch(J>>>3){case 1:Z.id=y.string();break;case 2:Z.chain=y.string();break;case 3:Z.fromAddress=y.string();break;case 4:Z.toAddress=y.string();break;case 5:if(!Z.coins?.length)Z.coins=[];Z.coins.push(D.common.Coin.decode(y,y.uint32()));break;case 6:if(!Z.gas?.length)Z.gas=[];Z.gas.push(D.common.Coin.decode(y,y.uint32()));break;case 7:Z.memo=y.string();break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function x(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function x(y){if(typeof y!=="object"||y===null)return"object expected";if(y.id!=null&&y.hasOwnProperty("id")){if(!C.isString(y.id))return"id: string expected"}if(y.chain!=null&&y.hasOwnProperty("chain")){if(!C.isString(y.chain))return"chain: string expected"}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!C.isString(y.fromAddress))return"fromAddress: string expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!C.isString(y.toAddress))return"toAddress: string expected"}if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let X=0;X<y.coins.length;++X){let L=D.common.Coin.verify(y.coins[X]);if(L)return"coins."+L}}if(y.gas!=null&&y.hasOwnProperty("gas")){if(!Array.isArray(y.gas))return"gas: array expected";for(let X=0;X<y.gas.length;++X){let L=D.common.Coin.verify(y.gas[X]);if(L)return"gas."+L}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!C.isString(y.memo))return"memo: string expected"}return null},f.fromObject=function x(y){if(y instanceof D.common.Tx)return y;let X=new D.common.Tx;if(y.id!=null)X.id=String(y.id);if(y.chain!=null)X.chain=String(y.chain);if(y.fromAddress!=null)X.fromAddress=String(y.fromAddress);if(y.toAddress!=null)X.toAddress=String(y.toAddress);if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Tx.coins: array expected");X.coins=[];for(let L=0;L<y.coins.length;++L){if(typeof y.coins[L]!=="object")throw TypeError(".common.Tx.coins: object expected");X.coins[L]=D.common.Coin.fromObject(y.coins[L])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");X.gas=[];for(let L=0;L<y.gas.length;++L){if(typeof y.gas[L]!=="object")throw TypeError(".common.Tx.gas: object expected");X.gas[L]=D.common.Coin.fromObject(y.gas[L])}}if(y.memo!=null)X.memo=String(y.memo);return X},f.toObject=function x(y,X){if(!X)X={};let L={};if(X.arrays||X.defaults)L.coins=[],L.gas=[];if(X.defaults)L.id="",L.chain="",L.fromAddress="",L.toAddress="",L.memo="";if(y.id!=null&&y.hasOwnProperty("id"))L.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))L.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))L.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))L.toAddress=y.toAddress;if(y.coins?.length){L.coins=[];for(let Z=0;Z<y.coins.length;++Z)L.coins[Z]=D.common.Coin.toObject(y.coins[Z],X)}if(y.gas?.length){L.gas=[];for(let Z=0;Z<y.gas.length;++Z)L.gas[Z]=D.common.Coin.toObject(y.gas[Z],X)}if(y.memo!=null&&y.hasOwnProperty("memo"))L.memo=y.memo;return L},f.prototype.toJSON=function x(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.Fee=(()=>{function f(x){if(this.coins=[],x){for(let y=Object.keys(x),X=0;X<y.length;++X)if(x[y[X]]!=null)this[y[X]]=x[y[X]]}}return f.prototype.coins=C.emptyArray,f.prototype.poolDeduct="",f.create=function x(y){return new f(y)},f.encode=function x(y,X){if(!X)X=yy.create();if(y.coins?.length)for(let L=0;L<y.coins.length;++L)D.common.Coin.encode(y.coins[L],X.uint32(10).fork()).ldelim();if(y.poolDeduct!=null&&Object.hasOwnProperty.call(y,"poolDeduct"))X.uint32(18).string(y.poolDeduct);return X},f.encodeDelimited=function x(y,X){return this.encode(y,X).ldelim()},f.decode=function x(y,X){if(!(y instanceof P))y=P.create(y);let L=X===void 0?y.len:y.pos+X,Z=new D.common.Fee;while(y.pos<L){let J=y.uint32();switch(J>>>3){case 1:if(!Z.coins?.length)Z.coins=[];Z.coins.push(D.common.Coin.decode(y,y.uint32()));break;case 2:Z.poolDeduct=y.string();break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function x(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function x(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let X=0;X<y.coins.length;++X){let L=D.common.Coin.verify(y.coins[X]);if(L)return"coins."+L}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!C.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},f.fromObject=function x(y){if(y instanceof D.common.Fee)return y;let X=new D.common.Fee;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Fee.coins: array expected");X.coins=[];for(let L=0;L<y.coins.length;++L){if(typeof y.coins[L]!=="object")throw TypeError(".common.Fee.coins: object expected");X.coins[L]=D.common.Coin.fromObject(y.coins[L])}}if(y.poolDeduct!=null)X.poolDeduct=String(y.poolDeduct);return X},f.toObject=function x(y,X){if(!X)X={};let L={};if(X.arrays||X.defaults)L.coins=[];if(X.defaults)L.poolDeduct="";if(y.coins?.length){L.coins=[];for(let Z=0;Z<y.coins.length;++Z)L.coins[Z]=D.common.Coin.toObject(y.coins[Z],X)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))L.poolDeduct=y.poolDeduct;return L},f.prototype.toJSON=function x(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.ProtoUint=(()=>{function f(x){if(x){for(let y=Object.keys(x),X=0;X<y.length;++X)if(x[y[X]]!=null)this[y[X]]=x[y[X]]}}return f.prototype.value="",f.create=function x(y){return new f(y)},f.encode=function x(y,X){if(!X)X=yy.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))X.uint32(10).string(y.value);return X},f.encodeDelimited=function x(y,X){return this.encode(y,X).ldelim()},f.decode=function x(y,X){if(!(y instanceof P))y=P.create(y);let L=X===void 0?y.len:y.pos+X,Z=new D.common.ProtoUint;while(y.pos<L){let J=y.uint32();switch(J>>>3){case 1:Z.value=y.string();break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function x(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function x(y){if(typeof y!=="object"||y===null)return"object expected";if(y.value!=null&&y.hasOwnProperty("value")){if(!C.isString(y.value))return"value: string expected"}return null},f.fromObject=function x(y){if(y instanceof D.common.ProtoUint)return y;let X=new D.common.ProtoUint;if(y.value!=null)X.value=String(y.value);return X},f.toObject=function x(y,X){if(!X)X={};let L={};if(X.defaults)L.value="";if(y.value!=null&&y.hasOwnProperty("value"))L.value=y.value;return L},f.prototype.toJSON=function x(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T})();D.types=(()=>{let T={};return T.MsgDeposit=(()=>{function f(x){if(this.coins=[],x){for(let y=Object.keys(x),X=0;X<y.length;++X)if(x[y[X]]!=null)this[y[X]]=x[y[X]]}}return f.prototype.coins=C.emptyArray,f.prototype.memo="",f.prototype.signer=C.newBuffer([]),f.create=function x(y){return new f(y)},f.encode=function x(y,X){if(!X)X=yy.create();if(y.coins?.length)for(let L=0;L<y.coins.length;++L)D.common.Coin.encode(y.coins[L],X.uint32(10).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))X.uint32(18).string(y.memo);if(y.signer!=null&&Object.hasOwnProperty.call(y,"signer"))X.uint32(26).bytes(y.signer);return X},f.encodeDelimited=function x(y,X){return this.encode(y,X).ldelim()},f.decode=function x(y,X){if(!(y instanceof P))y=P.create(y);let L=X===void 0?y.len:y.pos+X,Z=new D.types.MsgDeposit;while(y.pos<L){let J=y.uint32();switch(J>>>3){case 1:if(!Z.coins?.length)Z.coins=[];Z.coins.push(D.common.Coin.decode(y,y.uint32()));break;case 2:Z.memo=y.string();break;case 3:Z.signer=y.bytes();break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function x(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function x(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let X=0;X<y.coins.length;++X){let L=D.common.Coin.verify(y.coins[X]);if(L)return"coins."+L}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!C.isString(y.memo))return"memo: string expected"}if(y.signer!=null&&y.hasOwnProperty("signer")){if(!(y.signer&&typeof y.signer.length==="number"||C.isString(y.signer)))return"signer: buffer expected"}return null},f.fromObject=function x(y){if(y instanceof D.types.MsgDeposit)return y;let X=new D.types.MsgDeposit;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".types.MsgDeposit.coins: array expected");X.coins=[];for(let L=0;L<y.coins.length;++L){if(typeof y.coins[L]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");X.coins[L]=D.common.Coin.fromObject(y.coins[L])}}if(y.memo!=null)X.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")C.base64.decode(y.signer,X.signer=C.newBuffer(C.base64.length(y.signer)),0);else if(y.signer.length)X.signer=y.signer}return X},f.toObject=function x(y,X){if(!X)X={};let L={};if(X.arrays||X.defaults)L.coins=[];if(X.defaults){if(L.memo="",X.bytes===String)L.signer="";else if(L.signer=[],X.bytes!==Array)L.signer=C.newBuffer(L.signer)}if(y.coins?.length){L.coins=[];for(let Z=0;Z<y.coins.length;++Z)L.coins[Z]=D.common.Coin.toObject(y.coins[Z],X)}if(y.memo!=null&&y.hasOwnProperty("memo"))L.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))L.signer=X.bytes===String?C.base64.encode(y.signer,0,y.signer.length):X.bytes===Array?Array.prototype.slice.call(y.signer):y.signer;return L},f.prototype.toJSON=function x(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.MsgSend=(()=>{function f(x){if(this.amount=[],x){for(let y=Object.keys(x),X=0;X<y.length;++X)if(x[y[X]]!=null)this[y[X]]=x[y[X]]}}return f.prototype.fromAddress=C.newBuffer([]),f.prototype.toAddress=C.newBuffer([]),f.prototype.amount=C.emptyArray,f.create=function x(y){return new f(y)},f.encode=function x(y,X){if(!X)X=yy.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))X.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))X.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let L=0;L<y.amount.length;++L)D.cosmos.base.v1beta1.Coin.encode(y.amount[L],X.uint32(26).fork()).ldelim();return X},f.encodeDelimited=function x(y,X){return this.encode(y,X).ldelim()},f.decode=function x(y,X){if(!(y instanceof P))y=P.create(y);let L=X===void 0?y.len:y.pos+X,Z=new D.types.MsgSend;while(y.pos<L){let J=y.uint32();switch(J>>>3){case 1:Z.fromAddress=y.bytes();break;case 2:Z.toAddress=y.bytes();break;case 3:if(!Z.amount?.length)Z.amount=[];Z.amount.push(D.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function x(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function x(y){if(typeof y!=="object"||y===null)return"object expected";if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!(y.fromAddress&&typeof y.fromAddress.length==="number"||C.isString(y.fromAddress)))return"fromAddress: buffer expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!(y.toAddress&&typeof y.toAddress.length==="number"||C.isString(y.toAddress)))return"toAddress: buffer expected"}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!Array.isArray(y.amount))return"amount: array expected";for(let X=0;X<y.amount.length;++X){let L=D.cosmos.base.v1beta1.Coin.verify(y.amount[X]);if(L)return"amount."+L}}return null},f.fromObject=function x(y){if(y instanceof D.types.MsgSend)return y;let X=new D.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")C.base64.decode(y.fromAddress,X.fromAddress=C.newBuffer(C.base64.length(y.fromAddress)),0);else if(y.fromAddress.length)X.fromAddress=y.fromAddress}if(y.toAddress!=null){if(typeof y.toAddress==="string")C.base64.decode(y.toAddress,X.toAddress=C.newBuffer(C.base64.length(y.toAddress)),0);else if(y.toAddress.length)X.toAddress=y.toAddress}if(y.amount){if(!Array.isArray(y.amount))throw TypeError(".types.MsgSend.amount: array expected");X.amount=[];for(let L=0;L<y.amount.length;++L){if(typeof y.amount[L]!=="object")throw TypeError(".types.MsgSend.amount: object expected");X.amount[L]=D.cosmos.base.v1beta1.Coin.fromObject(y.amount[L])}}return X},f.toObject=function x(y,X){if(!X)X={};let L={};if(X.arrays||X.defaults)L.amount=[];if(X.defaults){if(X.bytes===String)L.fromAddress="";else if(L.fromAddress=[],X.bytes!==Array)L.fromAddress=C.newBuffer(L.fromAddress);if(X.bytes===String)L.toAddress="";else if(L.toAddress=[],X.bytes!==Array)L.toAddress=C.newBuffer(L.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))L.fromAddress=X.bytes===String?C.base64.encode(y.fromAddress,0,y.fromAddress.length):X.bytes===Array?Array.prototype.slice.call(y.fromAddress):y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))L.toAddress=X.bytes===String?C.base64.encode(y.toAddress,0,y.toAddress.length):X.bytes===Array?Array.prototype.slice.call(y.toAddress):y.toAddress;if(y.amount?.length){L.amount=[];for(let Z=0;Z<y.amount.length;++Z)L.amount[Z]=D.cosmos.base.v1beta1.Coin.toObject(y.amount[Z],X)}return L},f.prototype.toJSON=function x(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T})();D.cosmos=(()=>{let T={};return T.base=(()=>{let f={};return f.v1beta1=(()=>{let x={};return x.Coin=(()=>{function y(X){if(X){for(let L=Object.keys(X),Z=0;Z<L.length;++Z)if(X[L[Z]]!=null)this[L[Z]]=X[L[Z]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function X(L){return new y(L)},y.encode=function X(L,Z){if(!Z)Z=yy.create();if(L.denom!=null&&Object.hasOwnProperty.call(L,"denom"))Z.uint32(10).string(L.denom);if(L.amount!=null&&Object.hasOwnProperty.call(L,"amount"))Z.uint32(18).string(L.amount);return Z},y.encodeDelimited=function X(L,Z){return this.encode(L,Z).ldelim()},y.decode=function X(L,Z){if(!(L instanceof P))L=P.create(L);let J=Z===void 0?L.len:L.pos+Z,Q=new D.cosmos.base.v1beta1.Coin;while(L.pos<J){let q=L.uint32();switch(q>>>3){case 1:Q.denom=L.string();break;case 2:Q.amount=L.string();break;default:L.skipType(q&7);break}}return Q},y.decodeDelimited=function X(L){if(!(L instanceof P))L=new P(L);return this.decode(L,L.uint32())},y.verify=function X(L){if(typeof L!=="object"||L===null)return"object expected";if(L.denom!=null&&L.hasOwnProperty("denom")){if(!C.isString(L.denom))return"denom: string expected"}if(L.amount!=null&&L.hasOwnProperty("amount")){if(!C.isString(L.amount))return"amount: string expected"}return null},y.fromObject=function X(L){if(L instanceof D.cosmos.base.v1beta1.Coin)return L;let Z=new D.cosmos.base.v1beta1.Coin;if(L.denom!=null)Z.denom=String(L.denom);if(L.amount!=null)Z.amount=String(L.amount);return Z},y.toObject=function X(L,Z){if(!Z)Z={};let J={};if(Z.defaults)J.denom="",J.amount="";if(L.denom!=null&&L.hasOwnProperty("denom"))J.denom=L.denom;if(L.amount!=null&&L.hasOwnProperty("amount"))J.amount=L.amount;return J},y.prototype.toJSON=function X(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),x.DecCoin=(()=>{function y(X){if(X){for(let L=Object.keys(X),Z=0;Z<L.length;++Z)if(X[L[Z]]!=null)this[L[Z]]=X[L[Z]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function X(L){return new y(L)},y.encode=function X(L,Z){if(!Z)Z=yy.create();if(L.denom!=null&&Object.hasOwnProperty.call(L,"denom"))Z.uint32(10).string(L.denom);if(L.amount!=null&&Object.hasOwnProperty.call(L,"amount"))Z.uint32(18).string(L.amount);return Z},y.encodeDelimited=function X(L,Z){return this.encode(L,Z).ldelim()},y.decode=function X(L,Z){if(!(L instanceof P))L=P.create(L);let J=Z===void 0?L.len:L.pos+Z,Q=new D.cosmos.base.v1beta1.DecCoin;while(L.pos<J){let q=L.uint32();switch(q>>>3){case 1:Q.denom=L.string();break;case 2:Q.amount=L.string();break;default:L.skipType(q&7);break}}return Q},y.decodeDelimited=function X(L){if(!(L instanceof P))L=new P(L);return this.decode(L,L.uint32())},y.verify=function X(L){if(typeof L!=="object"||L===null)return"object expected";if(L.denom!=null&&L.hasOwnProperty("denom")){if(!C.isString(L.denom))return"denom: string expected"}if(L.amount!=null&&L.hasOwnProperty("amount")){if(!C.isString(L.amount))return"amount: string expected"}return null},y.fromObject=function X(L){if(L instanceof D.cosmos.base.v1beta1.DecCoin)return L;let Z=new D.cosmos.base.v1beta1.DecCoin;if(L.denom!=null)Z.denom=String(L.denom);if(L.amount!=null)Z.amount=String(L.amount);return Z},y.toObject=function X(L,Z){if(!Z)Z={};let J={};if(Z.defaults)J.denom="",J.amount="";if(L.denom!=null&&L.hasOwnProperty("denom"))J.denom=L.denom;if(L.amount!=null&&L.hasOwnProperty("amount"))J.amount=L.amount;return J},y.prototype.toJSON=function X(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),x.IntProto=(()=>{function y(X){if(X){for(let L=Object.keys(X),Z=0;Z<L.length;++Z)if(X[L[Z]]!=null)this[L[Z]]=X[L[Z]]}}return y.prototype.int="",y.create=function X(L){return new y(L)},y.encode=function X(L,Z){if(!Z)Z=yy.create();if(L.int!=null&&Object.hasOwnProperty.call(L,"int"))Z.uint32(10).string(L.int);return Z},y.encodeDelimited=function X(L,Z){return this.encode(L,Z).ldelim()},y.decode=function X(L,Z){if(!(L instanceof P))L=P.create(L);let J=Z===void 0?L.len:L.pos+Z,Q=new D.cosmos.base.v1beta1.IntProto;while(L.pos<J){let q=L.uint32();switch(q>>>3){case 1:Q.int=L.string();break;default:L.skipType(q&7);break}}return Q},y.decodeDelimited=function X(L){if(!(L instanceof P))L=new P(L);return this.decode(L,L.uint32())},y.verify=function X(L){if(typeof L!=="object"||L===null)return"object expected";if(L.int!=null&&L.hasOwnProperty("int")){if(!C.isString(L.int))return"int: string expected"}return null},y.fromObject=function X(L){if(L instanceof D.cosmos.base.v1beta1.IntProto)return L;let Z=new D.cosmos.base.v1beta1.IntProto;if(L.int!=null)Z.int=String(L.int);return Z},y.toObject=function X(L,Z){if(!Z)Z={};let J={};if(Z.defaults)J.int="";if(L.int!=null&&L.hasOwnProperty("int"))J.int=L.int;return J},y.prototype.toJSON=function X(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),x.DecProto=(()=>{function y(X){if(X){for(let L=Object.keys(X),Z=0;Z<L.length;++Z)if(X[L[Z]]!=null)this[L[Z]]=X[L[Z]]}}return y.prototype.dec="",y.create=function X(L){return new y(L)},y.encode=function X(L,Z){if(!Z)Z=yy.create();if(L.dec!=null&&Object.hasOwnProperty.call(L,"dec"))Z.uint32(10).string(L.dec);return Z},y.encodeDelimited=function X(L,Z){return this.encode(L,Z).ldelim()},y.decode=function X(L,Z){if(!(L instanceof P))L=P.create(L);let J=Z===void 0?L.len:L.pos+Z,Q=new D.cosmos.base.v1beta1.DecProto;while(L.pos<J){let q=L.uint32();switch(q>>>3){case 1:Q.dec=L.string();break;default:L.skipType(q&7);break}}return Q},y.decodeDelimited=function X(L){if(!(L instanceof P))L=new P(L);return this.decode(L,L.uint32())},y.verify=function X(L){if(typeof L!=="object"||L===null)return"object expected";if(L.dec!=null&&L.hasOwnProperty("dec")){if(!C.isString(L.dec))return"dec: string expected"}return null},y.fromObject=function X(L){if(L instanceof D.cosmos.base.v1beta1.DecProto)return L;let Z=new D.cosmos.base.v1beta1.DecProto;if(L.dec!=null)Z.dec=String(L.dec);return Z},y.toObject=function X(L,Z){if(!Z)Z={};let J={};if(Z.defaults)J.dec="";if(L.dec!=null&&L.hasOwnProperty("dec"))J.dec=L.dec;return J},y.prototype.toJSON=function X(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),x})(),f})(),T})()});import{Chain as bX}from"@swapkit/helpers";async function Sy(){let{$root:T}=await Promise.resolve().then(() => (N1(),D1)),f=await import("@cosmjs/proto-signing"),x=f.Registry??f.default?.Registry,y=await import("@cosmjs/stargate"),X=y.defaultRegistryTypes??y.default?.defaultRegistryTypes;return new x([...X,["/types.MsgSend",T.types.MsgSend],["/types.MsgDeposit",T.types.MsgDeposit]])}async function wy(T){let f=await import("@cosmjs/stargate"),x=f.AminoTypes??f.default?.AminoTypes,y=T===bX.THORChain?"thorchain":"mayachain";return new x({"/types.MsgSend":{aminoType:`${y}/MsgSend`,toAmino:({fromAddress:X,toAddress:L,...Z})=>({...Z,from_address:qT(X),to_address:qT(L)}),fromAmino:({from_address:X,to_address:L,...Z})=>({...Z,fromAddress:QT(X),toAddress:QT(L)})},"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,toAmino:({signer:X,...L})=>({...L,signer:qT(X)}),fromAmino:({signer:X,...L})=>({...L,signer:QT(X)})}})}var V5=E(()=>{O5()});import{AssetValue as jX,Chain as hT,ChainToChainId as I1,SwapKitError as hX}from"@swapkit/helpers";function K5(T){return function f(x){let{assetValue:y,recipient:X,memo:L,sender:Z,asSignable:J,asAminoMessage:Q}=x;if(X)return O1(T)({sender:Z,recipient:X,assetValue:y,memo:L,asSignable:J,asAminoMessage:Q});return k1(T)({sender:Z,assetValue:y,memo:L,asSignable:J,asAminoMessage:Q})}}function vy(T){if(T.type==="thorchain/MsgSend"||T.type==="mayachain/MsgSend")return T;return{...T,value:{...T.value,coins:T.value.coins.map((f)=>{let x=jX.from({asset:f.asset}),y=(x.isSynthetic?x.symbol.split("/")?.[1]:x.symbol)?.toUpperCase(),X=(x.isSynthetic?x.symbol.split("/")?.[0]:x.chain)?.toUpperCase();return{...f,asset:{chain:X,symbol:y,ticker:x.ticker,synth:x.isSynthetic}}})}}}async function GT({chain:T,memo:f,msgs:x}){let y=await Sy(),X=await wy(T),L={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:f,messages:x.map((Z)=>X.fromAmino(Z))}};return y.encode(L)}var nX,pX,$5=({sender:T,recipient:f,assetValue:x})=>{return{type:`${x.chain===hT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{from_address:T,to_address:f,amount:[{amount:x.getBaseValue("string"),denom:ky(x.symbol,!0)}]}}},F5=({sender:T,assetValue:f,memo:x=""})=>{return{type:`${f.chain===hT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:f.getBaseValue("string"),asset:zT(f)}],signer:T,memo:x}}},nT=({sender:T,recipient:f,assetValue:x,memo:y})=>{return!f?F5({sender:T,assetValue:x,memo:y}):$5({sender:T,recipient:f,assetValue:x})},Ey=async(T,f)=>{return(await wy(f)).fromAmino(T)},C1=async({rpcUrl:T,sender:f})=>{let y=await(await Hy(T)).getAccount(f);if(!y)throw new hX("toolbox_cosmos_account_not_found",{sender:f});return y},O1=(T)=>async({sender:f,recipient:x,assetValue:y,memo:X="",asSignable:L=!0,asAminoMessage:Z=!1,sequence:J,accountNumber:Q})=>{let q=await C1({rpcUrl:T,sender:f}),z=y.chain,B=$5({sender:f,recipient:x,assetValue:y}),M=L?await Ey(Z?B:vy(B),z):B;return{chainId:I1[z],accountNumber:Q||q.accountNumber,sequence:J||q.sequence,msgs:[M],fee:Wy(y.chain),memo:X}},k1=(T)=>async({sender:f,assetValue:x,memo:y="",asSignable:X=!0,asAminoMessage:L=!1,sequence:Z,accountNumber:J})=>{let Q=await C1({rpcUrl:T,sender:f}),q=x.chain,z=F5({sender:f,assetValue:x,memo:y}),B=X?await Ey(L?z:vy(z),q):z;return{chainId:I1[q],accountNumber:J||Q.accountNumber,sequence:Z||Q.sequence,msgs:[B],fee:Wy(x.chain),memo:y}};var w1=E(()=>{BT();V5();nX=Wy(hT.THORChain).gas,pX=Wy(hT.Maya).gas});var E1=()=>{};var v1=E(()=>{E1()});var A5=E(()=>{O5();w1();V5();v1()});import{base64 as j5,bech32 as S5}from"@scure/base";import{AssetValue as A1,BaseDecimal as u5,Chain as Ty,ChainToChainId as oX,CosmosChainPrefixes as S1,DerivationPath as mX,FeeOption as h5,NetworkDerivationPath as cX,SKConfig as u1,SwapKitError as pT,SwapKitNumber as b5,applyFeeMultiplier as P1,derivationPathToString as l1,updateDerivationPath as gX}from"@swapkit/helpers";import{SwapKitApi as b1}from"@swapkit/helpers/api";import{P as V1,match as tX}from"ts-pattern";async function p5(T,f){try{let y=(await b1.getGasRate()).find((X)=>X.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(x){return f}}async function n5({phrase:T,prefix:f,...x}){let y=await import("@cosmjs/proto-signing"),X=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,L=await import("@cosmjs/crypto"),Z=L.stringToPath??L.default?.stringToPath,J="derivationPath"in x?x.derivationPath:`${mX[x.chain]}/${x.index}`;return X.fromMnemonic(T,{prefix:f,hdPaths:[Z(J)]})}async function dX({privateKey:T,prefix:f}){let x=await import("@cosmjs/proto-signing");return(x.DirectSecp256k1Wallet??x.default?.DirectSecp256k1Wallet).fromKey(T,f)}function j1(T){return async function f({signature:x,message:y,address:X}){let L=await T(X);if(!L?.pubkey)throw new pT("toolbox_cosmos_verify_signature_no_pubkey");let Z=await import("@cosmjs/crypto"),J=Z.Secp256k1Signature??Z.default?.Secp256k1Signature,Q=Z.Secp256k1??Z.default?.Secp256k1,q=J.fromFixedLength(j5.decode(x));return Q.verifySignature(q,j5.decode(y),L.pubkey.value)}}async function WT({chain:T,...f}){let x=u1.get("rpcUrls")[T],y=S1[T],X="index"in f?f.index||0:0,L=l1("derivationPath"in f&&f.derivationPath?f.derivationPath:gX(cX[T],{index:X})),Z=await tX(f).with({phrase:V1.string},({phrase:B})=>n5({phrase:B,prefix:y,derivationPath:L})).with({signer:V1.any},({signer:B})=>B).otherwise(()=>{return});async function J(B){return(await Hy(x)).getAccount(B)}async function Q(){let[B]=await Z?.getAccounts()||[];return B?.address}async function q(){let[B]=await Z?.getAccounts()||[];if(!B?.pubkey)throw new pT("toolbox_cosmos_signer_not_defined");return j5.encode(B?.pubkey)}async function z({recipient:B,assetValue:M,memo:W="",feeRate:G,feeOptionKey:Y=h5.Fast}){let I=await Q();if(!(Z&&I))throw new pT("toolbox_cosmos_signer_not_defined");let V=A1.from({chain:T}),$=zT(V),j=G||eX((await F1(T,$1[T]))[Y],$),u=await MT(x,Z),c=[{denom:ky(`u${M.symbol}`).toLowerCase(),amount:M.getBaseValue("string")}],{transactionHash:o}=await u.sendTokens(I,B,c,j,W);return o}return{transfer:z,getAddress:Q,getAccount:J,getBalance:async(B,M)=>{let W=await K1(x)(B);return await Promise.all(W.filter(({denom:G})=>G&&!G.includes("IBC/")).map(({denom:G,amount:Y})=>{let I=[Ty.THORChain,Ty.Maya].includes(T)&&(G.includes("/")||G.includes("˜"))?`${T}.${G}`:G;return l5(I,Y)}))},getSignerFromPhrase:async({phrase:B,derivationPath:M})=>n5({phrase:B,prefix:y,derivationPath:l1(M),index:X}),getSignerFromPrivateKey:async(B)=>{let M=await import("@cosmjs/proto-signing");return(M.DirectSecp256k1Wallet??M.default?.DirectSecp256k1Wallet).fromKey(B,y)},createPrivateKeyFromPhrase:T2(L),validateAddress:n1(y),getPubKey:q,getFees:()=>F1(T,$1[T]),fetchFeeRateFromSwapKit:p5,getBalanceAsDenoms:K1(x),createTransaction:P5,verifySignature:j1(J)}}async function h1(T,f){try{let y=(await b1.getGasRate()).find((X)=>X.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(x){return f}}function rX({address:T,chain:f,prefix:x}){let y=x||sX(f);if(!(y&&T))throw new pT("toolbox_cosmos_validate_address_prefix_not_found");return n1(y)(T)}function aX({assetValue:{chain:T}}){return A1.from({chain:T,value:y2(T)})}function sX(T){let{isStagenet:f}=u1.get("envs"),x=T?[Ty.THORChain,Ty.Maya].includes(T)&&f:!1,y=T?S1[T]:void 0;return x?`s${y}`:y}async function F1(T,f){let x=await p5(oX[T],f);return{average:b5.fromBigInt(BigInt(x),u5[T]),fast:b5.fromBigInt(BigInt(P1(x,h5.Fast,!0)),u5[T]),fastest:b5.fromBigInt(BigInt(P1(x,h5.Fastest,!0)),u5[T])}}function eX(T,f){return{amount:[{denom:f,amount:T.getBaseValue("string")}],gas:"200000"}}function y2(T){return{[Ty.Cosmos]:0.007,[Ty.Kujira]:0.02,[Ty.THORChain]:0.02,[Ty.Maya]:0.02}[T]||0}function n1(T){return function f(x){if(!x.startsWith(T))return!1;try{let{prefix:y,words:X}=S5.decode(x);return S5.encode(y,X)===x.toLocaleLowerCase()}catch(y){return!1}}}function K1(T){return async function f(x){return(await(await Hy(T)).getAllBalances(x)).map((Z)=>({...Z,denom:Z.denom.includes("/")?Z.denom.toUpperCase():Z.denom}))}}function T2(T){return async function f(x){let y=await import("@cosmjs/crypto"),X=y.stringToPath??y.default?.stringToPath,L=y.Slip10Curve??y.default?.Slip10Curve,Z=y.Slip10??y.default?.Slip10,J=y.EnglishMnemonic??y.default?.EnglishMnemonic,Q=y.Bip39??y.default?.Bip39,q=new J(x),z=await Q.mnemonicToSeed(q),{privkey:B}=Z.derivePath(L.Secp256k1,z,X(T));return B}}var $1,iX;var oT=E(()=>{BT();$1={[Ty.Cosmos]:500,[Ty.Kujira]:1000,[Ty.THORChain]:5000000,[Ty.Maya]:5000000};iX=h1});import{base64 as uy}from"@scure/base";import{BaseDecimal as f2,Chain as X2,CosmosChainPrefixes as L2,FeeOption as o5,NetworkDerivationPath as x2,RequestClient as Z2,SKConfig as m5,SwapKitError as p1,SwapKitNumber as o1,derivationPathToString as J2,updateDerivationPath as Q2}from"@swapkit/helpers";import{P as m1,match as q2}from"ts-pattern";function z2({prefix:T,derivationPath:f}){return async function x(y,X=0){let L=await import("@cosmjs/amino"),Z=L.Secp256k1HdWallet??L.default?.Secp256k1HdWallet,J=await import("@cosmjs/crypto"),Q=J.stringToPath??J.default?.stringToPath;return Z.fromMnemonic(y,{hdPaths:[Q(`${f}/${X}`)],prefix:T})}}function M2(T){return uy.encode(T)}function B2(T){return async function f({wallet:x,tx:y}){let{msgs:X,accountNumber:L,sequence:Z,chainId:J,fee:Q,memo:q}=typeof y==="string"?JSON.parse(y):y,z=(await x.getAccounts())?.[0]?.address||"",B=await wy(T),M=await Sy(),W=await v5(x,{registry:M,aminoTypes:B}),G=[];for(let V of X){let $=await Ey(V,T);G.push($)}let{signatures:[Y]}=await W.sign(z,G,Q,q,{accountNumber:L,sequence:Z,chainId:J}),I=await GT({chain:T,memo:q,msgs:X.map(vy)});return{signature:M2(Y),bodyBytes:I}}}function G2({prefix:T,rpcUrl:f}){return async function x(y,X,L,Z,J){let{encodeSecp256k1Pubkey:Q,pubkeyToAddress:q}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:z}=(await import("@cosmjs/stargate")).default,{sequence:B,fee:M}=JSON.parse(y),W=await c1(L,Z),G=X.map((V)=>[q(Q(uy.decode(V.pubKey)),T),uy.decode(V.signature)]),Y=await Hy(f),{transactionHash:I}=await Y.broadcastTx(z(W,B,M,J,new Map(G)));return I}}async function c1(T,f,x=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:X}=(await import("@cosmjs/amino")).default;return y(T.map((L)=>X(uy.decode(L))),f,x)}function W2(T){return uy.decode(T)}async function H2({privateKey:T,message:f}){let{Secp256k1:x}=(await import("@cosmjs/crypto")).default,y=await x.createSignature(uy.decode(f),T);return uy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function c5({chain:T,...f}){let x=m5.get("nodeUrls")[T],y=m5.get("rpcUrls")[T],{isStagenet:X}=m5.get("envs"),L=T===X2.THORChain,Z=`${X?"s":""}${L2[T]}`,J="index"in f?f.index||0:0,Q="derivationPath"in f&&f.derivationPath?f.derivationPath:Q2(x2[T],{index:J}),q=await WT({chain:T,...f}),z=await q2(f).with({phrase:m1.string},({phrase:G})=>q.getSignerFromPhrase({phrase:G,derivationPath:Q})).with({signer:m1.any},({signer:G})=>G).otherwise(()=>{return}),B=Wy(T);async function M(){let G,Y=`${x}/${L?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:I}}=await Z2.get(Y);if(!I||Number.isNaN(I)||I<0)throw new p1("toolbox_cosmos_invalid_fee",{nativeFee:I.toString()});G=new o1(I)}catch{G=new o1({value:L?0.02:1,decimal:f2[T]})}return{[o5.Average]:G,[o5.Fast]:G,[o5.Fastest]:G}}async function W({assetValue:G,memo:Y="",recipient:I}){let{TxRaw:V}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),$=(await z?.getAccounts())?.[0]?.address;if(!($&&z))throw new p1("toolbox_cosmos_no_signer");let j="signAmino"in z,u=await Sy(),c=await wy(T),o=await MT(y,z,{registry:u,aminoTypes:c}),a=nT({assetValue:G,sender:$,recipient:I,memo:Y});if(j){let O=await Ey(a,T),{signatures:v,authInfoBytes:w}=await o.sign($,[O],B,Y),l=V.encode({signatures:v,authInfoBytes:w,bodyBytes:await GT({chain:T,msgs:[a].map(vy),memo:Y})}).finish();return(await o.broadcastTx(l)).transactionHash}let k=vy(a),U=await Ey(k,T);return(await o.signAndBroadcast($,[U],B,Y)).transactionHash}return{...q,broadcastMultisigTx:G2({prefix:Z,rpcUrl:y}),buildAminoMsg:nT,buildEncodedTxBody:GT,convertToSignable:Ey,createDefaultAminoTypes:()=>wy(T),createDefaultRegistry:Sy,createMultisig:c1,createTransaction:K5(y),deposit:W,getFees:M,importSignature:W2,parseAminoMessageForDirectSigning:vy,secp256k1HdWalletFromMnemonic:z2({derivationPath:J2(Q),prefix:Z}),signMultisigTx:B2(T),signWithPrivateKey:H2,transfer:W,pubkeyToAddress:async(G)=>{let{pubkeyToAddress:Y}=(await import("@cosmjs/amino")).default;return Y(G,Z)}}}var g5=E(()=>{A5();BT();oT()});import{Chain as mT,SwapKitError as U2}from"@swapkit/helpers";var Y2=(T,f)=>{switch(T){case mT.Cosmos:case mT.Kujira:return WT({chain:T,...f});case mT.Maya:case mT.THORChain:return c5({chain:T,...f});default:throw new U2("toolbox_cosmos_not_supported",{chain:T})}};var g1=E(()=>{oT();g5();oT();g5()});var cT={};Zy(cT,{verifySignature:()=>j1,transferMsgAmino:()=>$5,toBase64:()=>KX,parseAminoMessageForDirectSigning:()=>vy,getSignerFromPrivateKey:()=>dX,getSignerFromPhrase:()=>n5,getRPC:()=>R1,getMsgSendDenom:()=>ky,getFeeRateFromThorswap:()=>iX,getFeeRateFromSwapKit:()=>h1,getDenomWithChain:()=>zT,getDefaultChainFee:()=>Wy,getCreateTransaction:()=>K5,getCosmosToolbox:()=>Y2,getAssetFromDenom:()=>l5,fromBase64:()=>AX,fetchFeeRateFromSwapKit:()=>p5,estimateTransactionFee:()=>aX,depositMsgAmino:()=>F5,createThorchainToolbox:()=>c5,createStargateClient:()=>Hy,createSigningStargateClient:()=>MT,createOfflineStargateClient:()=>v5,createDefaultRegistry:()=>Sy,createDefaultAminoTypes:()=>wy,createCosmosToolbox:()=>WT,cosmosValidateAddress:()=>rX,cosmosCreateTransaction:()=>P5,convertToSignable:()=>Ey,buildTransferTx:()=>O1,buildEncodedTxBody:()=>GT,buildDepositTx:()=>k1,buildAminoMsg:()=>nT,bech32ToBase64:()=>QT,base64ToBech32:()=>qT,YUM_KUJIRA_FACTORY_DENOM:()=>U1,USK_KUJIRA_FACTORY_DENOM:()=>E5,THORCHAIN_GAS_VALUE:()=>nX,MAYA_GAS_VALUE:()=>pX,DEFAULT_KUJI_FEE_MAINNET:()=>_1,DEFAULT_COSMOS_FEE_MAINNET:()=>Y1});var gT=E(()=>{A5();g1();BT()});import{AssetValue as _2,BaseDecimal as R2}from"@swapkit/helpers";import{SwapKitApi as D2}from"@swapkit/helpers/api";function t1(){function T(){let f=Date.now(),x=t5||f;return t5=x,f>t5?f:x+1}return N2+T().toString(36)}function tT(T){return async function f(x,y=!0){return(await D2.getChainBalance({chain:T,address:x,scamFilter:y})).map(({identifier:L,value:Z,decimal:J})=>{return new _2({decimal:J||R2[T],value:Z,identifier:L})})}}var N2,t5=0;var dT=E(()=>{N2=typeof process!=="undefined"&&process.pid?process.pid.toString(36):""});import{SKConfig as I2,warnOnce as C2}from"@swapkit/helpers";function HT(T){let f=I2.get("apis")[T];if(f)return C2(!0,"Using custom EVM API. Be sure to implement all methods to avoid issues."),f;return k2(T)}function O2(T){return T}function k2(T){return{getBalance:tT(T)}}var iT=E(()=>{dT()});import{Chain as m,ContractAddress as My,FeeOption as K,SwapKitError as n,SwapKitNumber as d1,applyFeeMultiplierToBigInt as fy,isGasAsset as w2}from"@swapkit/helpers";import{erc20ABI as YT}from"@swapkit/helpers/contracts";import{BrowserProvider as E2,Contract as i1,Interface as r1,getAddress as rT}from"ethers";function dy({chain:T=m.Ethereum,provider:f,signer:x,isEIP1559Compatible:y=!0}){return{getAddress:()=>{return x?x.getAddress():void 0},estimateTransactionFee:e5({provider:f,isEIP1559Compatible:y,chain:T}),call:s5({provider:f,signer:x,isEIP1559Compatible:y,chain:T}),estimateCall:yf({provider:f,signer:x}),EIP1193SendTransaction:ry(f),approve:V2({provider:f,signer:x,isEIP1559Compatible:y,chain:T}),approvedAmount:e1({provider:f,chain:T}),broadcastTransaction:f.broadcastTransaction,createApprovalTx:A2({provider:f,signer:x,chain:T}),createContract:r5({provider:f,chain:T}),createContractTxObject:by({provider:f,chain:T}),createTransferTx:d5({provider:f,signer:x,chain:T}),createTransaction:d5({provider:f,signer:x,chain:T}),estimateGasLimit:F2({provider:f,signer:x,chain:T}),estimateGasPrices:Py({chain:T,provider:f,isEIP1559Compatible:y}),isApproved:l2({provider:f,chain:T}),sendTransaction:Tf({provider:f,signer:x,isEIP1559Compatible:y,chain:T}),signMessage:x?.signMessage,transfer:$2({provider:f,signer:x,isEIP1559Compatible:y,chain:T}),validateAddress:(X)=>i5({address:X})}}function i5({address:T}){try{return rT(T),!0}catch(f){return!1}}function iy(T){return T instanceof E2}function RT(T,f,x){return new i1(T,r1.from(f),x)}function r5({provider:T}){return function f(x,y){return new i1(x,r1.from(y),T)}}function a5({abi:T,funcName:f}){let x=T.find((y)=>y.name===f);if(!x)throw new n("toolbox_evm_no_abi_fragment",{funcName:f});return x.stateMutability&&v2.includes(x.stateMutability)}function a1(T){return rT(T)}function ry(T){return function f({value:x,...y}){if(!iy(T))throw new n("toolbox_evm_provider_not_eip1193_compatible");return T.send("eth_sendTransaction",[{value:UT(BigInt(x||0)),...y}])}}function s1(T,f){let x=ay(T,f);if(x)return rT(x.toLowerCase());throw new n("toolbox_evm_invalid_gas_asset_address")}function ay({chain:T,symbol:f,ticker:x},y){try{let X=T===m.BinanceSmartChain&&f==="BNB"&&x==="BNB",L=T===y&&f===y&&x===y,Z=[m.Arbitrum,m.Aurora,m.Base,m.Optimism].includes(T)&&f==="ETH"&&x==="ETH";if(L||X||Z)return P2[y];return rT(f.slice(x.length+1).replace(/^0X/,""))}catch(X){return null}}function by({provider:T}){return async({contractAddress:f,abi:x,funcName:y,funcParams:X=[],txOverrides:L})=>RT(f,x,T).getFunction(y).populateTransaction(...X.concat(L).filter((Z)=>typeof Z!=="undefined"))}function Py({chain:T,provider:f,isEIP1559Compatible:x=!0}){if(T===m.Arbitrum)return async function y(){try{let{gasPrice:X}=await f.getFeeData();if(!X)throw new n("toolbox_evm_no_fee_data");return{[K.Average]:{gasPrice:X},[K.Fast]:{gasPrice:X},[K.Fastest]:{gasPrice:X}}}catch(X){throw new n("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}};if(T===m.Optimism)return async function y(){try{let{maxFeePerGas:X,maxPriorityFeePerGas:L,gasPrice:Z}=await f.getFeeData(),J=NT(f)(),Q=Z;if(!(X&&L))throw new n("toolbox_evm_no_fee_data");return{[K.Average]:{l1GasPrice:J,gasPrice:Q,maxFeePerGas:X,maxPriorityFeePerGas:L},[K.Fast]:{l1GasPrice:fy(J||0n,K.Fast),gasPrice:fy(Q,K.Fast),maxFeePerGas:X,maxPriorityFeePerGas:fy(L,K.Fast)},[K.Fastest]:{l1GasPrice:fy(J||0n,K.Fastest),gasPrice:fy(Q,K.Fastest),maxFeePerGas:X,maxPriorityFeePerGas:fy(L,K.Fastest)}}}catch(X){throw new n("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}};return async function y(){try{let{maxFeePerGas:X,maxPriorityFeePerGas:L,gasPrice:Z}=await f.getFeeData();if(x){if(X===null||L===null)throw new n("toolbox_evm_no_fee_data");return{[K.Average]:{maxFeePerGas:X,maxPriorityFeePerGas:L},[K.Fast]:{maxFeePerGas:fy(X,K.Fast),maxPriorityFeePerGas:fy(L,K.Fast)},[K.Fastest]:{maxFeePerGas:fy(X,K.Fastest),maxPriorityFeePerGas:fy(L,K.Fastest)}}}if(!Z)throw new n("toolbox_evm_no_gas_price");return{[K.Average]:{gasPrice:Z},[K.Fast]:{gasPrice:fy(Z,K.Fast)},[K.Fastest]:{gasPrice:fy(Z,K.Fastest)}}}catch(X){throw new n("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}}}function s5({provider:T,isEIP1559Compatible:f,signer:x,chain:y}){return async function X({callProvider:L,contractAddress:Z,abi:J,funcName:Q,funcParams:q=[],txOverrides:z={},feeOption:B=K.Fast}){let M=L||T;if(!Z)throw new n("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let W=a5({abi:J,funcName:Q});if(W&&iy(M)&&x){let I=by({provider:M,chain:y}),V=z?.from||await x?.getAddress(),$=await I({contractAddress:Z,abi:J,funcName:Q,funcParams:q,txOverrides:{...z,from:V}});return ry(M)($)}let G=RT(Z,J,M);if(W){if(!x)throw new n("toolbox_evm_no_signer");let I=z?.from||await x.getAddress();if(!I)throw new n("toolbox_evm_no_signer_address");let V=G.connect(x),$=Py({provider:T,isEIP1559Compatible:f,chain:y}),{maxFeePerGas:j,maxPriorityFeePerGas:u,gasPrice:c}=(await $())[B],o=await G.getFunction(Q).estimateGas(...q,z),a=await V[Q](...q,{...z,gasLimit:o,maxFeePerGas:j,maxPriorityFeePerGas:u,gasPrice:c,nonce:z?.nonce||await M.getTransactionCount(I)});return typeof a?.hash==="string"?a?.hash:a}let Y=await G[Q]?.(...q);return typeof Y?.hash==="string"?Y?.hash:Y}}function e1({provider:T,chain:f}){return function x({assetAddress:y,spenderAddress:X,from:L}){return s5({provider:T,isEIP1559Compatible:!0,chain:f})({contractAddress:y,abi:YT,funcName:"allowance",funcParams:[L,X]})}}function l2({provider:T,chain:f}){return async function x({assetAddress:y,spenderAddress:X,from:L,amount:Z=_T}){let J=await e1({provider:T,chain:f})({assetAddress:y,spenderAddress:X,from:L});return d1.fromBigInt(J).gte(d1.fromBigInt(BigInt(Z)))}}function V2({signer:T,isEIP1559Compatible:f=!0,provider:x,chain:y}){return async function X({assetAddress:L,spenderAddress:Z,feeOptionKey:J=K.Fast,amount:Q,gasLimitFallback:q,from:z,nonce:B}){let M=[Z,BigInt(Q||_T)],W=await T?.getAddress()||z,G={contractAddress:L,abi:YT,funcName:"approve",funcParams:M,signer:T,txOverrides:{from:W}};if(iy(x)){let I=by({provider:x,chain:y}),V=ry(x),$=await I(G);return V($)}return s5({provider:x,isEIP1559Compatible:f,signer:T,chain:y})({...G,funcParams:M,txOverrides:{from:W,nonce:B,gasLimit:q?BigInt(q.toString()):void 0},feeOption:J})}}function $2({signer:T,isEIP1559Compatible:f=!0,provider:x}){return async function y({assetValue:X,memo:L,recipient:Z,feeOptionKey:J=K.Fast,sender:Q,...q}){let{hexlify:z,toUtf8Bytes:B}=await import("ethers"),M=X.getBaseValue("bigint"),W=X.chain,G=Q||await T?.getAddress(),Y=Tf({provider:x,signer:T,isEIP1559Compatible:f,chain:W});if(!G)throw new n("toolbox_evm_no_from_address");if(X.isGasAsset){let c={...q,from:G,to:Z,value:M,data:z(B(L||"")),feeOptionKey:J};return Y(c)}if(!ay(X,W))throw new n("toolbox_evm_no_contract_address");let{maxFeePerGas:V,maxPriorityFeePerGas:$,gasPrice:j}=(await Py({provider:x,isEIP1559Compatible:f,chain:W})())[J],u=await d5({provider:x,signer:T,chain:W})({assetValue:X,memo:L,recipient:Z,data:z(B(L||"")),sender:G,maxFeePerGas:V,maxPriorityFeePerGas:$,gasPrice:j});return Y(u)}}function yf({provider:T,signer:f}){return function x({contractAddress:y,abi:X,funcName:L,funcParams:Z=[],txOverrides:J}){if(!y)throw new n("toolbox_evm_no_contract_address");let Q=RT(y,X,T);return f?Q.connect(f).getFunction(L).estimateGas(...Z,J):Q.getFunction(L).estimateGas(...Z,J)}}function F2({provider:T,signer:f}){return async function x({assetValue:y,recipient:X,memo:L,data:Z,sender:J,funcName:Q,funcParams:q,txOverrides:z}){let B=y.bigIntValue,M=y.isGasAsset?null:ay(y,y.chain);if(M&&Q)return yf({provider:T,signer:f})({contractAddress:M,abi:YT,funcName:Q,funcParams:q,txOverrides:z});let{hexlify:W,toUtf8Bytes:G}=await import("ethers");return T.estimateGas({from:J,to:X,value:B,data:Z?Z:L?W(G(L)):void 0})}}function Tf({provider:T,signer:f,isEIP1559Compatible:x=!0,chain:y}){return async function X({feeOptionKey:L=K.Fast,...Z}){let{from:J,to:Q,data:q,value:z,...B}=Z;if(!f)throw new n("toolbox_evm_no_signer");if(!Q)throw new n("toolbox_evm_no_to_address");let M={...B,data:q||"0x",to:Q,from:J,value:BigInt(z||0)};if(iy(T))return ry(T)(M);let W=J||await f.getAddress(),G=Z.nonce||await T.getTransactionCount(W),Y=(await T.getNetwork()).chainId,I=K2(M)||x,V=Py({provider:T,isEIP1559Compatible:x,chain:y}),$=I&&!(M.maxFeePerGas&&M.maxPriorityFeePerGas)||!M.gasPrice?Object.entries((await V())[L]).reduce((u,[c,o])=>({...u,[c]:UT(BigInt(o))}),{}):{},j;try{j=UT(M.gasLimit||await T.estimateGas(M)*11n/10n)}catch(u){throw new n("toolbox_evm_error_estimating_gas_limit",{error:u})}try{let u={...M,chainId:Y,type:I?2:0,gasLimit:j,nonce:G,...$};try{return(await f.sendTransaction(u)).hash}catch(c){let o=await f.signTransaction({...u,from:W});return(await T.broadcastTransaction(o)).hash}}catch(u){throw new n("toolbox_evm_error_sending_transaction",{error:u})}}}function d5({provider:T,signer:f}){return async function x({assetValue:y,memo:X,recipient:L,data:Z,sender:J,maxFeePerGas:Q,maxPriorityFeePerGas:q,gasPrice:z,...B}){let M=y.getBaseValue("bigint"),W=y.chain,G=J||await f?.getAddress();if(!G)throw new n("toolbox_evm_no_from_address");if(w2(y)){let{hexlify:V,toUtf8Bytes:$}=await import("ethers");return{...B,from:G,to:L,value:M,data:Z||V($(X||""))}}let Y=ay(y,W);if(!Y)throw new n("toolbox_evm_no_contract_address");return by({provider:T,chain:y.chain})({contractAddress:Y,abi:YT,funcName:"transfer",funcParams:[L,M],txOverrides:{from:G,maxFeePerGas:Q,maxPriorityFeePerGas:q,gasPrice:z}})}}function A2({provider:T,signer:f,chain:x}){return async function y({assetAddress:X,spenderAddress:L,amount:Z,from:J}){let Q=await f?.getAddress()||J,q=by({provider:T,chain:x}),z=["bigint","number"].includes(typeof Z)?Z:Z||_T;return await q({contractAddress:X,abi:YT,funcName:"approve",funcParams:[L,BigInt(z)],txOverrides:{from:Q}})}}var _T,v2,P2,K2=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var DT=E(()=>{y0();_T=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");v2=["payable","nonpayable"];P2={[m.Arbitrum]:My.ARB,[m.Aurora]:My.AURORA,[m.Avalanche]:My.AVAX,[m.Base]:My.BASE,[m.Berachain]:My.BERA,[m.BinanceSmartChain]:My.BSC,[m.Ethereum]:My.ETH,[m.Gnosis]:My.GNO,[m.Optimism]:My.OP,[m.Polygon]:My.MATIC}});var ff;var Xf=E(()=>{ff=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{Chain as Uy,FeeOption as S2,SKConfig as u2}from"@swapkit/helpers";import{HDNodeWallet as b2}from"ethers";import{P as Lf,match as j2}from"ts-pattern";async function aT({provider:T,...f}){let x=await Yy(Uy.Ethereum)({provider:T,...f});async function y(X,L="0x5ba1e12693dc8f9c48aad8770482f4739beed696",Z="aggregate",J=S2.Fast){let Q=await x.createContractTxObject({contractAddress:L,abi:ff,funcName:Z,funcParams:[X]});return x.sendTransaction({...Q,feeOptionKey:J})}return{...x,multicall:y}}function Yy(T){return async function f({provider:x,...y}){let X=u2.get("rpcUrls")[T],L=x||await jy(T,X),Z=X0(T),J=j2(y).with({phrase:Lf.string},({phrase:q})=>b2.fromPhrase(q).connect(L)).with({signer:Lf.any},({signer:q})=>q).otherwise(()=>{return});return{...dy({provider:L,signer:J,isEIP1559Compatible:Z,chain:T}),getNetworkParams:f0(T),getBalance:HT(T).getBalance}}}var sT,eT,y5,T5,f5,X5,L5,x5;var T0=E(()=>{iT();Xf();IT();DT();sT=Yy(Uy.Arbitrum),eT=Yy(Uy.Aurora),y5=Yy(Uy.Avalanche),T5=Yy(Uy.Base),f5=Yy(Uy.Berachain),X5=Yy(Uy.BinanceSmartChain),L5=Yy(Uy.Gnosis),x5=Yy(Uy.Polygon)});var xf;var Zf=E(()=>{xf=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{BaseDecimal as h2,Chain as CT,ChainId as n2,ChainToExplorerUrl as p2,SKConfig as Qf,SwapKitError as o2}from"@swapkit/helpers";import{Contract as m2,HDNodeWallet as c2}from"ethers";import{P as Jf}from"ts-pattern";import{match as g2}from"ts-pattern";function L0(T){return new m2(t2,xf,T)}function NT(T){return function f(){let x=L0(T);if(x&&"l1BaseFee"in x)return x?.l1BaseFee();return}}function qf(T){return async function f({from:x,to:y,nonce:X,...L}){let{Transaction:Z}=await import("ethers");if(!y)throw new o2("toolbox_evm_invalid_transaction",{error:"Missing to address"});return Z.from({...L,authorizationList:L.authorizationList,to:y,nonce:X?X:x?await T.getTransactionCount(x):0}).serialized}}function zf(T){return async function f(x){let y=L0(T),X=await qf(T)(x);if(y&&"getL1Fee"in y)return y.getL1Fee(X)}}function Mf(T){return async function f(x){let y=await T.send("eth_gasPrice",[]),X=await T.estimateGas(x);return y.mul(X)}}function d2(T){return async function f(x){let y=await zf(T)(x),X=await Mf(T)(x);return y.add(X)}}function x0(T){return async function f(x){let y=L0(T),X=await qf(T)(x);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(X)}}async function Z5({provider:T,...f}){let x=CT.Optimism,y=Qf.get("rpcUrls")[x],X=T||await jy(x,y),L=g2(f).with({phrase:Jf.string},({phrase:Q})=>c2.fromPhrase(Q).connect(X)).with({signer:Jf.any},({signer:Q})=>Q).otherwise(()=>{return}),Z=dy({provider:X,signer:L}),J=NT(X);return{...Z,estimateL1Gas:x0(X),estimateL1GasCost:zf(X),estimateL2GasCost:Mf(X),estimateTotalGasCost:d2(X),getBalance:HT(CT.Optimism).getBalance,getL1GasPrice:J,getNetworkParams:i2}}var t2="0x420000000000000000000000000000000000000f",i2=()=>({chainId:n2.OptimismHex,chainName:"Optimism",nativeCurrency:{name:"Ethereum",symbol:CT.Ethereum,decimals:h2.ETH},rpcUrls:[Qf.get("rpcUrls")[CT.Optimism]],blockExplorerUrls:[p2[CT.Optimism]]});var Z0=E(()=>{iT();Zf();IT();DT()});var J0={};Zy(J0,{toChecksumAddress:()=>a1,isStateChangingCall:()=>a5,isBrowserProvider:()=>iy,getTokenAddress:()=>ay,getL1GasPriceFetcher:()=>NT,getEvmToolbox:()=>Bf,getEstimateGasPrices:()=>Py,getEIP1193SendTransaction:()=>ry,getCreateContractTxObject:()=>by,getCreateContract:()=>r5,getChecksumAddressFromAsset:()=>s1,evmValidateAddress:()=>i5,estimateL1Gas:()=>x0,createContract:()=>RT,OPToolbox:()=>Z5,MAX_APPROVAL:()=>_T,MATICToolbox:()=>x5,GNOToolbox:()=>L5,ETHToolbox:()=>aT,BaseEVMToolbox:()=>dy,BSCToolbox:()=>X5,BERAToolbox:()=>f5,BASEToolbox:()=>T5,AVAXToolbox:()=>y5,AURORAToolbox:()=>eT,ARBToolbox:()=>sT});import{Chain as By,SwapKitError as r2}from"@swapkit/helpers";async function Bf(T,f){let x={...f,provider:f?.provider||await jy(T)};switch(T){case By.Arbitrum:return sT(x);case By.Aurora:return eT(x);case By.Avalanche:return y5(x);case By.Base:return T5(x);case By.Berachain:return f5(x);case By.BinanceSmartChain:return X5(x);case By.Gnosis:return L5(x);case By.Optimism:return Z5(x);case By.Polygon:return x5(x);case By.Ethereum:return aT(x);default:throw new r2("toolbox_evm_not_supported",{chain:T})}}var J5=E(()=>{IT();T0();Z0();DT();T0();Z0()});import{AssetValue as Q5,BaseDecimal as a2,Chain as p,ChainToExplorerUrl as s2,ChainToHexChainId as e2,FeeOption as Gf,SKConfig as Wf,SwapKitError as q0,SwapKitNumber as Q0}from"@swapkit/helpers";async function jy(T,f){let{JsonRpcProvider:x}=await import("ethers");return new x(f||Wf.get("rpcUrls")[T])}function UT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function e5({provider:T,isEIP1559Compatible:f=!0}){return async function x({feeOption:y=Gf.Fast,chain:X,...L}){let J=await Py({provider:T,isEIP1559Compatible:f,chain:X})(),Q=await T.estimateGas(L),q=Q5.from({chain:X}),{gasPrice:z,maxFeePerGas:B,maxPriorityFeePerGas:M}=J[y];if(!f&&z)return q.set(Q0.fromBigInt(z*Q,q.decimal));if(B&&M){let W=(B+M)*Q;return q.set(Q0.fromBigInt(W,q.decimal))}throw new q0("toolbox_evm_no_gas_price")}}function f0(T){return()=>p.Ethereum===T?void 0:{...T8({chain:T}),chainId:e2[T],rpcUrls:[Wf.get("rpcUrls")[T]],blockExplorerUrls:[s2[T]]}}function X0(T){return![p.Arbitrum,p.BinanceSmartChain].includes(T)}function T8({chain:T}){let f=a2[T];switch(T){case p.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{name:"Ethereum",symbol:p.Ethereum,decimals:f}};case p.Aurora:return{chainName:"Aurora Mainnet",nativeCurrency:{name:"Ethereum",symbol:p.Ethereum,decimals:f}};case p.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{name:"Avalanche",symbol:T,decimals:f}};case p.Base:return{chainName:"Base Mainnet",nativeCurrency:{name:"Ethereum",symbol:p.Ethereum,decimals:f}};case p.Berachain:return{chainName:"Berachain",nativeCurrency:{name:"Berachain",symbol:"BERA",decimals:f}};case p.BinanceSmartChain:return{chainName:"BNB Smart Chain Mainnet",nativeCurrency:{name:"Binance Coin",symbol:"BNB",decimals:f}};case p.Gnosis:return{chainName:"Gnosis",nativeCurrency:{name:"xDAI",symbol:"XDAI",decimals:f}};case p.Optimism:return{chainName:"OP Mainnet",nativeCurrency:{name:"Ethereum",symbol:p.Ethereum,decimals:f}};case p.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{name:"Polygon",symbol:p.Polygon,decimals:f}};default:throw new q0("toolbox_evm_not_supported",{chain:T})}}var y8=async({from:T,memo:f="",feeOptionKey:x=Gf.Fastest,assetValue:y,abi:X,funcName:L,funcParams:Z,contractAddress:J,txOverrides:Q})=>{let{getEvmToolbox:q}=await Promise.resolve().then(() => (J5(),J0)),z=await q(y.chain),M=(await z.getBalance(T)).find(({symbol:u,chain:c})=>y?u===y.symbol:u===Q5.from({chain:c})?.symbol),W=(await z.estimateGasPrices())[x];if(!M)return Q5.from({chain:y.chain});if(y&&(M.chain!==y.chain||M.symbol!==y?.symbol))return M;let G=X&&L&&Z&&J?await z.estimateCall({contractAddress:J,abi:X,funcName:L,funcParams:Z,txOverrides:Q}):await z.estimateGasLimit({sender:T,recipient:T,memo:f,assetValue:y}),Y="maxFeePerGas"in W,I="gasPrice"in W&&W.gasPrice!==void 0;if(!(W&&(I||Y)))throw new q0("toolbox_evm_no_fee_data");let V=Y?(W.maxFeePerGas||1n)+(W.maxPriorityFeePerGas||1n):W.gasPrice||1n,$=G*V,j=Q0.fromBigInt(M.getBaseValue("bigint")).sub($.toString());return Q5.from({chain:M.chain,value:j.getValue("string")})};var IT=E(()=>{DT()});var Hf;var Uf=E(()=>{((x)=>{x.Test="goerli";x.Main="homestead"})(Hf||={})});var Yf={};Zy(Yf,{toHexString:()=>UT,toChecksumAddress:()=>a1,isStateChangingCall:()=>a5,isBrowserProvider:()=>iy,getTokenAddress:()=>ay,getProvider:()=>jy,getNetworkParams:()=>f0,getL1GasPriceFetcher:()=>NT,getIsEIP1559Compatible:()=>X0,getEvmToolbox:()=>Bf,getEvmApi:()=>HT,getEstimateTransactionFee:()=>e5,getEstimateGasPrices:()=>Py,getEIP1193SendTransaction:()=>ry,getCreateContractTxObject:()=>by,getCreateContract:()=>r5,getChecksumAddressFromAsset:()=>s1,evmValidateAddress:()=>i5,estimateMaxSendableAmount:()=>y8,estimateL1Gas:()=>x0,createCustomEvmApi:()=>O2,createContract:()=>RT,OPToolbox:()=>Z5,MAX_APPROVAL:()=>_T,MATICToolbox:()=>x5,GNOToolbox:()=>L5,EthNetwork:()=>Hf,ETHToolbox:()=>aT,BaseEVMToolbox:()=>dy,BSCToolbox:()=>X5,BERAToolbox:()=>f5,BASEToolbox:()=>T5,AVAXToolbox:()=>y5,AURORAToolbox:()=>eT,ARBToolbox:()=>sT});var y0=E(()=>{iT();IT();Uf();J5()});import{AssetValue as f8,Chain as X8,SwapKitNumber as _f}from"@swapkit/helpers";async function L8(T,f,x){try{let y=await T.query.system?.account?.(x);if(!y)return[f.set(0)];let{data:{free:X}}=y,L=_f.fromBigInt(BigInt(X.toString()),f.decimal).getValue("string");return[f.set(L)]}catch(y){return console.error("Error fetching substrate balance:",y),[f.set(0)]}}async function x8(T,f,x){try{let y=await T.query.flip?.account?.(x);if(!y)return[f.set(0)];let X=y.balance||y.data?.balance;if(!X||X.isEmpty)return[f.set(0)];let L=_f.fromBigInt(BigInt(X.toString()),f.decimal).getValue("string");return[f.set(L)]}catch(y){return console.error("Error fetching chainflip balance:",y),[f.set(0)]}}function Rf(T,f){return function x(y){let X=f8.from({chain:T});switch(T){case X8.Chainflip:return x8(f,X,y);default:return L8(f,X,y)}}}var Df=()=>{};var Z8,J8,Q8,ly;var z0=E(()=>{Z8={prefix:0,network:"polkadot",displayName:"Polkadot Relay Chain",symbols:["DOT"],decimals:[10],standardAccount:"*25519",website:"https://polkadot.network"},J8={prefix:2112,network:"chainflip",displayName:"Chainflip",symbols:["FLIP"],decimals:[18],standardAccount:"*25519",website:"https://chainflip.io/"},Q8={prefix:42,network:"substrate",displayName:"Substrate",symbols:[],decimals:[],standardAccount:"*25519",website:"https://substrate.io/"},ly={DOT:Z8,FLIP:J8,GENERIC:Q8}});import{hexToU8a as q8,isHex as z8,u8aToHex as M8}from"@polkadot/util";import{decodeAddress as If,encodeAddress as Cf}from"@polkadot/util-crypto";import{AssetValue as B8,Chain as ey,SKConfig as G8,SwapKitError as _y,SwapKitNumber as W8}from"@swapkit/helpers";import{P as Nf,match as H8}from"ts-pattern";function U8(T,f){switch(T){case ey.Chainflip:return kf(f);case ey.Polkadot:return Of(f);default:throw new _y("toolbox_substrate_not_supported",{chain:T})}}function sy(T){return"address"in T}async function B0(T,f){let{Keyring:x}=await import("@polkadot/api"),{cryptoWaitReady:y}=await import("@polkadot/util-crypto");return await y(),new x({type:"sr25519",ss58Format:f}).addFromUri(T)}function C8(T,f){let x=If(T);return Cf(x,f)}function wf(T,f){return z8(T)?q8(T):If(T,void 0,f)}function Ef(T,f="ss58",x){if(f==="hex")return M8(T);return Cf(T,x)}async function H0({generic:T,chain:f,...x}){let{ApiPromise:y,WsProvider:X}=await import("@polkadot/api"),L=new X(G8.get("rpcUrls")[f]),Z=await y.create({provider:L}),J=B8.from({chain:f}),Q=T?ly.GENERIC:ly[f],q=await H8(x).with({phrase:Nf.string},({phrase:z})=>B0(z,ly[f].prefix)).with({signer:Nf.any},({signer:z})=>z).otherwise(()=>{return});return vf({api:Z,signer:q,gasAsset:J,network:Q,chain:f})}var Of=({generic:T=!1,...f}={})=>{return H0({chain:ey.Polkadot,generic:T,...f})},kf=async({generic:T=!1,...f}={})=>{return{...await H0({chain:ey.Chainflip,generic:T,...f})}},G0=(T,f)=>T.rpc.system.accountNextIndex(f),M0=(T,f)=>{try{let x=wf(T,f);return Ef(x,"ss58",f),!0}catch(x){return!1}},W0=(T,{recipient:f,assetValue:x})=>T.tx.balances?.transferAllowDeath?.(f,x.getBaseValue("number")),Y8=async(T,f,{recipient:x,assetValue:y,sender:X})=>{let L=W0(T,{recipient:x,assetValue:y}),Z=sy(f);if(!L)return;let J=Z?f.address:X;if(!J)throw new _y("core_transaction_invalid_sender_address");let Q=await G0(T,J);return(await L.signAndSend(Z?f:J,{signer:Z?void 0:f,nonce:Q}))?.toString()},_8=async(T,f,x,{recipient:y,assetValue:X,sender:L})=>{let Z=W0(T,{recipient:y,assetValue:X}),J=sy(f)?f.address:L;if(!J)return;let Q=await Z?.paymentInfo(J,{nonce:await G0(T,J)})||{partialFee:0};return x.set(W8.fromBigInt(BigInt(Q.partialFee.toString()),x.decimal).getValue("string"))},R8=async(T,f)=>{if(f)return T.send(f);return(await T.send()).toString()},D8=async(T,f)=>{return await f.signAsync(T)},N8=(T,f,x)=>{if(x)return f.signAndSend(T,x);return f.signAndSend(T).toString()},I8=async({signer:T,address:f,tx:x,callback:y,api:X})=>{let L=await G0(X,f);if(y)x.signAndSend(f,{nonce:L,signer:T},y);return x.signAndSend(f,{nonce:L,signer:T}).toString()},vf=({api:T,network:f,gasAsset:x,signer:y,chain:X})=>({api:T,network:f,gasAsset:x,decodeAddress:wf,encodeAddress:Ef,convertAddress:C8,getBalance:Rf(X||ey.Polkadot,T),createKeyring:(L)=>B0(L,f.prefix),getAddress:(L)=>{let Z=L||y;if(!Z)throw new _y("core_wallet_not_keypair_wallet");return sy(Z)?Z.address:void 0},createTransaction:(L)=>W0(T,L),validateAddress:(L)=>M0(L,f.prefix),transfer:(L)=>{if(!y)throw new _y("core_wallet_not_keypair_wallet");return Y8(T,y,L)},estimateTransactionFee:(L)=>{if(!y)throw new _y("core_wallet_not_keypair_wallet");return _8(T,y,x,L)},sign:(L)=>{if(!y)throw new _y("core_wallet_not_keypair_wallet");if(sy(y))return D8(y,L);throw new _y("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},broadcast:R8,signAndBroadcast:({tx:L,callback:Z,address:J})=>{if(!y)throw new _y("core_wallet_not_keypair_wallet");if(sy(y))return N8(y,L,Z);if(J)return I8({signer:y,address:J,tx:L,callback:Z,api:T});throw new _y("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")}}),O8=({address:T,chain:f})=>{let{prefix:x}=f===ey.Polkadot?ly.DOT:ly.FLIP;return M0(T,x)||M0(T,ly.GENERIC.prefix)};var Pf=E(()=>{Df();z0()});var U0={};Zy(U0,{substrateValidateAddress:()=>O8,isKeyringPair:()=>sy,getSubstrateToolbox:()=>U8,createSubstrateToolbox:()=>H0,createKeyring:()=>B0,SubstrateNetwork:()=>ly,PolkadotToolbox:()=>Of,ChainflipToolbox:()=>kf,BaseSubstrateToolbox:()=>vf});var Y0=E(()=>{Pf();z0()});import{Chain as d,RequestClient as _0,SKConfig as q5,SwapKitError as hy,warnOnce as $f}from"@swapkit/helpers";import{networks as k8}from"bitcoinjs-lib";import OT from"coininfo";async function w8({chain:T,txHash:f}){let x=q5.get("rpcUrls")[T],y=JSON.stringify({jsonrpc:"2.0",method:"sendrawtransaction",params:[f],id:t1()}),X=await _0.post(x,{headers:{"Content-Type":"application/json"},body:y});if(X.error)throw new hy("toolbox_utxo_broadcast_failed",{error:X.error?.message});if(X.result.includes('"code":-26'))throw new hy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return X.result}function R0(T){return`https://api.blockchair.com/${E8(T)}`}function lf(T){switch(T){case d.Bitcoin:return 5;case d.Dogecoin:return 1e4;case d.Litecoin:return 1;case d.Zcash:return 1;default:return 2}}function E8(T){switch(T){case d.BitcoinCash:return"bitcoin-cash";case d.Litecoin:return"litecoin";case d.Dash:return"dash";case d.Dogecoin:return"dogecoin";case d.Zcash:return"zcash";case d.Polkadot:return"polkadot";default:return"bitcoin"}}async function v8(T){try{let{feePerKb:f}=await _0.get(`https://app.bitgo.com/api/v2/${T.toLowerCase()}/tx/fee`),x=f/1000;return Math.max(x,lf(T))}catch(f){return lf(T)}}async function D0(T,f){let x=await _0.get(`${T}${f?`${T.includes("?")?"&":"?"}key=${f}`:""}`);if(!x||x.context.code!==200)throw new hy("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return x.data}async function Ff({address:T,chain:f,apiKey:x}){if(!T)throw new hy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await D0(`${R0(f)}/dashboards/address/${T}?transaction_details=true`,x))[T]}catch(y){return{utxo:[],address:{balance:0,transaction_count:0}}}}async function P8({address:T,chain:f,apiKey:x}){return(await Ff({address:T,chain:f,apiKey:x}))?.address.balance||0}async function Kf({chain:T,apiKey:f,txHash:x}){if(!x)throw new hy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await D0(`${R0(T)}/raw/transaction/${x}`,f))?.[x]?.raw_transaction||""}catch(y){return console.error("Failed to fetch raw transaction:",y),""}}async function l8({chain:T,address:f,apiKey:x,offset:y=0,limit:X=30}){return(await D0(`${R0(T)}/outputs?q=recipient(${f}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${X}&offset=${y}`,x)).map(({is_spent:Q,script_hex:q,block_id:z,transaction_hash:B,index:M,value:W,spending_signature_hex:G})=>({hash:B,index:M,value:W,txHex:G,script_hex:q,is_confirmed:z!==-1,is_spent:Q}))}function V8(T){return T.reduce((f,x)=>f+x.value,0)}function Vf(T,f){let x=[...T].sort((y,X)=>X.value-y.value);if(f){let y=[],X=0;for(let L of x)if(y.push(L),X+=L.value,X>=f)break;return y}return x}async function Af({chain:T,address:f,apiKey:x,targetValue:y,accumulativeValue:X=0,offset:L=0,limit:Z=30}){if(!f)throw new hy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let J=await l8({targetValue:y,chain:T,address:f,apiKey:x,offset:L,limit:Z}),q=J.length<Z,z=J.filter(({is_spent:I})=>!I),B=V8(z),M=X+B,W=y&&M>=y;if(q||W)return Vf(z,y);let G=await Af({chain:T,address:f,apiKey:x,offset:L+Z,limit:Z,accumulativeValue:M,targetValue:y}),Y=[...z,...G];return Vf(Y,y)}catch(J){return console.error("Failed to fetch unspent UTXOs:",J),[]}}async function $8({address:T,chain:f,apiKey:x,fetchTxHex:y=!0,targetValue:X}){let L=await Af({chain:f,address:T,apiKey:x,targetValue:X}),Z=[];for(let{hash:J,index:Q,script_hex:q,value:z}of L){let B;if(y)B=await Kf({txHash:J,chain:f,apiKey:x});Z.push({address:T,hash:J,index:Q,txHex:B,value:z,witnessUtxo:{value:z,script:Buffer.from(q,"hex")}})}return Z}function F8(T){let f=q5.get("apiKeys").blockchair||"";return $f(!f,"No Blockchair API key found. Functionality will be limited."),{broadcastTx:(x)=>w8({txHash:x,chain:T}),getRawTx:(x)=>Kf({txHash:x,chain:T,apiKey:f}),getSuggestedTxFee:()=>v8(T),getBalance:(x)=>P8({address:x,chain:T,apiKey:f}),getAddressData:(x)=>Ff({address:x,chain:T,apiKey:f}),getUtxos:(x)=>$8({...x,chain:T,apiKey:f})}}function K8(T){return T}function Qy(T){let f=q5.get("apis")[T];if(f)return $f(!0,"Using custom UTXO API. Be sure to implement all methods to avoid issues."),f;return F8(T)}function Xy(){return function T(f){switch(f){case d.Bitcoin:return k8.bitcoin;case d.BitcoinCash:return OT.bitcoincash.main.toBitcoinJS();case d.Dash:return OT.dash.main.toBitcoinJS();case d.Litecoin:return OT.litecoin.main.toBitcoinJS();case d.Dogecoin:{let x={private:70615956,public:70617039},y=OT.dogecoin.test;return y.versions.bip32=x,OT.dogecoin.main.toBitcoinJS()}case d.Zcash:{let{isStagenet:x}=q5.get("envs");return x?S8:A8}default:throw new hy("toolbox_utxo_not_supported",{chain:f})}}}var A8,S8;var Sf=E(()=>{dT();A8={messagePrefix:`\x19Zcash Signed Message:
|
|
2
|
+
`,bech32:"zc",bip32:{public:76067358,private:76066276},pubKeyHash:28,scriptHash:28,wif:128},S8={messagePrefix:`\x19Zcash Signed Message:
|
|
3
|
+
`,bech32:"ztestsapling",bip32:{public:70617039,private:70615956},pubKeyHash:29,scriptHash:28,wif:239}});import{SwapKitError as bf}from"@swapkit/helpers";import jf from"bs58check";import hf from"cashaddrjs";function I0(T){try{return z5(T),!0}catch(f){return!1}}function C0(T){return z5(T)?.network}function yT(T){let f=z5(T);if(f?.format==="legacy")return T;return j8(f)}function kT(T){let f=z5(T);return h8(f)}function z5(T){try{let f=u8(T);if(f)return f}catch(f){}try{let f=b8(T);if(f)return f}catch(f){}throw new bf("toolbox_utxo_invalid_address",{address:T})}function u8(T){try{let f=jf.decode(T);if(f.length!==21)throw new bf("toolbox_utxo_invalid_address",{address:T});let x=f[0],y=Array.prototype.slice.call(f,1);switch(x){case S.legacy.mainnet.p2pkh:return{hash:y,format:"legacy",network:"mainnet",type:"p2pkh"};case S.legacy.mainnet.p2sh:return{hash:y,format:"legacy",network:"mainnet",type:"p2sh"};case S.legacy.testnet.p2pkh:return{hash:y,format:"legacy",network:"testnet",type:"p2pkh"};case S.legacy.testnet.p2sh:return{hash:y,format:"legacy",network:"testnet",type:"p2sh"};case S.bitpay.mainnet.p2pkh:return{hash:y,format:"bitpay",network:"mainnet",type:"p2pkh"};case S.bitpay.mainnet.p2sh:return{hash:y,format:"bitpay",network:"mainnet",type:"p2sh"};default:return}}catch(f){return}}function b8(T){if(T.indexOf(":")!==-1)try{return uf(T)}catch(f){}else{let f=["bitcoincash","bchtest","bchreg"];for(let x of f)try{return uf(`${x}:${T}`)}catch(y){}}return}function uf(T){try{let{hash:f,prefix:x,type:y}=hf.decode(T);return{format:"cashaddr",hash:Array.prototype.slice.call(f,0),network:x==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch(f){return}}function j8(T){let f=S.legacy[T.network][T.type],x=Buffer.alloc(1+T.hash.length);return x[0]=f,x.set(T.hash,1),jf.encode(x)}function h8(T){let f=T.network==="mainnet"?"bitcoincash":"bchtest",x=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return hf.encode(f,x,y)}var N0,S;var nf=E(()=>{((x)=>{x.Mainnet="mainnet";x.Testnet="testnet"})(N0||={});S={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{Chain as ny,SwapKitError as n8}from"@swapkit/helpers";var M5=(T)=>{switch(T){case ny.Bitcoin:case ny.BitcoinCash:return 550;case ny.Dash:case ny.Litecoin:return 5500;case ny.Dogecoin:return 1e5;case ny.Zcash:return 546;default:throw new n8("toolbox_utxo_not_supported",{chain:T})}},$y=({inputs:T,outputs:f,feeRate:x=1,chain:y=ny.Bitcoin})=>{let X=Math.ceil(x),L=T[0]&&"address"in T[0]&&T[0].address?ET(T[0].address):"P2PKH",Z=T.filter((M)=>Vy(M)*X<=M.value),J=B5+f.reduce((M,W)=>M+wT(W,L),0),Q=f.reduce((M,W)=>M+W.value,0),q=J*X,z=0,B=[];for(let M of Z){let W=Vy(M),G=X*W;q+=G,z+=M.value,B.push(M);let Y=q+Q;if(z<Y)continue;let I=z-Y,V=X*wT({address:"",value:0},L);if(I>V){let $=V+q,j=z-(Q+$);if(j>Math.max(Vy({})*X,M5(y)))return{inputs:B,outputs:f.concat({value:j,address:""}),fee:$}}return{inputs:B,outputs:f,fee:q}}return{fee:X*TT({inputs:T,outputs:f,feeRate:X})}};var pf=E(()=>{fT()});import{SwapKitError as p8}from"@swapkit/helpers";import{opcodes as o8,script as m8}from"bitcoinjs-lib";function Fy(T){let f=Buffer.from(T,"utf8");return m8.compile([o8.OP_RETURN,f])}var c8=1000,B5=10,of=10,g8=41,t8=107,G5,W5,vT,ET=(T)=>{if(T.startsWith("bc1")||T.startsWith("ltc1"))return"P2WPKH";if(T.startsWith("1")||T.startsWith("3")||T.startsWith("L")||T.startsWith("M")||T.startsWith("X")||T.startsWith("D")||T.startsWith("bitcoincash:q")||T.startsWith("q"))return"P2PKH";throw new p8("toolbox_utxo_invalid_address",{address:T})},TT=({inputs:T,outputs:f,feeRate:x})=>{let y=T[0]&&"address"in T[0]&&T[0].address?ET(T[0].address):"P2PKH",X=T.filter((Z)=>Z.value>=W5["type"in Z?Z.type:"P2PKH"]*Math.ceil(x)).reduce((Z,J)=>Z+Vy(J),0),L=f?.reduce((Z,J)=>Z+wT(J),0)||vT[y];return B5+X+L},Vy=(T)=>{if("type"in T)return W5[T.type];if("address"in T&&T.address)return W5[ET(T.address)];return g8+t8},wT=(T,f)=>{if(T?.script)return of+T.script.length+(T.script.length>=74?2:1);if(f)return vT[f];return vT.P2PKH};var mf=E(()=>{((x)=>{x.P2PKH="P2PKH";x.P2WPKH="P2WPKH"})(G5||={});W5={["P2PKH"]:148,["P2WPKH"]:68},vT={["P2PKH"]:34,["P2WPKH"]:31}});var fT=E(()=>{Sf();nf();pf();mf()});import d8 from"@bitcoinerlab/secp256k1";import{HDKey as i8}from"@scure/bip32";import{mnemonicToSeedSync as r8}from"@scure/bip39";import{Chain as k0,FeeOption as a8,NetworkDerivationPath as s8,SKConfig as cf,SwapKitError as e8,derivationPathToString as yL,updateDerivationPath as TL}from"@swapkit/helpers";import{hash160 as fL}from"bitcoinjs-lib/src/crypto";import gf from"bs58check";import{ECPairFactory as XL}from"ecpair";import{P as O0,match as LL}from"ts-pattern";function ZL(T,f=!1){let x=fL(T),y=f?Buffer.from([28,186]):Buffer.from([28,184]),X=Buffer.concat([y,x]);return gf.encode(X)}function H5(T){try{if(T.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let f=T.startsWith("t1"),x=T.startsWith("t3");if(!(f||x))return!1;let{isStagenet:y}=cf.get("envs");if(f&&y||x&&!y)return!1;return JL(T,tf)}catch{return!1}}function JL(T,f){try{let x=gf.decode(T);if(x.length<21)return!1;let y=x[0];return y===f.pubKeyHash||y===f.scriptHash}catch{return!1}}async function qL({phrase:T,derivationPathString:f}){let x=r8(T),X=i8.fromMasterSeed(x).derive(f);if(!X.privateKey)throw new Error("Unable to derive private key");let L=QL.fromPrivateKey(Buffer.from(X.privateKey),{network:tf}),{isStagenet:Z}=cf.get("envs"),J=ZL(L.publicKey,Z);return{getAddress(){return Promise.resolve(J)},signTransaction(Q){for(let q=0;q<Q.inputCount;q++)Q.signInput(q,L);return Promise.resolve(Q)}}}async function w0(T){let f=await LL(T).with({signer:O0.not(O0.nullish)},({signer:J})=>Promise.resolve(J)).with({phrase:O0.string},({phrase:J,derivationPath:Q,index:q=0})=>{let z=Q||s8[k0.Zcash]||[44,133,0,0,0],B=TL(z,{index:q}),M=yL(B);return qL({phrase:J,derivationPathString:M})}).otherwise(()=>Promise.resolve(void 0)),{getFeeRates:x,broadcastTx:y,...X}=await py({chain:k0.Zcash,signer:f});function L(J){return J.getAddress()}async function Z({recipient:J,assetValue:Q,feeOptionKey:q=a8.Fast,...z}){let B=await f?.getAddress();if(!(f&&B))throw new e8("toolbox_utxo_no_signer");let M=z.feeRate||(await x())[q],W={...z,assetValue:Q,feeRate:M,recipient:J,sender:B},{psbt:G}=await X.createTransaction(W),Y=await f.signTransaction(G);Y.finalizeAllInputs();let I=Y.extractTransaction().toHex();return y(I)}return{...X,broadcastTx:y,getFeeRates:x,transfer:Z,getAddressFromKeys:L,validateAddress:H5}}var xL,tf,QL;var U5=E(()=>{fT();PT();xL=k0.Zcash,tf=Xy()(xL);QL=XL(d8)});import{AssetValue as E0,Chain as qy,DerivationPath as zL,FeeOption as Ry,NetworkDerivationPath as ML,SwapKitError as Dy,SwapKitNumber as BL,applyFeeMultiplier as df,derivationPathToString as GL,updateDerivationPath as WL}from"@swapkit/helpers";import{Psbt as HL,address as UL,initEccLib as sf,payments as rf}from"bitcoinjs-lib";import{ECPairFactory as YL}from"ecpair";import v0 from"@bitcoinerlab/secp256k1";import{ECPair as _L,HDNode as RL}from"@psf/bitcoincashjs-lib";import{HDKey as DL}from"@scure/bip32";import{mnemonicToSeedSync as af}from"@scure/bip39";function NL({inputs:T,outputs:f,chain:x,psbt:y,sender:X,compiledMemo:L}){for(let Z of T){let J=!!Z.witnessUtxo&&!lT.includes(x)&&{witnessUtxo:Z.witnessUtxo},Q=lT.includes(x)&&{nonWitnessUtxo:Z.txHex?Buffer.from(Z.txHex,"hex"):void 0};y.addInput({hash:Z.hash,index:Z.index,...J,...Q})}for(let Z of f){let J="address"in Z&&Z.address?Z.address:X,Q=Z.script;if(Q&&!L)continue;let q=Q?{script:L,value:0}:{address:J,value:Z.value};sf(v0),y.addOutput(q)}return{psbt:y,inputs:T}}async function ef({assetValue:T,recipient:f,memo:x,feeRate:y,sender:X,fetchTxHex:L=!1}){let Z=T.chain,J=x?await Fy(x):null,Q=await fX({assetValue:T,recipient:f,memo:x,sender:X,fetchTxHex:L}),{inputs:q,outputs:z}=$y({...Q,feeRate:y,chain:Z});if(!(q&&z))throw new Dy("toolbox_utxo_insufficient_balance",{sender:X,assetValue:T});let B=await Xy(),M=new HL({network:B(Z)});if(Z===qy.Dogecoin)M.setMaximumFeeRate(650000000);let{psbt:W,inputs:G}=await NL({inputs:q,outputs:z,chain:Z,psbt:M,sender:X,compiledMemo:J});return{psbt:W,utxos:Q.inputs,inputs:G}}async function yX(){let T=await Xy();return function f({address:x,chain:y}){if(y===qy.BitcoinCash)return oy(x);if(y===qy.Zcash)return H5(x);try{return sf(v0),UL.toOutputScript(x,T(y)),!0}catch(X){return!1}}}async function IL({chain:T,phrase:f,derivationPath:x}){let y=(await VT(T))({phrase:f,derivationPath:x});async function X(Z){return await Z.signAllInputs(y),Z}async function L(){return(await P0(T))(y)}return{getAddress:L,signTransaction:X}}async function py({chain:T,...f}){let x="phrase"in f?f.phrase:void 0,y="index"in f?f.index||0:0,X=GL("derivationPath"in f&&f.derivationPath?f.derivationPath:WL(ML[T],{index:y})),L=x?await IL({chain:T,phrase:x,derivationPath:X}):("signer"in f)?f.signer:void 0;function Z(){return Promise.resolve(L?.getAddress())}let J=await P0(T),Q=await yX(),q=await VT(T);return{accumulative:$y,calculateTxSize:TT,getAddressFromKeys:J,getAddress:Z,validateAddress:(z)=>Q({address:z,chain:T}),broadcastTx:(z)=>Qy(T).broadcastTx(z),createTransaction:ef,createKeysForPath:q,getFeeRates:()=>$T(T),getInputsOutputsFee:TX,transfer:kL(L),getPrivateKeyFromMnemonic:(z)=>{return q(z).toWIF()},getBalance:tT(T),estimateTransactionFee:OL(T),estimateMaxSendableAmount:CL(T)}}async function TX({assetValue:T,feeOptionKey:f=Ry.Fast,feeRate:x,memo:y,sender:X,recipient:L}){let Z=T.chain,J=await fX({assetValue:T,sender:X,memo:y,recipient:L}),Q=x?Math.floor(x):(await $T(Z))[f];return $y({...J,feeRate:Q,chain:Z})}function CL(T){return async function f({from:x,memo:y,feeRate:X,feeOptionKey:L=Ry.Fast,recipients:Z=1}){let J=await Qy(T).getAddressData(x),Q=X?Math.ceil(X):(await $T(T))[L],q=J?.utxo.map((G)=>({...G,type:"P2PKH",hash:""})).filter((G)=>G.value>Math.max(M5(T),Vy(G)*Q));if(!q?.length)return E0.from({chain:T});let z=E0.from({chain:T,value:q.reduce((G,Y)=>G+Y.value,0)}),B=typeof Z==="number"?Array.from({length:Z},()=>({address:x,value:0})):Z;if(y){let G=await Fy(y);B.push({address:x,script:G,value:0})}let W=TT({inputs:q,outputs:B,feeRate:Q})*Q;return z.sub(W)}}function OL(T){return async(f)=>{let x=await TX(f);return E0.from({chain:T,value:BL.fromBigInt(BigInt(x.fee),8).getValue("string")})}}async function VT(T){let f=await Xy();switch(T){case qy.BitcoinCash:return function x({phrase:y,derivationPath:X=`${zL.BCH}/0`,wif:L}){let Z=f(T);if(L)return _L.fromWIF(L,Z);if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return RL.fromSeedBuffer(Buffer.from(af(y)),Z).derivePath(X).keyPair};case qy.Bitcoin:case qy.Dogecoin:case qy.Litecoin:case qy.Zcash:case qy.Dash:return function x({phrase:y,wif:X,derivationPath:L}){if(!(X||y))throw new Dy("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let Z=YL(v0),J=f(T);if(X)return Z.fromWIF(X,J);let Q=af(y),q=DL.fromMasterSeed(Q,J).derive(L);if(!q.privateKey)throw new Dy("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return Z.fromPrivateKey(Buffer.from(q.privateKey),{network:J})};default:throw new Dy("toolbox_utxo_not_supported",{chain:T})}}async function P0(T){let f=await Xy();return function x(y){if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let X=lT.includes(T)?rf.p2pkh:rf.p2wpkh,{address:L}=X({pubkey:y.publicKey,network:f(T)});if(!L)throw new Dy("toolbox_utxo_invalid_address",{error:"Address not defined"});return L}}function kL(T){return async function f({memo:x,recipient:y,feeOptionKey:X,feeRate:L,assetValue:Z}){let J=await T?.getAddress(),Q=Z.chain;if(!(T&&J))throw new Dy("toolbox_utxo_no_signer");if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let q=L||(await $T(Q))[X||Ry.Fast],{psbt:z}=await ef({recipient:y,feeRate:q,sender:J,assetValue:Z,memo:x}),B=await T.signTransaction(z);return B.finalizeAllInputs(),Qy(Q).broadcastTx(B.extractTransaction().toHex())}}async function $T(T){let f=await Qy(T).getSuggestedTxFee();return{[Ry.Average]:f,[Ry.Fast]:df(f,Ry.Fast),[Ry.Fastest]:df(f,Ry.Fastest)}}async function fX({assetValue:T,recipient:f,memo:x,sender:y,fetchTxHex:X=!1}){let L=T.chain,Z=(await $T(L))[Ry.Fastest],J=X||lT.includes(L),Q=T.getBaseValue("number"),q=Math.ceil(Q+Z*5000);return{inputs:await Qy(L).getUtxos({address:y,fetchTxHex:J,targetValue:q}),outputs:[{address:f,value:Q},...x?[{address:"",script:await Fy(x),value:0}]:[]]}}var lT;var PT=E(()=>{dT();fT();FT();U5();lT=[qy.Dash,qy.Dogecoin]});import{Transaction as wL,TransactionBuilder as EL,address as vL}from"@psf/bitcoincashjs-lib";import{Chain as PL,FeeOption as lL,NetworkDerivationPath as VL,SwapKitError as XT,derivationPathToString as $L,updateDerivationPath as FL}from"@swapkit/helpers";import{Psbt as KL}from"bitcoinjs-lib";function LT(T){return T.replace(/(bchtest:|bitcoincash:)/,"")}function oy(T){let f=LT(T);return I0(f)&&C0(f)==="mainnet"}function my(T){return LT(kT(T))}async function AL(T){async function f({builder:y,utxos:X}){return X.forEach((L,Z)=>{y.sign(Z,T,void 0,65,L.witnessUtxo?.value)}),y.build()}return{getAddress:()=>{let y=T.getAddress(0);return Promise.resolve(my(y))},signTransaction:f}}async function l0(T){let f="phrase"in T?T.phrase:void 0,x="index"in T?T.index||0:0,y=$L("derivationPath"in T&&T.derivationPath?T.derivationPath:FL(VL[zy],{index:x})),X=f?(await VT(zy))({phrase:f,derivationPath:y}):void 0,L=X?await AL(X):("signer"in T)?T.signer:void 0;function Z(){return Promise.resolve(L?.getAddress())}let{getBalance:J,getFeeRates:Q,broadcastTx:q,...z}=await py({chain:zy});function B(M,W=!0){return J(LT(kT(M)))}return{...z,getAddress:Z,broadcastTx:q,createTransaction:XX,buildTx:uL,getAddressFromKeys:bL,getBalance:B,getFeeRates:Q,stripPrefix:LT,stripToCashAddress:my,validateAddress:oy,transfer:SL({getFeeRates:Q,broadcastTx:q,signer:L})}}async function XX({assetValue:T,recipient:f,memo:x,feeRate:y,sender:X}){if(!oy(f))throw new XT("toolbox_utxo_invalid_address",{address:f});let L=Math.ceil(T.getBaseValue("number")+y*7500),Z=await Qy(zy).getUtxos({address:my(X),fetchTxHex:!0,targetValue:L}),J=x?await Fy(x):null,Q=[];Q.push({address:f,value:T.getBaseValue("number")});let{inputs:q,outputs:z}=$y({inputs:Z,outputs:Q,feeRate:y,chain:zy});if(!(q&&z))throw new XT("toolbox_utxo_insufficient_balance",{sender:X,assetValue:T});let B=await Xy(),M=new EL(B(zy));await Promise.all(q.map(async(W)=>{let G=await Qy(zy).getRawTx(W.hash);M.addInput(wL.fromBuffer(Buffer.from(G,"hex")),W.index)}));for(let W of z){let G="address"in W&&W.address?W.address:yT(X),Y=await Xy(),I=vL.toOutputScript(yT(G),Y(zy));M.addOutput(I,W.value)}if(J)M.addOutput(J,0);return{builder:M,utxos:q}}function SL({broadcastTx:T,getFeeRates:f,signer:x}){return async function y({recipient:X,assetValue:L,feeOptionKey:Z=lL.Fast,...J}){let Q=await x?.getAddress();if(!(x&&Q))throw new XT("toolbox_utxo_no_signer");if(!X)throw new XT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let q=J.feeRate||(await f())[Z],{builder:z,utxos:B}=await XX({...J,assetValue:L,feeRate:q,recipient:X,sender:Q}),W=(await x.signTransaction({builder:z,utxos:B})).toHex();return T(W)}}async function uL({assetValue:T,recipient:f,memo:x,feeRate:y,sender:X,setSigHashType:L}){let Z=kT(f);if(!oy(Z))throw new XT("toolbox_utxo_invalid_address",{address:Z});let J=Math.ceil(T.getBaseValue("number")+y*7500),Q=await Qy(zy).getUtxos({address:my(X),fetchTxHex:!1,targetValue:J}),q=Number(y.toFixed(0)),z=x?await Fy(x):null,B=[];if(B.push({address:yT(f),value:T.getBaseValue("number")}),z)B.push({script:z,value:0});let{inputs:M,outputs:W}=$y({inputs:Q,outputs:B,feeRate:q,chain:zy});if(!(M&&W))throw new XT("toolbox_utxo_insufficient_balance",{sender:X,assetValue:T});let G=await Xy(),Y=new KL({network:G(zy)});for(let{hash:I,index:V,witnessUtxo:$}of M)Y.addInput({hash:I,index:V,witnessUtxo:$,sighashType:L?65:void 0});for(let I of W){let V="address"in I&&I.address?I.address:yT(X),$=I.script?z?{script:z,value:0}:void 0:{address:V,value:I.value};if($)Y.addOutput($)}return{psbt:Y,utxos:Q,inputs:M}}function bL(T){let f=T.getAddress(0);return my(f)}var zy;var FT=E(()=>{fT();PT();zy=PL.BitcoinCash});import{Chain as xT,SwapKitError as jL}from"@swapkit/helpers";async function hL(T,f){switch(T){case xT.BitcoinCash:return await l0(f||{});case xT.Zcash:return await w0(f);case xT.Bitcoin:case xT.Dogecoin:case xT.Litecoin:case xT.Dash:return await py({chain:T,...f});default:throw new jL("toolbox_utxo_not_supported",{chain:T})}}var LX=E(()=>{FT();PT();U5();FT()});var V0={};Zy(V0,{validateZcashAddress:()=>H5,toLegacyAddress:()=>yT,toCashAddress:()=>kT,stripToCashAddress:()=>my,stripPrefix:()=>LT,nonSegwitChains:()=>lT,isValidAddress:()=>I0,getUtxoToolbox:()=>hL,getUtxoNetwork:()=>Xy,getUtxoApi:()=>Qy,getUTXOAddressValidator:()=>yX,getScriptTypeForAddress:()=>ET,getOutputSize:()=>wT,getInputSize:()=>Vy,getDustThreshold:()=>M5,getCreateKeysForPath:()=>VT,detectAddressNetwork:()=>C0,createZcashToolbox:()=>w0,createUTXOToolbox:()=>py,createCustomUtxoApi:()=>K8,createBCHToolbox:()=>l0,compileMemo:()=>Fy,calculateTxSize:()=>TT,bchValidateAddress:()=>oy,addressFromKeysGetter:()=>P0,accumulative:()=>$y,UtxoNetwork:()=>N0,UTXOScriptType:()=>G5,TX_OVERHEAD:()=>B5,OutputSizes:()=>vT,OP_RETURN_OVERHEAD:()=>of,MIN_TX_FEE:()=>c8,InputSizes:()=>W5});var $0=E(()=>{LX();FT();PT();U5();fT()});import{AssetValue as F0,BaseDecimal as JX,Chain as ZT,DerivationPath as nL,NetworkDerivationPath as pL,SKConfig as oL,SwapKitError as gy,derivationPathToString as mL,updateDerivationPath as cL}from"@swapkit/helpers";import{P as xX}from"ts-pattern";import{match as gL}from"ts-pattern";async function tL(T){try{let f=await fetch(`https://lite-api.jup.ag/tokens/v1/token/${T}`);if(!f.ok)return null;return await f.json()}catch{return null}}async function dL(T){let f=await cy(),{PublicKey:x}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),X=new x(T),L=[],Z=await f.getBalance(X);if(Z>0)L.push(F0.from({chain:ZT.Solana,value:Z,fromBaseDecimal:JX[ZT.Solana]}));let J=await f.getParsedTokenAccountsByOwner(X,{programId:y});for(let{account:Q}of J.value){let q=Q.data.parsed.info,z=q.mint,B=q.tokenAmount.amount;if(Number(B)===0)continue;let M=await tL(z),W=M?.symbol||"UNKNOWN",G=M?.decimals||q.tokenAmount.decimals;L.push(F0.from({asset:`${ZT.Solana}.${W}-${z}`,value:B,fromBaseDecimal:G}))}return L}async function S0(){let{PublicKey:T}=await import("@solana/web3.js");return(f)=>{try{let x=new T(f);return T.isOnCurve(x.toBytes())}catch(x){return!1}}}async function iL(T){let f=T&&"index"in T?T.index||0:0,x=mL(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:cL(pL[ZT.Solana],{index:f})),y=await gL(T).with({phrase:xX.string},({phrase:L})=>A0({phrase:L,derivationPath:x})).with({signer:xX.any},({signer:L})=>L).otherwise(()=>{return});function X(){return y?.publicKey?ZX(y.publicKey):""}return{getConnection:cy,getAddress:X,createKeysForPath:A0,getAddressFromPubKey:ZX,getPubkeyFromAddress:b0,createTransaction:u0(cy),createTransactionFromInstructions:eL,getBalance:(L)=>{let Z=L||X();if(!Z)throw new gy("core_wallet_connection_not_found");return dL(Z)},transfer:yx(cy,y),broadcastTransaction:K0(cy),getAddressValidator:S0,signTransaction:Tx(cy,y),estimateTransactionFee:rL(cy)}}function rL(T){return async({recipient:f,assetValue:x,memo:y,isProgramDerivedAddress:X,sender:L})=>{let Z=await T(),Q=(await u0(T)({recipient:f,assetValue:x,memo:y,isProgramDerivedAddress:X,sender:L})).compileMessage(),q=await Z.getFeeForMessage(Q);if(q.value===null)throw new gy("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");return F0.from({chain:ZT.Solana,value:q.value,fromBaseDecimal:JX[ZT.Solana]})}}async function cy(){let{Connection:T}=await import("@solana/web3.js");return new T(oL.get("rpcUrls").SOL,"confirmed")}function aL(T){return async({assetValue:f,recipient:x,sender:y,isProgramDerivedAddress:X})=>{let L=await T(),Z=await b0(y);if(f.isGasAsset){let{Transaction:J,SystemProgram:Q,PublicKey:q}=await import("@solana/web3.js");return new J().add(Q.transfer({fromPubkey:Z,lamports:f.getBaseValue("number"),toPubkey:new q(x)}))}if(f.address)return sL({amount:f.getBaseValue("number"),connection:L,decimals:f.decimal,from:Z,recipient:x,tokenAddress:f.address,isProgramDerivedAddress:X});return}}async function sL({tokenAddress:T,recipient:f,from:x,connection:y,amount:X,decimals:L,isProgramDerivedAddress:Z}){let{getAssociatedTokenAddress:J,getAccount:Q,createAssociatedTokenAccountInstruction:q,createTransferCheckedInstruction:z}=await import("@solana/spl-token"),{Transaction:B,PublicKey:M}=await import("@solana/web3.js"),W=new B,G=new M(T),Y=await J(G,x),I=new M(f),V=await J(G,I,Z),$=!1;try{await Q(y,V),$=!0}catch(j){}if(!$)W.add(q(x,V,I,G));return W.add(z(Y,G,V,x,X,L)),W}function u0(T){return async({recipient:f,assetValue:x,memo:y,isProgramDerivedAddress:X,sender:L})=>{let{createMemoInstruction:Z}=await import("@solana/spl-memo"),J=await b0(L),Q=await S0();if(!(X||Q(f)))throw new gy("core_transaction_invalid_recipient_address");let q=await T(),z=await aL(T)({assetValue:x,recipient:f,sender:L,isProgramDerivedAddress:X});if(!z)throw new gy("core_transaction_invalid_sender_address");if(y)z.add(Z(y));let B=await q.getLatestBlockhash();return z.recentBlockhash=B.blockhash,z.feePayer=J,z}}async function eL({instructions:T}){let{Transaction:f}=await import("@solana/web3.js"),x=new f().add(...T);if(!x)throw new gy("core_transaction_invalid_sender_address");return x}function yx(T,f){return async({recipient:x,assetValue:y,memo:X,isProgramDerivedAddress:L})=>{if(!f)throw new gy("core_transaction_invalid_sender_address");let Z=f.publicKey?.toString()??(await f.connect()).publicKey.toString(),J=await u0(T)({recipient:x,assetValue:y,memo:X,isProgramDerivedAddress:L,sender:Z});if("connect"in f){let Q=await f.signTransaction(J);return K0(T)(Q)}return J.sign(f),K0(T)(J)}}function K0(T){return async(f)=>{return(await T()).sendRawTransaction(f.serialize())}}function Tx(T,f){return async(x)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!f)throw new gy("toolbox_solana_no_signer");if(!(x instanceof y)){let L=await(await T()).getLatestBlockhash();x.recentBlockhash=L.blockhash,x.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(x);return await x.sign([f]),x}}async function A0({phrase:T,derivationPath:f=nL.SOL}){let{HDKey:x}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:y}=await import("@scure/bip39"),{Keypair:X}=await import("@solana/web3.js"),L=y(T),Z=x.fromMasterSeed(L);return X.fromSeed(Z.derive(f,!0).privateKey)}function ZX(T){return T.toString()}async function b0(T){let{PublicKey:f}=await import("@solana/web3.js");return new f(T)}var QX=()=>{};var j0={};Zy(j0,{getSolanaToolbox:()=>iL,getSolanaAddressValidator:()=>S0,createKeysForPath:()=>A0});var h0=E(()=>{QX()});import{SwapKitError as fx,derivationPathToString as Xx}from"@swapkit/helpers";import{KeyPairSigner as Lx}from"near-api-js";async function KT(){let{validateAccountId:T}=await import("near-sdk-js");return(f)=>{try{return T(f)}catch{let x=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return f.length>=2&&f.length<=64&&x.test(f)}}}async function Y5(T){let{parseSeedPhrase:f}=await import("near-seed-phrase"),{KeyPair:x}=await import("near-api-js"),y=T.index||0,X=T.derivationPath?Xx(T.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:L}=f(T.phrase,X),Z=x.fromString(L);return zX(Z)}async function n0(T){let{KeyPair:f}=await import("near-api-js/lib/utils"),x=f.fromString(T);return zX(x)}function zX(T){return new qX(T)}async function _5(T,f){let y=(await T.query({request_type:"view_access_key_list",finality:"final",account_id:f})).keys.find((J)=>J.access_key.permission==="FullAccess");if(!y)throw new fx("toolbox_near_invalid_address");let{utils:X}=await import("near-api-js"),L=X.PublicKey.fromString(y.public_key),Z=y.access_key.nonce||0;return{publicKey:L,nonce:Z}}var qX;var p0=E(()=>{qX=class qX extends Lx{#y;constructor(T){super(T);this.#y=T}getAddress(){let T=this.#y.getPublicKey(),f=Buffer.from(T.data).toString("hex");return Promise.resolve(f)}}});function o0(T){return"recipient"in T&&"amount"in T&&!("contractId"in T)}function m0(T){return"contractId"in T&&"methodName"in T}function c0(T){return"actions"in T}function g0(T){return"newAccountId"in T}function t0(T){return"contractCode"in T}function d0(T){return"customEstimator"in T}function i0(T){let f=0;for(let x of T)switch(x.enum){case"transfer":f+=Number(i.SIMPLE_TRANSFER);break;case"functionCall":f+=Number(i.CONTRACT_CALL);break;case"createAccount":f+=Number(i.ACCOUNT_CREATION);break;case"deployContract":f+=Number(i.CONTRACT_DEPLOYMENT);break;case"addKey":f+=Number(i.ACCESS_KEY_ADDITION);break;case"deleteKey":f+=Number(i.ACCESS_KEY_DELETION);break;case"stake":f+=Number(i.STAKE);break;default:f+=Number(i.CONTRACT_CALL)}return f.toString()}function r0(T){if(T==="ft_transfer"||T==="ft_transfer_call")return i.TOKEN_TRANSFER;if(T==="storage_deposit")return i.STORAGE_DEPOSIT;return i.CONTRACT_CALL}function xx(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function Zx(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var i;var a0=E(()=>{i={SIMPLE_TRANSFER:"1",TOKEN_TRANSFER:"100",CONTRACT_CALL:"100",ACCOUNT_CREATION:"30",CONTRACT_DEPLOYMENT:"200",ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",STAKE:"10",STORAGE_DEPOSIT:"100"}});async function R5({account:T,contractId:f,viewMethods:x,changeMethods:y}){let{Contract:X}=await import("near-api-js");return new X(T,f,{viewMethods:x,changeMethods:y,useLocalViewExecution:!0})}async function s0({contractId:T,account:f}){let x=(await import("bn.js")).default,y=await R5({account:f,contractId:T,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"],changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"]}),X=async(L)=>{if(!await y.storage_balance_of({account_id:L})){let Q=(await y.storage_balance_bounds())?.min||"1250000000000000000000";await y.storage_deposit({account_id:L},new x("100000000000000"),new x(Q))}};return{transfer:async(L,Z,J)=>{return await X(L),y.ft_transfer({receiver_id:L,amount:Z,memo:J},new x("100000000000000"),new x("1"))},transferCall:async(L,Z,J,Q)=>{return await X(L),y.ft_transfer_call({receiver_id:L,amount:Z,memo:Q,msg:J},new x("100000000000000"),new x("1"))},balanceOf:(L)=>y.ft_balance_of({account_id:L}),totalSupply:()=>y.ft_total_supply(),metadata:()=>y.ft_metadata(),storageBalanceOf:(L)=>y.storage_balance_of({account_id:L}),storageDeposit:(L,Z)=>y.storage_deposit({account_id:L},new x("100000000000000"),new x(Z||"1250000000000000000000")),ensureStorage:X,contract:y}}import{AssetValue as D5,BaseDecimal as N5,Chain as Ny,SKConfig as Jx,SwapKitError as t}from"@swapkit/helpers";async function Qx(T){let{P:f,match:x}=await import("ts-pattern"),{providers:y}=await import("near-api-js"),X=await x(T).with({phrase:f.string},async(k)=>{return await Y5(k)}).with({signer:f.any},({signer:k})=>k).otherwise(()=>{return}),L=Jx.get("rpcUrls")[Ny.Near],Z=new y.JsonRpcProvider({url:L});async function J(k){let{Account:U}=await import("near-api-js"),N=k||await Q();return new U(N,Z,X)}async function Q(){if(!X)throw new t("toolbox_near_no_signer");return await X.getAddress()}async function q(k){if(!X)throw new t("toolbox_near_no_signer");let{recipient:U,assetValue:N}=k;if(!(await KT())(U))throw new t("toolbox_near_invalid_address");let v=await J();if(N.isGasAsset===!1){let w=N.address;if(!w)throw new t("toolbox_near_missing_contract_address");let l=N.getBaseValue("string");return V({contractId:w,methodName:"ft_transfer",args:{receiver_id:U,amount:l,memo:k.memo}})}try{let w=N.getBaseValue("string");return(await v.transfer({receiverId:U,amount:w})).transaction_outcome.id}catch(w){throw new t("toolbox_near_transfer_failed",{error:w})}}async function z(k){let{recipient:U,assetValue:N,memo:O,feeRate:v,attachedDeposit:w,sender:l}=k,h=await KT();if(!h(U))throw new t("toolbox_near_invalid_address",{address:U});if(!h(l))throw new t("toolbox_near_invalid_address",{address:l});if(!N.isGasAsset){let bT=N.address;if(!bT)throw new t("toolbox_near_missing_contract_address");return B({sender:l,contractId:bT,methodName:"ft_transfer",args:{receiver_id:U,amount:N.getBaseValue("string"),memo:O||null},gas:v.toString()||"100000000000000",attachedDeposit:"1"})}let{publicKey:A,nonce:b}=await _5(Z,l),e=N.getBaseValue("bigint"),{SCHEMA:s}=await import("near-api-js/lib/transaction"),{transactions:Ly,utils:xy}=await import("near-api-js"),Ay=[Ly.transfer(e)];if(O&&w)Ay.push(Ly.functionCall("memo",{memo:O},BigInt(v),BigInt(w)));let AT=await Z.block({finality:"final"}),ST=xy.serialize.base_decode(AT.header.hash),ty=Ly.createTransaction(l,A,U,b,Ay,ST),uT=xy.serialize.serialize(s.Transaction,ty);return{serialized:Buffer.from(uT).toString("base64"),publicKey:A.toString(),details:{signerId:l,nonce:b,blockHash:xy.serialize.base_encode(ST)}}}async function B(k){let{sender:U}=k,{publicKey:N,nonce:O}=await _5(Z,U),{SCHEMA:v}=await import("near-api-js/lib/transaction"),{transactions:w,utils:l}=await import("near-api-js"),h=await Z.block({finality:"final"}),A=l.serialize.base_decode(h.header.hash),b=[w.functionCall(k.methodName,Buffer.from(JSON.stringify(k.args)),BigInt(k.gas),BigInt(k.attachedDeposit))],e=w.createTransaction(U,N,k.contractId,O,b,A),s=l.serialize.serialize(v.Transaction,e);return{serialized:Buffer.from(s).toString("base64"),publicKey:N.toString(),details:{signerId:U,receiverId:k.contractId,methodName:k.methodName,nonce:O,blockHash:l.serialize.base_encode(A)}}}async function M(k){if(!X)throw new t("toolbox_near_no_signer");let[U,N]=await X.signTransaction(k);return N}async function W(k){return(await Z.sendTransaction(k)).transaction.hash}async function G(k){if("assetValue"in k){let v=BigInt("115123062500")+BigInt("108059500000"),w=await Y(),l=v*BigInt(w.toString());return D5.from({chain:Ny.Near,value:l.toString(),fromBaseDecimal:N5[Ny.Near]})}let U=X?await J():void 0;return o(k,U)}async function Y(){try{return await Z.query({request_type:"call_function",finality:"final",account_id:"system",method_name:"gas_price",args_base64:""})}catch{return"100000000"}}async function I(k,U,N){if(!X)throw new t("toolbox_near_no_signer");let O=await J(),{utils:v}=await import("near-api-js"),w=v.format.parseNearAmount(N)||"0";return(await O.createAccount(k,v.PublicKey.fromString(U),BigInt(w))).transaction.hash}async function V(k){try{if(!X)throw new t("toolbox_near_no_signer");let{transactions:U}=await import("near-api-js"),{contractId:N,methodName:O,args:v,deposit:w}=k,l=await J(),h=await o({methodName:O,args:v||{},contractId:N}),A=U.functionCall(O,v||{},h.getBaseValue("bigint"),BigInt(w||"0"));return(await l.signAndSendTransaction({receiverId:N,actions:[A]})).transaction_outcome.id}catch(U){throw new t("toolbox_near_transfer_failed",{error:U})}}async function $(k){let U=await J();return R5({account:U,contractId:k.contractId,viewMethods:k.viewMethods,changeMethods:k.changeMethods})}async function j(k){if(!X)throw new t("toolbox_near_no_signer");if(k.actions.length===0)throw new t("toolbox_near_empty_batch");return(await(await J()).signAndSendTransaction({receiverId:k.receiverId,actions:k.actions})).transaction.hash}async function u(k){let U=await J();return s0({contractId:k,account:U})}async function c(k){try{let U=await J(k),N;try{let O=await U.getBalance();N=D5.from({chain:Ny.Near,value:O,fromBaseDecimal:N5[Ny.Near]})}catch{N=D5.from({chain:Ny.Near,value:"0",fromBaseDecimal:N5[Ny.Near]})}return[N]}catch(U){throw new t("toolbox_near_balance_failed",{error:U})}}async function o(k,U){let N=await x(k).when(o0,()=>i.SIMPLE_TRANSFER).when(m0,(l)=>r0(l.methodName)).when(c0,(l)=>i0(l.actions)).when(g0,()=>i.ACCOUNT_CREATION).when(t0,()=>i.CONTRACT_DEPLOYMENT).when(d0,(l)=>{if(!U)throw new t("toolbox_near_no_account");return l.customEstimator(U)}).otherwise(()=>{throw new t("toolbox_near_invalid_gas_params")}),O=await a(),w=BigInt(N)*BigInt(1000000000000)*BigInt(O);return D5.from({chain:Ny.Near,value:w,fromBaseDecimal:N5[Ny.Near]})}async function a(){try{return(await Z.gasPrice(null)).gas_price||"100000000"}catch(k){return"100000000"}}return{getAddress:Q,getPublicKey:async()=>X?(await X.getPublicKey()).toString():"",provider:Z,transfer:q,createTransaction:z,createContractFunctionCall:B,estimateTransactionFee:G,broadcastTransaction:W,signTransaction:M,getBalance:c,validateAddress:await KT(),getSignerFromPhrase:(k)=>Y5(k),getSignerFromPrivateKey:n0,callFunction:V,createSubAccount:I,createContract:$,executeBatchTransaction:j,nep141:u,getGasPrice:a,estimateGas:o}}var e0=E(()=>{p0();a0()});var MX=E(()=>{e0()});var y1={};Zy(y1,{tgasToGas:()=>xx,isSimpleTransfer:()=>o0,isCustomEstimator:()=>d0,isContractDeployment:()=>t0,isContractCall:()=>m0,isBatchTransaction:()=>c0,isAccountCreation:()=>g0,getValidateNearAddress:()=>KT,getNearToolbox:()=>Qx,getNearSignerFromPrivateKey:()=>n0,getNearSignerFromPhrase:()=>Y5,getFullAccessPublicKey:()=>_5,getContractMethodGas:()=>r0,gasToTGas:()=>Zx,estimateBatchGas:()=>i0,createNearContract:()=>R5,createNEP141Token:()=>s0,GAS_COSTS:()=>i});var T1=E(()=>{e0();MX();p0();a0()});var L1={};Zy(L1,{rippleValidateAddress:()=>X1,hashes:()=>Yx,getRippleToolbox:()=>Ux});import{AssetValue as f1,BaseDecimal as BX,Chain as Iy,SKConfig as qx,SwapKitError as Ky,SwapKitNumber as zx}from"@swapkit/helpers";import{Client as Mx,Wallet as Bx,isValidAddress as Gx,xrpToDrops as Wx}from"xrpl";import{hashes as Yx}from"xrpl";function GX(T){let f=Bx.fromMnemonic(T);return{getAddress:()=>Promise.resolve(f.address),signTransaction:(x)=>Promise.resolve(f.sign(x))}}function X1(T){return Gx(T)}var Hx,Ux=async(T={})=>{let f="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?GX(T.phrase):void 0,x=qx.get("rpcUrls")[Iy.Ripple];if(!x)throw new Ky({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:Iy.Ripple}});let y=new Mx(x);await y.connect();let X=()=>{if(!f)throw new Ky({errorKey:"toolbox_ripple_signer_not_found"});return f.getAddress()},L=async(M)=>{let W=M||await X();try{let Y=(await y.request({command:"account_info",account:W})).result.account_data.Balance;return[f1.from({chain:Iy.Ripple,value:Y,fromBaseDecimal:BX[Iy.Ripple]})]}catch(G){if(G.data.error_code===Hx.ACCOUNT_NOT_FOUND)return[f1.from({chain:Iy.Ripple,value:0})];throw new Ky("toolbox_ripple_get_balance_error",{info:{address:W,error:G}})}},Z=async()=>{let W=(await y.request({command:"fee"})).result.drops.open_ledger_fee;return f1.from({chain:Iy.Ripple,value:zx.fromBigInt(BigInt(W),BX[Iy.Ripple])})},J=async({assetValue:M,recipient:W,memo:G,sender:Y})=>{if(!X1(W))throw new Ky({errorKey:"core_transaction_invalid_recipient_address"});let I=Y||await X();if(!M.isGasAsset||M.chain!==Iy.Ripple)throw new Ky({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:M.toString()}});let V={TransactionType:"Payment",Account:I,Amount:Wx(M.getValue("string")),Destination:W};if(G)V.Memos=[{Memo:{MemoData:Buffer.from(G).toString("hex")}}];return await y.autofill(V)},Q=(M)=>{if(!f)throw new Ky({errorKey:"toolbox_ripple_signer_not_found"});return f.signTransaction(M)},q=async(M)=>{let G=(await y.submitAndWait(M)).result;if(G.validated)return G.hash;throw new Ky({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Iy.Ripple}})};return{signer:f,createSigner:GX,getAddress:X,validateAddress:X1,getBalance:L,createTransaction:J,signTransaction:Q,broadcastTransaction:q,transfer:async(M)=>{if(!f)throw new Ky({errorKey:"toolbox_ripple_signer_not_found"});let W=await f.getAddress(),G=await J({...M,sender:W}),Y=await Q(G);return q(Y.tx_blob)},estimateTransactionFee:Z,disconnect:()=>y.disconnect()}};var x1=E(()=>{Hx={ACCOUNT_NOT_FOUND:19}});var Z1={};Zy(Z1,{radixValidateAddress:()=>HX,RadixToolbox:()=>kx});import{AssetValue as _x,Chain as WX,SKConfig as Rx,SwapKitError as Dx}from"@swapkit/helpers";function HX(T){return T.startsWith("account_rdx1")&&T.length===66}function Nx({networkApi:T}){return async function f(x){let y=await Ix({address:x,networkApi:T});return Cx({resources:y,networkApi:T})}}async function Ix({address:T,networkApi:f}){let x=!0,y,X=[],L=await Ox(f);while(x){let Z={address:T,limit_per_page:100,cursor:y,at_ledger_state:{state_version:L}},J=await f.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:Z});if(X=X.concat(J.items),J.next_cursor)y=J.next_cursor;else x=!1}return X}async function Cx({resources:T,networkApi:f}){let x=[],y=50,X=[];for(let L=0;L<T.length;L+=50)X.push(T.slice(L,L+50));for(let L of X){let Z=L.map((q)=>q.resource_address),J=await f.state.getEntityDetailsVaultAggregated(Z),Q=new Map;for(let q of J)if(q.details!==void 0){let z=q.metadata?.items.find((M)=>M.key==="symbol"),B=z?.value.typed.type==="String"?z.value.typed.value:"?";if(q.details.type==="FungibleResource")Q.set(q.address,{decimals:q.details.divisibility,symbol:B})}for(let q of L)if(q.aggregation_level==="Global"){let z=Q.get(q.resource_address)||{decimals:0,symbol:"?"},B=_x.from({asset:z.symbol!==WX.Radix?`${WX.Radix}.${z.symbol}-${q.resource_address}`:"XRD.XRD",value:q.amount});x.push(B)}}return x}async function Ox(T){return T.status.getCurrent().then((f)=>f.ledger_state.state_version)}var kx=async({dappConfig:T}={})=>{let{RadixDappToolkit:f}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:x}=await import("@radixdlt/babylon-gateway-api-sdk"),y=T||Rx.get("integrations").radix,X=f({...y,networkId:y.network?.networkId||1}),L=x.initialize(X.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:Nx({networkApi:L}),networkApi:L,validateAddress:HX,signAndBroadcast:()=>{throw new Dx("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})}}};var J1=()=>{};var JT;var Q1=E(()=>{JT=[{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}]});import{SwapKitError as wx}from"@swapkit/helpers";async function UX(T){let f=await import("tronweb"),x=f.TronWeb??f.default?.TronWeb;try{let y=await fetch(`${Ex}/v1/accounts/${T}`);if(!y.ok)throw new Error(`TronGrid API error: ${y.status} ${y.statusText}`);let X=await y.json();if(!(X.success&&X.data)||X.data.length===0)throw new Error("Invalid response from TronGrid API");let L;try{L=x.address.toHex(T).toLowerCase()}catch{L=T.toLowerCase()}let Z=X.data.find((J)=>{return J.address.toLowerCase()===L});if(!Z)return;return{balance:Z.balance,trc20:Z.trc20||[]}}catch(y){throw new wx("toolbox_tron_trongrid_api_error",{message:y instanceof Error?y.message:"Unknown error",address:T})}}var Ex="https://api.trongrid.io";var YX=()=>{};import{AssetValue as Cy,Chain as Gy,NetworkDerivationPath as DX,SKConfig as vx,SwapKitError as r,derivationPathToString as NX,updateDerivationPath as IX,warnOnce as q1}from"@swapkit/helpers";import{P as _X,match as Px}from"ts-pattern";async function z1(){let T=await import("tronweb"),f=T.TronWeb??T.default?.TronWeb;return(x)=>{return f.isAddress(x)}}async function CX({phrase:T,derivationPath:f,index:x}){let y=f||NX(IX(DX[Gy.Tron],{index:x||0})),{HDKey:X}=await import("@scure/bip32"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),Z=L(T),Q=X.fromMasterSeed(Z).derive(y);if(!Q.privateKey)throw new r("toolbox_tron_no_signer");return Buffer.from(Q.privateKey).toString("hex")}async function Kx({phrase:T,derivationPath:f,tronWeb:x}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:X}=await import("@scure/bip39"),L=X(T),J=y.fromMasterSeed(L).derive(f);if(!J.privateKey)throw new r("toolbox_tron_no_signer");let Q=Buffer.from(J.privateKey).toString("hex");x.setPrivateKey(Q);let q=x?.address.fromPrivateKey(Q);return{getAddress:()=>Promise.resolve(typeof q==="string"?q:""),signTransaction:async(z)=>{return await x.trx.sign(z,Q)}}}var lx=268,Vx=13000,$x=345,RX="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",Fx="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",OX=async(T={})=>{let f=await import("tronweb"),x=f.TronWeb??f.default?.TronWeb,y=vx.get("rpcUrls")[Gy.Tron],X=void 0,L=new x({fullHost:y,headers:void 0}),Z="index"in T?T.index||0:0,J=NX("derivationPath"in T&&T.derivationPath?T.derivationPath:IX(DX[Gy.Tron],{index:Z})),Q=await Px(T).with({phrase:_X.string},async({phrase:U})=>Kx({phrase:U,derivationPath:J,tronWeb:L})).with({signer:_X.any},({signer:U})=>Promise.resolve(U)).otherwise(()=>Promise.resolve(void 0)),q=async()=>{if(!Q)throw new r("toolbox_tron_no_signer");return await Q.getAddress()},z=()=>{return 1e8},B=async()=>{try{let U=await L.trx.getChainParameters(),N={};for(let O of U)N[O.key]=O.value;return{energyFee:N.getEnergyFee||420,bandwidthFee:N.getTransactionFee||1000,createAccountFee:N.getCreateAccountFee||1e5}}catch{return{energyFee:420,bandwidthFee:1000,createAccountFee:1e5}}},M=async(U)=>{try{let N=await L.trx.getAccount(U);return N&&Object.keys(N).length>0}catch{return!1}},W=async(U)=>{try{let N=await L.trx.getAccountResources(U);return{bandwidth:{free:N.freeNetLimit-N.freeNetUsed,total:N.NetLimit||0,used:N.NetUsed||0},energy:{total:N.EnergyLimit||0,used:N.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},G=async(U,N)=>{try{let O=L.contract(JT,N);if(!O.methods?.balanceOf)return 0n;let v=(await O.methods.balanceOf(U).call())[0];return BigInt(v||0)}catch(O){return console.warn(`balanceOf() failed for ${N}:`,O),0n}},Y=async(U,N)=>{try{L.setAddress(N);let O=L.contract(JT,U),[v,w]=await Promise.all([O.symbol().call().catch(()=>"UNKNOWN"),O.decimals().call().catch(()=>"18")]);return{symbol:v??"UNKNOWN",decimals:Number(w??18)}}catch(O){return q1(!0,`Failed to get token balance for ${U}: ${O instanceof Error?O.message:O}`),null}},I=async(U,N=!0)=>{let O=[Cy.from({chain:Gy.Tron})];try{let v=await UX(U);if(v){let w=[];w.push(Cy.from({chain:Gy.Tron,value:v.balance,fromBaseDecimal:6}));for(let l of v.trc20){let[h,A]=Object.entries(l)[0]||[];if(!(h&&A))continue;let b=await Y(h,U);if(!b)continue;w.push(Cy.from({asset:`TRX.${b.symbol}-${h}`,value:BigInt(A||0),fromBaseDecimal:b.decimals}))}return w}return O}catch(v){q1(!0,`Tron API getBalance failed: ${v instanceof Error?v.message:v}`);let w=[],l=await L.trx.getBalance(U);if(l&&Number(l)>0)w.push(Cy.from({chain:Gy.Tron,value:l,fromBaseDecimal:6}));let h=await G(U,RX);if(h)w.push(Cy.from({asset:`TRX.USDT-${RX}`,value:h,fromBaseDecimal:6}));return w}},V=async({recipient:U,assetValue:N,memo:O})=>{if(!Q)throw new r("toolbox_tron_no_signer");let v=await q();if(L.setAddress(v),N.isGasAsset){let b=await L.transactionBuilder.sendTrx(U,N.getBaseValue("number"),v);if(O){let Ly=await L.transactionBuilder.addUpdateData(b,O,"utf8"),xy=await Q.signTransaction(Ly),{txid:Ay}=await L.trx.sendRawTransaction(xy);return Ay}let e=await Q.signTransaction(b),{txid:s}=await L.trx.sendRawTransaction(e);return s}let l=await j({recipient:U,assetValue:N,memo:O,sender:v}),h=await Q.signTransaction(l),{txid:A}=await L.trx.sendRawTransaction(h);if(!A)throw new r("toolbox_tron_token_transfer_failed");return A},$=async({assetValue:U,recipient:N,sender:O})=>{let v=U.isGasAsset;try{let w=O?O:Q?await q():void 0;if(!w)return v?Cy.from({chain:Gy.Tron,value:0.1,fromBaseDecimal:0}):Cy.from({chain:Gy.Tron,value:15,fromBaseDecimal:0});let l=await B(),A=await M(N)?0:l.createAccountFee,b=await W(w);if(v){let ty=lx,uT=b.bandwidth.free+(b.bandwidth.total-b.bandwidth.used),I5=0;if(ty>uT)I5=(ty-uT)*l.bandwidthFee;let bT=A+I5;return Cy.from({chain:Gy.Tron,value:bT,fromBaseDecimal:6})}let e=$x,s=Vx,Ly=b.bandwidth.free+(b.bandwidth.total-b.bandwidth.used),xy=b.energy.total-b.energy.used,Ay=0;if(e>Ly)Ay=(e-Ly)*l.bandwidthFee;let AT=0;if(s>xy)AT=(s-xy)*l.energyFee;let ST=A+Ay+AT;return Cy.from({chain:Gy.Tron,value:ST,fromBaseDecimal:6})}catch(w){throw q1(!0,`Failed to calculate exact fee, using conservative estimate: ${w instanceof Error?w.message:w}`),new r("toolbox_tron_fee_estimation_failed",{error:w})}},j=async(U)=>{let{recipient:N,assetValue:O,memo:v,sender:w}=U;if(O.isGasAsset){let A=await L.transactionBuilder.sendTrx(N,O.getBaseValue("number"),w);if(v)return L.transactionBuilder.addUpdateData(A,v,"utf8");return A}L.setAddress(w);let h=O.address;if(!h)throw new r("toolbox_tron_invalid_token_identifier",{identifier:O.toString()});try{let b=[{type:"address",value:N},{type:"uint256",value:O.getBaseValue("string")}],e={feeLimit:z(),callValue:0};return(await L.transactionBuilder.triggerSmartContract(h,"transfer(address,uint256)",e,b,w)).transaction}catch(A){throw new r("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction. This might be due to TronWeb 6.0.3 bug. Use the transfer method directly instead.",originalError:A instanceof Error?A.message:String(A)})}},u=async(U)=>{if(!Q)throw new r("toolbox_tron_no_signer");return await Q.signTransaction(U)},c=async(U)=>{let{txid:N}=await L.trx.sendRawTransaction(U);return N},o=async({assetAddress:U,spenderAddress:N,from:O})=>{try{let v=L.contract(JT,U);if(!v.methods?.allowance)throw new r("toolbox_tron_invalid_token_contract");let w=(await v.methods.allowance(O,N).call())[0];return BigInt(w||0)}catch(v){throw new r("toolbox_tron_allowance_check_failed",{error:v})}},a=async({assetAddress:U,spenderAddress:N,from:O,amount:v})=>{let w=await o({assetAddress:U,spenderAddress:N,from:O});if(!v)return w>0n;let l=BigInt(v);return w>=l},k=async({assetAddress:U,spenderAddress:N,amount:O,from:v})=>{if(!Q)throw new r("toolbox_tron_no_signer");let w=v||await q(),l=O!==void 0?BigInt(O).toString():Fx,h="approve(address,uint256)",A=[{type:"address",value:N},{type:"uint256",value:l}],e={feeLimit:z(),callValue:0};try{let{transaction:s}=await L.transactionBuilder.triggerSmartContract(U,h,e,A,w),Ly=await Q.signTransaction(s),{txid:xy}=await L.trx.sendRawTransaction(Ly);if(!xy)throw new r("toolbox_tron_approve_failed");return xy}catch(s){throw new r("toolbox_tron_approve_failed",{error:s})}};return{tronWeb:L,getAddress:q,validateAddress:await z1(),getBalance:I,transfer:V,estimateTransactionFee:$,createTransaction:j,signTransaction:u,broadcastTransaction:c,approve:k,isApproved:a,getApprovedAmount:o}};var kX=E(()=>{Q1();YX()});var M1={};Zy(M1,{trc20ABI:()=>JT,getTronPrivateKeyFromMnemonic:()=>CX,getTronAddressValidator:()=>z1,createTronToolbox:()=>OX});var B1=E(()=>{kX();Q1()});import{AssetValue as Ax,Chain as H,FeeOption as Sx,SwapKitError as ux}from"@swapkit/helpers";async function k4(){let{match:T}=await import("ts-pattern"),{cosmosValidateAddress:f}=await Promise.resolve().then(() => (gT(),cT)),{evmValidateAddress:x}=await Promise.resolve().then(() => (y0(),Yf)),{substrateValidateAddress:y}=await Promise.resolve().then(() => (Y0(),U0)),{getUTXOAddressValidator:X}=await Promise.resolve().then(() => ($0(),V0)),{getSolanaAddressValidator:L}=await Promise.resolve().then(() => (h0(),j0)),{getValidateNearAddress:Z}=await Promise.resolve().then(() => (T1(),y1)),{rippleValidateAddress:J}=await Promise.resolve().then(() => (x1(),L1)),{radixValidateAddress:Q}=await Promise.resolve().then(() => (J1(),Z1)),{getTronAddressValidator:q}=await Promise.resolve().then(() => (B1(),M1)),z=await L(),B=await X(),M=await q(),W=await Z();return function G({address:Y,chain:I}){return T(I).with(H.Arbitrum,H.Aurora,H.Avalanche,H.Base,H.Berachain,H.BinanceSmartChain,H.Ethereum,H.Gnosis,H.Optimism,H.Polygon,()=>x({address:Y})).with(H.Litecoin,H.Dash,H.Dogecoin,H.BitcoinCash,H.Bitcoin,()=>B({address:Y,chain:I})).with(H.Cosmos,H.Kujira,H.Maya,H.THORChain,()=>f({address:Y,chain:I})).with(H.Chainflip,H.Polkadot,()=>y({address:Y,chain:I})).with(H.Radix,()=>Q(Y)).with(H.Near,()=>W(Y)).with(H.Ripple,()=>J(Y)).with(H.Solana,()=>z(Y)).with(H.Tron,()=>M(Y)).otherwise(()=>!1)}}function w4(T){return async function f(x){let{match:y}=await import("ts-pattern");return y(T).returnType().with(H.Arbitrum,H.Aurora,H.Avalanche,H.Base,H.Berachain,H.BinanceSmartChain,H.Ethereum,H.Gnosis,H.Optimism,H.Polygon,async(X)=>{let L=await wX(X),Z=await L.createTransaction(x);return L.estimateTransactionFee({...Z,feeOption:x.feeOptionKey||Sx.Fast,chain:X})}).with(H.Bitcoin,H.BitcoinCash,H.Dogecoin,H.Dash,H.Litecoin,H.Polkadot,H.Solana,H.Ripple,H.Tron,H.Near,async(X)=>{return(await wX(X)).estimateTransactionFee(x)}).with(H.THORChain,H.Maya,H.Kujira,H.Cosmos,async()=>{let{estimateTransactionFee:X}=await Promise.resolve().then(() => (gT(),cT));return X(x)}).otherwise(async()=>Ax.from({chain:T}))}}async function wX(T,f){let{match:x}=await import("ts-pattern");return x(T).returnType().with(H.Arbitrum,H.Aurora,H.Avalanche,H.Base,H.Berachain,H.BinanceSmartChain,H.Ethereum,H.Gnosis,H.Optimism,H.Polygon,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (J5(),J0));return await y(T,f)}).with(H.Litecoin,H.Dash,H.Dogecoin,H.BitcoinCash,H.Bitcoin,H.Zcash,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => ($0(),V0));return await y(T,f)}).with(H.Cosmos,H.Kujira,H.Maya,H.THORChain,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (gT(),cT));return await y(T,f)}).with(H.Chainflip,H.Polkadot,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (Y0(),U0));return await y(T,f)}).with(H.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (J1(),Z1));return await y(f)}).with(H.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (x1(),L1));return await y(f)}).with(H.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (h0(),j0));return await y(f)}).with(H.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (B1(),M1));return await y(f)}).with(H.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (T1(),y1));return await y(f)}).otherwise(()=>{throw new ux("toolbox_not_supported",{chain:T})})}export{wX as getToolbox,w4 as getFeeEstimator,k4 as getAddressValidator};
|
|
2
4
|
|
|
3
|
-
//# debugId=
|
|
5
|
+
//# debugId=5CAEB58B6EC6B5E564756E2164756E21
|
|
4
6
|
//# sourceMappingURL=index.js.map
|