@swapkit/toolboxes 4.0.0-beta.62 → 4.0.0-beta.64

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