@swapkit/toolboxes 4.0.4 → 4.0.5

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