@swapkit/toolboxes 4.0.22 → 4.0.24

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 EG=Object.create;var{getPrototypeOf:PG,defineProperty:Rf,getOwnPropertyNames:wG}=Object;var lG=Object.prototype.hasOwnProperty;var U=(T,f,X)=>{X=T!=null?EG(PG(T)):{};let y=f||!T||!T.__esModule?Rf(X,"default",{value:T,enumerable:!0}):X;for(let L of wG(T))if(!lG.call(y,L))Rf(y,L,{get:()=>T[L],enumerable:!0});return y};var Ly=(T,f)=>{for(var X in f)Rf(T,X,{get:f[X],enumerable:!0,configurable:!0,set:(y)=>f[X]=()=>y})};var P=(T,f)=>()=>(T&&(f=T(T=0)),f);var H=((T)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(T,{get:(f,X)=>(typeof require<"u"?require:f)[X]}):T)(function(T){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+T+'" is not supported')});import{base64 as x1,bech32 as nT}from"@scure/base";import{SwapKitError as vG}from"@swapkit/helpers";import{fromByteArray as FG,toByteArray as AG}from"base64-js";function zT(T){return x1.encode(Uint8Array.from(nT.fromWords(nT.decode(T).words)))}function _T(T,f="thor"){return nT.encode(f,nT.toWords(x1.decode(T)))}function SG(T){return FG(T)}function VG(T){if(!T.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new vG("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return AG(T)}var Df=()=>{};import{AssetValue as kf,Chain as A,getChainConfig as Zy,getRPCUrl as $G,SwapKitError as Z1}from"@swapkit/helpers";function Yy(T){switch(T){case A.Maya:return{amount:[],gas:"10000000000"};case A.THORChain:return{amount:[],gas:"500000000"};case A.Kujira:return Q1;case A.Noble:return q1;default:return J1}}async function Uy(T){let f=await import("@cosmjs/stargate"),X=f.StargateClient??f.default?.StargateClient,y=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return X.connect({headers:y,url:T})}async function NT(T,f,X={}){let y=await import("@cosmjs/stargate"),L=y.SigningStargateClient??y.default?.SigningStargateClient,G=y.GasPrice??y.default?.GasPrice,x=typeof X==="string"?X:"0.0003uatom",Z=typeof X==="string"?{}:X;return L.connectWithSigner(T,f,{gasPrice:G.fromString(x),...Z})}async function Of(T,f){let X=await import("@cosmjs/stargate");return(X.SigningStargateClient??X.default?.SigningStargateClient).offline(T,f)}async function Ef({sender:T,recipient:f,assetValue:X,memo:y="",feeRate:L,sequence:G,accountNumber:x}){let{chain:Z,chainId:B}=X,J=await $G(Z),q=await(await Uy(J)).getAccount(T);if(!q)throw new Z1("toolbox_cosmos_account_not_found",{sender:T});let z=kf.from({chain:Z}),M=Oy(z.symbol),_=Yy(Z),W=M&&L?{amount:[{amount:L.toString(),denom:M}],gas:_.gas}:_,k={amount:[{amount:X.getBaseValue("string"),denom:Oy(X.symbol)}],fromAddress:T,toAddress:f};return{accountNumber:x??q.accountNumber,chainId:B,fee:W,memo:y,msgs:[{typeUrl:KG(Z),value:k}],sequence:G??q.sequence}}var If="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",B1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",J1,Q1,q1,Oy=(T,f=!1)=>{if(f)return T.toLowerCase();switch(T){case"uUSK":case"USK":return If;case"uYUM":case"YUM":return B1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return T}},MT=({symbol:T,chain:f})=>{if(f===A.Maya)return(T.toUpperCase()!=="CACAO"?T:`${A.Maya}.${T}`).toUpperCase();if(f===A.THORChain)return(["RUNE","TCY","RUJI"].includes(T.toUpperCase())?`${A.THORChain}.${T}`:T).toUpperCase();return Oy(T,!1)},KG=(T)=>{switch(T){case A.Maya:case A.THORChain:return"/types.MsgSend";case A.Cosmos:case A.Kujira:case A.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new Z1("toolbox_cosmos_not_supported",{chain:T})}},uG,Pf=(T,f)=>{let X=uG[T.toLowerCase()];if(!X)return kf.from({asset:T,fromBaseDecimal:8,value:f});let{chain:y,asset:L,decimals:G}=X,x=y?{chain:y}:{asset:L};return kf.from({...x,fromBaseDecimal:G,value:f})};var YT=P(()=>{J1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},Q1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},q1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};uG={atom:{chain:A.Cosmos,decimals:Zy(A.Cosmos).baseDecimal},cacao:{chain:A.Maya,decimals:10},kuji:{chain:A.Kujira,decimals:Zy(A.Kujira).baseDecimal},maya:{asset:`${A.Maya}.${A.Maya}`,decimals:4},rune:{chain:A.THORChain,decimals:Zy(A.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Zy(A.THORChain).baseDecimal},uatom:{chain:A.Cosmos,decimals:Zy(A.Cosmos).baseDecimal},ukuji:{chain:A.Kujira,decimals:Zy(A.Kujira).baseDecimal},usdc:{chain:A.Noble,decimals:Zy(A.Noble).baseDecimal},uusdc:{chain:A.Noble,decimals:Zy(A.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Zy(A.THORChain).baseDecimal},[If.toLowerCase()]:{asset:`${A.Kujira}.USK`,decimals:Zy(A.Kujira).baseDecimal}}});var z1={};Ly(z1,{$root:()=>C});import p from"protobufjs/minimal.js";var w,Gy,I,C;var _1=P(()=>{w=p.Reader,Gy=p.Writer,I=p.util,C=p.roots.default||(p.roots.default={});C.common=(()=>{let T={};return T.Asset=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.chain="",f.prototype.symbol="",f.prototype.ticker="",f.prototype.synth=!1,f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))L.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))L.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))L.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))L.uint32(32).bool(y.synth);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.Asset;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.chain=y.string();break;case 2:x.symbol=y.string();break;case 3:x.ticker=y.string();break;case 4:x.synth=y.bool();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(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(y){if(y instanceof C.common.Asset)return y;let L=new C.common.Asset;if(y.chain!=null)L.chain=String(y.chain);if(y.symbol!=null)L.symbol=String(y.symbol);if(y.ticker!=null)L.ticker=String(y.ticker);if(y.synth!=null)L.synth=Boolean(y.synth);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)G.chain="",G.symbol="",G.ticker="",G.synth=!1;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.symbol!=null&&y.hasOwnProperty("symbol"))G.symbol=y.symbol;if(y.ticker!=null&&y.hasOwnProperty("ticker"))G.ticker=y.ticker;if(y.synth!=null&&y.hasOwnProperty("synth"))G.synth=y.synth;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.Coin=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.asset=null,f.prototype.amount="",f.prototype.decimals=I.Long?I.Long.fromBits(0,0,!1):0,f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))C.common.Asset.encode(y.asset,L.uint32(10).fork()).ldelim();if(y.amount!=null&&Object.hasOwnProperty.call(y,"amount"))L.uint32(18).string(y.amount);if(y.decimals!=null&&Object.hasOwnProperty.call(y,"decimals"))L.uint32(24).int64(y.decimals);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.Coin;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.asset=C.common.Asset.decode(y,y.uint32());break;case 2:x.amount=y.string();break;case 3:x.decimals=y.int64();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.asset!=null&&y.hasOwnProperty("asset")){let L=C.common.Asset.verify(y.asset);if(L)return"asset."+L}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(y){if(y instanceof C.common.Coin)return y;let L=new C.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");L.asset=C.common.Asset.fromObject(y.asset)}if(y.amount!=null)L.amount=String(y.amount);if(y.decimals!=null){if(I.Long)(L.decimals=I.Long.fromValue(y.decimals)).unsigned=!1;else if(typeof y.decimals==="string")L.decimals=Number.parseInt(y.decimals,10);else if(typeof y.decimals==="number")L.decimals=y.decimals;else if(typeof y.decimals==="object")L.decimals=new I.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber()}return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)if(G.asset=null,G.amount="",I.Long){let x=new I.Long(0,0,!1);G.decimals=L.longs===String?x.toString():L.longs===Number?x.toNumber():x}else G.decimals=L.longs===String?"0":0;if(y.asset!=null&&y.hasOwnProperty("asset"))G.asset=C.common.Asset.toObject(y.asset,L);if(y.amount!=null&&y.hasOwnProperty("amount"))G.amount=y.amount;if(y.decimals!=null&&y.hasOwnProperty("decimals"))if(typeof y.decimals==="number")G.decimals=L.longs===String?String(y.decimals):y.decimals;else G.decimals=L.longs===String?I.Long.prototype.toString.call(y.decimals):L.longs===Number?new I.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber():y.decimals;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.PubKeySet=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.secp256k1="",f.prototype.ed25519="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))L.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))L.uint32(18).string(y.ed25519);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.PubKeySet;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.secp256k1=y.string();break;case 2:x.ed25519=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(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(y){if(y instanceof C.common.PubKeySet)return y;let L=new C.common.PubKeySet;if(y.secp256k1!=null)L.secp256k1=String(y.secp256k1);if(y.ed25519!=null)L.ed25519=String(y.ed25519);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)G.secp256k1="",G.ed25519="";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1"))G.secp256k1=y.secp256k1;if(y.ed25519!=null&&y.hasOwnProperty("ed25519"))G.ed25519=y.ed25519;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.Tx=(()=>{function f(X){if(this.coins=[],this.gas=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}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(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))L.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))L.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))L.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))L.uint32(34).string(y.toAddress);if(y.coins?.length)for(let G=0;G<y.coins.length;++G)C.common.Coin.encode(y.coins[G],L.uint32(42).fork()).ldelim();if(y.gas?.length)for(let G=0;G<y.gas.length;++G)C.common.Coin.encode(y.gas[G],L.uint32(50).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))L.uint32(58).string(y.memo);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.Tx;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.id=y.string();break;case 2:x.chain=y.string();break;case 3:x.fromAddress=y.string();break;case 4:x.toAddress=y.string();break;case 5:if(!x.coins?.length)x.coins=[];x.coins.push(C.common.Coin.decode(y,y.uint32()));break;case 6:if(!x.gas?.length)x.gas=[];x.gas.push(C.common.Coin.decode(y,y.uint32()));break;case 7:x.memo=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(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 L=0;L<y.coins.length;++L){let G=C.common.Coin.verify(y.coins[L]);if(G)return"coins."+G}}if(y.gas!=null&&y.hasOwnProperty("gas")){if(!Array.isArray(y.gas))return"gas: array expected";for(let L=0;L<y.gas.length;++L){let G=C.common.Coin.verify(y.gas[L]);if(G)return"gas."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!I.isString(y.memo))return"memo: string expected"}return null},f.fromObject=function(y){if(y instanceof C.common.Tx)return y;let L=new C.common.Tx;if(y.id!=null)L.id=String(y.id);if(y.chain!=null)L.chain=String(y.chain);if(y.fromAddress!=null)L.fromAddress=String(y.fromAddress);if(y.toAddress!=null)L.toAddress=String(y.toAddress);if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Tx.coins: array expected");L.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Tx.coins: object expected");L.coins[G]=C.common.Coin.fromObject(y.coins[G])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");L.gas=[];for(let G=0;G<y.gas.length;++G){if(typeof y.gas[G]!=="object")throw TypeError(".common.Tx.gas: object expected");L.gas[G]=C.common.Coin.fromObject(y.gas[G])}}if(y.memo!=null)L.memo=String(y.memo);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.coins=[],G.gas=[];if(L.defaults)G.id="",G.chain="",G.fromAddress="",G.toAddress="",G.memo="";if(y.id!=null&&y.hasOwnProperty("id"))G.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=y.toAddress;if(y.coins?.length){G.coins=[];for(let x=0;x<y.coins.length;++x)G.coins[x]=C.common.Coin.toObject(y.coins[x],L)}if(y.gas?.length){G.gas=[];for(let x=0;x<y.gas.length;++x)G.gas[x]=C.common.Coin.toObject(y.gas[x],L)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.Fee=(()=>{function f(X){if(this.coins=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.coins=I.emptyArray,f.prototype.poolDeduct="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)C.common.Coin.encode(y.coins[G],L.uint32(10).fork()).ldelim();if(y.poolDeduct!=null&&Object.hasOwnProperty.call(y,"poolDeduct"))L.uint32(18).string(y.poolDeduct);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.Fee;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:if(!x.coins?.length)x.coins=[];x.coins.push(C.common.Coin.decode(y,y.uint32()));break;case 2:x.poolDeduct=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let G=C.common.Coin.verify(y.coins[L]);if(G)return"coins."+G}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!I.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},f.fromObject=function(y){if(y instanceof C.common.Fee)return y;let L=new C.common.Fee;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Fee.coins: array expected");L.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Fee.coins: object expected");L.coins[G]=C.common.Coin.fromObject(y.coins[G])}}if(y.poolDeduct!=null)L.poolDeduct=String(y.poolDeduct);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.coins=[];if(L.defaults)G.poolDeduct="";if(y.coins?.length){G.coins=[];for(let x=0;x<y.coins.length;++x)G.coins[x]=C.common.Coin.toObject(y.coins[x],L)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))G.poolDeduct=y.poolDeduct;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.ProtoUint=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.value="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))L.uint32(10).string(y.value);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.ProtoUint;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.value=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(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(y){if(y instanceof C.common.ProtoUint)return y;let L=new C.common.ProtoUint;if(y.value!=null)L.value=String(y.value);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)G.value="";if(y.value!=null&&y.hasOwnProperty("value"))G.value=y.value;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T})();C.types=(()=>{let T={};return T.MsgDeposit=(()=>{function f(X){if(this.coins=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.coins=I.emptyArray,f.prototype.memo="",f.prototype.signer=I.newBuffer([]),f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)C.common.Coin.encode(y.coins[G],L.uint32(10).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))L.uint32(18).string(y.memo);if(y.signer!=null&&Object.hasOwnProperty.call(y,"signer"))L.uint32(26).bytes(y.signer);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.types.MsgDeposit;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:if(!x.coins?.length)x.coins=[];x.coins.push(C.common.Coin.decode(y,y.uint32()));break;case 2:x.memo=y.string();break;case 3:x.signer=y.bytes();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let G=C.common.Coin.verify(y.coins[L]);if(G)return"coins."+G}}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(y){if(y instanceof C.types.MsgDeposit)return y;let L=new C.types.MsgDeposit;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".types.MsgDeposit.coins: array expected");L.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");L.coins[G]=C.common.Coin.fromObject(y.coins[G])}}if(y.memo!=null)L.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")I.base64.decode(y.signer,L.signer=I.newBuffer(I.base64.length(y.signer)),0);else if(y.signer.length)L.signer=y.signer}return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.coins=[];if(L.defaults){if(G.memo="",L.bytes===String)G.signer="";else if(G.signer=[],L.bytes!==Array)G.signer=I.newBuffer(G.signer)}if(y.coins?.length){G.coins=[];for(let x=0;x<y.coins.length;++x)G.coins[x]=C.common.Coin.toObject(y.coins[x],L)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))G.signer=L.bytes===String?I.base64.encode(y.signer,0,y.signer.length):L.bytes===Array?Array.prototype.slice.call(y.signer):y.signer;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.MsgSend=(()=>{function f(X){if(this.amount=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.fromAddress=I.newBuffer([]),f.prototype.toAddress=I.newBuffer([]),f.prototype.amount=I.emptyArray,f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))L.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))L.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let G=0;G<y.amount.length;++G)C.cosmos.base.v1beta1.Coin.encode(y.amount[G],L.uint32(26).fork()).ldelim();return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.types.MsgSend;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.fromAddress=y.bytes();break;case 2:x.toAddress=y.bytes();break;case 3:if(!x.amount?.length)x.amount=[];x.amount.push(C.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!(y.fromAddress&&typeof y.fromAddress.length==="number"||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 L=0;L<y.amount.length;++L){let G=C.cosmos.base.v1beta1.Coin.verify(y.amount[L]);if(G)return"amount."+G}}return null},f.fromObject=function(y){if(y instanceof C.types.MsgSend)return y;let L=new C.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")I.base64.decode(y.fromAddress,L.fromAddress=I.newBuffer(I.base64.length(y.fromAddress)),0);else if(y.fromAddress.length)L.fromAddress=y.fromAddress}if(y.toAddress!=null){if(typeof y.toAddress==="string")I.base64.decode(y.toAddress,L.toAddress=I.newBuffer(I.base64.length(y.toAddress)),0);else if(y.toAddress.length)L.toAddress=y.toAddress}if(y.amount){if(!Array.isArray(y.amount))throw TypeError(".types.MsgSend.amount: array expected");L.amount=[];for(let G=0;G<y.amount.length;++G){if(typeof y.amount[G]!=="object")throw TypeError(".types.MsgSend.amount: object expected");L.amount[G]=C.cosmos.base.v1beta1.Coin.fromObject(y.amount[G])}}return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.amount=[];if(L.defaults){if(L.bytes===String)G.fromAddress="";else if(G.fromAddress=[],L.bytes!==Array)G.fromAddress=I.newBuffer(G.fromAddress);if(L.bytes===String)G.toAddress="";else if(G.toAddress=[],L.bytes!==Array)G.toAddress=I.newBuffer(G.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=L.bytes===String?I.base64.encode(y.fromAddress,0,y.fromAddress.length):L.bytes===Array?Array.prototype.slice.call(y.fromAddress):y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=L.bytes===String?I.base64.encode(y.toAddress,0,y.toAddress.length):L.bytes===Array?Array.prototype.slice.call(y.toAddress):y.toAddress;if(y.amount?.length){G.amount=[];for(let x=0;x<y.amount.length;++x)G.amount[x]=C.cosmos.base.v1beta1.Coin.toObject(y.amount[x],L)}return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T})();C.cosmos=(()=>{let T={};return T.base=(()=>{let f={};return f.v1beta1=(()=>{let X={};return X.Coin=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))x.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))x.uint32(18).string(G.amount);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof w))G=w.create(G);let Z=x===void 0?G.len:G.pos+x,B=new C.cosmos.base.v1beta1.Coin;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.denom=G.string();break;case 2:B.amount=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof w))G=new w(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!I.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!I.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.Coin)return G;let x=new C.cosmos.base.v1beta1.Coin;if(G.denom!=null)x.denom=String(G.denom);if(G.amount!=null)x.amount=String(G.amount);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.denom="",Z.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))Z.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))Z.amount=G.amount;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X.DecCoin=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))x.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))x.uint32(18).string(G.amount);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof w))G=w.create(G);let Z=x===void 0?G.len:G.pos+x,B=new C.cosmos.base.v1beta1.DecCoin;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.denom=G.string();break;case 2:B.amount=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof w))G=new w(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!I.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!I.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.DecCoin)return G;let x=new C.cosmos.base.v1beta1.DecCoin;if(G.denom!=null)x.denom=String(G.denom);if(G.amount!=null)x.amount=String(G.amount);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.denom="",Z.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))Z.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))Z.amount=G.amount;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X.IntProto=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.int="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.int!=null&&Object.hasOwnProperty.call(G,"int"))x.uint32(10).string(G.int);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof w))G=w.create(G);let Z=x===void 0?G.len:G.pos+x,B=new C.cosmos.base.v1beta1.IntProto;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.int=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof w))G=new w(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.int!=null&&G.hasOwnProperty("int")){if(!I.isString(G.int))return"int: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.IntProto)return G;let x=new C.cosmos.base.v1beta1.IntProto;if(G.int!=null)x.int=String(G.int);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.int="";if(G.int!=null&&G.hasOwnProperty("int"))Z.int=G.int;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X.DecProto=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.dec="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.dec!=null&&Object.hasOwnProperty.call(G,"dec"))x.uint32(10).string(G.dec);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof w))G=w.create(G);let Z=x===void 0?G.len:G.pos+x,B=new C.cosmos.base.v1beta1.DecProto;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.dec=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof w))G=new w(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.dec!=null&&G.hasOwnProperty("dec")){if(!I.isString(G.dec))return"dec: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.DecProto)return G;let x=new C.cosmos.base.v1beta1.DecProto;if(G.dec!=null)x.dec=String(G.dec);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.dec="";if(G.dec!=null&&G.hasOwnProperty("dec"))Z.dec=G.dec;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X})(),f})(),T})()});import{Chain as bG}from"@swapkit/helpers";async function Ky(){let{$root:T}=await Promise.resolve().then(() => (_1(),z1)),f=await import("@cosmjs/proto-signing"),X=f.Registry??f.default?.Registry,y=await import("@cosmjs/stargate"),L=y.defaultRegistryTypes??y.default?.defaultRegistryTypes;return new X([...L,["/types.MsgSend",T.types.MsgSend],["/types.MsgDeposit",T.types.MsgDeposit]])}async function Ey(T){let f=await import("@cosmjs/stargate"),X=f.AminoTypes??f.default?.AminoTypes,y=T===bG.THORChain?"thorchain":"mayachain";return new X({"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,fromAmino:({signer:L,...G})=>({...G,signer:zT(L)}),toAmino:({signer:L,...G})=>({...G,signer:_T(L)})},"/types.MsgSend":{aminoType:`${y}/MsgSend`,fromAmino:({from_address:L,to_address:G,...x})=>({...x,fromAddress:zT(L),toAddress:zT(G)}),toAmino:({fromAddress:L,toAddress:G,...x})=>({...x,from_address:_T(L),to_address:_T(G)})}})}var wf=P(()=>{Df()});import{AssetValue as nG,Chain as jT,getChainConfig as M1,SwapKitError as jG}from"@swapkit/helpers";function Ff(T){return function(X){let{assetValue:y,recipient:L,memo:G,sender:x,asSignable:Z,asAminoMessage:B}=X;if(L)return Y1(T)({asAminoMessage:B,asSignable:Z,assetValue:y,memo:G,recipient:L,sender:x});return U1(T)({asAminoMessage:B,asSignable:Z,assetValue:y,memo:G,sender:x})}}function wy(T){if(T.type==="thorchain/MsgSend"||T.type==="mayachain/MsgSend")return T;return{...T,value:{...T.value,coins:T.value.coins.map((f)=>{let X=nG.from({asset:f.asset}),y=(X.isSynthetic?X.symbol.split("/")?.[1]:X.symbol)?.toUpperCase(),L=(X.isSynthetic?X.symbol.split("/")?.[0]:X.chain)?.toUpperCase();return{...f,asset:{chain:L,symbol:y,synth:X.isSynthetic,ticker:X.ticker}}})}}}async function UT({chain:T,memo:f,msgs:X}){let y=await Ky(),L=await Ey(T),G={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:f,messages:X.map((x)=>L.fromAmino(x))}};return y.encode(G)}var hG,pG,lf=({sender:T,recipient:f,assetValue:X})=>{return{type:`${X.chain===jT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:X.getBaseValue("string"),denom:Oy(X.symbol,!0)}],from_address:T,to_address:f}}},vf=({sender:T,assetValue:f,memo:X=""})=>{return{type:`${f.chain===jT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:f.getBaseValue("string"),asset:MT(f)}],memo:X,signer:T}}},hT=({sender:T,recipient:f,assetValue:X,memo:y})=>{return!f?vf({assetValue:X,memo:y,sender:T}):lf({assetValue:X,recipient:f,sender:T})},Py=async(T,f)=>{return(await Ey(f)).fromAmino(T)},N1=async({rpcUrl:T,sender:f})=>{let y=await(await Uy(T)).getAccount(f);if(!y)throw new jG("toolbox_cosmos_account_not_found",{sender:f});return y},Y1=(T)=>async({sender:f,recipient:X,assetValue:y,memo:L="",asSignable:G=!0,asAminoMessage:x=!1,sequence:Z,accountNumber:B})=>{let J=await N1({rpcUrl:T,sender:f}),Q=y.chain,{chainId:q}=M1(Q),z=lf({assetValue:y,recipient:X,sender:f}),M=G?await Py(x?z:wy(z),Q):z;return{accountNumber:B||J.accountNumber,chainId:q,fee:Yy(Q),memo:L,msgs:[M],sequence:Z||J.sequence}},U1=(T)=>async({sender:f,assetValue:X,memo:y="",asSignable:L=!0,asAminoMessage:G=!1,sequence:x,accountNumber:Z})=>{let B=await N1({rpcUrl:T,sender:f}),J=X.chain,{chainId:Q}=M1(J),q=vf({assetValue:X,memo:y,sender:f}),z=L?await Py(G?q:wy(q),J):q;return{accountNumber:Z||B.accountNumber,chainId:Q,fee:Yy(J),memo:y,msgs:[z],sequence:x||B.sequence}};var H1=P(()=>{YT();wf();hG=Yy(jT.THORChain).gas,pG=Yy(jT.Maya).gas});var W1=()=>{};var C1=P(()=>{W1()});var Af=P(()=>{Df();H1();wf();C1()});import{base64 as $f,bech32 as Sf}from"@scure/base";import{AssetValue as P1,applyFeeMultiplier as R1,Chain as r,CosmosChainPrefixes as w1,DerivationPath as oG,derivationPathToString as D1,FeeOption as Kf,getChainConfig as mG,getRPCUrl as cG,NetworkDerivationPath as tG,SKConfig as gG,SwapKitError as pT,SwapKitNumber as Vf,updateDerivationPath as iG}from"@swapkit/helpers";import{SwapKitApi as l1}from"@swapkit/helpers/api";import{match as dG,P as k1}from"ts-pattern";async function bf(T,f){try{let y=(await l1.getGasRate()).find((L)=>L.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(X){return f}}async function uf({phrase:T,prefix:f,...X}){let y=await import("@cosmjs/proto-signing"),L=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,G=await import("@cosmjs/crypto"),x=G.stringToPath??G.default?.stringToPath,Z="derivationPath"in X?X.derivationPath:`${oG[X.chain]}/${X.index}`;return L.fromMnemonic(T,{hdPaths:[x(Z)],prefix:f})}async function rG({privateKey:T,prefix:f}){let X=await import("@cosmjs/proto-signing");return(X.DirectSecp256k1Wallet??X.default?.DirectSecp256k1Wallet).fromKey(T,f)}function v1(T){return async function({signature:X,message:y,address:L}){let G=await T(L);if(!G?.pubkey)throw new pT("toolbox_cosmos_verify_signature_no_pubkey");let x=await import("@cosmjs/crypto"),Z=x.Secp256k1Signature??x.default?.Secp256k1Signature,B=x.Secp256k1??x.default?.Secp256k1,J=Z.fromFixedLength($f.decode(X));return B.verifySignature(J,$f.decode(y),G.pubkey.value)}}async function HT({chain:T,...f}){let X=await cG(T),y=w1[T],L="index"in f?f.index||0:0,G=D1("derivationPath"in f&&f.derivationPath?f.derivationPath:iG(tG[T],{index:L})),x=await dG(f).with({phrase:k1.string},({phrase:q})=>uf({derivationPath:G,phrase:q,prefix:y})).with({signer:k1.any},({signer:q})=>q).otherwise(()=>{return});async function Z(q){return(await Uy(X)).getAccount(q)}async function B(){let[q]=await x?.getAccounts()||[];return q?.address}async function J(){let[q]=await x?.getAccounts()||[];if(!q?.pubkey)throw new pT("toolbox_cosmos_signer_not_defined");return $f.encode(q?.pubkey)}async function Q({recipient:q,assetValue:z,memo:M="",feeRate:_,feeOptionKey:W=Kf.Fast}){let k=await B();if(!(x&&k))throw new pT("toolbox_cosmos_signer_not_defined");let v=P1.from({chain:T}),F=MT(v),b=_||T2((await O1(T,I1[T]))[W],F),K=await NT(X,x),i=[{amount:z.getBaseValue("string"),denom:Oy(`u${z.symbol}`).toLowerCase()}],{transactionHash:m}=await K.sendTokens(k,q,i,b,M);return m}return{createPrivateKeyFromPhrase:G2(G),createTransaction:Ef,fetchFeeRateFromSwapKit:bf,getAccount:Z,getAddress:B,getBalance:async(q,z)=>{let M=await E1(X)(q);return await Promise.all(M.filter(({denom:_})=>_&&!_.includes("IBC/")).map(({denom:_,amount:W})=>{let k=[r.THORChain,r.Maya].includes(T)&&(_.includes("/")||_.includes("˜"))?`${T}.${_}`:_;return Pf(k,W)}))},getBalanceAsDenoms:E1(X),getFees:()=>O1(T,I1[T]),getPubKey:J,getSignerFromPhrase:async({phrase:q,derivationPath:z})=>uf({derivationPath:D1(z),index:L,phrase:q,prefix:y}),getSignerFromPrivateKey:async(q)=>{let z=await import("@cosmjs/proto-signing");return(z.DirectSecp256k1Wallet??z.default?.DirectSecp256k1Wallet).fromKey(q,y)},transfer:Q,validateAddress:A1(y),verifySignature:v1(Z)}}async function F1(T,f){try{let y=(await l1.getGasRate()).find((L)=>L.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(X){return f}}function sG({address:T,chain:f,prefix:X}){let y=X||y2(f);if(!(y&&T))throw new pT("toolbox_cosmos_validate_address_prefix_not_found");return A1(y)(T)}function eG({assetValue:{chain:T}}){return P1.from({chain:T,value:f2(T)})}function y2(T){let{isStagenet:f}=gG.get("envs"),X=T?[r.THORChain,r.Maya].includes(T)&&f:!1,y=T?w1[T]:void 0;return X?`s${y}`:y}async function O1(T,f){let{chainId:X,baseDecimal:y}=mG(T),L=await bf(X,f);return{average:Vf.fromBigInt(BigInt(L),y),fast:Vf.fromBigInt(BigInt(R1(L,Kf.Fast,!0)),y),fastest:Vf.fromBigInt(BigInt(R1(L,Kf.Fastest,!0)),y)}}function T2(T,f){return{amount:[{amount:T.getBaseValue("string"),denom:f}],gas:"200000"}}function f2(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(X){if(!X.startsWith(T))return!1;try{let{prefix:y,words:L}=Sf.decode(X);return Sf.encode(y,L)===X.toLocaleLowerCase()}catch(y){return!1}}}function E1(T){return async function(X){return(await(await Uy(T)).getAllBalances(X)).map((x)=>({...x,denom:x.denom.includes("/")?x.denom.toUpperCase():x.denom}))}}function G2(T){return async function(X){let y=await import("@cosmjs/crypto"),L=y.stringToPath??y.default?.stringToPath,G=y.Slip10Curve??y.default?.Slip10Curve,x=y.Slip10??y.default?.Slip10,Z=y.EnglishMnemonic??y.default?.EnglishMnemonic,B=y.Bip39??y.default?.Bip39,J=new Z(X),Q=await B.mnemonicToSeed(J),{privkey:q}=x.derivePath(G.Secp256k1,Q,L(T));return q}}var I1,aG;var oT=P(()=>{YT();I1={[r.Cosmos]:500,[r.Kujira]:1000,[r.Noble]:1000,[r.THORChain]:5000000,[r.Maya]:5000000};aG=F1});import{base64 as uy}from"@scure/base";import{Chain as L2,CosmosChainPrefixes as X2,derivationPathToString as x2,FeeOption as nf,getChainConfig as Z2,getRPCUrl as B2,NetworkDerivationPath as J2,RequestClient as Q2,SKConfig as S1,SwapKitError as V1,SwapKitNumber as $1,updateDerivationPath as q2}from"@swapkit/helpers";import{match as z2,P as K1}from"ts-pattern";function _2({prefix:T,derivationPath:f}){return async function(y,L=0){let G=await import("@cosmjs/amino"),x=G.Secp256k1HdWallet??G.default?.Secp256k1HdWallet,Z=await import("@cosmjs/crypto"),B=Z.stringToPath??Z.default?.stringToPath;return x.fromMnemonic(y,{hdPaths:[B(`${f}/${L}`)],prefix:T})}}function M2(T){return uy.encode(T)}function N2(T){return async function({wallet:X,tx:y}){let{msgs:L,accountNumber:G,sequence:x,chainId:Z,fee:B,memo:J}=typeof y==="string"?JSON.parse(y):y,Q=(await X.getAccounts())?.[0]?.address||"",q=await Ey(T),z=await Ky(),M=await Of(X,{aminoTypes:q,registry:z}),_=[];for(let v of L){let F=await Py(v,T);_.push(F)}let{signatures:[W]}=await M.sign(Q,_,B,J,{accountNumber:G,chainId:Z,sequence:x});return{bodyBytes:await UT({chain:T,memo:J,msgs:L.map(wy)}),signature:M2(W)}}}function Y2({prefix:T,rpcUrl:f}){return async function(y,L,G,x,Z){let{encodeSecp256k1Pubkey:B,pubkeyToAddress:J}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:Q}=(await import("@cosmjs/stargate")).default,{sequence:q,fee:z}=JSON.parse(y),M=await u1(G,x),_=L.map((v)=>[J(B(uy.decode(v.pubKey)),T),uy.decode(v.signature)]),W=await Uy(f),{transactionHash:k}=await W.broadcastTx(Q(M,q,z,Z,new Map(_)));return k}}async function u1(T,f,X=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:L}=(await import("@cosmjs/amino")).default;return y(T.map((G)=>L(uy.decode(G))),f,X)}function U2(T){return uy.decode(T)}async function H2({privateKey:T,message:f}){let{Secp256k1:X}=(await import("@cosmjs/crypto")).default,y=await X.createSignature(uy.decode(f),T);return uy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function jf({chain:T,...f}){let X=S1.get("nodeUrls")[T],y=await B2(T),{isStagenet:L}=S1.get("envs"),G=T===L2.THORChain,x=`${L?"s":""}${X2[T]}`,Z="index"in f?f.index||0:0,B="derivationPath"in f&&f.derivationPath?f.derivationPath:q2(J2[T],{index:Z}),J=await HT({chain:T,...f}),Q=await z2(f).with({phrase:K1.string},({phrase:_})=>J.getSignerFromPhrase({derivationPath:B,phrase:_})).with({signer:K1.any},({signer:_})=>_).otherwise(()=>{return}),q=Yy(T);async function z(){let _,W=`${X}/${G?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:k}}=await Q2.get(W);if(!k||Number.isNaN(k)||k<0)throw new V1("toolbox_cosmos_invalid_fee",{nativeFee:k.toString()});_=new $1(k)}catch{_=new $1({decimal:Z2(T).baseDecimal,value:G?0.02:1})}return{[nf.Average]:_,[nf.Fast]:_,[nf.Fastest]:_}}async function M({assetValue:_,memo:W="",recipient:k}){let{TxRaw:v}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),F=(await Q?.getAccounts())?.[0]?.address;if(!(F&&Q))throw new V1("toolbox_cosmos_no_signer");let b="signAmino"in Q,K=await Ky(),i=await Ey(T),m=await NT(y,Q,{aminoTypes:i,registry:K}),s=hT({assetValue:_,memo:W,recipient:k,sender:F});if(b){let R=await Py(s,T),{signatures:O,authInfoBytes:E}=await m.sign(F,[R],q,W),l=v.encode({authInfoBytes:E,bodyBytes:await UT({chain:T,memo:W,msgs:[s].map(wy)}),signatures:O}).finish();return(await m.broadcastTx(l)).transactionHash}let uT=wy(s),N=await Py(uT,T);return(await m.signAndBroadcast(F,[N],q,W)).transactionHash}return{...J,broadcastMultisigTx:Y2({prefix:x,rpcUrl:y}),buildAminoMsg:hT,buildEncodedTxBody:UT,convertToSignable:Py,createDefaultAminoTypes:()=>Ey(T),createDefaultRegistry:Ky,createMultisig:u1,createTransaction:Ff(y),deposit:M,getFees:z,importSignature:U2,parseAminoMessageForDirectSigning:wy,pubkeyToAddress:async(_)=>{let{pubkeyToAddress:W}=(await import("@cosmjs/amino")).default;return W(_,x)},secp256k1HdWalletFromMnemonic:_2({derivationPath:x2(B),prefix:x}),signMultisigTx:N2(T),signWithPrivateKey:H2,transfer:M}}var hf=P(()=>{Af();YT();oT()});import{Chain as WT,SwapKitError as W2}from"@swapkit/helpers";var C2=(T,f)=>{switch(T){case WT.Cosmos:case WT.Kujira:case WT.Noble:return HT({chain:T,...f});case WT.Maya:case WT.THORChain:return jf({chain:T,...f});default:throw new W2("toolbox_cosmos_not_supported",{chain:T})}};var b1=P(()=>{oT();hf();oT();hf()});var mT={};Ly(mT,{verifySignature:()=>v1,transferMsgAmino:()=>lf,toBase64:()=>SG,parseAminoMessageForDirectSigning:()=>wy,getSignerFromPrivateKey:()=>rG,getSignerFromPhrase:()=>uf,getMsgSendDenom:()=>Oy,getFeeRateFromThorswap:()=>aG,getFeeRateFromSwapKit:()=>F1,getDenomWithChain:()=>MT,getDefaultChainFee:()=>Yy,getCreateTransaction:()=>Ff,getCosmosToolbox:()=>C2,getAssetFromDenom:()=>Pf,fromBase64:()=>VG,fetchFeeRateFromSwapKit:()=>bf,estimateTransactionFee:()=>eG,depositMsgAmino:()=>vf,createThorchainToolbox:()=>jf,createStargateClient:()=>Uy,createSigningStargateClient:()=>NT,createOfflineStargateClient:()=>Of,createDefaultRegistry:()=>Ky,createDefaultAminoTypes:()=>Ey,createCosmosToolbox:()=>HT,cosmosValidateAddress:()=>sG,cosmosCreateTransaction:()=>Ef,convertToSignable:()=>Py,buildTransferTx:()=>Y1,buildEncodedTxBody:()=>UT,buildDepositTx:()=>U1,buildAminoMsg:()=>hT,bech32ToBase64:()=>zT,base64ToBech32:()=>_T,YUM_KUJIRA_FACTORY_DENOM:()=>B1,USK_KUJIRA_FACTORY_DENOM:()=>If,THORCHAIN_GAS_VALUE:()=>hG,MAYA_GAS_VALUE:()=>pG,DEFAULT_NOBLE_FEE_MAINNET:()=>q1,DEFAULT_KUJI_FEE_MAINNET:()=>Q1,DEFAULT_COSMOS_FEE_MAINNET:()=>J1});var cT=P(()=>{Af();b1();YT()});import{AssetValue as R2,getChainConfig as D2}from"@swapkit/helpers";import{SwapKitApi as k2}from"@swapkit/helpers/api";function n1(){function T(){let f=Date.now(),X=pf||f;return pf=X,f>pf?f:X+1}return I2+T().toString(36)}function iy(T){return async function(X,y=!0){let L=await k2.getChainBalance({address:X,chain:T,scamFilter:y}),{baseDecimal:G}=D2(T);return L.map(({identifier:x,value:Z,decimal:B})=>{return new R2({decimal:B||G,identifier:x,value:Z})})}}var I2,pf=0;var CT=P(()=>{I2=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{SKConfig as O2,warnOnce as E2}from"@swapkit/helpers";function RT(T){let f=O2.get("apis")[T];if(f)return E2({condition:!0,id:"custom_evm_api_warning",warning:"Using custom EVM API. Be sure to implement all methods to avoid issues."}),f;return w2(T)}function P2(T){return T}function w2(T){return{getBalance:iy(T)}}var tT=P(()=>{CT()});import{Chain as h,getChainConfig as j1,getRPCUrl as l2,SwapKitError as v2}from"@swapkit/helpers";async function by(T,f){let{JsonRpcProvider:X}=await import("ethers");return new X(f||await l2(T))}function DT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function of(T){let{blockExplorerUrl:f,chainId:X,rpcUrl:y}=j1(T);return()=>T===h.Ethereum?void 0:{...F2({chain:T}),blockExplorerUrls:[f],chainId:X,rpcUrls:[y]}}function mf(T){return![h.Arbitrum,h.BinanceSmartChain].includes(T)}function F2({chain:T}){let{baseDecimal:f}=j1(T);switch(T){case h.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Aurora:return{chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:T}};case h.Base:return{chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Berachain:return{chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}};case h.BinanceSmartChain:return{chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}};case h.Gnosis:return{chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}};case h.Optimism:return{chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:h.Polygon}};default:throw new v2("toolbox_evm_not_supported",{chain:T})}}var dy=()=>{};var h1;var p1=P(()=>{h1=[{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 A2,applyFeeMultiplierToBigInt as ry,Chain as o,ContractAddress as By,FeeOption as j,isGasAsset as S2,SwapKitError as n,SwapKitNumber as gT}from"@swapkit/helpers";import{erc20ABI as kT}from"@swapkit/helpers/contracts";import{BrowserProvider as V2,Contract as o1,getAddress as iT,Interface as m1}from"ethers";function ay({chain:T=o.Ethereum,provider:f,signer:X,isEIP1559Compatible:y=!0}){return{approve:n2({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),approvedAmount:g1({chain:T,provider:f}),broadcastTransaction:f.broadcastTransaction,call:rf({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),createApprovalTx:o2({chain:T,provider:f,signer:X}),createContract:gf({chain:T,provider:f}),createContractTxObject:ny({chain:T,provider:f}),createTransaction:cf({chain:T,provider:f,signer:X}),createTransferTx:cf({chain:T,provider:f,signer:X}),EIP1193SendTransaction:ey(f),estimateCall:i1({provider:f,signer:X}),estimateGasLimit:h2({chain:T,provider:f,signer:X}),estimateGasPrices:jy({chain:T,isEIP1559Compatible:y,provider:f}),estimateTransactionFee:m2({chain:T,isEIP1559Compatible:y,provider:f}),getAddress:()=>{return X?X.getAddress():void 0},isApproved:b2({chain:T,provider:f}),sendTransaction:d1({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),signMessage:X?.signMessage,transfer:j2({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),validateAddress:(L)=>tf({address:L})}}function tf({address:T}){try{return iT(T),!0}catch(f){return!1}}function sy(T){return T instanceof V2}function OT(T,f,X){return new o1(T,m1.from(f),X)}function gf({provider:T}){return function(X,y){return new o1(X,m1.from(y),T)}}function df({abi:T,funcName:f}){let X=T.find((y)=>y.name===f);if(!X)throw new n("toolbox_evm_no_abi_fragment",{funcName:f});return X.stateMutability&&$2.includes(X.stateMutability)}function c1(T){return iT(T)}function ey(T){return function({value:X,...y}){if(!sy(T))throw new n("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:L,gasPrice:G,maxFeePerGas:x,maxPriorityFeePerGas:Z,...B}=y;return T.send("eth_sendTransaction",[{...B,value:DT(BigInt(X||0))}])}}function t1(T,f){let X=yT(T,f);if(X)return iT(X.toLowerCase());throw new n("toolbox_evm_invalid_gas_asset_address")}function yT({chain:T,symbol:f,ticker:X},y){try{let L=T===o.BinanceSmartChain&&f==="BNB"&&X==="BNB",G=T===y&&f===y&&X===y,x=u2.includes(T)&&f==="ETH"&&X==="ETH";if(G||L||x)return K2[y];return iT(f.slice(X.length+1).replace(/^0X/,""))}catch(L){return null}}function ny({provider:T}){return async({contractAddress:f,abi:X,funcName:y,funcParams:L=[],txOverrides:G})=>OT(f,X,T).getFunction(y).populateTransaction(...L.concat(G).filter((x)=>typeof x<"u"))}function jy({chain:T,provider:f,isEIP1559Compatible:X=!0}){if(T===o.Arbitrum)return async function(){try{let{gasPrice:L}=await f.getFeeData();if(!L)throw new n("toolbox_evm_no_fee_data");return{[j.Average]:{gasPrice:L},[j.Fast]:{gasPrice:L},[j.Fastest]:{gasPrice:L}}}catch(L){throw new n("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}};return async function(){try{let{maxFeePerGas:L,maxPriorityFeePerGas:G,gasPrice:x}=await f.getFeeData();if(X){if(L===null||G===null)throw new n("toolbox_evm_no_fee_data");return{[j.Average]:{maxFeePerGas:L,maxPriorityFeePerGas:G},[j.Fast]:{maxFeePerGas:ry(L,j.Fast),maxPriorityFeePerGas:ry(G,j.Fast)},[j.Fastest]:{maxFeePerGas:ry(L,j.Fastest),maxPriorityFeePerGas:ry(G,j.Fastest)}}}if(!x)throw new n("toolbox_evm_no_gas_price");return{[j.Average]:{gasPrice:x},[j.Fast]:{gasPrice:ry(x,j.Fast)},[j.Fastest]:{gasPrice:ry(x,j.Fastest)}}}catch(L){throw new n("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}}}function rf({provider:T,isEIP1559Compatible:f,signer:X,chain:y}){return async function({callProvider:G,contractAddress:x,abi:Z,funcName:B,funcParams:J=[],txOverrides:Q={},feeOption:q=j.Fast}){let z=G||T;if(!x)throw new n("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let M=df({abi:Z,funcName:B});if(M&&sy(z)&&X){let k=ny({chain:y,provider:z}),v=Q?.from||await X?.getAddress(),F=await k({abi:Z,contractAddress:x,funcName:B,funcParams:J,txOverrides:{...Q,from:v}});return ey(z)(F)}let _=OT(x,Z,z);if(M){if(!X)throw new n("toolbox_evm_no_signer");let k=Q?.from||await X.getAddress();if(!k)throw new n("toolbox_evm_no_signer_address");let v=_.connect(X),F=jy({chain:y,isEIP1559Compatible:f,provider:T}),{maxFeePerGas:b,maxPriorityFeePerGas:K,gasPrice:i}=(await F())[q],m=await _.getFunction(B).estimateGas(...J,Q),s=await v[B](...J,{...Q,gasLimit:m,gasPrice:i,maxFeePerGas:b,maxPriorityFeePerGas:K,nonce:Q?.nonce||await z.getTransactionCount(k)});return typeof s?.hash==="string"?s?.hash:s}let W=await _[B]?.(...J);return typeof W?.hash==="string"?W?.hash:W}}function g1({provider:T,chain:f}){return function({assetAddress:y,spenderAddress:L,from:G}){return rf({chain:f,isEIP1559Compatible:!0,provider:T})({abi:kT,contractAddress:y,funcName:"allowance",funcParams:[G,L]})}}function b2({provider:T,chain:f}){return async function({assetAddress:y,spenderAddress:L,from:G,amount:x=IT}){let Z=await g1({chain:f,provider:T})({assetAddress:y,from:G,spenderAddress:L});return gT.fromBigInt(Z).gte(gT.fromBigInt(BigInt(x)))}}function n2({signer:T,isEIP1559Compatible:f=!0,provider:X,chain:y}){return async function({assetAddress:G,spenderAddress:x,feeOptionKey:Z=j.Fast,amount:B,gasLimitFallback:J,from:Q,nonce:q}){let z=[x,BigInt(B||IT)],M=await T?.getAddress()||Q,_={abi:kT,contractAddress:G,funcName:"approve",funcParams:z,signer:T,txOverrides:{from:M}};if(sy(X)){let k=ny({chain:y,provider:X}),v=ey(X),F=await k(_);return v(F)}return rf({chain:y,isEIP1559Compatible:f,provider:X,signer:T})({..._,feeOption:Z,funcParams:z,txOverrides:{from:M,gasLimit:J?BigInt(J.toString()):void 0,nonce:q}})}}function j2({signer:T,isEIP1559Compatible:f=!0,provider:X}){return async function({assetValue:L,memo:G,recipient:x,feeOptionKey:Z=j.Fast,sender:B,...J}){let{hexlify:Q,toUtf8Bytes:q}=await import("ethers"),z=L.getBaseValue("bigint"),M=L.chain,_=B||await T?.getAddress(),W=d1({chain:M,isEIP1559Compatible:f,provider:X,signer:T});if(!_)throw new n("toolbox_evm_no_from_address");if(L.isGasAsset){let i={...J,data:Q(q(G||"")),feeOptionKey:Z,from:_,to:x,value:z};return W(i)}if(!yT(L,M))throw new n("toolbox_evm_no_contract_address");let{maxFeePerGas:v,maxPriorityFeePerGas:F,gasPrice:b}=(await jy({chain:M,isEIP1559Compatible:f,provider:X})())[Z],K=await cf({chain:M,provider:X,signer:T})({assetValue:L,data:Q(q(G||"")),gasPrice:b,maxFeePerGas:v,maxPriorityFeePerGas:F,memo:G,recipient:x,sender:_});return W(K)}}function i1({provider:T,signer:f}){return function({contractAddress:y,abi:L,funcName:G,funcParams:x=[],txOverrides:Z}){if(!y)throw new n("toolbox_evm_no_contract_address");let B=OT(y,L,T);return f?B.connect(f).getFunction(G).estimateGas(...x,Z):B.getFunction(G).estimateGas(...x,Z)}}function h2({provider:T,signer:f}){return async function({assetValue:y,recipient:L,memo:G,data:x,sender:Z,funcName:B,funcParams:J,txOverrides:Q}){let q=y.bigIntValue,z=y.isGasAsset?null:yT(y,y.chain);if(z&&B)return i1({provider:T,signer:f})({abi:kT,contractAddress:z,funcName:B,funcParams:J,txOverrides:Q});let{hexlify:M,toUtf8Bytes:_}=await import("ethers");return T.estimateGas({data:x?x:G?M(_(G)):void 0,from:Z,to:L,value:q})}}function d1({provider:T,signer:f,isEIP1559Compatible:X=!0,chain:y}){return async function({feeOptionKey:G=j.Fast,...x}){let{from:Z,to:B,data:J,value:Q,...q}=x;if(!f)throw new n("toolbox_evm_no_signer");if(!B)throw new n("toolbox_evm_no_to_address");let z={...q,data:J||"0x",from:Z,to:B,value:BigInt(Q||0)};if(sy(T))return ey(T)(z);let M=Z||await f.getAddress(),_=x.nonce||await T.getTransactionCount(M),W=(await T.getNetwork()).chainId,k=p2(z)||X,v=jy({chain:y,isEIP1559Compatible:X,provider:T}),F=k&&!(z.maxFeePerGas&&z.maxPriorityFeePerGas)||!z.gasPrice?Object.entries((await v())[G]).reduce((K,[i,m])=>({...K,[i]:DT(BigInt(m))}),{}):{},b;try{b=DT(z.gasLimit||await T.estimateGas(z)*11n/10n)}catch(K){throw new n("toolbox_evm_error_estimating_gas_limit",{error:K})}try{let K={...z,chainId:W,gasLimit:b,nonce:_,type:k?2:0,...F};try{return(await f.sendTransaction(K)).hash}catch(i){let m=await f.signTransaction({...K,from:M});return(await T.broadcastTransaction(m)).hash}}catch(K){throw new n("toolbox_evm_error_sending_transaction",{error:K})}}}function cf({provider:T,signer:f}){return async function({assetValue:y,memo:L,recipient:G,data:x,sender:Z,maxFeePerGas:B,maxPriorityFeePerGas:J,gasPrice:Q,...q}){let z=y.getBaseValue("bigint"),M=y.chain,_=Z||await f?.getAddress();if(!_)throw new n("toolbox_evm_no_from_address");if(S2(y)){let{hexlify:v,toUtf8Bytes:F}=await import("ethers");return{...q,data:x||v(F(L||"")),from:_,to:G,value:z}}let W=yT(y,M);if(!W)throw new n("toolbox_evm_no_contract_address");return ny({chain:y.chain,provider:T})({abi:kT,contractAddress:W,funcName:"transfer",funcParams:[G,z],txOverrides:{from:_,gasPrice:Q,maxFeePerGas:B,maxPriorityFeePerGas:J}})}}function o2({provider:T,signer:f,chain:X}){return async function({assetAddress:L,spenderAddress:G,amount:x,from:Z}){let B=await f?.getAddress()||Z,J=ny({chain:X,provider:T}),Q=["bigint","number"].includes(typeof x)?x:x||IT;return await J({abi:kT,contractAddress:L,funcName:"approve",funcParams:[G,BigInt(Q)],txOverrides:{from:B}})}}function m2({provider:T,isEIP1559Compatible:f=!0}){return async function({feeOption:y=j.Fast,chain:L,...G}){let Z=await jy({chain:L,isEIP1559Compatible:f,provider:T})(),B=await T.estimateGas(G),J=A2.from({chain:L}),{gasPrice:Q,maxFeePerGas:q,maxPriorityFeePerGas:z}=Z[y];if(!f&&Q)return J.set(gT.fromBigInt(Q*B,J.decimal));if(q&&z){let M=(q+z)*B;return J.set(gT.fromBigInt(M,J.decimal))}throw new n("toolbox_evm_no_gas_price")}}var IT,$2,K2,u2,p2=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var dT=P(()=>{dy();IT=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");$2=["payable","nonpayable"];K2={[o.Arbitrum]:By.ARB,[o.Aurora]:By.AURORA,[o.Avalanche]:By.AVAX,[o.Base]:By.BASE,[o.Berachain]:By.BERA,[o.BinanceSmartChain]:By.BSC,[o.Ethereum]:By.ETH,[o.Gnosis]:By.GNO,[o.Optimism]:By.OP,[o.Polygon]:By.MATIC},u2=[o.Arbitrum,o.Aurora,o.Base,o.Optimism]});import{Chain as Hy,FeeOption as c2,getRPCUrl as t2}from"@swapkit/helpers";import{HDNodeWallet as g2}from"ethers";import{match as i2,P as r1}from"ts-pattern";async function rT({provider:T,...f}){let X=await Wy(Hy.Ethereum)({provider:T,...f});async function y(L,G="0x5ba1e12693dc8f9c48aad8770482f4739beed696",x="aggregate",Z=c2.Fast){let B=await X.createContractTxObject({abi:h1,contractAddress:G,funcName:x,funcParams:[L]});return X.sendTransaction({...B,feeOptionKey:Z})}return{...X,multicall:y}}function Wy(T){return async function({provider:X,...y}){let L=await t2(T),G=X||await by(T,L),x=mf(T),Z=i2(y).with({phrase:r1.string},({phrase:J})=>g2.fromPhrase(J).connect(G)).with({signer:r1.any},({signer:J})=>J).otherwise(()=>{return});return{...ay({chain:T,isEIP1559Compatible:x,provider:G,signer:Z}),getBalance:RT(T).getBalance,getNetworkParams:of(T)}}}var aT,sT,eT,yf,Tf,ff,Gf,Lf;var af=P(()=>{tT();p1();dy();dT();aT=Wy(Hy.Arbitrum),sT=Wy(Hy.Aurora),eT=Wy(Hy.Avalanche),yf=Wy(Hy.Base),Tf=Wy(Hy.Berachain),ff=Wy(Hy.BinanceSmartChain),Gf=Wy(Hy.Gnosis),Lf=Wy(Hy.Polygon)});var a1;var s1=P(()=>{a1=[{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 TT,Chain as Xf,FeeOption as Cy,getChainConfig as d2,getRPCUrl as r2,SwapKitError as sf}from"@swapkit/helpers";import{Contract as a2,HDNodeWallet as s2}from"ethers";import{match as e2,P as e1}from"ts-pattern";function ef(T){return new a2(yL,a1,T)}function y5(T){return function(){let X=ef(T);if(X&&"l1BaseFee"in X)return X?.l1BaseFee();return}}function T5(T){return async function({from:X,to:y,nonce:L,...G}){let{Transaction:x}=await import("ethers");if(!y)throw new sf("toolbox_evm_invalid_transaction",{error:"Missing to address"});return x.from({...G,authorizationList:G.authorizationList,nonce:L?L:X?await T.getTransactionCount(X):0,to:y}).serialized}}function f5(T){return async function(X){let y=ef(T),L=await T5(T)(X);if(y&&"getL1Fee"in y)return y.getL1Fee(L)}}function G5(T){return async function(X){let y=await T.send("eth_gasPrice",[]),L=await T.estimateGas(X);return y.mul(L)}}function TL(T){return async function(X){let y=await f5(T)(X),L=await G5(T)(X);return y.add(L)}}function fL(T){return async function(X){let y=ef(T),L=await T5(T)(X);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(L)}}function GL(){let{baseDecimal:T,chainId:f,blockExplorerUrl:X,name:y,rpcUrl:L}=d2(Xf.Optimism);return{blockExplorerUrls:[X],chainId:f,chainName:y,nativeCurrency:{decimals:T,name:"Ethereum",symbol:Xf.Ethereum},rpcUrls:[L]}}async function LL(T){try{let{maxFeePerGas:f,maxPriorityFeePerGas:X,gasPrice:y}=await T.getFeeData(),L=y5(T)(),G=y;if(!(f&&X))throw new sf("toolbox_evm_no_fee_data");return{[Cy.Average]:{gasPrice:G,l1GasPrice:L,maxFeePerGas:f,maxPriorityFeePerGas:X},[Cy.Fast]:{gasPrice:TT(G,Cy.Fast),l1GasPrice:TT(L||0n,Cy.Fast),maxFeePerGas:f,maxPriorityFeePerGas:TT(X,Cy.Fast)},[Cy.Fastest]:{gasPrice:TT(G,Cy.Fastest),l1GasPrice:TT(L||0n,Cy.Fastest),maxFeePerGas:f,maxPriorityFeePerGas:TT(X,Cy.Fastest)}}}catch(f){throw new sf("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}async function xf({provider:T,...f}){let X=Xf.Optimism,y=await r2(X),L=T||await by(X,y),G=e2(f).with({phrase:e1.string},({phrase:B})=>s2.fromPhrase(B).connect(L)).with({signer:e1.any},({signer:B})=>B).otherwise(()=>{return}),x=ay({provider:L,signer:G}),Z=y5(L);return{...x,estimateGasPrices:LL(L),estimateL1Gas:fL(L),estimateL1GasCost:f5(L),estimateL2GasCost:G5(L),estimateTotalGasCost:TL(L),getBalance:RT(Xf.Optimism).getBalance,getL1GasPrice:Z,getNetworkParams:GL}}var yL="0x420000000000000000000000000000000000000f";var y0=P(()=>{tT();s1();dy();dT()});var X5={};Ly(X5,{toChecksumAddress:()=>c1,isStateChangingCall:()=>df,isBrowserProvider:()=>sy,getTokenAddress:()=>yT,getEvmToolbox:()=>L5,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>ey,getCreateContractTxObject:()=>ny,getCreateContract:()=>gf,getChecksumAddressFromAsset:()=>t1,evmValidateAddress:()=>tf,createContract:()=>OT,OPToolbox:()=>xf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>Lf,GNOToolbox:()=>Gf,ETHToolbox:()=>rT,BaseEVMToolbox:()=>ay,BSCToolbox:()=>ff,BERAToolbox:()=>Tf,BASEToolbox:()=>yf,AVAXToolbox:()=>eT,AURORAToolbox:()=>sT,ARBToolbox:()=>aT});import{Chain as Jy,SwapKitError as XL}from"@swapkit/helpers";async function L5(T,f){let X={...f,provider:f?.provider||await by(T)};switch(T){case Jy.Arbitrum:return aT(X);case Jy.Aurora:return sT(X);case Jy.Avalanche:return eT(X);case Jy.Base:return yf(X);case Jy.Berachain:return Tf(X);case Jy.BinanceSmartChain:return ff(X);case Jy.Gnosis:return Gf(X);case Jy.Optimism:return xf(X);case Jy.Polygon:return Lf(X);case Jy.Ethereum:return rT(X);default:throw new XL("toolbox_evm_not_supported",{chain:T})}}var T0=P(()=>{dy();af();y0();dT();af();y0()});var x5;var Z5=P(()=>{((X)=>{X.Test="goerli";X.Main="homestead"})(x5||={})});var B5={};Ly(B5,{toHexString:()=>DT,toChecksumAddress:()=>c1,isStateChangingCall:()=>df,isBrowserProvider:()=>sy,getTokenAddress:()=>yT,getProvider:()=>by,getNetworkParams:()=>of,getIsEIP1559Compatible:()=>mf,getEvmToolbox:()=>L5,getEvmApi:()=>RT,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>ey,getCreateContractTxObject:()=>ny,getCreateContract:()=>gf,getChecksumAddressFromAsset:()=>t1,evmValidateAddress:()=>tf,createCustomEvmApi:()=>P2,createContract:()=>OT,OPToolbox:()=>xf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>Lf,GNOToolbox:()=>Gf,EthNetwork:()=>x5,ETHToolbox:()=>rT,BaseEVMToolbox:()=>ay,BSCToolbox:()=>ff,BERAToolbox:()=>Tf,BASEToolbox:()=>yf,AVAXToolbox:()=>eT,AURORAToolbox:()=>sT,ARBToolbox:()=>aT});var J5=P(()=>{tT();dy();T0();Z5()});import{AssetValue as xL,Chain as ZL,SwapKitNumber as Q5}from"@swapkit/helpers";async function BL(T,f,X){try{let y=await T.query.system?.account?.(X);if(!y)return[f.set(0)];let{data:{free:L}}=y,G=Q5.fromBigInt(BigInt(L.toString()),f.decimal).getValue("string");return[f.set(G)]}catch(y){return console.error("Error fetching substrate balance:",y),[f.set(0)]}}async function JL(T,f,X){try{let y=await T.query.flip?.account?.(X);if(!y)return[f.set(0)];let L=y.balance||y.data?.balance;if(!L||L.isEmpty)return[f.set(0)];let G=Q5.fromBigInt(BigInt(L.toString()),f.decimal).getValue("string");return[f.set(G)]}catch(y){return console.error("Error fetching chainflip balance:",y),[f.set(0)]}}function q5(T,f){return function(y){let L=xL.from({chain:T});switch(T){case ZL.Chainflip:return JL(f,L,y);default:return BL(f,L,y)}}}var z5=()=>{};var QL,qL,zL,ly;var f0=P(()=>{QL={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},qL={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},zL={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},ly={DOT:QL,FLIP:qL,GENERIC:zL}});import{hexToU8a as _L,isHex as ML,u8aToHex as NL}from"@polkadot/util";import{decodeAddress as M5,encodeAddress as N5}from"@polkadot/util-crypto";import{AssetValue as YL,Chain as GT,getRPCUrl as UL,SwapKitError as Qy,SwapKitNumber as HL}from"@swapkit/helpers";import{match as WL,P as _5}from"ts-pattern";function CL(T,f){switch(T){case GT.Chainflip:return U5(f);case GT.Polkadot:return Y5(f);default:throw new Qy("toolbox_substrate_not_supported",{chain:T})}}function fT(T){return"address"in T}async function L0(T,f){let{Keyring:X}=await import("@polkadot/api"),{cryptoWaitReady:y}=await import("@polkadot/util-crypto");return await y(),new X({ss58Format:f,type:"sr25519"}).addFromUri(T)}function PL(T,f){let X=M5(T);return N5(X,f)}function H5(T,f){return ML(T)?_L(T):M5(T,void 0,f)}function W5(T,f="ss58",X){if(f==="hex")return NL(T);return N5(T,X)}async function Z0({generic:T,chain:f,...X}){let{ApiPromise:y,WsProvider:L}=await import("@polkadot/api"),G=await UL(f),x=new L(G),Z=await y.create({provider:x}),B=YL.from({chain:f}),J=T?ly.GENERIC:ly[f],Q=await WL(X).with({phrase:_5.string},({phrase:q})=>L0(q,ly[f].prefix)).with({signer:_5.any},({signer:q})=>q).otherwise(()=>{return});return C5({api:Z,chain:f,gasAsset:B,network:J,signer:Q})}var Y5=({generic:T=!1,...f}={})=>{return Z0({chain:GT.Polkadot,generic:T,...f})},U5=async({generic:T=!1,...f}={})=>{return{...await Z0({chain:GT.Chainflip,generic:T,...f})}},X0=(T,f)=>T.rpc.system.accountNextIndex(f),G0=(T,f)=>{try{let X=H5(T,f);return W5(X,"ss58",f),!0}catch(X){return!1}},x0=(T,{recipient:f,assetValue:X})=>T.tx.balances?.transferAllowDeath?.(f,X.getBaseValue("number")),RL=async(T,f,{recipient:X,assetValue:y,sender:L})=>{let G=x0(T,{assetValue:y,recipient:X});if(!G)throw new Qy("toolbox_substrate_transfer_error");let x=fT(f),Z=x?f.address:L;if(!Z)throw new Qy("core_transaction_invalid_sender_address");let B=await X0(T,Z);return(await G.signAndSend(x?f:Z,{nonce:B,signer:x?void 0:f})).toString()},DL=async(T,f,X,{recipient:y,assetValue:L,sender:G})=>{let x=x0(T,{assetValue:L,recipient:y}),Z=fT(f)?f.address:G;if(!Z)return;let B=await x?.paymentInfo(Z,{nonce:await X0(T,Z)})||{partialFee:0};return X.set(HL.fromBigInt(BigInt(B.partialFee.toString()),X.decimal).getValue("string"))},kL=async(T,f)=>{if(f)return T.send(f);return(await T.send()).toString()},IL=async(T,f)=>{return await f.signAsync(T)},OL=(T,f,X)=>{if(X)return f.signAndSend(T,X);return f.signAndSend(T).toString()},EL=async({signer:T,address:f,tx:X,callback:y,api:L})=>{let G=await X0(L,f);if(y)X.signAndSend(f,{nonce:G,signer:T},y);return X.signAndSend(f,{nonce:G,signer:T}).toString()},C5=({api:T,network:f,gasAsset:X,signer:y,chain:L})=>({api:T,broadcast:kL,convertAddress:PL,createKeyring:(G)=>L0(G,f.prefix),createTransaction:(G)=>x0(T,G),decodeAddress:H5,encodeAddress:W5,estimateTransactionFee:(G)=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");return DL(T,y,X,G)},gasAsset:X,getAddress:(G)=>{let x=G||y;if(!x)throw new Qy("core_wallet_not_keypair_wallet");return fT(x)?x.address:void 0},getBalance:q5(L||GT.Polkadot,T),network:f,sign:(G)=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");if(fT(y))return IL(y,G);throw new Qy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:G,callback:x,address:Z})=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");if(fT(y))return OL(y,G,x);if(Z)return EL({address:Z,api:T,callback:x,signer:y,tx:G});throw new Qy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(G)=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");return RL(T,y,G)},validateAddress:(G)=>G0(G,f.prefix)}),wL=({address:T,chain:f})=>{let{prefix:X}=f===GT.Polkadot?ly.DOT:ly.FLIP;return G0(T,X)||G0(T,ly.GENERIC.prefix)};var R5=P(()=>{z5();f0()});var B0={};Ly(B0,{substrateValidateAddress:()=>wL,isKeyringPair:()=>fT,getSubstrateToolbox:()=>CL,createSubstrateToolbox:()=>Z0,createKeyring:()=>L0,SubstrateNetwork:()=>ly,PolkadotToolbox:()=>Y5,ChainflipToolbox:()=>U5,BaseSubstrateToolbox:()=>C5});var J0=P(()=>{R5();f0()});import{networks as lL}from"@bitgo/utxo-lib";import{Chain as c,getRPCUrl as vL,RequestClient as Zf,SKConfig as I5,SwapKitError as vy,warnOnce as O5}from"@swapkit/helpers";import{networks as FL}from"bitcoinjs-lib";import ET from"coininfo";async function AL({chain:T,txHash:f}){let X=`${Bf(T)}/push/transaction`,y=JSON.stringify({data:f});try{let L=await Zf.post(X,{body:y,headers:{"Content-Type":"application/json"}});if(L.context.code!==200)throw new vy("toolbox_utxo_broadcast_failed",{error:L.context.error||"Transaction broadcast failed"});return L.data?.transaction_hash||f}catch(L){let G=await vL(T);if(G){let x=JSON.stringify({id:n1(),jsonrpc:"2.0",method:"sendrawtransaction",params:[f]}),Z=await Zf.post(G,{body:x,headers:{"Content-Type":"application/json"}});if(Z.error)throw new vy("toolbox_utxo_broadcast_failed",{error:Z.error?.message});if(Z.result.includes('"code":-26'))throw new vy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return Z.result}throw L}}function Bf(T){return`https://api.blockchair.com/${SL(T)}`}function D5(T){switch(T){case c.Bitcoin:return 5;case c.Dogecoin:return 1e4;case c.Litecoin:return 1;case c.Zcash:return 1;default:return 2}}function SL(T){switch(T){case c.BitcoinCash:return"bitcoin-cash";case c.Litecoin:return"litecoin";case c.Dash:return"dash";case c.Dogecoin:return"dogecoin";case c.Zcash:return"zcash";case c.Polkadot:return"polkadot";default:return"bitcoin"}}async function VL(T){try{let{feePerKb:f}=await Zf.get(`https://app.bitgo.com/api/v2/${T.toLowerCase()}/tx/fee`),X=f/1000;return Math.max(X,D5(T))}catch(f){return D5(T)}}async function Q0(T,f){let X=await Zf.get(`${T}${f?`${T.includes("?")?"&":"?"}key=${f}`:""}`);if(!X||X.context.code!==200)throw new vy("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return X.data}async function E5({address:T,chain:f,apiKey:X}){if(!T)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Q0(`${Bf(f)}/dashboards/address/${T}?transaction_details=true`,X))[T]}catch(y){return{address:{balance:0,transaction_count:0},utxo:[]}}}async function $L({address:T,chain:f,apiKey:X}){return(await E5({address:T,apiKey:X,chain:f}))?.address.balance||0}async function P5({chain:T,apiKey:f,txHash:X}){if(!X)throw new vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Q0(`${Bf(T)}/raw/transaction/${X}`,f))?.[X]?.raw_transaction||""}catch(y){return console.error("Failed to fetch raw transaction:",y),""}}async function KL({chain:T,address:f,apiKey:X,offset:y=0,limit:L=30}){return(await Q0(`${Bf(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=${L}&offset=${y}`,X)).map(({is_spent:B,script_hex:J,block_id:Q,transaction_hash:q,index:z,value:M,spending_signature_hex:_})=>({hash:q,index:z,is_confirmed:Q!==-1,is_spent:B,script_hex:J,txHex:_,value:M}))}function uL(T){return T.reduce((f,X)=>f+X.value,0)}function k5(T,f){let X=[...T].sort((y,L)=>L.value-y.value);if(f){let y=[],L=0;for(let G of X)if(y.push(G),L+=G.value,L>=f)break;return y}return X}async function w5({chain:T,address:f,apiKey:X,targetValue:y,accumulativeValue:L=0,offset:G=0,limit:x=30}){if(!f)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let Z=await KL({address:f,apiKey:X,chain:T,limit:x,offset:G,targetValue:y}),J=Z.length<x,Q=Z.filter(({is_spent:k})=>!k),q=uL(Q),z=L+q,M=y&&z>=y;if(J||M)return k5(Q,y);let _=await w5({accumulativeValue:z,address:f,apiKey:X,chain:T,limit:x,offset:G+x,targetValue:y}),W=[...Q,..._];return k5(W,y)}catch(Z){return console.error("Failed to fetch unspent UTXOs:",Z),[]}}async function bL({address:T,chain:f,apiKey:X,fetchTxHex:y=!0,targetValue:L}){let G=await w5({address:T,apiKey:X,chain:f,targetValue:L}),x=[];for(let{hash:Z,index:B,script_hex:J,value:Q}of G){let q;if(y)q=await P5({apiKey:X,chain:f,txHash:Z});x.push({address:T,hash:Z,index:B,txHex:q,value:Q,witnessUtxo:{script:Buffer.from(J,"hex"),value:Q}})}return x}function nL(T){let f=I5.get("apiKeys").blockchair||"";return O5({condition:!f,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(X)=>AL({chain:T,txHash:X}),getAddressData:(X)=>E5({address:X,apiKey:f,chain:T}),getBalance:(X)=>$L({address:X,apiKey:f,chain:T}),getRawTx:(X)=>P5({apiKey:f,chain:T,txHash:X}),getSuggestedTxFee:()=>VL(T),getUtxos:(X)=>bL({...X,apiKey:f,chain:T})}}function jL(T){return T}function e(T){let f=I5.get("apis")[T];if(f)return O5({condition:!0,id:"custom_utxo_api_warning",warning:"Using custom UTXO API. Be sure to implement all methods to avoid issues."}),f;return nL(T)}function qy(){return function(f){switch(f){case c.Bitcoin:return FL.bitcoin;case c.BitcoinCash:return ET.bitcoincash.main.toBitcoinJS();case c.Dash:return ET.dash.main.toBitcoinJS();case c.Litecoin:return ET.litecoin.main.toBitcoinJS();case c.Dogecoin:{let X={private:70615956,public:70617039},y=ET.dogecoin.test;return y.versions.bip32=X,ET.dogecoin.main.toBitcoinJS()}case c.Zcash:return lL.zcash;default:throw new vy("toolbox_utxo_not_supported",{chain:f})}}}var l5=P(()=>{CT()});import{SwapKitError as F5}from"@swapkit/helpers";import A5 from"bs58check";import S5 from"cashaddrjs";function z0(T){try{return Jf(T),!0}catch(f){return!1}}function _0(T){return Jf(T)?.network}function LT(T){let f=Jf(T);if(f?.format==="legacy")return T;return oL(f)}function PT(T){let f=Jf(T);return mL(f)}function Jf(T){try{let f=hL(T);if(f)return f}catch(f){}try{let f=pL(T);if(f)return f}catch(f){}throw new F5("toolbox_utxo_invalid_address",{address:T})}function hL(T){try{let f=A5.decode(T);if(f.length!==21)throw new F5("toolbox_utxo_invalid_address",{address:T});let X=f[0],y=Array.prototype.slice.call(f,1);switch(X){case $.legacy.mainnet.p2pkh:return{format:"legacy",hash:y,network:"mainnet",type:"p2pkh"};case $.legacy.mainnet.p2sh:return{format:"legacy",hash:y,network:"mainnet",type:"p2sh"};case $.legacy.testnet.p2pkh:return{format:"legacy",hash:y,network:"testnet",type:"p2pkh"};case $.legacy.testnet.p2sh:return{format:"legacy",hash:y,network:"testnet",type:"p2sh"};case $.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2pkh"};case $.bitpay.mainnet.p2sh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2sh"};default:return}}catch(f){return}}function pL(T){if(T.indexOf(":")!==-1)try{return v5(T)}catch(f){}else{let f=["bitcoincash","bchtest","bchreg"];for(let X of f)try{return v5(`${X}:${T}`)}catch(y){}}return}function v5(T){try{let{hash:f,prefix:X,type:y}=S5.decode(T);return{format:"cashaddr",hash:Array.prototype.slice.call(f,0),network:X==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch(f){return}}function oL(T){let f=$.legacy[T.network][T.type],X=Buffer.alloc(1+T.hash.length);return X[0]=f,X.set(T.hash,1),A5.encode(X)}function mL(T){let f=T.network==="mainnet"?"bitcoincash":"bchtest",X=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return S5.encode(f,X,y)}var q0,$;var V5=P(()=>{((X)=>{X.Mainnet="mainnet";X.Testnet="testnet"})(q0||={});$={["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 cL}from"@swapkit/helpers";import{opcodes as tL,script as gL}from"bitcoinjs-lib";function zy(T){let f=Buffer.from(T,"utf8");return gL.compile([tL.OP_RETURN,f])}var iL=1000,qf=10,$5=10,dL=41,rL=107,zf,Qf,wT,lT=(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 cL("toolbox_utxo_invalid_address",{address:T})},XT=({inputs:T,outputs:f,feeRate:X})=>{let y=T[0]&&"address"in T[0]&&T[0].address?lT(T[0].address):"P2PKH",L=T.filter((x)=>x.value>=Qf["type"in x?x.type:"P2PKH"]*Math.ceil(X)).reduce((x,Z)=>x+Fy(Z),0),G=f?.reduce((x,Z)=>x+vT(Z),0)||wT[y];return qf+L+G},Fy=(T)=>{if("type"in T)return Qf[T.type];if("address"in T&&T.address)return Qf[lT(T.address)];return dL+rL},vT=(T,f)=>{if(T?.script)return $5+T.script.length+(T.script.length>=74?2:1);if(f)return wT[f];return wT.P2PKH};var M0=P(()=>{((X)=>{X.P2PKH="P2PKH";X.P2WPKH="P2WPKH"})(zf||={});Qf={["P2PKH"]:148,["P2WPKH"]:68},wT={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as hy,SwapKitError as aL}from"@swapkit/helpers";function _f(T){switch(T){case hy.Bitcoin:case hy.BitcoinCash:return 550;case hy.Dash:case hy.Litecoin:return 5500;case hy.Dogecoin:return 1e5;case hy.Zcash:return 546;default:throw new aL("toolbox_utxo_not_supported",{chain:T})}}function _y({inputs:T,outputs:f,feeRate:X=1,chain:y=hy.Bitcoin,changeAddress:L=""}){let G=Math.ceil(X),x=T[0]&&"address"in T[0]&&T[0].address?lT(T[0].address):"P2PKH",Z=T.filter((M)=>Fy(M)*G<=M.value),B=qf+f.reduce((M,_)=>M+vT(_,x),0),J=f.reduce((M,_)=>M+_.value,0),Q=B*G,q=0,z=[];for(let M of Z){let _=Fy(M),W=G*_;Q+=W,q+=M.value,z.push(M);let k=Q+J;if(q<k)continue;let v=q-k,F=G*vT({address:"",value:0},x);if(v>F){let b=F+Q,K=q-(J+b);if(K>Math.max(Fy({})*G,_f(y)))return{fee:b,inputs:z,outputs:f.concat({address:L,value:K})}}return{fee:Q,inputs:z,outputs:f}}return{fee:G*XT({feeRate:G,inputs:T,outputs:f})}}var K5=P(()=>{M0()});var xT=P(()=>{l5();V5();K5();M0()});import{networks as sL,address as eL}from"@bitgo/utxo-lib";import y8 from"bs58check";function py(T){return T.replace(/(bchtest:|bitcoincash:)/,"")}function Ay(T){let f=py(T);return z0(f)&&_0(f)==="mainnet"}function ZT(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=sL.zcash;try{return eL.toOutputScript(T,f),!0}catch{let X=y8.decode(T);if(X.length<21)return!1;let y=X[0];return y===f.pubKeyHash||y===f.scriptHash}}catch{return!1}}var FT=P(()=>{xT()});import Y0 from"@bitcoinerlab/secp256k1";import{ECPair as T8,HDNode as f8}from"@psf/bitcoincashjs-lib";import{HDKey as G8}from"@scure/bip32";import{mnemonicToSeedSync as u5}from"@scure/bip39";import{AssetValue as N0,applyFeeMultiplier as b5,Chain as yy,DerivationPath as L8,derivationPathToString as X8,FeeOption as Ry,NetworkDerivationPath as x8,SwapKitError as Dy,SwapKitNumber as Z8,updateDerivationPath as B8}from"@swapkit/helpers";import{address as J8,initEccLib as j5,Psbt as Q8,payments as n5}from"bitcoinjs-lib";import{ECPairFactory as q8}from"ecpair";function h5({inputs:T,outputs:f,chain:X,psbt:y,sender:L,compiledMemo:G}){for(let x of T){let Z=!!x.witnessUtxo&&!AT.includes(X)&&{witnessUtxo:x.witnessUtxo},B=AT.includes(X)&&{nonWitnessUtxo:x.txHex?Buffer.from(x.txHex,"hex"):void 0};y.addInput({hash:x.hash,index:x.index,...Z,...B})}for(let x of f){let Z="address"in x&&x.address?x.address:L,B=x.script;if(B&&!G)continue;let J=B?{script:G,value:0}:{address:Z,value:x.value};j5(Y0),y.addOutput(J)}return{inputs:T,psbt:y}}async function p5({assetValue:T,recipient:f,memo:X,feeRate:y,sender:L,fetchTxHex:G=!1}){let x=T.chain,Z=X?await zy(X):null,B=await c5({assetValue:T,fetchTxHex:G,memo:X,recipient:f,sender:L}),{inputs:J,outputs:Q}=_y({...B,chain:x,feeRate:y});if(!(J&&Q))throw new Dy("toolbox_utxo_insufficient_balance",{assetValue:T,sender:L});let q=await qy(),z=new Q8({network:q(x)});if(x===yy.Dogecoin)z.setMaximumFeeRate(650000000);let{psbt:M,inputs:_}=await h5({chain:x,compiledMemo:Z,inputs:J,outputs:Q,psbt:z,sender:L});return{inputs:_,psbt:M,utxos:B.inputs}}async function o5(){let T=await qy();return function({address:X,chain:y}){if(y===yy.BitcoinCash)return Ay(X);if(y===yy.Zcash)return ZT(X);try{return j5(Y0),J8.toOutputScript(X,T(y)),!0}catch(L){return!1}}}async function z8({chain:T,phrase:f,derivationPath:X}){let y=(await ST(T))({derivationPath:X,phrase:f});async function L(x){return await x.signAllInputs(y),x}function G(){return U0(T)(y)}return{getAddress:G,signTransaction:L}}async function oy({chain:T,...f}){let X="phrase"in f?f.phrase:void 0,y="index"in f?f.index||0:0,L=X8("derivationPath"in f&&f.derivationPath?f.derivationPath:B8(x8[T],{index:y})),G=X?await z8({chain:T,derivationPath:L,phrase:X}):("signer"in f)?f.signer:void 0;function x(){return Promise.resolve(G?.getAddress())}let Z=await o5(),B=await ST(T);return{accumulative:_y,broadcastTx:(J)=>e(T).broadcastTx(J),calculateTxSize:XT,createKeysForPath:B,createTransaction:p5,estimateMaxSendableAmount:_8(T),estimateTransactionFee:M8(T),getAddress:x,getAddressFromKeys:U0(T),getBalance:iy(T),getFeeRates:()=>VT(T),getInputsOutputsFee:m5,getPrivateKeyFromMnemonic:(J)=>{return B(J).toWIF()},transfer:N8(G),validateAddress:(J)=>Z({address:J,chain:T})}}async function m5({assetValue:T,feeOptionKey:f=Ry.Fast,feeRate:X,memo:y,sender:L,recipient:G}){let x=T.chain,Z=await c5({assetValue:T,memo:y,recipient:G,sender:L}),B=X?Math.floor(X):(await VT(x))[f];return _y({...Z,chain:x,feeRate:B})}function _8(T){return async function({from:X,memo:y,feeRate:L,feeOptionKey:G=Ry.Fast,recipients:x=1}){let Z=await e(T).getAddressData(X),B=L?Math.ceil(L):(await VT(T))[G],J=Z?.utxo.map((_)=>({..._,hash:"",type:"P2PKH"})).filter((_)=>_.value>Math.max(_f(T),Fy(_)*B));if(!J?.length)return N0.from({chain:T});let Q=N0.from({chain:T,value:J.reduce((_,W)=>_+W.value,0)}),q=typeof x==="number"?Array.from({length:x},()=>({address:X,value:0})):x;if(y){let _=await zy(y);q.push({address:X,script:_,value:0})}let M=XT({feeRate:B,inputs:J,outputs:q})*B;return Q.sub(M)}}function M8(T){return async(f)=>{let X=await m5(f);return N0.from({chain:T,value:Z8.fromBigInt(BigInt(X.fee),8).getValue("string")})}}async function ST(T){let f=await qy();switch(T){case yy.BitcoinCash:return function({phrase:y,derivationPath:L=`${L8.BCH}/0`,wif:G}){let x=f(T);if(G)return T8.fromWIF(G,x);if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return f8.fromSeedBuffer(Buffer.from(u5(y)),x).derivePath(L).keyPair};case yy.Bitcoin:case yy.Dogecoin:case yy.Litecoin:case yy.Zcash:case yy.Dash:return function({phrase:y,wif:L,derivationPath:G}){if(!(L||y))throw new Dy("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let x=q8(Y0),Z=f(T);if(L)return x.fromWIF(L,Z);let B=u5(y),J=G8.fromMasterSeed(B,Z).derive(G);if(!J.privateKey)throw new Dy("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return x.fromPrivateKey(Buffer.from(J.privateKey),{network:Z})};default:throw new Dy("toolbox_utxo_not_supported",{chain:T})}}function U0(T){let f=qy();return function(y){if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let L=AT.includes(T)?n5.p2pkh:n5.p2wpkh,{address:G}=L({network:f(T),pubkey:y.publicKey});if(!G)throw new Dy("toolbox_utxo_invalid_address",{error:"Address not defined"});return G}}function N8(T){return async function({memo:X,recipient:y,feeOptionKey:L,feeRate:G,assetValue:x}){let Z=await T?.getAddress(),B=x.chain;if(!(T&&Z))throw new Dy("toolbox_utxo_no_signer");if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let J=G||(await VT(B))[L||Ry.Fast],{psbt:Q}=await p5({assetValue:x,feeRate:J,memo:X,recipient:y,sender:Z}),q=await T.signTransaction(Q);return q.finalizeAllInputs(),e(B).broadcastTx(q.extractTransaction().toHex())}}async function VT(T){let f=await e(T).getSuggestedTxFee();return{[Ry.Average]:f,[Ry.Fast]:b5(f,Ry.Fast),[Ry.Fastest]:b5(f,Ry.Fastest)}}async function c5({assetValue:T,recipient:f,memo:X,sender:y,fetchTxHex:L=!1}){let G=T.chain,x=(await VT(G))[Ry.Fastest],Z=L||AT.includes(G),B=T.getBaseValue("number"),J=Math.ceil(B+x*5000);return{inputs:await e(G).getUtxos({address:y,fetchTxHex:Z,targetValue:J}),outputs:[{address:f,value:B},...X?[{address:"",script:await zy(X),value:0}]:[]]}}var AT;var $T=P(()=>{CT();xT();FT();AT=[yy.Dash,yy.Dogecoin,yy.Zcash,yy.BitcoinCash]});import{address as Y8,Transaction as U8,TransactionBuilder as H8}from"@psf/bitcoincashjs-lib";import{Chain as W8,derivationPathToString as C8,FeeOption as R8,NetworkDerivationPath as D8,SwapKitError as BT,updateDerivationPath as k8}from"@swapkit/helpers";import{Psbt as I8}from"bitcoinjs-lib";function my(T){return py(PT(T))}function O8(T){function f({builder:y,utxos:L}){return L.forEach((G,x)=>{y.sign(x,T,void 0,65,G.witnessUtxo?.value)}),y.build()}return{getAddress:()=>{let y=T.getAddress(0);return Promise.resolve(my(y))},signTransaction:f}}async function H0(T){let f="phrase"in T?T.phrase:void 0,X="index"in T?T.index||0:0,y=C8("derivationPath"in T&&T.derivationPath?T.derivationPath:k8(D8[xy],{index:X})),L=f?(await ST(xy))({derivationPath:y,phrase:f}):void 0,G=L?O8(L):("signer"in T)?T.signer:void 0;function x(){return Promise.resolve(G?.getAddress())}let{getBalance:Z,getFeeRates:B,broadcastTx:J,...Q}=await oy({chain:xy});function q(z,M=!0){return Z(py(PT(z)))}return{...Q,broadcastTx:J,buildTx:P8,createTransaction:t5,getAddress:x,getAddressFromKeys:w8,getBalance:q,getFeeRates:B,stripPrefix:py,stripToCashAddress:my,transfer:E8({broadcastTx:J,getFeeRates:B,signer:G}),validateAddress:Ay}}async function t5({assetValue:T,recipient:f,memo:X,feeRate:y,sender:L}){if(!Ay(f))throw new BT("toolbox_utxo_invalid_address",{address:f});let G=Math.ceil(T.getBaseValue("number")+y*7500),x=await e(xy).getUtxos({address:my(L),fetchTxHex:!0,targetValue:G}),Z=X?await zy(X):null,B=[];B.push({address:f,value:T.getBaseValue("number")});let{inputs:J,outputs:Q}=_y({chain:xy,feeRate:y,inputs:x,outputs:B});if(!(J&&Q))throw new BT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:L});let q=await qy(),z=new H8(q(xy));await Promise.all(J.map(async(M)=>{let _=await e(xy).getRawTx(M.hash);z.addInput(U8.fromBuffer(Buffer.from(_,"hex")),M.index)}));for(let M of Q){let _="address"in M&&M.address?M.address:LT(L),W=await qy(),k=Y8.toOutputScript(LT(_),W(xy));z.addOutput(k,M.value)}if(Z)z.addOutput(Z,0);return{builder:z,utxos:J}}function E8({broadcastTx:T,getFeeRates:f,signer:X}){return async function({recipient:L,assetValue:G,feeOptionKey:x=R8.Fast,...Z}){let B=await X?.getAddress();if(!(X&&B))throw new BT("toolbox_utxo_no_signer");if(!L)throw new BT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let J=Z.feeRate||(await f())[x],{builder:Q,utxos:q}=await t5({...Z,assetValue:G,feeRate:J,recipient:L,sender:B}),M=(await X.signTransaction({builder:Q,utxos:q})).toHex();return T(M)}}async function P8({assetValue:T,recipient:f,memo:X,feeRate:y,sender:L,setSigHashType:G}){let x=PT(f);if(!Ay(x))throw new BT("toolbox_utxo_invalid_address",{address:x});let Z=Math.ceil(T.getBaseValue("number")+y*7500),B=await e(xy).getUtxos({address:my(L),fetchTxHex:!1,targetValue:Z}),J=Number(y.toFixed(0)),Q=X?await zy(X):null,q=[];if(q.push({address:LT(f),value:T.getBaseValue("number")}),Q)q.push({script:Q,value:0});let{inputs:z,outputs:M}=_y({chain:xy,feeRate:J,inputs:B,outputs:q});if(!(z&&M))throw new BT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:L});let _=await qy(),W=new I8({network:_(xy)});for(let{hash:k,index:v,witnessUtxo:F}of z)W.addInput({hash:k,index:v,sighashType:G?65:void 0,witnessUtxo:F});for(let k of M){let v="address"in k&&k.address?k.address:LT(L),F=k.script?Q?{script:Q,value:0}:void 0:{address:v,value:k.value};if(F)W.addOutput(F)}return{inputs:z,psbt:W,utxos:B}}function w8(T){let f=T.getAddress(0);return my(f)}var xy;var Mf=P(()=>{xT();$T();FT();xy=W8.BitcoinCash});import{bitgo as l8,crypto as v8,ECPair as i5,networks as F8,address as A8}from"@bitgo/utxo-lib";import{HDKey as d5}from"@scure/bip32";import{mnemonicToSeedSync as r5}from"@scure/bip39";import{Chain as Nf,derivationPathToString as S8,FeeOption as V8,NetworkDerivationPath as $8,SKConfig as K8,SwapKitError as Yf,updateDerivationPath as u8}from"@swapkit/helpers";import b8 from"bs58check";import{match as n8,P as W0}from"ts-pattern";function a5(){return F8.zcash}function s5(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
- `,pubKeyHash:28,scriptHash:28,wif:128}}function j8({phrase:T,derivationPath:f}){let X=r5(T),L=d5.fromMasterSeed(X).derive(f);if(!L.privateKey)throw new Yf("toolbox_utxo_invalid_params");let G=s5(),x=i5.fromPrivateKey(Buffer.from(L.privateKey),{network:G}),Z=v8.hash160(x.publicKey),{isStagenet:B}=K8.get("envs"),J=B?Buffer.from([29,37]):Buffer.from([28,184]),Q=Buffer.concat([J,Z]),q=b8.encode(Q);return{getAddress:()=>Promise.resolve(q),signTransaction:(z)=>{let M=z.signAllInputs(x);return Promise.resolve(M)}}}function h8({inputs:T,outputs:f,psbt:X,sender:y,compiledMemo:L}){for(let G of T){let x=!!G.witnessUtxo&&{witnessUtxo:{...G.witnessUtxo,value:BigInt(G.value)}},Z=!G.witnessUtxo&&{nonWitnessUtxo:G.txHex?Buffer.from(G.txHex,"hex"):void 0};X.addInput({hash:G.hash,index:G.index,...x,...Z})}for(let G of f){let x="address"in G&&G.address?G.address:y,Z=G.script;if(Z&&!L)continue;let B=Z?{script:L,value:0n}:{script:A8.toOutputScript(x,a5()),value:BigInt(G.value)};X.addOutput(B)}return{inputs:T,psbt:X}}async function g5(T){let{assetValue:f,recipient:X,memo:y,feeRate:L,sender:G,fetchTxHex:x}=T,Z=y?zy(y):null,B=await e(Nf.Zcash).getUtxos({address:G,fetchTxHex:x!==!1}),J=[{address:X,value:Number(f.getBaseValue("string"))},...Z?[{script:Z,value:0}]:[]],{inputs:Q,outputs:q}=_y({chain:Nf.Zcash,changeAddress:G,feeRate:L,inputs:B,outputs:J});if(!(Q&&q))throw new Yf("toolbox_utxo_insufficient_balance",{assetValue:f,sender:G});let z=l8.createPsbtForNetwork({network:a5()},{version:455}),_=3268858036,W=Buffer.concat([Buffer.of(252),Buffer.of(5),Buffer.from("BITGO"),Buffer.of(0)]),k=Buffer.allocUnsafe(4);k.writeUInt32LE(_>>>0,0),z.addUnknownKeyValToGlobal({key:W,value:k});let{psbt:v,inputs:F}=await h8({compiledMemo:Z,inputs:Q,outputs:q,psbt:z,sender:G});return{inputs:F,outputs:q,psbt:v}}async function C0(T){let f=await n8(T).with({signer:W0.not(W0.nullish)},({signer:x})=>Promise.resolve(x)).with({phrase:W0.string},({phrase:x,derivationPath:Z,index:B=0})=>{let J=Z||$8[Nf.Zcash]||[44,133,0,0,0],Q=u8(J,{index:B}),q=S8(Q);return j8({derivationPath:q,phrase:x})}).otherwise(()=>Promise.resolve(void 0)),X=await oy({chain:Nf.Zcash,signer:f});async function y({recipient:x,assetValue:Z,feeOptionKey:B=V8.Fast,...J}){let Q=await f?.getAddress();if(!(f&&Q))throw new Yf("toolbox_utxo_no_signer");let q=J.feeRate||(await X.getFeeRates())[B],{psbt:z}=await g5({...J,assetValue:Z,feeRate:q,recipient:x,sender:Q}),M=await f.signTransaction(z);return M.finalizeAllInputs(),X.broadcastTx(M.extractTransaction().toHex())}function L({phrase:x,derivationPath:Z="m/44'/133'/0'/0/0"}){let B=r5(x),Q=d5.fromMasterSeed(B).derive(Z);if(!Q.privateKey)throw new Yf("toolbox_utxo_invalid_params");let q=s5();return i5.fromPrivateKey(Buffer.from(Q.privateKey),{network:q})}function G({phrase:x,derivationPath:Z="m/44'/133'/0'/0/0"}){return L({derivationPath:Z,phrase:x}).toWIF()}return{...X,createKeysForPath:L,createTransaction:g5,getPrivateKeyFromMnemonic:G,transfer:y,validateAddress:ZT}}var R0=P(()=>{xT();$T();FT()});import{Chain as JT,SwapKitError as p8}from"@swapkit/helpers";async function o8(T,f){switch(T){case JT.BitcoinCash:return await H0(f||{});case JT.Zcash:return await C0(f);case JT.Bitcoin:case JT.Dogecoin:case JT.Litecoin:case JT.Dash:return await oy({chain:T,...f});default:throw new p8("toolbox_utxo_not_supported",{chain:T})}}var e5=P(()=>{Mf();$T();R0();Mf();FT()});var D0={};Ly(D0,{validateZcashAddress:()=>ZT,toLegacyAddress:()=>LT,toCashAddress:()=>PT,stripToCashAddress:()=>my,stripPrefix:()=>py,nonSegwitChains:()=>AT,isValidAddress:()=>z0,getUtxoToolbox:()=>o8,getUtxoNetwork:()=>qy,getUtxoApi:()=>e,getUTXOAddressValidator:()=>o5,getScriptTypeForAddress:()=>lT,getOutputSize:()=>vT,getInputSize:()=>Fy,getDustThreshold:()=>_f,getCreateKeysForPath:()=>ST,detectAddressNetwork:()=>_0,createZcashToolbox:()=>C0,createUTXOToolbox:()=>oy,createCustomUtxoApi:()=>jL,createBCHToolbox:()=>H0,compileMemo:()=>zy,calculateTxSize:()=>XT,bchValidateAddress:()=>Ay,addressFromKeysGetter:()=>U0,addInputsAndOutputs:()=>h5,accumulative:()=>_y,UtxoNetwork:()=>q0,UTXOScriptType:()=>zf,TX_OVERHEAD:()=>qf,OutputSizes:()=>wT,OP_RETURN_OVERHEAD:()=>$5,MIN_TX_FEE:()=>iL,InputSizes:()=>Qf});var k0=P(()=>{xT();e5();Mf();$T();R0()});import{AssetValue as I0,Chain as ty,DerivationPath as m8,derivationPathToString as c8,getChainConfig as fG,getRPCUrl as t8,NetworkDerivationPath as g8,SwapKitError as gy,updateDerivationPath as i8}from"@swapkit/helpers";import{match as d8,P as yG}from"ts-pattern";async function r8(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 a8(T){let f=await cy(),{PublicKey:X}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),L=new X(T),G=[],x=await f.getBalance(L);if(x>0){let{baseDecimal:B}=fG(ty.Solana);G.push(I0.from({chain:ty.Solana,fromBaseDecimal:B,value:x}))}let Z=await f.getParsedTokenAccountsByOwner(L,{programId:y});for(let{account:B}of Z.value){let J=B.data.parsed.info,Q=J.mint,q=J.tokenAmount.amount;if(Number(q)===0)continue;let z=await r8(Q),M=z?.symbol||"UNKNOWN",_=z?.decimals||J.tokenAmount.decimals;G.push(I0.from({asset:`${ty.Solana}.${M}-${Q}`,fromBaseDecimal:_,value:q}))}return G}async function P0(){let{PublicKey:T}=await import("@solana/web3.js");return(f)=>{try{let X=new T(f);return T.isOnCurve(X.toBytes())}catch(X){return!1}}}async function s8(T){let f=T&&"index"in T?T.index||0:0,X=c8(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:i8(g8[ty.Solana],{index:f})),y=await d8(T).with({phrase:yG.string},({phrase:G})=>E0({derivationPath:X,phrase:G})).with({signer:yG.any},({signer:G})=>G).otherwise(()=>{return});function L(){return y?.publicKey?TG(y.publicKey):""}return{broadcastTransaction:O0(cy),createKeysForPath:E0,createTransaction:w0(cy),createTransactionFromInstructions:fX,estimateTransactionFee:e8(cy),getAddress:L,getAddressFromPubKey:TG,getAddressValidator:P0,getBalance:(G)=>{let x=G||L();if(!x)throw new gy("core_wallet_connection_not_found");return a8(x)},getConnection:cy,getPubkeyFromAddress:l0,signTransaction:LX(cy,y),transfer:GX(cy,y)}}function e8(T){return async({recipient:f,assetValue:X,memo:y,isProgramDerivedAddress:L,sender:G})=>{let x=await T(),B=(await w0(T)({assetValue:X,isProgramDerivedAddress:L,memo:y,recipient:f,sender:G})).compileMessage(),J=await x.getFeeForMessage(B);if(J.value===null)throw new gy("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:Q}=fG(ty.Solana);return I0.from({chain:ty.Solana,fromBaseDecimal:Q,value:J.value})}}async function cy(){let{Connection:T}=await import("@solana/web3.js"),f=await t8(ty.Solana);return new T(f,"confirmed")}function yX(T){return async({assetValue:f,recipient:X,sender:y,isProgramDerivedAddress:L})=>{let G=await T(),x=await l0(y);if(f.isGasAsset){let{Transaction:Z,SystemProgram:B,PublicKey:J}=await import("@solana/web3.js");return new Z().add(B.transfer({fromPubkey:x,lamports:f.getBaseValue("number"),toPubkey:new J(X)}))}if(f.address)return TX({amount:f.getBaseValue("number"),connection:G,decimals:f.decimal,from:x,isProgramDerivedAddress:L,recipient:X,tokenAddress:f.address});return}}async function TX({tokenAddress:T,recipient:f,from:X,connection:y,amount:L,decimals:G,isProgramDerivedAddress:x}){let{getAssociatedTokenAddress:Z,getAccount:B,createAssociatedTokenAccountInstruction:J,createTransferCheckedInstruction:Q}=await import("@solana/spl-token"),{Transaction:q,PublicKey:z}=await import("@solana/web3.js"),M=new q,_=new z(T),W=await Z(_,X),k=new z(f),v=await Z(_,k,x),F=!1;try{await B(y,v),F=!0}catch(b){}if(!F)M.add(J(X,v,k,_));return M.add(Q(W,_,v,X,L,G)),M}function w0(T){return async({recipient:f,assetValue:X,memo:y,isProgramDerivedAddress:L,sender:G})=>{let{createMemoInstruction:x}=await import("@solana/spl-memo"),Z=await l0(G),B=await P0();if(!(L||B(f)))throw new gy("core_transaction_invalid_recipient_address");let J=await T(),Q=await yX(T)({assetValue:X,isProgramDerivedAddress:L,recipient:f,sender:G});if(!Q)throw new gy("core_transaction_invalid_sender_address");if(y)Q.add(x(y));let q=await J.getLatestBlockhash();return Q.recentBlockhash=q.blockhash,Q.feePayer=Z,Q}}async function fX({instructions:T}){let{Transaction:f}=await import("@solana/web3.js"),X=new f().add(...T);if(!X)throw new gy("core_transaction_invalid_sender_address");return X}function GX(T,f){return async({recipient:X,assetValue:y,memo:L,isProgramDerivedAddress:G})=>{if(!f)throw new gy("core_transaction_invalid_sender_address");let x=f.publicKey?.toString()??(await f.connect()).publicKey.toString(),Z=await w0(T)({assetValue:y,isProgramDerivedAddress:G,memo:L,recipient:X,sender:x});if("signTransaction"in f){let B=await f.signTransaction(Z);return O0(T)(B)}return Z.sign(f),O0(T)(Z)}}function O0(T){return async(f)=>{return(await T()).sendRawTransaction(f.serialize())}}function LX(T,f){return async(X)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!f)throw new gy("toolbox_solana_no_signer");if(!(X instanceof y)){let G=await(await T()).getLatestBlockhash();X.recentBlockhash=G.blockhash,X.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(X);return await X.sign([f]),X}}async function E0({phrase:T,derivationPath:f=m8.SOL}){let{HDKey:X}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:y}=await import("@scure/bip39"),{Keypair:L}=await import("@solana/web3.js"),G=y(T),x=X.fromMasterSeed(G);return L.fromSeed(x.derive(f,!0).privateKey)}function TG(T){return T.toString()}async function l0(T){let{PublicKey:f}=await import("@solana/web3.js");return new f(T)}var GG=()=>{};var v0={};Ly(v0,{getSolanaToolbox:()=>s8,getSolanaAddressValidator:()=>P0,createKeysForPath:()=>E0});var F0=P(()=>{GG()});import{derivationPathToString as XX,SwapKitError as xX}from"@swapkit/helpers";import{KeyPairSigner as ZX}from"near-api-js";async function KT(){let{validateAccountId:T}=await import("near-sdk-js");return(f)=>{try{return T(f)}catch{let X=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return f.length>=2&&f.length<=64&&X.test(f)}}}async function Uf(T){let{parseSeedPhrase:f}=await import("near-seed-phrase"),{KeyPair:X}=await import("near-api-js"),y=T.index||0,L=T.derivationPath?XX(T.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:G}=f(T.phrase,L),x=X.fromString(G);return XG(x)}async function A0(T){let{KeyPair:f}=await import("near-api-js/lib/utils"),X=f.fromString(T);return XG(X)}function XG(T){return new LG(T)}async function Hf(T,f){let y=(await T.query({account_id:f,finality:"final",request_type:"view_access_key_list"})).keys.find((Z)=>Z.access_key.permission==="FullAccess");if(!y)throw new xX("toolbox_near_invalid_address");let{utils:L}=await import("near-api-js"),G=L.PublicKey.fromString(y.public_key);return{nonce:y.access_key.nonce||0,publicKey:G}}var LG;var S0=P(()=>{LG=class LG extends ZX{#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 V0(T){return"recipient"in T&&"amount"in T&&!("contractId"in T)}function $0(T){return"contractId"in T&&"methodName"in T}function K0(T){return"actions"in T}function u0(T){return"newAccountId"in T}function b0(T){return"contractCode"in T}function n0(T){return"customEstimator"in T}function j0(T){let f=0;for(let X of T)switch(X.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 h0(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 BX(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function JX(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var t;var p0=P(()=>{t={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function Wf({account:T,contractId:f,viewMethods:X,changeMethods:y}){let{Contract:L}=await import("near-api-js");return new L(T,f,{changeMethods:y,useLocalViewExecution:!0,viewMethods:X})}async function o0({contractId:T,account:f}){let X=(await import("bn.js")).default,y=await Wf({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"]}),L=async(G)=>{if(!await y.storage_balance_of({account_id:G})){let B=(await y.storage_balance_bounds())?.min||"1250000000000000000000";await y.storage_deposit({account_id:G},new X("100000000000000"),new X(B))}};return{balanceOf:(G)=>y.ft_balance_of({account_id:G}),contract:y,ensureStorage:L,metadata:()=>y.ft_metadata(),storageBalanceOf:(G)=>y.storage_balance_of({account_id:G}),storageDeposit:(G,x)=>y.storage_deposit({account_id:G},new X("100000000000000"),new X(x||"1250000000000000000000")),totalSupply:()=>y.ft_total_supply(),transfer:async(G,x,Z)=>{return await L(G),y.ft_transfer({amount:x,memo:Z,receiver_id:G},new X("100000000000000"),new X("1"))},transferCall:async(G,x,Z,B)=>{return await L(G),y.ft_transfer_call({amount:x,memo:B,msg:Z,receiver_id:G},new X("100000000000000"),new X("1"))}}}import{AssetValue as xG,Chain as QT,getChainConfig as ZG,getRPCUrl as QX,SwapKitError as g}from"@swapkit/helpers";async function qX(T){let{P:f,match:X}=await import("ts-pattern"),{providers:y}=await import("near-api-js"),L=await X(T).with({phrase:f.string},async(N)=>{return await Uf(N)}).with({signer:f.any},({signer:N})=>N).otherwise(()=>{return}),G=await QX(QT.Near),x=new y.JsonRpcProvider({url:G});async function Z(N){let{Account:Y}=await import("near-api-js"),R=N||await B();return new Y(R,x,L)}async function B(){if(!L)throw new g("toolbox_near_no_signer");return await L.getAddress()}async function J(N){if(!L)throw new g("toolbox_near_no_signer");let{recipient:Y,assetValue:R}=N;if(!(await KT())(Y))throw new g("toolbox_near_invalid_address");let E=await Z();if(R.isGasAsset===!1){let l=R.address;if(!l)throw new g("toolbox_near_missing_contract_address");let S=R.getBaseValue("string");return b({args:{amount:S,memo:N.memo,receiver_id:Y},contractId:l,methodName:"ft_transfer"})}try{let l=R.getBaseValue("string");return(await E.transfer({amount:l,receiverId:Y})).transaction_outcome.id}catch(l){throw new g("toolbox_near_transfer_failed",{error:l})}}async function Q(N){let{recipient:Y,assetValue:R,memo:O,attachedDeposit:E,sender:l,functionCall:S}=N,u=await KT();if(!u(Y))throw new g("toolbox_near_invalid_address",{recipient:Y});if(!u(l))throw new g("toolbox_near_invalid_address",{signerId:l});if(S)return z({...S,sender:l});if(!R.isGasAsset){let $y=R.address;if(!$y)throw new g("toolbox_near_missing_contract_address");return z({args:{amount:R.getBaseValue("string"),memo:O||null,receiver_id:Y},attachedDeposit:E||"1",contractId:$y,gas:"250000000000000",methodName:"ft_transfer",sender:l})}let{publicKey:V,nonce:Ty}=await Hf(x,l),fy=R.getBaseValue("bigint"),{transactions:d,utils:Ny}=await import("near-api-js"),Vy=[d.transfer(fy)];if(O&&E)Vy.push(d.functionCall("memo",{memo:O},BigInt("250000000000000"),BigInt(E)));let bT=await x.block({finality:"final"}),Cf=Ny.serialize.base_decode(bT.header.hash);return d.createTransaction(l,V,Y,Ty+1,Vy,Cf)}async function q(N){let{SCHEMA:Y}=await import("near-api-js/lib/transaction"),{utils:R}=await import("near-api-js"),O=R.serialize.serialize(Y.Transaction,N);return Buffer.from(O).toString("base64")}async function z(N){let{sender:Y}=N,{publicKey:R,nonce:O}=await Hf(x,Y),{transactions:E,utils:l}=await import("near-api-js"),S=await x.block({finality:"final"}),u=l.serialize.base_decode(S.header.hash),V=[E.functionCall(N.methodName,Buffer.from(JSON.stringify(N.args)),BigInt(N.gas),BigInt(N.attachedDeposit))];return E.createTransaction(Y,R,N.contractId,O+1,V,u)}async function M(N){let{transactions:Y}=await import("near-api-js");return Y.functionCall(N.methodName,Buffer.from(JSON.stringify(N.args)),BigInt(N.gas),BigInt(N.attachedDeposit))}async function _(N){if(!L)throw new g("toolbox_near_no_signer");let[Y,R]=await L.signTransaction(N);return R}async function W(N){return(await x.sendTransaction(N)).transaction.hash}async function k(N){if("assetValue"in N){let E=BigInt("115123062500")+BigInt("108059500000"),l=await v(),S=E*BigInt(l.toString()),{baseDecimal:u}=ZG(QT.Near);return xG.from({chain:QT.Near,fromBaseDecimal:u,value:S.toString()})}let Y=L?await Z():void 0;return s(N,Y)}async function v(){try{return await x.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function F(N,Y,R){if(!L)throw new g("toolbox_near_no_signer");let O=await Z(),{utils:E}=await import("near-api-js"),l=E.format.parseNearAmount(R)||"0";return(await O.createAccount(N,E.PublicKey.fromString(Y),BigInt(l))).transaction.hash}async function b(N){try{if(!L)throw new g("toolbox_near_no_signer");let{transactions:Y}=await import("near-api-js"),{contractId:R,methodName:O,args:E,deposit:l}=N,S=await Z(),u=await s({args:E||{},contractId:R,methodName:O}),V=Y.functionCall(O,E||{},u.getBaseValue("bigint"),BigInt(l||"1"));return(await S.signAndSendTransaction({actions:[V],receiverId:R})).transaction_outcome.id}catch(Y){throw new g("toolbox_near_transfer_failed",{error:Y})}}async function K(N){let Y=await Z();return Wf({account:Y,changeMethods:N.changeMethods,contractId:N.contractId,viewMethods:N.viewMethods})}async function i(N){if(!L)throw new g("toolbox_near_no_signer");if(N.actions.length===0)throw new g("toolbox_near_empty_batch");return(await(await Z()).signAndSendTransaction({actions:N.actions,receiverId:N.receiverId})).transaction.hash}async function m(N){let Y=await Z();return o0({account:Y,contractId:N})}async function s(N,Y){let{baseDecimal:R}=ZG(QT.Near),O=await X(N).when(V0,()=>t.SIMPLE_TRANSFER).when($0,(S)=>h0(S.methodName)).when(K0,(S)=>j0(S.actions)).when(u0,()=>t.ACCOUNT_CREATION).when(b0,()=>t.CONTRACT_DEPLOYMENT).when(n0,(S)=>{if(!Y)throw new g("toolbox_near_no_account");return S.customEstimator(Y)}).otherwise(()=>{throw new g("toolbox_near_invalid_gas_params")}),l=BigInt(O)*BigInt(1000000000000);return xG.from({chain:QT.Near,fromBaseDecimal:R,value:l})}async function uT(){try{return(await x.gasPrice(null)).gas_price||"100000000"}catch(N){return"100000000"}}return{broadcastTransaction:W,callFunction:b,createAction:M,createContract:K,createContractFunctionCall:z,createSubAccount:F,createTransaction:Q,estimateGas:s,estimateTransactionFee:k,executeBatchTransaction:i,getAddress:B,getBalance:iy(QT.Near),getGasPrice:uT,getPublicKey:async()=>L?(await L.getPublicKey()).toString():"",getSignerFromPhrase:(N)=>Uf(N),getSignerFromPrivateKey:A0,nep141:m,provider:x,serializeTransaction:q,signTransaction:_,transfer:J,validateAddress:await KT()}}var m0=P(()=>{CT();S0();p0()});var BG=P(()=>{m0()});var c0={};Ly(c0,{tgasToGas:()=>BX,isSimpleTransfer:()=>V0,isCustomEstimator:()=>n0,isContractDeployment:()=>b0,isContractCall:()=>$0,isBatchTransaction:()=>K0,isAccountCreation:()=>u0,getValidateNearAddress:()=>KT,getNearToolbox:()=>qX,getNearSignerFromPrivateKey:()=>A0,getNearSignerFromPhrase:()=>Uf,getFullAccessPublicKey:()=>Hf,getContractMethodGas:()=>h0,gasToTGas:()=>JX,estimateBatchGas:()=>j0,createNearContract:()=>Wf,createNEP141Token:()=>o0,GAS_COSTS:()=>t});var t0=P(()=>{S0();p0();m0();BG()});var d0={};Ly(d0,{rippleValidateAddress:()=>i0,hashes:()=>CX,getRippleToolbox:()=>WX});import{AssetValue as g0,Chain as ky,getChainConfig as JG,getRPCUrl as zX,SwapKitError as Sy,SwapKitNumber as _X}from"@swapkit/helpers";import{Client as MX,isValidAddress as NX,Wallet as YX,xrpToDrops as UX}from"xrpl";import{hashes as CX}from"xrpl";function QG(T){let f=YX.fromMnemonic(T);return{getAddress:()=>Promise.resolve(f.address),signTransaction:(X)=>Promise.resolve(f.sign(X))}}function i0(T){return NX(T)}var HX,WX=async(T={})=>{let f="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?QG(T.phrase):void 0,X=await zX(ky.Ripple);if(!X)throw new Sy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:ky.Ripple}});let y=new MX(X);await y.connect();let L=()=>{if(!f)throw new Sy({errorKey:"toolbox_ripple_signer_not_found"});return f.getAddress()},G=async(z)=>{let M=z||await L(),{baseDecimal:_}=JG(ky.Ripple);try{let k=(await y.request({account:M,command:"account_info"})).result.account_data.Balance;return[g0.from({chain:ky.Ripple,fromBaseDecimal:_,value:k})]}catch(W){if(W.data.error_code===HX.ACCOUNT_NOT_FOUND)return[g0.from({chain:ky.Ripple,value:0})];throw new Sy("toolbox_ripple_get_balance_error",{info:{address:M,error:W}})}},x=async()=>{let M=(await y.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:_}=JG(ky.Ripple);return g0.from({chain:ky.Ripple,fromBaseDecimal:_,value:_X.fromBigInt(BigInt(M),_)})},Z=async({assetValue:z,recipient:M,memo:_,sender:W})=>{if(!i0(M))throw new Sy({errorKey:"core_transaction_invalid_recipient_address"});let k=W||await L();if(!z.isGasAsset||z.chain!==ky.Ripple)throw new Sy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:z.toString()}});let v={Account:k,Amount:UX(z.getValue("string")),Destination:M,TransactionType:"Payment"};if(_)v.Memos=[{Memo:{MemoData:Buffer.from(_).toString("hex")}}];return await y.autofill(v)},B=(z)=>{if(!f)throw new Sy({errorKey:"toolbox_ripple_signer_not_found"});return f.signTransaction(z)},J=async(z)=>{let _=(await y.submitAndWait(z)).result;if(_.validated)return _.hash;throw new Sy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:ky.Ripple}})};return{broadcastTransaction:J,createSigner:QG,createTransaction:Z,disconnect:()=>y.disconnect(),estimateTransactionFee:x,getAddress:L,getBalance:G,signer:f,signTransaction:B,transfer:async(z)=>{if(!f)throw new Sy({errorKey:"toolbox_ripple_signer_not_found"});let M=await f.getAddress(),_=await Z({...z,sender:M}),W=await B(_);return J(W.tx_blob)},validateAddress:i0}};var r0=P(()=>{HX={ACCOUNT_NOT_FOUND:19}});var a0={};Ly(a0,{radixValidateAddress:()=>zG,RadixToolbox:()=>wX});import{AssetValue as RX,Chain as qG,SKConfig as DX,SwapKitError as kX}from"@swapkit/helpers";function zG(T){return T.startsWith("account_rdx1")&&T.length===66}function IX({networkApi:T}){return async function(X){let y=await OX({address:X,networkApi:T});return EX({networkApi:T,resources:y})}}async function OX({address:T,networkApi:f}){let X=!0,y,L=[],G=await PX(f);while(X){let x={address:T,at_ledger_state:{state_version:G},cursor:y,limit_per_page:100},Z=await f.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:x});if(L=L.concat(Z.items),Z.next_cursor)y=Z.next_cursor;else X=!1}return L}async function EX({resources:T,networkApi:f}){let X=[],y=50,L=[];for(let G=0;G<T.length;G+=50)L.push(T.slice(G,G+50));for(let G of L){let x=G.map((J)=>J.resource_address),Z=await f.state.getEntityDetailsVaultAggregated(x),B=new Map;for(let J of Z)if(J.details!==void 0){let Q=J.metadata?.items.find((z)=>z.key==="symbol"),q=Q?.value.typed.type==="String"?Q.value.typed.value:"?";if(J.details.type==="FungibleResource")B.set(J.address,{decimals:J.details.divisibility,symbol:q})}for(let J of G)if(J.aggregation_level==="Global"){let Q=B.get(J.resource_address)||{decimals:0,symbol:"?"},q=RX.from({asset:Q.symbol!==qG.Radix?`${qG.Radix}.${Q.symbol}-${J.resource_address}`:"XRD.XRD",value:J.amount});X.push(q)}}return X}function PX(T){return T.status.getCurrent().then((f)=>f.ledger_state.state_version)}var wX=async({dappConfig:T}={})=>{let{RadixDappToolkit:f}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:X}=await import("@radixdlt/babylon-gateway-api-sdk"),y=T||DX.get("integrations").radix,L=f({...y,networkId:y.network?.networkId||1}),G=X.initialize(L.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:IX({networkApi:G}),networkApi:G,signAndBroadcast:()=>{throw new kX("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:zG}};var s0=()=>{};var qT;var e0=P(()=>{qT=[{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 lX}from"@swapkit/helpers";async function _G(T){let f=await import("tronweb"),X=f.TronWeb??f.default?.TronWeb;try{let y=await fetch(`${vX}/v1/accounts/${T}`);if(!y.ok)throw Error(`TronGrid API error: ${y.status} ${y.statusText}`);let L=await y.json();if(!(L.success&&L.data)||L.data.length===0)throw Error("Invalid response from TronGrid API");let G;try{G=X.address.toHex(T).toLowerCase()}catch{G=T.toLowerCase()}let x=L.data.find((Z)=>{return Z.address.toLowerCase()===G});if(!x)return;return{balance:x.balance,trc20:x.trc20||[]}}catch(y){throw new lX("toolbox_tron_trongrid_api_error",{address:T,message:y instanceof Error?y.message:"Unknown error"})}}var vX="https://api.trongrid.io";var MG=()=>{};import{AssetValue as Iy,BaseDecimal as NG,Chain as My,derivationPathToString as HG,getRPCUrl as FX,NetworkDerivationPath as WG,SwapKitError as a,updateDerivationPath as CG,warnOnce as y1}from"@swapkit/helpers";import{match as AX,P as YG}from"ts-pattern";async function T1(){let T=await import("tronweb"),f=T.TronWeb??T.default?.TronWeb;return(X)=>{return f.isAddress(X)}}async function RG({phrase:T,derivationPath:f,index:X}){let y=f||HG(CG(WG[My.Tron],{index:X||0})),{HDKey:L}=await import("@scure/bip32"),{mnemonicToSeedSync:G}=await import("@scure/bip39"),x=G(T),B=L.fromMasterSeed(x).derive(y);if(!B.privateKey)throw new a("toolbox_tron_no_signer");return Buffer.from(B.privateKey).toString("hex")}async function uX({phrase:T,derivationPath:f,tronWeb:X}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),G=L(T),Z=y.fromMasterSeed(G).derive(f);if(!Z.privateKey)throw new a("toolbox_tron_no_signer");let B=Buffer.from(Z.privateKey).toString("hex");X.setPrivateKey(B);let J=X?.address.fromPrivateKey(B);return{getAddress:()=>Promise.resolve(typeof J==="string"?J:""),signTransaction:async(Q)=>{return await X.trx.sign(Q,B)}}}var SX=268,VX=13000,$X=345,UG="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",KX="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",DG=async(T={})=>{let f=await import("tronweb"),X=f.TronWeb??f.default?.TronWeb,y=await FX(My.Tron),L=void 0,G=new X({fullHost:y,headers:void 0}),x="index"in T?T.index||0:0,Z=HG("derivationPath"in T&&T.derivationPath?T.derivationPath:CG(WG[My.Tron],{index:x})),B=await AX(T).with({phrase:YG.string},async({phrase:N})=>uX({derivationPath:Z,phrase:N,tronWeb:G})).with({signer:YG.any},({signer:N})=>Promise.resolve(N)).otherwise(()=>Promise.resolve(void 0)),J=async()=>{if(!B)throw new a("toolbox_tron_no_signer");return await B.getAddress()},Q=()=>{return 1e8},q=async()=>{try{let N=await G.trx.getChainParameters(),Y={};for(let R of N)Y[R.key]=R.value;return{bandwidthFee:Y.getTransactionFee||1000,createAccountFee:Y.getCreateAccountFee||1e5,energyFee:Y.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},z=async(N)=>{try{let Y=await G.trx.getAccount(N);return Y&&Object.keys(Y).length>0}catch{return!1}},M=async(N)=>{try{let Y=await G.trx.getAccountResources(N);return{bandwidth:{free:Y.freeNetLimit-Y.freeNetUsed,total:Y.NetLimit||0,used:Y.NetUsed||0},energy:{total:Y.EnergyLimit||0,used:Y.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},_=async(N,Y)=>{try{let R=G.contract(qT,Y);if(!R.methods?.balanceOf)return 0n;let[O]=await R.methods.balanceOf(N).call();return O?typeof O==="bigint"?O:BigInt(O):0n}catch(R){return console.warn(`balanceOf() failed for ${Y}:`,R),0n}},W=async(N,Y)=>{try{G.setAddress(Y);let R=G.contract(qT,N),[O,E]=await Promise.all([R.symbol().call().catch(()=>"UNKNOWN"),R.decimals().call().catch(()=>"18")]);return{decimals:Number(E??18),symbol:O??"UNKNOWN"}}catch(R){return y1({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${N}: ${R instanceof Error?R.message:R}`}),null}},k=async(N,Y=!0)=>{let R=[Iy.from({chain:My.Tron})];try{let O=await _G(N);if(O){let E=[];E.push(Iy.from({chain:My.Tron,fromBaseDecimal:6,value:O.balance}));for(let l of O.trc20){let[S,u]=Object.entries(l)[0]||[];if(!(S&&u))continue;let V=await W(S,N);if(!V)continue;E.push(Iy.from({asset:`TRON.${V.symbol}-${S}`,fromBaseDecimal:V.decimals,value:BigInt(u||0)}))}return E}return R}catch(O){y1({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${O instanceof Error?O.message:O}`});let E=[],l=await G.trx.getBalance(N);if(l&&Number(l)>0)E.push(Iy.from({chain:My.Tron,fromBaseDecimal:6,value:l}));let S=await _(N,UG);if(S)E.push(Iy.from({asset:`TRON.USDT-${UG}`,fromBaseDecimal:6,value:S}));return E}},v=async({recipient:N,assetValue:Y,memo:R})=>{if(!B)throw new a("toolbox_tron_no_signer");let O=await J();if(G.setAddress(O),Y.isGasAsset){let V=await G.transactionBuilder.sendTrx(N,Y.getBaseValue("number"),O);if(R){let d=await G.transactionBuilder.addUpdateData(V,R,"utf8"),Ny=await B.signTransaction(d),{txid:Vy}=await G.trx.sendRawTransaction(Ny);return Vy}let Ty=await B.signTransaction(V),{txid:fy}=await G.trx.sendRawTransaction(Ty);return fy}let l=await b({assetValue:Y,memo:R,recipient:N,sender:O}),S=await B.signTransaction(l),{txid:u}=await G.trx.sendRawTransaction(S);if(!u)throw new a("toolbox_tron_token_transfer_failed");return u},F=async({assetValue:N,recipient:Y,sender:R})=>{let O=N.isGasAsset;try{let E=R?R:B?await J():void 0;if(!E)return O?Iy.from({chain:My.Tron,fromBaseDecimal:0,value:0.1}):Iy.from({chain:My.Tron,fromBaseDecimal:0,value:15});let l=await q(),u=await z(Y)?0:l.createAccountFee,V=await M(E);if(O){let $y=SX,L1=V.bandwidth.free+(V.bandwidth.total-V.bandwidth.used),X1=0;if($y>L1)X1=($y-L1)*l.bandwidthFee;let OG=u+X1;return Iy.from({chain:My.Tron,fromBaseDecimal:NG.TRON,value:OG})}let Ty=$X,fy=VX,d=V.bandwidth.free+(V.bandwidth.total-V.bandwidth.used),Ny=V.energy.total-V.energy.used,Vy=0;if(Ty>d)Vy=(Ty-d)*l.bandwidthFee;let bT=0;if(fy>Ny)bT=(fy-Ny)*l.energyFee;let Cf=u+Vy+bT;return Iy.from({chain:My.Tron,fromBaseDecimal:NG.TRON,value:Cf})}catch(E){throw y1({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${E instanceof Error?E.message:E}`}),new a("toolbox_tron_fee_estimation_failed",{error:E})}},b=async(N)=>{let{recipient:Y,assetValue:R,memo:O,sender:E,expiration:l}=N;if(R.isGasAsset){let V=await G.transactionBuilder.sendTrx(Y,R.getBaseValue("number"),E);if(O)return G.transactionBuilder.addUpdateData(V,O,"utf8");if(l)G.transactionBuilder.extendExpiration(V,l);return V}G.setAddress(E);let u=R.address;if(!u)throw new a("toolbox_tron_invalid_token_identifier",{identifier:R.toString()});try{let Ty=[{type:"address",value:Y},{type:"uint256",value:R.getBaseValue("string")}],fy={callValue:0,feeLimit:Q()},d=await G.transactionBuilder.triggerSmartContract(u,"transfer(address,uint256)",fy,Ty,E);if(O)return G.transactionBuilder.addUpdateData(d.transaction,O,"utf8");if(l)G.transactionBuilder.extendExpiration(d.transaction,l);return d.transaction}catch(V){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:V instanceof Error?V.message:String(V)})}},K=async(N)=>{if(!B)throw new a("toolbox_tron_no_signer");return await B.signTransaction(N)},i=async(N)=>{let{txid:Y}=await G.trx.sendRawTransaction(N);return Y},m=async({assetAddress:N,spenderAddress:Y,from:R})=>{try{let O=G.contract(qT,N);if(!O.methods?.allowance)throw new a("toolbox_tron_invalid_token_contract");let[E]=await O.methods.allowance(R,Y).call();return E?typeof E==="bigint"?E:BigInt(E):0n}catch(O){throw new a("toolbox_tron_allowance_check_failed",{error:O})}};return{approve:async({assetAddress:N,spenderAddress:Y,amount:R,from:O})=>{if(!B)throw new a("toolbox_tron_no_signer");let E=O||await J(),l=R!==void 0?BigInt(R).toString():KX,S="approve(address,uint256)",u=[{type:"address",value:Y},{type:"uint256",value:l}],Ty={callValue:0,feeLimit:Q()};try{let{transaction:fy}=await G.transactionBuilder.triggerSmartContract(N,S,Ty,u,E),d=await B.signTransaction(fy),{txid:Ny}=await G.trx.sendRawTransaction(d);if(!Ny)throw new a("toolbox_tron_approve_failed");return Ny}catch(fy){throw new a("toolbox_tron_approve_failed",{error:fy})}},broadcastTransaction:i,createTransaction:b,estimateTransactionFee:F,getAddress:J,getApprovedAmount:m,getBalance:k,isApproved:async({assetAddress:N,spenderAddress:Y,from:R,amount:O})=>{let E=await m({assetAddress:N,from:R,spenderAddress:Y});if(!O)return E>0n;let l=BigInt(O);return E>=l},signTransaction:K,transfer:v,tronWeb:G,validateAddress:await T1()}};var kG=P(()=>{e0();MG()});var f1={};Ly(f1,{trc20ABI:()=>qT,getTronPrivateKeyFromMnemonic:()=>RG,getTronAddressValidator:()=>T1,createTronToolbox:()=>DG});var G1=P(()=>{e0();kG()});import{AssetValue as bX,Chain as D,EVMChains as nX,FeeOption as jX,SwapKitError as hX,UTXOChains as pX}from"@swapkit/helpers";async function S4(){let{match:T}=await import("ts-pattern"),{cosmosValidateAddress:f}=await Promise.resolve().then(() => (cT(),mT)),{evmValidateAddress:X}=await Promise.resolve().then(() => (J5(),B5)),{substrateValidateAddress:y}=await Promise.resolve().then(() => (J0(),B0)),{getUTXOAddressValidator:L}=await Promise.resolve().then(() => (k0(),D0)),{getSolanaAddressValidator:G}=await Promise.resolve().then(() => (F0(),v0)),{getValidateNearAddress:x}=await Promise.resolve().then(() => (t0(),c0)),{rippleValidateAddress:Z}=await Promise.resolve().then(() => (r0(),d0)),{radixValidateAddress:B}=await Promise.resolve().then(() => (s0(),a0)),{getTronAddressValidator:J}=await Promise.resolve().then(() => (G1(),f1)),Q=await G(),q=await L(),z=await J(),M=await x();return function({address:W,chain:k}){return T(k).with(...nX,()=>X({address:W})).with(...pX,()=>q({address:W,chain:k})).with(D.Cosmos,D.Kujira,D.Noble,D.Maya,D.THORChain,()=>f({address:W,chain:k})).with(D.Chainflip,D.Polkadot,()=>y({address:W,chain:k})).with(D.Radix,()=>B(W)).with(D.Near,()=>M(W)).with(D.Ripple,()=>Z(W)).with(D.Solana,()=>Q(W)).with(D.Tron,()=>z(W)).otherwise(()=>!1)}}function V4(T){return async function(X){let{match:y}=await import("ts-pattern");return y(T).returnType().with(D.Arbitrum,D.Aurora,D.Avalanche,D.Base,D.Berachain,D.BinanceSmartChain,D.Ethereum,D.Gnosis,D.Optimism,D.Polygon,async(L)=>{let G=await IG(L),x=await G.createTransaction(X);return G.estimateTransactionFee({...x,chain:L,feeOption:X.feeOptionKey||jX.Fast})}).with(D.Bitcoin,D.BitcoinCash,D.Dogecoin,D.Dash,D.Litecoin,D.Polkadot,D.Solana,D.Ripple,D.Tron,D.Near,async(L)=>{return(await IG(L)).estimateTransactionFee(X)}).with(D.THORChain,D.Maya,D.Kujira,D.Noble,D.Cosmos,async()=>{let{estimateTransactionFee:L}=await Promise.resolve().then(() => (cT(),mT));return L(X)}).otherwise(async()=>bX.from({chain:T}))}}async function IG(T,f){let{match:X}=await import("ts-pattern");return X(T).returnType().with(D.Arbitrum,D.Aurora,D.Avalanche,D.Base,D.Berachain,D.BinanceSmartChain,D.Ethereum,D.Gnosis,D.Optimism,D.Polygon,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (T0(),X5));return await y(T,f)}).with(D.Litecoin,D.Dash,D.Dogecoin,D.BitcoinCash,D.Bitcoin,D.Zcash,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (k0(),D0));return await y(T,f)}).with(D.Cosmos,D.Kujira,D.Noble,D.Maya,D.THORChain,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (cT(),mT));return await y(T,f)}).with(D.Chainflip,D.Polkadot,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (J0(),B0));return await y(T,f)}).with(D.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (s0(),a0));return await y(f)}).with(D.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (r0(),d0));return await y(f)}).with(D.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (F0(),v0));return await y(f)}).with(D.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (G1(),f1));return await y(f)}).with(D.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (t0(),c0));return await y(f)}).otherwise(()=>{throw new hX("toolbox_not_supported",{chain:T})})}export{IG as getToolbox,V4 as getFeeEstimator,S4 as getAddressValidator};
1
+ var EG=Object.create;var{getPrototypeOf:wG,defineProperty:Cf,getOwnPropertyNames:PG}=Object;var lG=Object.prototype.hasOwnProperty;var H=(T,f,X)=>{X=T!=null?EG(wG(T)):{};let y=f||!T||!T.__esModule?Cf(X,"default",{value:T,enumerable:!0}):X;for(let L of PG(T))if(!lG.call(y,L))Cf(y,L,{get:()=>T[L],enumerable:!0});return y};var Ly=(T,f)=>{for(var X in f)Cf(T,X,{get:f[X],enumerable:!0,configurable:!0,set:(y)=>f[X]=()=>y})};var E=(T,f)=>()=>(T&&(f=T(T=0)),f);var W=((T)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(T,{get:(f,X)=>(typeof require<"u"?require:f)[X]}):T)(function(T){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+T+'" is not supported')});import{base64 as x1,bech32 as bT}from"@scure/base";import{SwapKitError as vG}from"@swapkit/helpers";import{fromByteArray as FG,toByteArray as AG}from"base64-js";function zT(T){return x1.encode(Uint8Array.from(bT.fromWords(bT.decode(T).words)))}function _T(T,f="thor"){return bT.encode(f,bT.toWords(x1.decode(T)))}function SG(T){return FG(T)}function VG(T){if(!T.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new vG("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return AG(T)}var Df=()=>{};import{AssetValue as If,Chain as A,getChainConfig as Zy,getRPCUrl as $G,SwapKitError as Z1}from"@swapkit/helpers";function Yy(T){switch(T){case A.Maya:return{amount:[],gas:"10000000000"};case A.THORChain:return{amount:[],gas:"500000000"};case A.Kujira:return Q1;case A.Noble:return q1;default:return J1}}async function Uy(T){let f=await import("@cosmjs/stargate"),X=f.StargateClient??f.default?.StargateClient,y=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return X.connect({headers:y,url:T})}async function NT(T,f,X={}){let y=await import("@cosmjs/stargate"),L=y.SigningStargateClient??y.default?.SigningStargateClient,G=y.GasPrice??y.default?.GasPrice,x=typeof X==="string"?X:"0.0003uatom",Z=typeof X==="string"?{}:X;return L.connectWithSigner(T,f,{gasPrice:G.fromString(x),...Z})}async function Of(T,f){let X=await import("@cosmjs/stargate");return(X.SigningStargateClient??X.default?.SigningStargateClient).offline(T,f)}async function Ef({sender:T,recipient:f,assetValue:X,memo:y="",feeRate:L,sequence:G,accountNumber:x}){let{chain:Z,chainId:B}=X,J=await $G(Z),q=await(await Uy(J)).getAccount(T);if(!q)throw new Z1("toolbox_cosmos_account_not_found",{sender:T});let z=If.from({chain:Z}),M=Oy(z.symbol),_=Yy(Z),U=M&&L?{amount:[{amount:L.toString(),denom:M}],gas:_.gas}:_,D={amount:[{amount:X.getBaseValue("string"),denom:Oy(X.symbol)}],fromAddress:T,toAddress:f};return{accountNumber:x??q.accountNumber,chainId:B,fee:U,memo:y,msgs:[{typeUrl:KG(Z),value:D}],sequence:G??q.sequence}}var kf="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",B1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",J1,Q1,q1,Oy=(T,f=!1)=>{if(f)return T.toLowerCase();switch(T){case"uUSK":case"USK":return kf;case"uYUM":case"YUM":return B1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return T}},MT=({symbol:T,chain:f})=>{if(f===A.Maya)return(T.toUpperCase()!=="CACAO"?T:`${A.Maya}.${T}`).toUpperCase();if(f===A.THORChain)return(["RUNE","TCY","RUJI"].includes(T.toUpperCase())?`${A.THORChain}.${T}`:T).toUpperCase();return Oy(T,!1)},KG=(T)=>{switch(T){case A.Maya:case A.THORChain:return"/types.MsgSend";case A.Cosmos:case A.Kujira:case A.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new Z1("toolbox_cosmos_not_supported",{chain:T})}},uG,wf=(T,f)=>{let X=uG[T.toLowerCase()];if(!X)return If.from({asset:T,fromBaseDecimal:8,value:f});let{chain:y,asset:L,decimals:G}=X,x=y?{chain:y}:{asset:L};return If.from({...x,fromBaseDecimal:G,value:f})};var YT=E(()=>{J1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},Q1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},q1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};uG={atom:{chain:A.Cosmos,decimals:Zy(A.Cosmos).baseDecimal},cacao:{chain:A.Maya,decimals:10},kuji:{chain:A.Kujira,decimals:Zy(A.Kujira).baseDecimal},maya:{asset:`${A.Maya}.${A.Maya}`,decimals:4},rune:{chain:A.THORChain,decimals:Zy(A.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Zy(A.THORChain).baseDecimal},uatom:{chain:A.Cosmos,decimals:Zy(A.Cosmos).baseDecimal},ukuji:{chain:A.Kujira,decimals:Zy(A.Kujira).baseDecimal},usdc:{chain:A.Noble,decimals:Zy(A.Noble).baseDecimal},uusdc:{chain:A.Noble,decimals:Zy(A.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Zy(A.THORChain).baseDecimal},[kf.toLowerCase()]:{asset:`${A.Kujira}.USK`,decimals:Zy(A.Kujira).baseDecimal}}});var z1={};Ly(z1,{$root:()=>R});import p from"protobufjs/minimal.js";var P,Gy,k,R;var _1=E(()=>{P=p.Reader,Gy=p.Writer,k=p.util,R=p.roots.default||(p.roots.default={});R.common=(()=>{let T={};return T.Asset=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.chain="",f.prototype.symbol="",f.prototype.ticker="",f.prototype.synth=!1,f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))L.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))L.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))L.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))L.uint32(32).bool(y.synth);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,x=new R.common.Asset;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.chain=y.string();break;case 2:x.symbol=y.string();break;case 3:x.ticker=y.string();break;case 4:x.synth=y.bool();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.chain!=null&&y.hasOwnProperty("chain")){if(!k.isString(y.chain))return"chain: string expected"}if(y.symbol!=null&&y.hasOwnProperty("symbol")){if(!k.isString(y.symbol))return"symbol: string expected"}if(y.ticker!=null&&y.hasOwnProperty("ticker")){if(!k.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(y){if(y instanceof R.common.Asset)return y;let L=new R.common.Asset;if(y.chain!=null)L.chain=String(y.chain);if(y.symbol!=null)L.symbol=String(y.symbol);if(y.ticker!=null)L.ticker=String(y.ticker);if(y.synth!=null)L.synth=Boolean(y.synth);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)G.chain="",G.symbol="",G.ticker="",G.synth=!1;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.symbol!=null&&y.hasOwnProperty("symbol"))G.symbol=y.symbol;if(y.ticker!=null&&y.hasOwnProperty("ticker"))G.ticker=y.ticker;if(y.synth!=null&&y.hasOwnProperty("synth"))G.synth=y.synth;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.Coin=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.asset=null,f.prototype.amount="",f.prototype.decimals=k.Long?k.Long.fromBits(0,0,!1):0,f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))R.common.Asset.encode(y.asset,L.uint32(10).fork()).ldelim();if(y.amount!=null&&Object.hasOwnProperty.call(y,"amount"))L.uint32(18).string(y.amount);if(y.decimals!=null&&Object.hasOwnProperty.call(y,"decimals"))L.uint32(24).int64(y.decimals);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,x=new R.common.Coin;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.asset=R.common.Asset.decode(y,y.uint32());break;case 2:x.amount=y.string();break;case 3:x.decimals=y.int64();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.asset!=null&&y.hasOwnProperty("asset")){let L=R.common.Asset.verify(y.asset);if(L)return"asset."+L}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!k.isString(y.amount))return"amount: string expected"}if(y.decimals!=null&&y.hasOwnProperty("decimals")){if(!k.isInteger(y.decimals)&&!(y.decimals&&k.isInteger(y.decimals.low)&&k.isInteger(y.decimals.high)))return"decimals: integer|Long expected"}return null},f.fromObject=function(y){if(y instanceof R.common.Coin)return y;let L=new R.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");L.asset=R.common.Asset.fromObject(y.asset)}if(y.amount!=null)L.amount=String(y.amount);if(y.decimals!=null){if(k.Long)(L.decimals=k.Long.fromValue(y.decimals)).unsigned=!1;else if(typeof y.decimals==="string")L.decimals=Number.parseInt(y.decimals,10);else if(typeof y.decimals==="number")L.decimals=y.decimals;else if(typeof y.decimals==="object")L.decimals=new k.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber()}return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)if(G.asset=null,G.amount="",k.Long){let x=new k.Long(0,0,!1);G.decimals=L.longs===String?x.toString():L.longs===Number?x.toNumber():x}else G.decimals=L.longs===String?"0":0;if(y.asset!=null&&y.hasOwnProperty("asset"))G.asset=R.common.Asset.toObject(y.asset,L);if(y.amount!=null&&y.hasOwnProperty("amount"))G.amount=y.amount;if(y.decimals!=null&&y.hasOwnProperty("decimals"))if(typeof y.decimals==="number")G.decimals=L.longs===String?String(y.decimals):y.decimals;else G.decimals=L.longs===String?k.Long.prototype.toString.call(y.decimals):L.longs===Number?new k.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber():y.decimals;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.PubKeySet=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.secp256k1="",f.prototype.ed25519="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))L.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))L.uint32(18).string(y.ed25519);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,x=new R.common.PubKeySet;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.secp256k1=y.string();break;case 2:x.ed25519=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1")){if(!k.isString(y.secp256k1))return"secp256k1: string expected"}if(y.ed25519!=null&&y.hasOwnProperty("ed25519")){if(!k.isString(y.ed25519))return"ed25519: string expected"}return null},f.fromObject=function(y){if(y instanceof R.common.PubKeySet)return y;let L=new R.common.PubKeySet;if(y.secp256k1!=null)L.secp256k1=String(y.secp256k1);if(y.ed25519!=null)L.ed25519=String(y.ed25519);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)G.secp256k1="",G.ed25519="";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1"))G.secp256k1=y.secp256k1;if(y.ed25519!=null&&y.hasOwnProperty("ed25519"))G.ed25519=y.ed25519;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.Tx=(()=>{function f(X){if(this.coins=[],this.gas=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.id="",f.prototype.chain="",f.prototype.fromAddress="",f.prototype.toAddress="",f.prototype.coins=k.emptyArray,f.prototype.gas=k.emptyArray,f.prototype.memo="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))L.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))L.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))L.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))L.uint32(34).string(y.toAddress);if(y.coins?.length)for(let G=0;G<y.coins.length;++G)R.common.Coin.encode(y.coins[G],L.uint32(42).fork()).ldelim();if(y.gas?.length)for(let G=0;G<y.gas.length;++G)R.common.Coin.encode(y.gas[G],L.uint32(50).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))L.uint32(58).string(y.memo);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,x=new R.common.Tx;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.id=y.string();break;case 2:x.chain=y.string();break;case 3:x.fromAddress=y.string();break;case 4:x.toAddress=y.string();break;case 5:if(!x.coins?.length)x.coins=[];x.coins.push(R.common.Coin.decode(y,y.uint32()));break;case 6:if(!x.gas?.length)x.gas=[];x.gas.push(R.common.Coin.decode(y,y.uint32()));break;case 7:x.memo=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.id!=null&&y.hasOwnProperty("id")){if(!k.isString(y.id))return"id: string expected"}if(y.chain!=null&&y.hasOwnProperty("chain")){if(!k.isString(y.chain))return"chain: string expected"}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!k.isString(y.fromAddress))return"fromAddress: string expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!k.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 L=0;L<y.coins.length;++L){let G=R.common.Coin.verify(y.coins[L]);if(G)return"coins."+G}}if(y.gas!=null&&y.hasOwnProperty("gas")){if(!Array.isArray(y.gas))return"gas: array expected";for(let L=0;L<y.gas.length;++L){let G=R.common.Coin.verify(y.gas[L]);if(G)return"gas."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!k.isString(y.memo))return"memo: string expected"}return null},f.fromObject=function(y){if(y instanceof R.common.Tx)return y;let L=new R.common.Tx;if(y.id!=null)L.id=String(y.id);if(y.chain!=null)L.chain=String(y.chain);if(y.fromAddress!=null)L.fromAddress=String(y.fromAddress);if(y.toAddress!=null)L.toAddress=String(y.toAddress);if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Tx.coins: array expected");L.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Tx.coins: object expected");L.coins[G]=R.common.Coin.fromObject(y.coins[G])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");L.gas=[];for(let G=0;G<y.gas.length;++G){if(typeof y.gas[G]!=="object")throw TypeError(".common.Tx.gas: object expected");L.gas[G]=R.common.Coin.fromObject(y.gas[G])}}if(y.memo!=null)L.memo=String(y.memo);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.coins=[],G.gas=[];if(L.defaults)G.id="",G.chain="",G.fromAddress="",G.toAddress="",G.memo="";if(y.id!=null&&y.hasOwnProperty("id"))G.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=y.toAddress;if(y.coins?.length){G.coins=[];for(let x=0;x<y.coins.length;++x)G.coins[x]=R.common.Coin.toObject(y.coins[x],L)}if(y.gas?.length){G.gas=[];for(let x=0;x<y.gas.length;++x)G.gas[x]=R.common.Coin.toObject(y.gas[x],L)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.Fee=(()=>{function f(X){if(this.coins=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.coins=k.emptyArray,f.prototype.poolDeduct="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)R.common.Coin.encode(y.coins[G],L.uint32(10).fork()).ldelim();if(y.poolDeduct!=null&&Object.hasOwnProperty.call(y,"poolDeduct"))L.uint32(18).string(y.poolDeduct);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,x=new R.common.Fee;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:if(!x.coins?.length)x.coins=[];x.coins.push(R.common.Coin.decode(y,y.uint32()));break;case 2:x.poolDeduct=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let G=R.common.Coin.verify(y.coins[L]);if(G)return"coins."+G}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!k.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},f.fromObject=function(y){if(y instanceof R.common.Fee)return y;let L=new R.common.Fee;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Fee.coins: array expected");L.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Fee.coins: object expected");L.coins[G]=R.common.Coin.fromObject(y.coins[G])}}if(y.poolDeduct!=null)L.poolDeduct=String(y.poolDeduct);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.coins=[];if(L.defaults)G.poolDeduct="";if(y.coins?.length){G.coins=[];for(let x=0;x<y.coins.length;++x)G.coins[x]=R.common.Coin.toObject(y.coins[x],L)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))G.poolDeduct=y.poolDeduct;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.ProtoUint=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.value="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))L.uint32(10).string(y.value);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,x=new R.common.ProtoUint;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.value=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.value!=null&&y.hasOwnProperty("value")){if(!k.isString(y.value))return"value: string expected"}return null},f.fromObject=function(y){if(y instanceof R.common.ProtoUint)return y;let L=new R.common.ProtoUint;if(y.value!=null)L.value=String(y.value);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)G.value="";if(y.value!=null&&y.hasOwnProperty("value"))G.value=y.value;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T})();R.types=(()=>{let T={};return T.MsgDeposit=(()=>{function f(X){if(this.coins=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.coins=k.emptyArray,f.prototype.memo="",f.prototype.signer=k.newBuffer([]),f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)R.common.Coin.encode(y.coins[G],L.uint32(10).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))L.uint32(18).string(y.memo);if(y.signer!=null&&Object.hasOwnProperty.call(y,"signer"))L.uint32(26).bytes(y.signer);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,x=new R.types.MsgDeposit;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:if(!x.coins?.length)x.coins=[];x.coins.push(R.common.Coin.decode(y,y.uint32()));break;case 2:x.memo=y.string();break;case 3:x.signer=y.bytes();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let G=R.common.Coin.verify(y.coins[L]);if(G)return"coins."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!k.isString(y.memo))return"memo: string expected"}if(y.signer!=null&&y.hasOwnProperty("signer")){if(!(y.signer&&typeof y.signer.length==="number"||k.isString(y.signer)))return"signer: buffer expected"}return null},f.fromObject=function(y){if(y instanceof R.types.MsgDeposit)return y;let L=new R.types.MsgDeposit;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".types.MsgDeposit.coins: array expected");L.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");L.coins[G]=R.common.Coin.fromObject(y.coins[G])}}if(y.memo!=null)L.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")k.base64.decode(y.signer,L.signer=k.newBuffer(k.base64.length(y.signer)),0);else if(y.signer.length)L.signer=y.signer}return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.coins=[];if(L.defaults){if(G.memo="",L.bytes===String)G.signer="";else if(G.signer=[],L.bytes!==Array)G.signer=k.newBuffer(G.signer)}if(y.coins?.length){G.coins=[];for(let x=0;x<y.coins.length;++x)G.coins[x]=R.common.Coin.toObject(y.coins[x],L)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))G.signer=L.bytes===String?k.base64.encode(y.signer,0,y.signer.length):L.bytes===Array?Array.prototype.slice.call(y.signer):y.signer;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.MsgSend=(()=>{function f(X){if(this.amount=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.fromAddress=k.newBuffer([]),f.prototype.toAddress=k.newBuffer([]),f.prototype.amount=k.emptyArray,f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))L.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))L.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let G=0;G<y.amount.length;++G)R.cosmos.base.v1beta1.Coin.encode(y.amount[G],L.uint32(26).fork()).ldelim();return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,x=new R.types.MsgSend;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.fromAddress=y.bytes();break;case 2:x.toAddress=y.bytes();break;case 3:if(!x.amount?.length)x.amount=[];x.amount.push(R.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!(y.fromAddress&&typeof y.fromAddress.length==="number"||k.isString(y.fromAddress)))return"fromAddress: buffer expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!(y.toAddress&&typeof y.toAddress.length==="number"||k.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 L=0;L<y.amount.length;++L){let G=R.cosmos.base.v1beta1.Coin.verify(y.amount[L]);if(G)return"amount."+G}}return null},f.fromObject=function(y){if(y instanceof R.types.MsgSend)return y;let L=new R.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")k.base64.decode(y.fromAddress,L.fromAddress=k.newBuffer(k.base64.length(y.fromAddress)),0);else if(y.fromAddress.length)L.fromAddress=y.fromAddress}if(y.toAddress!=null){if(typeof y.toAddress==="string")k.base64.decode(y.toAddress,L.toAddress=k.newBuffer(k.base64.length(y.toAddress)),0);else if(y.toAddress.length)L.toAddress=y.toAddress}if(y.amount){if(!Array.isArray(y.amount))throw TypeError(".types.MsgSend.amount: array expected");L.amount=[];for(let G=0;G<y.amount.length;++G){if(typeof y.amount[G]!=="object")throw TypeError(".types.MsgSend.amount: object expected");L.amount[G]=R.cosmos.base.v1beta1.Coin.fromObject(y.amount[G])}}return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.amount=[];if(L.defaults){if(L.bytes===String)G.fromAddress="";else if(G.fromAddress=[],L.bytes!==Array)G.fromAddress=k.newBuffer(G.fromAddress);if(L.bytes===String)G.toAddress="";else if(G.toAddress=[],L.bytes!==Array)G.toAddress=k.newBuffer(G.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=L.bytes===String?k.base64.encode(y.fromAddress,0,y.fromAddress.length):L.bytes===Array?Array.prototype.slice.call(y.fromAddress):y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=L.bytes===String?k.base64.encode(y.toAddress,0,y.toAddress.length):L.bytes===Array?Array.prototype.slice.call(y.toAddress):y.toAddress;if(y.amount?.length){G.amount=[];for(let x=0;x<y.amount.length;++x)G.amount[x]=R.cosmos.base.v1beta1.Coin.toObject(y.amount[x],L)}return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T})();R.cosmos=(()=>{let T={};return T.base=(()=>{let f={};return f.v1beta1=(()=>{let X={};return X.Coin=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))x.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))x.uint32(18).string(G.amount);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof P))G=P.create(G);let Z=x===void 0?G.len:G.pos+x,B=new R.cosmos.base.v1beta1.Coin;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.denom=G.string();break;case 2:B.amount=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!k.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!k.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof R.cosmos.base.v1beta1.Coin)return G;let x=new R.cosmos.base.v1beta1.Coin;if(G.denom!=null)x.denom=String(G.denom);if(G.amount!=null)x.amount=String(G.amount);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.denom="",Z.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))Z.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))Z.amount=G.amount;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X.DecCoin=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))x.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))x.uint32(18).string(G.amount);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof P))G=P.create(G);let Z=x===void 0?G.len:G.pos+x,B=new R.cosmos.base.v1beta1.DecCoin;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.denom=G.string();break;case 2:B.amount=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!k.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!k.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof R.cosmos.base.v1beta1.DecCoin)return G;let x=new R.cosmos.base.v1beta1.DecCoin;if(G.denom!=null)x.denom=String(G.denom);if(G.amount!=null)x.amount=String(G.amount);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.denom="",Z.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))Z.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))Z.amount=G.amount;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X.IntProto=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.int="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.int!=null&&Object.hasOwnProperty.call(G,"int"))x.uint32(10).string(G.int);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof P))G=P.create(G);let Z=x===void 0?G.len:G.pos+x,B=new R.cosmos.base.v1beta1.IntProto;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.int=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.int!=null&&G.hasOwnProperty("int")){if(!k.isString(G.int))return"int: string expected"}return null},y.fromObject=function(G){if(G instanceof R.cosmos.base.v1beta1.IntProto)return G;let x=new R.cosmos.base.v1beta1.IntProto;if(G.int!=null)x.int=String(G.int);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.int="";if(G.int!=null&&G.hasOwnProperty("int"))Z.int=G.int;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X.DecProto=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.dec="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.dec!=null&&Object.hasOwnProperty.call(G,"dec"))x.uint32(10).string(G.dec);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof P))G=P.create(G);let Z=x===void 0?G.len:G.pos+x,B=new R.cosmos.base.v1beta1.DecProto;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.dec=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.dec!=null&&G.hasOwnProperty("dec")){if(!k.isString(G.dec))return"dec: string expected"}return null},y.fromObject=function(G){if(G instanceof R.cosmos.base.v1beta1.DecProto)return G;let x=new R.cosmos.base.v1beta1.DecProto;if(G.dec!=null)x.dec=String(G.dec);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.dec="";if(G.dec!=null&&G.hasOwnProperty("dec"))Z.dec=G.dec;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X})(),f})(),T})()});import{Chain as bG}from"@swapkit/helpers";async function Ky(){let{$root:T}=await Promise.resolve().then(() => (_1(),z1)),f=await import("@cosmjs/proto-signing"),X=f.Registry??f.default?.Registry,y=await import("@cosmjs/stargate"),L=y.defaultRegistryTypes??y.default?.defaultRegistryTypes;return new X([...L,["/types.MsgSend",T.types.MsgSend],["/types.MsgDeposit",T.types.MsgDeposit]])}async function Ey(T){let f=await import("@cosmjs/stargate"),X=f.AminoTypes??f.default?.AminoTypes,y=T===bG.THORChain?"thorchain":"mayachain";return new X({"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,fromAmino:({signer:L,...G})=>({...G,signer:zT(L)}),toAmino:({signer:L,...G})=>({...G,signer:_T(L)})},"/types.MsgSend":{aminoType:`${y}/MsgSend`,fromAmino:({from_address:L,to_address:G,...x})=>({...x,fromAddress:zT(L),toAddress:zT(G)}),toAmino:({fromAddress:L,toAddress:G,...x})=>({...x,from_address:_T(L),to_address:_T(G)})}})}var Pf=E(()=>{Df()});import{AssetValue as nG,Chain as nT,getChainConfig as M1,SwapKitError as jG}from"@swapkit/helpers";function Ff(T){return function(X){let{assetValue:y,recipient:L,memo:G,sender:x,asSignable:Z,asAminoMessage:B}=X;if(L)return Y1(T)({asAminoMessage:B,asSignable:Z,assetValue:y,memo:G,recipient:L,sender:x});return U1(T)({asAminoMessage:B,asSignable:Z,assetValue:y,memo:G,sender:x})}}function Py(T){if(T.type==="thorchain/MsgSend"||T.type==="mayachain/MsgSend")return T;return{...T,value:{...T.value,coins:T.value.coins.map((f)=>{let X=nG.from({asset:f.asset}),y=(X.isSynthetic?X.symbol.split("/")?.[1]:X.symbol)?.toUpperCase(),L=(X.isSynthetic?X.symbol.split("/")?.[0]:X.chain)?.toUpperCase();return{...f,asset:{chain:L,symbol:y,synth:X.isSynthetic,ticker:X.ticker}}})}}}async function UT({chain:T,memo:f,msgs:X}){let y=await Ky(),L=await Ey(T),G={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:f,messages:X.map((x)=>L.fromAmino(x))}};return y.encode(G)}var hG,pG,lf=({sender:T,recipient:f,assetValue:X})=>{return{type:`${X.chain===nT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:X.getBaseValue("string"),denom:Oy(X.symbol,!0)}],from_address:T,to_address:f}}},vf=({sender:T,assetValue:f,memo:X=""})=>{return{type:`${f.chain===nT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:f.getBaseValue("string"),asset:MT(f)}],memo:X,signer:T}}},jT=({sender:T,recipient:f,assetValue:X,memo:y})=>{return!f?vf({assetValue:X,memo:y,sender:T}):lf({assetValue:X,recipient:f,sender:T})},wy=async(T,f)=>{return(await Ey(f)).fromAmino(T)},N1=async({rpcUrl:T,sender:f})=>{let y=await(await Uy(T)).getAccount(f);if(!y)throw new jG("toolbox_cosmos_account_not_found",{sender:f});return y},Y1=(T)=>async({sender:f,recipient:X,assetValue:y,memo:L="",asSignable:G=!0,asAminoMessage:x=!1,sequence:Z,accountNumber:B})=>{let J=await N1({rpcUrl:T,sender:f}),Q=y.chain,{chainId:q}=M1(Q),z=lf({assetValue:y,recipient:X,sender:f}),M=G?await wy(x?z:Py(z),Q):z;return{accountNumber:B||J.accountNumber,chainId:q,fee:Yy(Q),memo:L,msgs:[M],sequence:Z||J.sequence}},U1=(T)=>async({sender:f,assetValue:X,memo:y="",asSignable:L=!0,asAminoMessage:G=!1,sequence:x,accountNumber:Z})=>{let B=await N1({rpcUrl:T,sender:f}),J=X.chain,{chainId:Q}=M1(J),q=vf({assetValue:X,memo:y,sender:f}),z=L?await wy(G?q:Py(q),J):q;return{accountNumber:Z||B.accountNumber,chainId:Q,fee:Yy(J),memo:y,msgs:[z],sequence:x||B.sequence}};var H1=E(()=>{YT();Pf();hG=Yy(nT.THORChain).gas,pG=Yy(nT.Maya).gas});var W1=()=>{};var R1=E(()=>{W1()});var Af=E(()=>{Df();H1();Pf();R1()});import{base64 as $f,bech32 as Sf}from"@scure/base";import{AssetValue as w1,applyFeeMultiplier as C1,Chain as d,CosmosChainPrefixes as P1,DerivationPath as oG,derivationPathToString as D1,FeeOption as Kf,getChainConfig as mG,getRPCUrl as cG,NetworkDerivationPath as tG,SKConfig as gG,SwapKitError as hT,SwapKitNumber as Vf,updateDerivationPath as iG}from"@swapkit/helpers";import{SwapKitApi as l1}from"@swapkit/helpers/api";import{match as dG,P as I1}from"ts-pattern";async function bf(T,f){try{let y=(await l1.getGasRate()).find((L)=>L.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(X){return f}}async function uf({phrase:T,prefix:f,...X}){let y=await import("@cosmjs/proto-signing"),L=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,G=await import("@cosmjs/crypto"),x=G.stringToPath??G.default?.stringToPath,Z="derivationPath"in X?X.derivationPath:`${oG[X.chain]}/${X.index}`;return L.fromMnemonic(T,{hdPaths:[x(Z)],prefix:f})}async function rG({privateKey:T,prefix:f}){let X=await import("@cosmjs/proto-signing");return(X.DirectSecp256k1Wallet??X.default?.DirectSecp256k1Wallet).fromKey(T,f)}function v1(T){return async function({signature:X,message:y,address:L}){let G=await T(L);if(!G?.pubkey)throw new hT("toolbox_cosmos_verify_signature_no_pubkey");let x=await import("@cosmjs/crypto"),Z=x.Secp256k1Signature??x.default?.Secp256k1Signature,B=x.Secp256k1??x.default?.Secp256k1,J=Z.fromFixedLength($f.decode(X));return B.verifySignature(J,$f.decode(y),G.pubkey.value)}}async function HT({chain:T,...f}){let X=await cG(T),y=P1[T],L="index"in f?f.index||0:0,G=D1("derivationPath"in f&&f.derivationPath?f.derivationPath:iG(tG[T],{index:L})),x=await dG(f).with({phrase:I1.string},({phrase:q})=>uf({derivationPath:G,phrase:q,prefix:y})).with({signer:I1.any},({signer:q})=>q).otherwise(()=>{return});async function Z(q){return(await Uy(X)).getAccount(q)}async function B(){let[q]=await x?.getAccounts()||[];return q?.address}async function J(){let[q]=await x?.getAccounts()||[];if(!q?.pubkey)throw new hT("toolbox_cosmos_signer_not_defined");return $f.encode(q?.pubkey)}async function Q({recipient:q,assetValue:z,memo:M="",feeRate:_,feeOptionKey:U=Kf.Fast}){let D=await B();if(!(x&&D))throw new hT("toolbox_cosmos_signer_not_defined");let l=w1.from({chain:T}),F=MT(l),n=_||T2((await O1(T,k1[T]))[U],F),K=await NT(X,x),g=[{amount:z.getBaseValue("string"),denom:Oy(`u${z.symbol}`).toLowerCase()}],{transactionHash:m}=await K.sendTokens(D,q,g,n,M);return m}return{createPrivateKeyFromPhrase:G2(G),createTransaction:Ef,fetchFeeRateFromSwapKit:bf,getAccount:Z,getAddress:B,getBalance:async(q,z)=>{let M=await E1(X)(q);return await Promise.all(M.filter(({denom:_})=>_&&!_.includes("IBC/")).map(({denom:_,amount:U})=>{let D=[d.THORChain,d.Maya].includes(T)&&(_.includes("/")||_.includes("˜"))?`${T}.${_}`:_;return wf(D,U)}))},getBalanceAsDenoms:E1(X),getFees:()=>O1(T,k1[T]),getPubKey:J,getSignerFromPhrase:async({phrase:q,derivationPath:z})=>uf({derivationPath:D1(z),index:L,phrase:q,prefix:y}),getSignerFromPrivateKey:async(q)=>{let z=await import("@cosmjs/proto-signing");return(z.DirectSecp256k1Wallet??z.default?.DirectSecp256k1Wallet).fromKey(q,y)},transfer:Q,validateAddress:A1(y),verifySignature:v1(Z)}}async function F1(T,f){try{let y=(await l1.getGasRate()).find((L)=>L.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(X){return f}}function sG({address:T,chain:f,prefix:X}){let y=X||y2(f);if(!(y&&T))throw new hT("toolbox_cosmos_validate_address_prefix_not_found");return A1(y)(T)}function eG({assetValue:{chain:T}}){return w1.from({chain:T,value:f2(T)})}function y2(T){let{isStagenet:f}=gG.get("envs"),X=T?[d.THORChain,d.Maya].includes(T)&&f:!1,y=T?P1[T]:void 0;return X?`s${y}`:y}async function O1(T,f){let{chainId:X,baseDecimal:y}=mG(T),L=await bf(X,f);return{average:Vf.fromBigInt(BigInt(L),y),fast:Vf.fromBigInt(BigInt(C1(L,Kf.Fast,!0)),y),fastest:Vf.fromBigInt(BigInt(C1(L,Kf.Fastest,!0)),y)}}function T2(T,f){return{amount:[{amount:T.getBaseValue("string"),denom:f}],gas:"200000"}}function f2(T){return{[d.Cosmos]:0.007,[d.Kujira]:0.02,[d.Noble]:0.01,[d.THORChain]:0.02,[d.Maya]:0.02}[T]||0}function A1(T){return function(X){if(!X.startsWith(T))return!1;try{let{prefix:y,words:L}=Sf.decode(X);return Sf.encode(y,L)===X.toLocaleLowerCase()}catch(y){return!1}}}function E1(T){return async function(X){return(await(await Uy(T)).getAllBalances(X)).map((x)=>({...x,denom:x.denom.includes("/")?x.denom.toUpperCase():x.denom}))}}function G2(T){return async function(X){let y=await import("@cosmjs/crypto"),L=y.stringToPath??y.default?.stringToPath,G=y.Slip10Curve??y.default?.Slip10Curve,x=y.Slip10??y.default?.Slip10,Z=y.EnglishMnemonic??y.default?.EnglishMnemonic,B=y.Bip39??y.default?.Bip39,J=new Z(X),Q=await B.mnemonicToSeed(J),{privkey:q}=x.derivePath(G.Secp256k1,Q,L(T));return q}}var k1,aG;var pT=E(()=>{YT();k1={[d.Cosmos]:500,[d.Kujira]:1000,[d.Noble]:1000,[d.THORChain]:5000000,[d.Maya]:5000000};aG=F1});import{base64 as uy}from"@scure/base";import{Chain as L2,CosmosChainPrefixes as X2,derivationPathToString as x2,FeeOption as nf,getChainConfig as Z2,getRPCUrl as B2,NetworkDerivationPath as J2,RequestClient as Q2,SKConfig as S1,SwapKitError as V1,SwapKitNumber as $1,updateDerivationPath as q2}from"@swapkit/helpers";import{match as z2,P as K1}from"ts-pattern";function _2({prefix:T,derivationPath:f}){return async function(y,L=0){let G=await import("@cosmjs/amino"),x=G.Secp256k1HdWallet??G.default?.Secp256k1HdWallet,Z=await import("@cosmjs/crypto"),B=Z.stringToPath??Z.default?.stringToPath;return x.fromMnemonic(y,{hdPaths:[B(`${f}/${L}`)],prefix:T})}}function M2(T){return uy.encode(T)}function N2(T){return async function({wallet:X,tx:y}){let{msgs:L,accountNumber:G,sequence:x,chainId:Z,fee:B,memo:J}=typeof y==="string"?JSON.parse(y):y,Q=(await X.getAccounts())?.[0]?.address||"",q=await Ey(T),z=await Ky(),M=await Of(X,{aminoTypes:q,registry:z}),_=[];for(let l of L){let F=await wy(l,T);_.push(F)}let{signatures:[U]}=await M.sign(Q,_,B,J,{accountNumber:G,chainId:Z,sequence:x});return{bodyBytes:await UT({chain:T,memo:J,msgs:L.map(Py)}),signature:M2(U)}}}function Y2({prefix:T,rpcUrl:f}){return async function(y,L,G,x,Z){let{encodeSecp256k1Pubkey:B,pubkeyToAddress:J}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:Q}=(await import("@cosmjs/stargate")).default,{sequence:q,fee:z}=JSON.parse(y),M=await u1(G,x),_=L.map((l)=>[J(B(uy.decode(l.pubKey)),T),uy.decode(l.signature)]),U=await Uy(f),{transactionHash:D}=await U.broadcastTx(Q(M,q,z,Z,new Map(_)));return D}}async function u1(T,f,X=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:L}=(await import("@cosmjs/amino")).default;return y(T.map((G)=>L(uy.decode(G))),f,X)}function U2(T){return uy.decode(T)}async function H2({privateKey:T,message:f}){let{Secp256k1:X}=(await import("@cosmjs/crypto")).default,y=await X.createSignature(uy.decode(f),T);return uy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function jf({chain:T,...f}){let X=S1.get("nodeUrls")[T],y=await B2(T),{isStagenet:L}=S1.get("envs"),G=T===L2.THORChain,x=`${L?"s":""}${X2[T]}`,Z="index"in f?f.index||0:0,B="derivationPath"in f&&f.derivationPath?f.derivationPath:q2(J2[T],{index:Z}),J=await HT({chain:T,...f}),Q=await z2(f).with({phrase:K1.string},({phrase:_})=>J.getSignerFromPhrase({derivationPath:B,phrase:_})).with({signer:K1.any},({signer:_})=>_).otherwise(()=>{return}),q=Yy(T);async function z(){let _,U=`${X}/${G?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:D}}=await Q2.get(U);if(!D||Number.isNaN(D)||D<0)throw new V1("toolbox_cosmos_invalid_fee",{nativeFee:D.toString()});_=new $1(D)}catch{_=new $1({decimal:Z2(T).baseDecimal,value:G?0.02:1})}return{[nf.Average]:_,[nf.Fast]:_,[nf.Fastest]:_}}async function M({assetValue:_,memo:U="",recipient:D}){let{TxRaw:l}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),F=(await Q?.getAccounts())?.[0]?.address;if(!(F&&Q))throw new V1("toolbox_cosmos_no_signer");let n="signAmino"in Q,K=await Ky(),g=await Ey(T),m=await NT(y,Q,{aminoTypes:g,registry:K}),a=jT({assetValue:_,memo:U,recipient:D,sender:F});if(n){let I=await wy(a,T),{signatures:O,authInfoBytes:w}=await m.sign(F,[I],q,U),v=l.encode({authInfoBytes:w,bodyBytes:await UT({chain:T,memo:U,msgs:[a].map(Py)}),signatures:O}).finish();return(await m.broadcastTx(v)).transactionHash}let KT=Py(a),N=await wy(KT,T);return(await m.signAndBroadcast(F,[N],q,U)).transactionHash}return{...J,broadcastMultisigTx:Y2({prefix:x,rpcUrl:y}),buildAminoMsg:jT,buildEncodedTxBody:UT,convertToSignable:wy,createDefaultAminoTypes:()=>Ey(T),createDefaultRegistry:Ky,createMultisig:u1,createTransaction:Ff(y),deposit:M,getFees:z,importSignature:U2,parseAminoMessageForDirectSigning:Py,pubkeyToAddress:async(_)=>{let{pubkeyToAddress:U}=(await import("@cosmjs/amino")).default;return U(_,x)},secp256k1HdWalletFromMnemonic:_2({derivationPath:x2(B),prefix:x}),signMultisigTx:N2(T),signWithPrivateKey:H2,transfer:M}}var hf=E(()=>{Af();YT();pT()});import{Chain as WT,SwapKitError as W2}from"@swapkit/helpers";var R2=(T,f)=>{switch(T){case WT.Cosmos:case WT.Kujira:case WT.Noble:return HT({chain:T,...f});case WT.Maya:case WT.THORChain:return jf({chain:T,...f});default:throw new W2("toolbox_cosmos_not_supported",{chain:T})}};var b1=E(()=>{pT();hf();pT();hf()});var oT={};Ly(oT,{verifySignature:()=>v1,transferMsgAmino:()=>lf,toBase64:()=>SG,parseAminoMessageForDirectSigning:()=>Py,getSignerFromPrivateKey:()=>rG,getSignerFromPhrase:()=>uf,getMsgSendDenom:()=>Oy,getFeeRateFromThorswap:()=>aG,getFeeRateFromSwapKit:()=>F1,getDenomWithChain:()=>MT,getDefaultChainFee:()=>Yy,getCreateTransaction:()=>Ff,getCosmosToolbox:()=>R2,getAssetFromDenom:()=>wf,fromBase64:()=>VG,fetchFeeRateFromSwapKit:()=>bf,estimateTransactionFee:()=>eG,depositMsgAmino:()=>vf,createThorchainToolbox:()=>jf,createStargateClient:()=>Uy,createSigningStargateClient:()=>NT,createOfflineStargateClient:()=>Of,createDefaultRegistry:()=>Ky,createDefaultAminoTypes:()=>Ey,createCosmosToolbox:()=>HT,cosmosValidateAddress:()=>sG,cosmosCreateTransaction:()=>Ef,convertToSignable:()=>wy,buildTransferTx:()=>Y1,buildEncodedTxBody:()=>UT,buildDepositTx:()=>U1,buildAminoMsg:()=>jT,bech32ToBase64:()=>zT,base64ToBech32:()=>_T,YUM_KUJIRA_FACTORY_DENOM:()=>B1,USK_KUJIRA_FACTORY_DENOM:()=>kf,THORCHAIN_GAS_VALUE:()=>hG,MAYA_GAS_VALUE:()=>pG,DEFAULT_NOBLE_FEE_MAINNET:()=>q1,DEFAULT_KUJI_FEE_MAINNET:()=>Q1,DEFAULT_COSMOS_FEE_MAINNET:()=>J1});var mT=E(()=>{Af();b1();YT()});import{AssetValue as C2,getChainConfig as D2}from"@swapkit/helpers";import{SwapKitApi as I2}from"@swapkit/helpers/api";function n1(){function T(){let f=Date.now(),X=pf||f;return pf=X,f>pf?f:X+1}return k2+T().toString(36)}function iy(T){return async function(X,y=!0){let L=await I2.getChainBalance({address:X,chain:T,scamFilter:y}),{baseDecimal:G}=D2(T);return L.map(({identifier:x,value:Z,decimal:B})=>{return new C2({decimal:B||G,identifier:x,value:Z})})}}var k2,pf=0;var RT=E(()=>{k2=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{SKConfig as O2,warnOnce as E2}from"@swapkit/helpers";function CT(T){let f=O2.get("apis")[T];if(f)return E2({condition:!0,id:"custom_evm_api_warning",warning:"Using custom EVM API. Be sure to implement all methods to avoid issues."}),f;return P2(T)}function w2(T){return T}function P2(T){return{getBalance:iy(T)}}var cT=E(()=>{RT()});import{Chain as h,getChainConfig as j1,getRPCUrl as l2,SwapKitError as v2}from"@swapkit/helpers";async function by(T,f){let{JsonRpcProvider:X}=await import("ethers");return new X(f||await l2(T))}function DT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function of(T){let{blockExplorerUrl:f,chainId:X,rpcUrl:y}=j1(T);return()=>T===h.Ethereum?void 0:{...F2({chain:T}),blockExplorerUrls:[f],chainId:X,rpcUrls:[y]}}function mf(T){return![h.Arbitrum,h.BinanceSmartChain].includes(T)}function F2({chain:T}){let{baseDecimal:f}=j1(T);switch(T){case h.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Aurora:return{chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:T}};case h.Base:return{chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Berachain:return{chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}};case h.BinanceSmartChain:return{chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}};case h.Gnosis:return{chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}};case h.Optimism:return{chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:h.Polygon}};default:throw new v2("toolbox_evm_not_supported",{chain:T})}}var dy=()=>{};var h1;var p1=E(()=>{h1=[{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 A2,applyFeeMultiplierToBigInt as ry,Chain as o,ContractAddress as By,FeeOption as j,isGasAsset as S2,SwapKitError as b,SwapKitNumber as tT}from"@swapkit/helpers";import{erc20ABI as IT}from"@swapkit/helpers/contracts";import{BrowserProvider as V2,Contract as o1,getAddress as gT,Interface as m1}from"ethers";function ay({chain:T=o.Ethereum,provider:f,signer:X,isEIP1559Compatible:y=!0}){return{approve:n2({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),approvedAmount:g1({chain:T,provider:f}),broadcastTransaction:f.broadcastTransaction,call:rf({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),createApprovalTx:o2({chain:T,provider:f,signer:X}),createContract:gf({chain:T,provider:f}),createContractTxObject:ny({chain:T,provider:f}),createTransaction:cf({chain:T,provider:f,signer:X}),createTransferTx:cf({chain:T,provider:f,signer:X}),EIP1193SendTransaction:ey(f),estimateCall:i1({provider:f,signer:X}),estimateGasLimit:h2({chain:T,provider:f,signer:X}),estimateGasPrices:jy({chain:T,isEIP1559Compatible:y,provider:f}),estimateTransactionFee:m2({chain:T,isEIP1559Compatible:y,provider:f}),getAddress:()=>{return X?X.getAddress():void 0},isApproved:b2({chain:T,provider:f}),sendTransaction:d1({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),signMessage:X?.signMessage,transfer:j2({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),validateAddress:(L)=>tf({address:L})}}function tf({address:T}){try{return gT(T),!0}catch(f){return!1}}function sy(T){return T instanceof V2}function OT(T,f,X){return new o1(T,m1.from(f),X)}function gf({provider:T}){return function(X,y){return new o1(X,m1.from(y),T)}}function df({abi:T,funcName:f}){let X=T.find((y)=>y.name===f);if(!X)throw new b("toolbox_evm_no_abi_fragment",{funcName:f});return X.stateMutability&&$2.includes(X.stateMutability)}function c1(T){return gT(T)}function ey(T){return function({value:X,...y}){if(!sy(T))throw new b("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:L,gasPrice:G,maxFeePerGas:x,maxPriorityFeePerGas:Z,...B}=y;return T.send("eth_sendTransaction",[{...B,value:DT(BigInt(X||0))}])}}function t1(T,f){let X=yT(T,f);if(X)return gT(X.toLowerCase());throw new b("toolbox_evm_invalid_gas_asset_address")}function yT({chain:T,symbol:f,ticker:X},y){try{let L=T===o.BinanceSmartChain&&f==="BNB"&&X==="BNB",G=T===y&&f===y&&X===y,x=u2.includes(T)&&f==="ETH"&&X==="ETH";if(G||L||x)return K2[y];return gT(f.slice(X.length+1).replace(/^0X/,""))}catch(L){return null}}function ny({provider:T}){return async({contractAddress:f,abi:X,funcName:y,funcParams:L=[],txOverrides:G})=>OT(f,X,T).getFunction(y).populateTransaction(...L.concat(G).filter((x)=>typeof x<"u"))}function jy({chain:T,provider:f,isEIP1559Compatible:X=!0}){if(T===o.Arbitrum)return async function(){try{let{gasPrice:L}=await f.getFeeData();if(!L)throw new b("toolbox_evm_no_fee_data");return{[j.Average]:{gasPrice:L},[j.Fast]:{gasPrice:L},[j.Fastest]:{gasPrice:L}}}catch(L){throw new b("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}};return async function(){try{let{maxFeePerGas:L,maxPriorityFeePerGas:G,gasPrice:x}=await f.getFeeData();if(X){if(L===null||G===null)throw new b("toolbox_evm_no_fee_data");return{[j.Average]:{maxFeePerGas:L,maxPriorityFeePerGas:G},[j.Fast]:{maxFeePerGas:ry(L,j.Fast),maxPriorityFeePerGas:ry(G,j.Fast)},[j.Fastest]:{maxFeePerGas:ry(L,j.Fastest),maxPriorityFeePerGas:ry(G,j.Fastest)}}}if(!x)throw new b("toolbox_evm_no_gas_price");return{[j.Average]:{gasPrice:x},[j.Fast]:{gasPrice:ry(x,j.Fast)},[j.Fastest]:{gasPrice:ry(x,j.Fastest)}}}catch(L){throw new b("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}}}function rf({provider:T,isEIP1559Compatible:f,signer:X,chain:y}){return async function({callProvider:G,contractAddress:x,abi:Z,funcName:B,funcParams:J=[],txOverrides:Q={},feeOption:q=j.Fast}){let z=G||T;if(!x)throw new b("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let M=df({abi:Z,funcName:B});if(M&&sy(z)&&X){let D=ny({chain:y,provider:z}),l=Q?.from||await X?.getAddress(),F=await D({abi:Z,contractAddress:x,funcName:B,funcParams:J,txOverrides:{...Q,from:l}});return ey(z)(F)}let _=OT(x,Z,z);if(M){if(!X)throw new b("toolbox_evm_no_signer");let D=Q?.from||await X.getAddress();if(!D)throw new b("toolbox_evm_no_signer_address");let l=_.connect(X),F=jy({chain:y,isEIP1559Compatible:f,provider:T}),{maxFeePerGas:n,maxPriorityFeePerGas:K,gasPrice:g}=(await F())[q],m=await _.getFunction(B).estimateGas(...J,Q),a=await l[B](...J,{...Q,gasLimit:m,gasPrice:g,maxFeePerGas:n,maxPriorityFeePerGas:K,nonce:Q?.nonce||await z.getTransactionCount(D)});return typeof a?.hash==="string"?a?.hash:a}let U=await _[B]?.(...J);return typeof U?.hash==="string"?U?.hash:U}}function g1({provider:T,chain:f}){return function({assetAddress:y,spenderAddress:L,from:G}){return rf({chain:f,isEIP1559Compatible:!0,provider:T})({abi:IT,contractAddress:y,funcName:"allowance",funcParams:[G,L]})}}function b2({provider:T,chain:f}){return async function({assetAddress:y,spenderAddress:L,from:G,amount:x=kT}){let Z=await g1({chain:f,provider:T})({assetAddress:y,from:G,spenderAddress:L});return tT.fromBigInt(Z).gte(tT.fromBigInt(BigInt(x)))}}function n2({signer:T,isEIP1559Compatible:f=!0,provider:X,chain:y}){return async function({assetAddress:G,spenderAddress:x,feeOptionKey:Z=j.Fast,amount:B,gasLimitFallback:J,from:Q,nonce:q}){let z=[x,BigInt(B||kT)],M=await T?.getAddress()||Q,_={abi:IT,contractAddress:G,funcName:"approve",funcParams:z,signer:T,txOverrides:{from:M}};if(sy(X)){let D=ny({chain:y,provider:X}),l=ey(X),F=await D(_);return l(F)}return rf({chain:y,isEIP1559Compatible:f,provider:X,signer:T})({..._,feeOption:Z,funcParams:z,txOverrides:{from:M,gasLimit:J?BigInt(J.toString()):void 0,nonce:q}})}}function j2({signer:T,isEIP1559Compatible:f=!0,provider:X}){return async function({assetValue:L,memo:G,recipient:x,feeOptionKey:Z=j.Fast,sender:B,...J}){let{hexlify:Q,toUtf8Bytes:q}=await import("ethers"),z=L.getBaseValue("bigint"),M=L.chain,_=B||await T?.getAddress(),U=d1({chain:M,isEIP1559Compatible:f,provider:X,signer:T});if(!_)throw new b("toolbox_evm_no_from_address");if(L.isGasAsset){let g={...J,data:Q(q(G||"")),feeOptionKey:Z,from:_,to:x,value:z};return U(g)}if(!yT(L,M))throw new b("toolbox_evm_no_contract_address");let{maxFeePerGas:l,maxPriorityFeePerGas:F,gasPrice:n}=(await jy({chain:M,isEIP1559Compatible:f,provider:X})())[Z],K=await cf({chain:M,provider:X,signer:T})({assetValue:L,data:Q(q(G||"")),gasPrice:n,maxFeePerGas:l,maxPriorityFeePerGas:F,memo:G,recipient:x,sender:_});return U(K)}}function i1({provider:T,signer:f}){return function({contractAddress:y,abi:L,funcName:G,funcParams:x=[],txOverrides:Z}){if(!y)throw new b("toolbox_evm_no_contract_address");let B=OT(y,L,T);return f?B.connect(f).getFunction(G).estimateGas(...x,Z):B.getFunction(G).estimateGas(...x,Z)}}function h2({provider:T,signer:f}){return async function({assetValue:y,recipient:L,memo:G,data:x,sender:Z,funcName:B,funcParams:J,txOverrides:Q}){let q=y.bigIntValue,z=y.isGasAsset?null:yT(y,y.chain);if(z&&B)return i1({provider:T,signer:f})({abi:IT,contractAddress:z,funcName:B,funcParams:J,txOverrides:Q});let{hexlify:M,toUtf8Bytes:_}=await import("ethers");return T.estimateGas({data:x?x:G?M(_(G)):void 0,from:Z,to:L,value:q})}}function d1({provider:T,signer:f,isEIP1559Compatible:X=!0,chain:y}){return async function({feeOptionKey:G=j.Fast,...x}){let{from:Z,to:B,data:J,value:Q,...q}=x;if(!f)throw new b("toolbox_evm_no_signer");if(!B)throw new b("toolbox_evm_no_to_address");let z={...q,data:J||"0x",from:Z,to:B,value:BigInt(Q||0)};if(sy(T))return ey(T)(z);let M=Z||await f.getAddress(),_=x.nonce||await T.getTransactionCount(M),U=(await T.getNetwork()).chainId,D=p2(z)||X,l=jy({chain:y,isEIP1559Compatible:X,provider:T}),F=D&&!(z.maxFeePerGas&&z.maxPriorityFeePerGas)||!z.gasPrice?Object.entries((await l())[G]).reduce((K,[g,m])=>({...K,[g]:DT(BigInt(m))}),{}):{},n;try{n=DT(z.gasLimit||await T.estimateGas(z)*11n/10n)}catch(K){throw new b("toolbox_evm_error_estimating_gas_limit",{error:K})}try{let K={...z,chainId:U,gasLimit:n,nonce:_,type:D?2:0,...F};try{return(await f.sendTransaction(K)).hash}catch(g){let m=await f.signTransaction({...K,from:M});return(await T.broadcastTransaction(m)).hash}}catch(K){throw new b("toolbox_evm_error_sending_transaction",{error:K})}}}function cf({provider:T,signer:f}){return async function({assetValue:y,memo:L,recipient:G,data:x,sender:Z,maxFeePerGas:B,maxPriorityFeePerGas:J,gasPrice:Q,...q}){let z=y.getBaseValue("bigint"),M=y.chain,_=Z||await f?.getAddress();if(!_)throw new b("toolbox_evm_no_from_address");if(S2(y)){let{hexlify:l,toUtf8Bytes:F}=await import("ethers");return{...q,data:x||l(F(L||"")),from:_,to:G,value:z}}let U=yT(y,M);if(!U)throw new b("toolbox_evm_no_contract_address");return ny({chain:y.chain,provider:T})({abi:IT,contractAddress:U,funcName:"transfer",funcParams:[G,z],txOverrides:{from:_,gasPrice:Q,maxFeePerGas:B,maxPriorityFeePerGas:J}})}}function o2({provider:T,signer:f,chain:X}){return async function({assetAddress:L,spenderAddress:G,amount:x,from:Z}){let B=await f?.getAddress()||Z,J=ny({chain:X,provider:T}),Q=["bigint","number"].includes(typeof x)?x:x||kT;return await J({abi:IT,contractAddress:L,funcName:"approve",funcParams:[G,BigInt(Q)],txOverrides:{from:B}})}}function m2({provider:T,isEIP1559Compatible:f=!0}){return async function({feeOption:y=j.Fast,chain:L,...G}){let Z=await jy({chain:L,isEIP1559Compatible:f,provider:T})(),B=await T.estimateGas(G),J=A2.from({chain:L}),{gasPrice:Q,maxFeePerGas:q,maxPriorityFeePerGas:z}=Z[y];if(!f&&Q)return J.set(tT.fromBigInt(Q*B,J.decimal));if(q&&z){let M=(q+z)*B;return J.set(tT.fromBigInt(M,J.decimal))}throw new b("toolbox_evm_no_gas_price")}}var kT,$2,K2,u2,p2=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var iT=E(()=>{dy();kT=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");$2=["payable","nonpayable"];K2={[o.Arbitrum]:By.ARB,[o.Aurora]:By.AURORA,[o.Avalanche]:By.AVAX,[o.Base]:By.BASE,[o.Berachain]:By.BERA,[o.BinanceSmartChain]:By.BSC,[o.Ethereum]:By.ETH,[o.Gnosis]:By.GNO,[o.Optimism]:By.OP,[o.Polygon]:By.MATIC},u2=[o.Arbitrum,o.Aurora,o.Base,o.Optimism]});import{Chain as Hy,FeeOption as c2,getRPCUrl as t2}from"@swapkit/helpers";import{HDNodeWallet as g2}from"ethers";import{match as i2,P as r1}from"ts-pattern";async function dT({provider:T,...f}){let X=await Wy(Hy.Ethereum)({provider:T,...f});async function y(L,G="0x5ba1e12693dc8f9c48aad8770482f4739beed696",x="aggregate",Z=c2.Fast){let B=await X.createContractTxObject({abi:h1,contractAddress:G,funcName:x,funcParams:[L]});return X.sendTransaction({...B,feeOptionKey:Z})}return{...X,multicall:y}}function Wy(T){return async function({provider:X,...y}){let L=await t2(T),G=X||await by(T,L),x=mf(T),Z=i2(y).with({phrase:r1.string},({phrase:J})=>g2.fromPhrase(J).connect(G)).with({signer:r1.any},({signer:J})=>J).otherwise(()=>{return});return{...ay({chain:T,isEIP1559Compatible:x,provider:G,signer:Z}),getBalance:CT(T).getBalance,getNetworkParams:of(T)}}}var rT,aT,sT,eT,yf,Tf,ff,Gf;var af=E(()=>{cT();p1();dy();iT();rT=Wy(Hy.Arbitrum),aT=Wy(Hy.Aurora),sT=Wy(Hy.Avalanche),eT=Wy(Hy.Base),yf=Wy(Hy.Berachain),Tf=Wy(Hy.BinanceSmartChain),ff=Wy(Hy.Gnosis),Gf=Wy(Hy.Polygon)});var a1;var s1=E(()=>{a1=[{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 TT,Chain as Lf,FeeOption as Ry,getChainConfig as d2,getRPCUrl as r2,SwapKitError as sf}from"@swapkit/helpers";import{Contract as a2,HDNodeWallet as s2}from"ethers";import{match as e2,P as e1}from"ts-pattern";function ef(T){return new a2(yL,a1,T)}function y5(T){return function(){let X=ef(T);if(X&&"l1BaseFee"in X)return X?.l1BaseFee();return}}function T5(T){return async function({from:X,to:y,nonce:L,...G}){let{Transaction:x}=await import("ethers");if(!y)throw new sf("toolbox_evm_invalid_transaction",{error:"Missing to address"});return x.from({...G,authorizationList:G.authorizationList,nonce:L?L:X?await T.getTransactionCount(X):0,to:y}).serialized}}function f5(T){return async function(X){let y=ef(T),L=await T5(T)(X);if(y&&"getL1Fee"in y)return y.getL1Fee(L)}}function G5(T){return async function(X){let y=await T.send("eth_gasPrice",[]),L=await T.estimateGas(X);return y.mul(L)}}function TL(T){return async function(X){let y=await f5(T)(X),L=await G5(T)(X);return y.add(L)}}function fL(T){return async function(X){let y=ef(T),L=await T5(T)(X);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(L)}}function GL(){let{baseDecimal:T,chainId:f,blockExplorerUrl:X,name:y,rpcUrl:L}=d2(Lf.Optimism);return{blockExplorerUrls:[X],chainId:f,chainName:y,nativeCurrency:{decimals:T,name:"Ethereum",symbol:Lf.Ethereum},rpcUrls:[L]}}async function LL(T){try{let{maxFeePerGas:f,maxPriorityFeePerGas:X,gasPrice:y}=await T.getFeeData(),L=y5(T)(),G=y;if(!(f&&X))throw new sf("toolbox_evm_no_fee_data");return{[Ry.Average]:{gasPrice:G,l1GasPrice:L,maxFeePerGas:f,maxPriorityFeePerGas:X},[Ry.Fast]:{gasPrice:TT(G,Ry.Fast),l1GasPrice:TT(L||0n,Ry.Fast),maxFeePerGas:f,maxPriorityFeePerGas:TT(X,Ry.Fast)},[Ry.Fastest]:{gasPrice:TT(G,Ry.Fastest),l1GasPrice:TT(L||0n,Ry.Fastest),maxFeePerGas:f,maxPriorityFeePerGas:TT(X,Ry.Fastest)}}}catch(f){throw new sf("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}async function Xf({provider:T,...f}){let X=Lf.Optimism,y=await r2(X),L=T||await by(X,y),G=e2(f).with({phrase:e1.string},({phrase:B})=>s2.fromPhrase(B).connect(L)).with({signer:e1.any},({signer:B})=>B).otherwise(()=>{return}),x=ay({provider:L,signer:G}),Z=y5(L);return{...x,estimateGasPrices:LL(L),estimateL1Gas:fL(L),estimateL1GasCost:f5(L),estimateL2GasCost:G5(L),estimateTotalGasCost:TL(L),getBalance:CT(Lf.Optimism).getBalance,getL1GasPrice:Z,getNetworkParams:GL}}var yL="0x420000000000000000000000000000000000000f";var y0=E(()=>{cT();s1();dy();iT()});var X5={};Ly(X5,{toChecksumAddress:()=>c1,isStateChangingCall:()=>df,isBrowserProvider:()=>sy,getTokenAddress:()=>yT,getEvmToolbox:()=>L5,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>ey,getCreateContractTxObject:()=>ny,getCreateContract:()=>gf,getChecksumAddressFromAsset:()=>t1,evmValidateAddress:()=>tf,createContract:()=>OT,OPToolbox:()=>Xf,MAX_APPROVAL:()=>kT,MATICToolbox:()=>Gf,GNOToolbox:()=>ff,ETHToolbox:()=>dT,BaseEVMToolbox:()=>ay,BSCToolbox:()=>Tf,BERAToolbox:()=>yf,BASEToolbox:()=>eT,AVAXToolbox:()=>sT,AURORAToolbox:()=>aT,ARBToolbox:()=>rT});import{Chain as Jy,SwapKitError as XL}from"@swapkit/helpers";async function L5(T,f){let X={...f,provider:f?.provider||await by(T)};switch(T){case Jy.Arbitrum:return rT(X);case Jy.Aurora:return aT(X);case Jy.Avalanche:return sT(X);case Jy.Base:return eT(X);case Jy.Berachain:return yf(X);case Jy.BinanceSmartChain:return Tf(X);case Jy.Gnosis:return ff(X);case Jy.Optimism:return Xf(X);case Jy.Polygon:return Gf(X);case Jy.Ethereum:return dT(X);default:throw new XL("toolbox_evm_not_supported",{chain:T})}}var T0=E(()=>{dy();af();y0();iT();af();y0()});var x5;var Z5=E(()=>{((X)=>{X.Test="goerli";X.Main="homestead"})(x5||={})});var B5={};Ly(B5,{toHexString:()=>DT,toChecksumAddress:()=>c1,isStateChangingCall:()=>df,isBrowserProvider:()=>sy,getTokenAddress:()=>yT,getProvider:()=>by,getNetworkParams:()=>of,getIsEIP1559Compatible:()=>mf,getEvmToolbox:()=>L5,getEvmApi:()=>CT,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>ey,getCreateContractTxObject:()=>ny,getCreateContract:()=>gf,getChecksumAddressFromAsset:()=>t1,evmValidateAddress:()=>tf,createCustomEvmApi:()=>w2,createContract:()=>OT,OPToolbox:()=>Xf,MAX_APPROVAL:()=>kT,MATICToolbox:()=>Gf,GNOToolbox:()=>ff,EthNetwork:()=>x5,ETHToolbox:()=>dT,BaseEVMToolbox:()=>ay,BSCToolbox:()=>Tf,BERAToolbox:()=>yf,BASEToolbox:()=>eT,AVAXToolbox:()=>sT,AURORAToolbox:()=>aT,ARBToolbox:()=>rT});var J5=E(()=>{cT();dy();T0();Z5()});import{AssetValue as xL,Chain as ZL,SwapKitNumber as Q5}from"@swapkit/helpers";async function BL(T,f,X){try{let y=await T.query.system?.account?.(X);if(!y)return[f.set(0)];let{data:{free:L}}=y,G=Q5.fromBigInt(BigInt(L.toString()),f.decimal).getValue("string");return[f.set(G)]}catch(y){return console.error("Error fetching substrate balance:",y),[f.set(0)]}}async function JL(T,f,X){try{let y=await T.query.flip?.account?.(X);if(!y)return[f.set(0)];let L=y.balance||y.data?.balance;if(!L||L.isEmpty)return[f.set(0)];let G=Q5.fromBigInt(BigInt(L.toString()),f.decimal).getValue("string");return[f.set(G)]}catch(y){return console.error("Error fetching chainflip balance:",y),[f.set(0)]}}function q5(T,f){return function(y){let L=xL.from({chain:T});switch(T){case ZL.Chainflip:return JL(f,L,y);default:return BL(f,L,y)}}}var z5=()=>{};var QL,qL,zL,ly;var f0=E(()=>{QL={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},qL={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},zL={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},ly={DOT:QL,FLIP:qL,GENERIC:zL}});import{hexToU8a as _L,isHex as ML,u8aToHex as NL}from"@polkadot/util";import{decodeAddress as M5,encodeAddress as N5}from"@polkadot/util-crypto";import{AssetValue as YL,Chain as GT,getRPCUrl as UL,SwapKitError as Qy,SwapKitNumber as HL}from"@swapkit/helpers";import{match as WL,P as _5}from"ts-pattern";function RL(T,f){switch(T){case GT.Chainflip:return U5(f);case GT.Polkadot:return Y5(f);default:throw new Qy("toolbox_substrate_not_supported",{chain:T})}}function fT(T){return"address"in T}async function L0(T,f){let{Keyring:X}=await import("@polkadot/api"),{cryptoWaitReady:y}=await import("@polkadot/util-crypto");return await y(),new X({ss58Format:f,type:"sr25519"}).addFromUri(T)}function wL(T,f){let X=M5(T);return N5(X,f)}function H5(T,f){return ML(T)?_L(T):M5(T,void 0,f)}function W5(T,f="ss58",X){if(f==="hex")return NL(T);return N5(T,X)}async function Z0({generic:T,chain:f,...X}){let{ApiPromise:y,WsProvider:L}=await import("@polkadot/api"),G=await UL(f),x=new L(G),Z=await y.create({provider:x}),B=YL.from({chain:f}),J=T?ly.GENERIC:ly[f],Q=await WL(X).with({phrase:_5.string},({phrase:q})=>L0(q,ly[f].prefix)).with({signer:_5.any},({signer:q})=>q).otherwise(()=>{return});return R5({api:Z,chain:f,gasAsset:B,network:J,signer:Q})}var Y5=({generic:T=!1,...f}={})=>{return Z0({chain:GT.Polkadot,generic:T,...f})},U5=async({generic:T=!1,...f}={})=>{return{...await Z0({chain:GT.Chainflip,generic:T,...f})}},X0=(T,f)=>T.rpc.system.accountNextIndex(f),G0=(T,f)=>{try{let X=H5(T,f);return W5(X,"ss58",f),!0}catch(X){return!1}},x0=(T,{recipient:f,assetValue:X})=>T.tx.balances?.transferAllowDeath?.(f,X.getBaseValue("number")),CL=async(T,f,{recipient:X,assetValue:y,sender:L})=>{let G=x0(T,{assetValue:y,recipient:X});if(!G)throw new Qy("toolbox_substrate_transfer_error");let x=fT(f),Z=x?f.address:L;if(!Z)throw new Qy("core_transaction_invalid_sender_address");let B=await X0(T,Z);return(await G.signAndSend(x?f:Z,{nonce:B,signer:x?void 0:f})).toString()},DL=async(T,f,X,{recipient:y,assetValue:L,sender:G})=>{let x=x0(T,{assetValue:L,recipient:y}),Z=fT(f)?f.address:G;if(!Z)return;let B=await x?.paymentInfo(Z,{nonce:await X0(T,Z)})||{partialFee:0};return X.set(HL.fromBigInt(BigInt(B.partialFee.toString()),X.decimal).getValue("string"))},IL=async(T,f)=>{if(f)return T.send(f);return(await T.send()).toString()},kL=async(T,f)=>{return await f.signAsync(T)},OL=(T,f,X)=>{if(X)return f.signAndSend(T,X);return f.signAndSend(T).toString()},EL=async({signer:T,address:f,tx:X,callback:y,api:L})=>{let G=await X0(L,f);if(y)X.signAndSend(f,{nonce:G,signer:T},y);return X.signAndSend(f,{nonce:G,signer:T}).toString()},R5=({api:T,network:f,gasAsset:X,signer:y,chain:L})=>({api:T,broadcast:IL,convertAddress:wL,createKeyring:(G)=>L0(G,f.prefix),createTransaction:(G)=>x0(T,G),decodeAddress:H5,encodeAddress:W5,estimateTransactionFee:(G)=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");return DL(T,y,X,G)},gasAsset:X,getAddress:(G)=>{let x=G||y;if(!x)throw new Qy("core_wallet_not_keypair_wallet");return fT(x)?x.address:void 0},getBalance:q5(L||GT.Polkadot,T),network:f,sign:(G)=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");if(fT(y))return kL(y,G);throw new Qy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:G,callback:x,address:Z})=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");if(fT(y))return OL(y,G,x);if(Z)return EL({address:Z,api:T,callback:x,signer:y,tx:G});throw new Qy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(G)=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");return CL(T,y,G)},validateAddress:(G)=>G0(G,f.prefix)}),PL=({address:T,chain:f})=>{let{prefix:X}=f===GT.Polkadot?ly.DOT:ly.FLIP;return G0(T,X)||G0(T,ly.GENERIC.prefix)};var C5=E(()=>{z5();f0()});var B0={};Ly(B0,{substrateValidateAddress:()=>PL,isKeyringPair:()=>fT,getSubstrateToolbox:()=>RL,createSubstrateToolbox:()=>Z0,createKeyring:()=>L0,SubstrateNetwork:()=>ly,PolkadotToolbox:()=>Y5,ChainflipToolbox:()=>U5,BaseSubstrateToolbox:()=>R5});var J0=E(()=>{C5();f0()});import{networks as lL}from"@bitgo/utxo-lib";import{Chain as c,getRPCUrl as vL,RequestClient as xf,SKConfig as k5,SwapKitError as vy,warnOnce as O5}from"@swapkit/helpers";import{networks as FL}from"bitcoinjs-lib";import ET from"coininfo";async function AL({chain:T,txHash:f}){let X=`${Zf(T)}/push/transaction`,y=JSON.stringify({data:f});try{let L=await xf.post(X,{body:y,headers:{"Content-Type":"application/json"}});if(L.context.code!==200)throw new vy("toolbox_utxo_broadcast_failed",{error:L.context.error||"Transaction broadcast failed"});return L.data?.transaction_hash||f}catch(L){let G=await vL(T);if(G){let x=JSON.stringify({id:n1(),jsonrpc:"2.0",method:"sendrawtransaction",params:[f]}),Z=await xf.post(G,{body:x,headers:{"Content-Type":"application/json"}});if(Z.error)throw new vy("toolbox_utxo_broadcast_failed",{error:Z.error?.message});if(Z.result.includes('"code":-26'))throw new vy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return Z.result}throw L}}function Zf(T){return`https://api.blockchair.com/${SL(T)}`}function D5(T){switch(T){case c.Bitcoin:return 5;case c.Dogecoin:return 1e4;case c.Litecoin:return 1;case c.Zcash:return 1;default:return 2}}function SL(T){switch(T){case c.BitcoinCash:return"bitcoin-cash";case c.Litecoin:return"litecoin";case c.Dash:return"dash";case c.Dogecoin:return"dogecoin";case c.Zcash:return"zcash";case c.Polkadot:return"polkadot";default:return"bitcoin"}}async function VL(T){try{let{feePerKb:f}=await xf.get(`https://app.bitgo.com/api/v2/${T.toLowerCase()}/tx/fee`),X=f/1000;return Math.max(X,D5(T))}catch(f){return D5(T)}}async function Q0(T,f){let X=await xf.get(`${T}${f?`${T.includes("?")?"&":"?"}key=${f}`:""}`);if(!X||X.context.code!==200)throw new vy("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return X.data}async function E5({address:T,chain:f,apiKey:X}){if(!T)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Q0(`${Zf(f)}/dashboards/address/${T}?transaction_details=true`,X))[T]}catch(y){return{address:{balance:0,transaction_count:0},utxo:[]}}}async function $L({address:T,chain:f,apiKey:X}){return(await E5({address:T,apiKey:X,chain:f}))?.address.balance||0}async function w5({chain:T,apiKey:f,txHash:X}){if(!X)throw new vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Q0(`${Zf(T)}/raw/transaction/${X}`,f))?.[X]?.raw_transaction||""}catch(y){return console.error("Failed to fetch raw transaction:",y),""}}async function KL({chain:T,address:f,apiKey:X,offset:y=0,limit:L=30}){return(await Q0(`${Zf(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=${L}&offset=${y}`,X)).map(({is_spent:B,script_hex:J,block_id:Q,transaction_hash:q,index:z,value:M,spending_signature_hex:_})=>({hash:q,index:z,is_confirmed:Q!==-1,is_spent:B,script_hex:J,txHex:_,value:M}))}function uL(T){return T.reduce((f,X)=>f+X.value,0)}function I5(T,f){let X=[...T].sort((y,L)=>L.value-y.value);if(f){let y=[],L=0;for(let G of X)if(y.push(G),L+=G.value,L>=f)break;return y}return X}async function P5({chain:T,address:f,apiKey:X,targetValue:y,accumulativeValue:L=0,offset:G=0,limit:x=30}){if(!f)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let Z=await KL({address:f,apiKey:X,chain:T,limit:x,offset:G,targetValue:y}),J=Z.length<x,Q=Z.filter(({is_spent:D})=>!D),q=uL(Q),z=L+q,M=y&&z>=y;if(J||M)return I5(Q,y);let _=await P5({accumulativeValue:z,address:f,apiKey:X,chain:T,limit:x,offset:G+x,targetValue:y}),U=[...Q,..._];return I5(U,y)}catch(Z){return console.error("Failed to fetch unspent UTXOs:",Z),[]}}async function bL({address:T,chain:f,apiKey:X,fetchTxHex:y=!0,targetValue:L}){let G=await P5({address:T,apiKey:X,chain:f,targetValue:L}),x=[];for(let{hash:Z,index:B,script_hex:J,value:Q}of G){let q;if(y)q=await w5({apiKey:X,chain:f,txHash:Z});x.push({address:T,hash:Z,index:B,txHex:q,value:Q,witnessUtxo:{script:Buffer.from(J,"hex"),value:Q}})}return x}function nL(T){let f=k5.get("apiKeys").blockchair||"";return O5({condition:!f,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(X)=>AL({chain:T,txHash:X}),getAddressData:(X)=>E5({address:X,apiKey:f,chain:T}),getBalance:(X)=>$L({address:X,apiKey:f,chain:T}),getRawTx:(X)=>w5({apiKey:f,chain:T,txHash:X}),getSuggestedTxFee:()=>VL(T),getUtxos:(X)=>bL({...X,apiKey:f,chain:T})}}function jL(T){return T}function s(T){let f=k5.get("apis")[T];if(f)return O5({condition:!0,id:"custom_utxo_api_warning",warning:"Using custom UTXO API. Be sure to implement all methods to avoid issues."}),f;return nL(T)}function qy(){return function(f){switch(f){case c.Bitcoin:return FL.bitcoin;case c.BitcoinCash:return ET.bitcoincash.main.toBitcoinJS();case c.Dash:return ET.dash.main.toBitcoinJS();case c.Litecoin:return ET.litecoin.main.toBitcoinJS();case c.Dogecoin:{let X={private:70615956,public:70617039},y=ET.dogecoin.test;return y.versions.bip32=X,ET.dogecoin.main.toBitcoinJS()}case c.Zcash:return lL.zcash;default:throw new vy("toolbox_utxo_not_supported",{chain:f})}}}var l5=E(()=>{RT()});import{SwapKitError as F5}from"@swapkit/helpers";import A5 from"bs58check";import S5 from"cashaddrjs";function z0(T){try{return Bf(T),!0}catch(f){return!1}}function _0(T){return Bf(T)?.network}function LT(T){let f=Bf(T);if(f?.format==="legacy")return T;return oL(f)}function wT(T){let f=Bf(T);return mL(f)}function Bf(T){try{let f=hL(T);if(f)return f}catch(f){}try{let f=pL(T);if(f)return f}catch(f){}throw new F5("toolbox_utxo_invalid_address",{address:T})}function hL(T){try{let f=A5.decode(T);if(f.length!==21)throw new F5("toolbox_utxo_invalid_address",{address:T});let X=f[0],y=Array.prototype.slice.call(f,1);switch(X){case $.legacy.mainnet.p2pkh:return{format:"legacy",hash:y,network:"mainnet",type:"p2pkh"};case $.legacy.mainnet.p2sh:return{format:"legacy",hash:y,network:"mainnet",type:"p2sh"};case $.legacy.testnet.p2pkh:return{format:"legacy",hash:y,network:"testnet",type:"p2pkh"};case $.legacy.testnet.p2sh:return{format:"legacy",hash:y,network:"testnet",type:"p2sh"};case $.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2pkh"};case $.bitpay.mainnet.p2sh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2sh"};default:return}}catch(f){return}}function pL(T){if(T.indexOf(":")!==-1)try{return v5(T)}catch(f){}else{let f=["bitcoincash","bchtest","bchreg"];for(let X of f)try{return v5(`${X}:${T}`)}catch(y){}}return}function v5(T){try{let{hash:f,prefix:X,type:y}=S5.decode(T);return{format:"cashaddr",hash:Array.prototype.slice.call(f,0),network:X==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch(f){return}}function oL(T){let f=$.legacy[T.network][T.type],X=Buffer.alloc(1+T.hash.length);return X[0]=f,X.set(T.hash,1),A5.encode(X)}function mL(T){let f=T.network==="mainnet"?"bitcoincash":"bchtest",X=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return S5.encode(f,X,y)}var q0,$;var V5=E(()=>{((X)=>{X.Mainnet="mainnet";X.Testnet="testnet"})(q0||={});$={["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 cL}from"@swapkit/helpers";import{opcodes as tL,script as gL}from"bitcoinjs-lib";function zy(T){let f=Buffer.from(T,"utf8");return gL.compile([tL.OP_RETURN,f])}var iL=1000,Qf=10,$5=10,dL=41,rL=107,qf,Jf,PT,lT=(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 cL("toolbox_utxo_invalid_address",{address:T})},XT=({inputs:T,outputs:f,feeRate:X})=>{let y=T[0]&&"address"in T[0]&&T[0].address?lT(T[0].address):"P2PKH",L=T.filter((x)=>x.value>=Jf["type"in x?x.type:"P2PKH"]*Math.ceil(X)).reduce((x,Z)=>x+Fy(Z),0),G=f?.reduce((x,Z)=>x+vT(Z),0)||PT[y];return Qf+L+G},Fy=(T)=>{if("type"in T)return Jf[T.type];if("address"in T&&T.address)return Jf[lT(T.address)];return dL+rL},vT=(T,f)=>{if(T?.script)return $5+T.script.length+(T.script.length>=74?2:1);if(f)return PT[f];return PT.P2PKH};var M0=E(()=>{((X)=>{X.P2PKH="P2PKH";X.P2WPKH="P2WPKH"})(qf||={});Jf={["P2PKH"]:148,["P2WPKH"]:68},PT={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as hy,SwapKitError as aL}from"@swapkit/helpers";function zf(T){switch(T){case hy.Bitcoin:case hy.BitcoinCash:return 550;case hy.Dash:case hy.Litecoin:return 5500;case hy.Dogecoin:return 1e5;case hy.Zcash:return 546;default:throw new aL("toolbox_utxo_not_supported",{chain:T})}}function _y({inputs:T,outputs:f,feeRate:X=1,chain:y=hy.Bitcoin,changeAddress:L=""}){let G=Math.ceil(X),x=T[0]&&"address"in T[0]&&T[0].address?lT(T[0].address):"P2PKH",Z=T.filter((M)=>Fy(M)*G<=M.value),B=Qf+f.reduce((M,_)=>M+vT(_,x),0),J=f.reduce((M,_)=>M+_.value,0),Q=B*G,q=0,z=[];for(let M of Z){let _=Fy(M),U=G*_;Q+=U,q+=M.value,z.push(M);let D=Q+J;if(q<D)continue;let l=q-D,F=G*vT({address:"",value:0},x);if(l>F){let n=F+Q,K=q-(J+n);if(K>Math.max(Fy({})*G,zf(y)))return{fee:n,inputs:z,outputs:f.concat({address:L,value:K})}}return{fee:Q,inputs:z,outputs:f}}return{fee:G*XT({feeRate:G,inputs:T,outputs:f})}}var K5=E(()=>{M0()});var xT=E(()=>{l5();V5();K5();M0()});import{networks as sL,address as eL}from"@bitgo/utxo-lib";import y8 from"bs58check";function py(T){return T.replace(/(bchtest:|bitcoincash:)/,"")}function Ay(T){let f=py(T);return z0(f)&&_0(f)==="mainnet"}function ZT(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=sL.zcash;try{return eL.toOutputScript(T,f),!0}catch{let X=y8.decode(T);if(X.length<21)return!1;let y=X[0];return y===f.pubKeyHash||y===f.scriptHash}}catch{return!1}}var FT=E(()=>{xT()});import Y0 from"@bitcoinerlab/secp256k1";import{ECPair as T8,HDNode as f8}from"@psf/bitcoincashjs-lib";import{HDKey as G8}from"@scure/bip32";import{mnemonicToSeedSync as u5}from"@scure/bip39";import{AssetValue as N0,applyFeeMultiplier as b5,Chain as e,DerivationPath as L8,derivationPathToString as X8,FeeOption as Cy,NetworkDerivationPath as x8,SwapKitError as Dy,SwapKitNumber as Z8,updateDerivationPath as B8}from"@swapkit/helpers";import{address as J8,initEccLib as j5,Psbt as Q8,payments as n5}from"bitcoinjs-lib";import{ECPairFactory as q8}from"ecpair";function h5({inputs:T,outputs:f,chain:X,psbt:y,sender:L,compiledMemo:G}){for(let x of T){let Z=!!x.witnessUtxo&&!AT.includes(X)&&{witnessUtxo:x.witnessUtxo},B=AT.includes(X)&&{nonWitnessUtxo:x.txHex?Buffer.from(x.txHex,"hex"):void 0};y.addInput({hash:x.hash,index:x.index,...Z,...B})}for(let x of f){let Z="address"in x&&x.address?x.address:L,B=x.script;if(B&&!G)continue;let J=B?{script:G,value:0}:{address:Z,value:x.value};j5(Y0),y.addOutput(J)}return{inputs:T,psbt:y}}async function p5({assetValue:T,recipient:f,memo:X,feeRate:y,sender:L,fetchTxHex:G=!1}){let x=T.chain,Z=X?await zy(X):null,B=await c5({assetValue:T,fetchTxHex:G,memo:X,recipient:f,sender:L}),{inputs:J,outputs:Q}=_y({...B,chain:x,feeRate:y});if(!(J&&Q))throw new Dy("toolbox_utxo_insufficient_balance",{assetValue:T,sender:L});let q=await qy(),z=new Q8({network:q(x)});if(x===e.Dogecoin)z.setMaximumFeeRate(650000000);let{psbt:M,inputs:_}=await h5({chain:x,compiledMemo:Z,inputs:J,outputs:Q,psbt:z,sender:L});return{inputs:_,psbt:M,utxos:B.inputs}}async function o5(){let T=await qy();return function({address:X,chain:y}){if(y===e.BitcoinCash)return Ay(X);if(y===e.Zcash)return ZT(X);try{return j5(Y0),J8.toOutputScript(X,T(y)),!0}catch(L){return!1}}}async function z8({chain:T,phrase:f,derivationPath:X}){let y=(await ST(T))({derivationPath:X,phrase:f});async function L(x){return await x.signAllInputs(y),x}function G(){return U0(T)(y)}return{getAddress:G,signTransaction:L}}async function oy({chain:T,...f}){let X="phrase"in f?f.phrase:void 0,y="index"in f?f.index||0:0,L=X8("derivationPath"in f&&f.derivationPath?f.derivationPath:B8(x8[T],{index:y})),G=X?await z8({chain:T,derivationPath:L,phrase:X}):("signer"in f)?f.signer:void 0;function x(){return Promise.resolve(G?.getAddress())}let Z=await o5(),B=await ST(T);return{accumulative:_y,broadcastTx:(J)=>s(T).broadcastTx(J),calculateTxSize:XT,createKeysForPath:B,createTransaction:p5,estimateMaxSendableAmount:_8(T),estimateTransactionFee:M8(T),getAddress:x,getAddressFromKeys:U0(T),getBalance:iy(T),getFeeRates:()=>VT(T),getInputsOutputsFee:m5,getPrivateKeyFromMnemonic:(J)=>{return B(J).toWIF()},transfer:N8(G),validateAddress:(J)=>Z({address:J,chain:T})}}async function m5({assetValue:T,feeOptionKey:f=Cy.Fast,feeRate:X,memo:y,sender:L,recipient:G}){let x=T.chain,Z=await c5({assetValue:T,memo:y,recipient:G,sender:L}),B=X?Math.floor(X):(await VT(x))[f];return _y({...Z,chain:x,feeRate:B})}function _8(T){return async function({from:X,memo:y,feeRate:L,feeOptionKey:G=Cy.Fast,recipients:x=1}){let Z=await s(T).getAddressData(X),B=L?Math.ceil(L):(await VT(T))[G],J=Z?.utxo.map((_)=>({..._,hash:"",type:"P2PKH"})).filter((_)=>_.value>Math.max(zf(T),Fy(_)*B));if(!J?.length)return N0.from({chain:T});let Q=N0.from({chain:T,value:J.reduce((_,U)=>_+U.value,0)}),q=typeof x==="number"?Array.from({length:x},()=>({address:X,value:0})):x;if(y){let _=await zy(y);q.push({address:X,script:_,value:0})}let M=XT({feeRate:B,inputs:J,outputs:q})*B;return Q.sub(M)}}function M8(T){return async(f)=>{let X=await m5(f);return N0.from({chain:T,value:Z8.fromBigInt(BigInt(X.fee),8).getValue("string")})}}async function ST(T){let f=await qy();switch(T){case e.BitcoinCash:return function({phrase:y,derivationPath:L=`${L8.BCH}/0`,wif:G}){let x=f(T);if(G)return T8.fromWIF(G,x);if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return f8.fromSeedBuffer(Buffer.from(u5(y)),x).derivePath(L).keyPair};case e.Bitcoin:case e.Dogecoin:case e.Litecoin:case e.Zcash:case e.Dash:return function({phrase:y,wif:L,derivationPath:G}){if(!(L||y))throw new Dy("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let x=q8(Y0),Z=f(T);if(L)return x.fromWIF(L,Z);let B=u5(y),J=G8.fromMasterSeed(B,Z).derive(G);if(!J.privateKey)throw new Dy("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return x.fromPrivateKey(Buffer.from(J.privateKey),{network:Z})};default:throw new Dy("toolbox_utxo_not_supported",{chain:T})}}function U0(T){let f=qy();return function(y){if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let L=AT.includes(T)?n5.p2pkh:n5.p2wpkh,{address:G}=L({network:f(T),pubkey:y.publicKey});if(!G)throw new Dy("toolbox_utxo_invalid_address",{error:"Address not defined"});return G}}function N8(T){return async function({memo:X,recipient:y,feeOptionKey:L,feeRate:G,assetValue:x}){let Z=await T?.getAddress(),B=x.chain;if(!(T&&Z))throw new Dy("toolbox_utxo_no_signer");if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let J=G||(await VT(B))[L||Cy.Fast],{psbt:Q}=await p5({assetValue:x,feeRate:J,memo:X,recipient:y,sender:Z}),q=await T.signTransaction(Q);return q.finalizeAllInputs(),s(B).broadcastTx(q.extractTransaction().toHex())}}async function VT(T){let f=await s(T).getSuggestedTxFee();return{[Cy.Average]:f,[Cy.Fast]:b5(f,Cy.Fast),[Cy.Fastest]:b5(f,Cy.Fastest)}}async function c5({assetValue:T,recipient:f,memo:X,sender:y,fetchTxHex:L=!1}){let G=T.chain,x=(await VT(G))[Cy.Fastest],Z=L||AT.includes(G),B=T.getBaseValue("number"),J=Math.ceil(B+x*5000);return{inputs:await s(G).getUtxos({address:y,fetchTxHex:Z,targetValue:J}),outputs:[{address:f,value:B},...X?[{address:"",script:await zy(X),value:0}]:[]]}}var AT;var $T=E(()=>{RT();xT();FT();AT=[e.Dash,e.Dogecoin,e.Zcash,e.BitcoinCash]});import{address as Y8,Transaction as U8,TransactionBuilder as H8}from"@psf/bitcoincashjs-lib";import{Chain as W8,derivationPathToString as R8,FeeOption as C8,NetworkDerivationPath as D8,SwapKitError as BT,updateDerivationPath as I8}from"@swapkit/helpers";import{Psbt as k8}from"bitcoinjs-lib";function my(T){return py(wT(T))}function O8(T){function f({builder:y,utxos:L}){return L.forEach((G,x)=>{y.sign(x,T,void 0,65,G.witnessUtxo?.value)}),y.build()}return{getAddress:()=>{let y=T.getAddress(0);return Promise.resolve(my(y))},signTransaction:f}}async function H0(T){let f="phrase"in T?T.phrase:void 0,X="index"in T?T.index||0:0,y=R8("derivationPath"in T&&T.derivationPath?T.derivationPath:I8(D8[xy],{index:X})),L=f?(await ST(xy))({derivationPath:y,phrase:f}):void 0,G=L?O8(L):("signer"in T)?T.signer:void 0;function x(){return Promise.resolve(G?.getAddress())}let{getBalance:Z,getFeeRates:B,broadcastTx:J,...Q}=await oy({chain:xy});function q(z,M=!0){return Z(py(wT(z)))}return{...Q,broadcastTx:J,buildTx:w8,createTransaction:t5,getAddress:x,getAddressFromKeys:P8,getBalance:q,getFeeRates:B,stripPrefix:py,stripToCashAddress:my,transfer:E8({broadcastTx:J,getFeeRates:B,signer:G}),validateAddress:Ay}}async function t5({assetValue:T,recipient:f,memo:X,feeRate:y,sender:L}){if(!Ay(f))throw new BT("toolbox_utxo_invalid_address",{address:f});let G=Math.ceil(T.getBaseValue("number")+y*7500),x=await s(xy).getUtxos({address:my(L),fetchTxHex:!0,targetValue:G}),Z=X?await zy(X):null,B=[];B.push({address:f,value:T.getBaseValue("number")});let{inputs:J,outputs:Q}=_y({chain:xy,feeRate:y,inputs:x,outputs:B});if(!(J&&Q))throw new BT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:L});let q=await qy(),z=new H8(q(xy));await Promise.all(J.map(async(M)=>{let _=await s(xy).getRawTx(M.hash);z.addInput(U8.fromBuffer(Buffer.from(_,"hex")),M.index)}));for(let M of Q){let _="address"in M&&M.address?M.address:LT(L),U=await qy(),D=Y8.toOutputScript(LT(_),U(xy));z.addOutput(D,M.value)}if(Z)z.addOutput(Z,0);return{builder:z,utxos:J}}function E8({broadcastTx:T,getFeeRates:f,signer:X}){return async function({recipient:L,assetValue:G,feeOptionKey:x=C8.Fast,...Z}){let B=await X?.getAddress();if(!(X&&B))throw new BT("toolbox_utxo_no_signer");if(!L)throw new BT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let J=Z.feeRate||(await f())[x],{builder:Q,utxos:q}=await t5({...Z,assetValue:G,feeRate:J,recipient:L,sender:B}),M=(await X.signTransaction({builder:Q,utxos:q})).toHex();return T(M)}}async function w8({assetValue:T,recipient:f,memo:X,feeRate:y,sender:L,setSigHashType:G}){let x=wT(f);if(!Ay(x))throw new BT("toolbox_utxo_invalid_address",{address:x});let Z=Math.ceil(T.getBaseValue("number")+y*7500),B=await s(xy).getUtxos({address:my(L),fetchTxHex:!1,targetValue:Z}),J=Number(y.toFixed(0)),Q=X?await zy(X):null,q=[];if(q.push({address:LT(f),value:T.getBaseValue("number")}),Q)q.push({script:Q,value:0});let{inputs:z,outputs:M}=_y({chain:xy,feeRate:J,inputs:B,outputs:q});if(!(z&&M))throw new BT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:L});let _=await qy(),U=new k8({network:_(xy)});for(let{hash:D,index:l,witnessUtxo:F}of z)U.addInput({hash:D,index:l,sighashType:G?65:void 0,witnessUtxo:F});for(let D of M){let l="address"in D&&D.address?D.address:LT(L),F=D.script?Q?{script:Q,value:0}:void 0:{address:l,value:D.value};if(F)U.addOutput(F)}return{inputs:z,psbt:U,utxos:B}}function P8(T){let f=T.getAddress(0);return my(f)}var xy;var _f=E(()=>{xT();$T();FT();xy=W8.BitcoinCash});import{bitgo as l8,crypto as v8,ECPair as i5,networks as F8,address as A8}from"@bitgo/utxo-lib";import{HDKey as d5}from"@scure/bip32";import{mnemonicToSeedSync as r5}from"@scure/bip39";import{Chain as Mf,derivationPathToString as S8,FeeOption as V8,NetworkDerivationPath as $8,SKConfig as K8,SwapKitError as Nf,updateDerivationPath as u8}from"@swapkit/helpers";import b8 from"bs58check";import{match as n8,P as W0}from"ts-pattern";function a5(){return F8.zcash}function s5(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
+ `,pubKeyHash:28,scriptHash:28,wif:128}}function j8({phrase:T,derivationPath:f}){let X=r5(T),L=d5.fromMasterSeed(X).derive(f);if(!L.privateKey)throw new Nf("toolbox_utxo_invalid_params");let G=s5(),x=i5.fromPrivateKey(Buffer.from(L.privateKey),{network:G}),Z=v8.hash160(x.publicKey),{isStagenet:B}=K8.get("envs"),J=B?Buffer.from([29,37]):Buffer.from([28,184]),Q=Buffer.concat([J,Z]),q=b8.encode(Q);return{getAddress:()=>Promise.resolve(q),signTransaction:(z)=>{let M=z.signAllInputs(x);return Promise.resolve(M)}}}function h8({inputs:T,outputs:f,psbt:X,sender:y,compiledMemo:L}){for(let G of T){let x=!!G.witnessUtxo&&{witnessUtxo:{...G.witnessUtxo,value:BigInt(G.value)}},Z=!G.witnessUtxo&&{nonWitnessUtxo:G.txHex?Buffer.from(G.txHex,"hex"):void 0};X.addInput({hash:G.hash,index:G.index,...x,...Z})}for(let G of f){let x="address"in G&&G.address?G.address:y,Z=G.script;if(Z&&!L)continue;let B=Z?{script:L,value:0n}:{script:A8.toOutputScript(x,a5()),value:BigInt(G.value)};X.addOutput(B)}return{inputs:T,psbt:X}}async function g5(T){let{assetValue:f,recipient:X,memo:y,feeRate:L,sender:G,fetchTxHex:x}=T,Z=y?zy(y):null,B=await s(Mf.Zcash).getUtxos({address:G,fetchTxHex:x!==!1}),J=[{address:X,value:Number(f.getBaseValue("string"))},...Z?[{script:Z,value:0}]:[]],{inputs:Q,outputs:q}=_y({chain:Mf.Zcash,changeAddress:G,feeRate:L,inputs:B,outputs:J});if(!(Q&&q))throw new Nf("toolbox_utxo_insufficient_balance",{assetValue:f,sender:G});let z=l8.createPsbtForNetwork({network:a5()},{version:455}),_=3268858036,U=Buffer.concat([Buffer.of(252),Buffer.of(5),Buffer.from("BITGO"),Buffer.of(0)]),D=Buffer.allocUnsafe(4);D.writeUInt32LE(_>>>0,0),z.addUnknownKeyValToGlobal({key:U,value:D});let{psbt:l,inputs:F}=await h8({compiledMemo:Z,inputs:Q,outputs:q,psbt:z,sender:G});return{inputs:F,outputs:q,psbt:l}}async function R0(T){let f=await n8(T).with({signer:W0.not(W0.nullish)},({signer:x})=>Promise.resolve(x)).with({phrase:W0.string},({phrase:x,derivationPath:Z,index:B=0})=>{let J=Z||$8[Mf.Zcash]||[44,133,0,0,0],Q=u8(J,{index:B}),q=S8(Q);return j8({derivationPath:q,phrase:x})}).otherwise(()=>Promise.resolve(void 0)),X=await oy({chain:Mf.Zcash,signer:f});async function y({recipient:x,assetValue:Z,feeOptionKey:B=V8.Fast,...J}){let Q=await f?.getAddress();if(!(f&&Q))throw new Nf("toolbox_utxo_no_signer");let q=J.feeRate||(await X.getFeeRates())[B],{psbt:z}=await g5({...J,assetValue:Z,feeRate:q,recipient:x,sender:Q}),M=await f.signTransaction(z);return M.finalizeAllInputs(),X.broadcastTx(M.extractTransaction().toHex())}function L({phrase:x,derivationPath:Z="m/44'/133'/0'/0/0"}){let B=r5(x),Q=d5.fromMasterSeed(B).derive(Z);if(!Q.privateKey)throw new Nf("toolbox_utxo_invalid_params");let q=s5();return i5.fromPrivateKey(Buffer.from(Q.privateKey),{network:q})}function G({phrase:x,derivationPath:Z="m/44'/133'/0'/0/0"}){return L({derivationPath:Z,phrase:x}).toWIF()}return{...X,createKeysForPath:L,createTransaction:g5,getPrivateKeyFromMnemonic:G,transfer:y,validateAddress:ZT}}var C0=E(()=>{xT();$T();FT()});import{Chain as JT,SwapKitError as p8}from"@swapkit/helpers";async function o8(T,f){switch(T){case JT.BitcoinCash:return await H0(f||{});case JT.Zcash:return await R0(f);case JT.Bitcoin:case JT.Dogecoin:case JT.Litecoin:case JT.Dash:return await oy({chain:T,...f});default:throw new p8("toolbox_utxo_not_supported",{chain:T})}}var e5=E(()=>{_f();$T();C0();_f();FT()});var D0={};Ly(D0,{validateZcashAddress:()=>ZT,toLegacyAddress:()=>LT,toCashAddress:()=>wT,stripToCashAddress:()=>my,stripPrefix:()=>py,nonSegwitChains:()=>AT,isValidAddress:()=>z0,getUtxoToolbox:()=>o8,getUtxoNetwork:()=>qy,getUtxoApi:()=>s,getUTXOAddressValidator:()=>o5,getScriptTypeForAddress:()=>lT,getOutputSize:()=>vT,getInputSize:()=>Fy,getDustThreshold:()=>zf,getCreateKeysForPath:()=>ST,detectAddressNetwork:()=>_0,createZcashToolbox:()=>R0,createUTXOToolbox:()=>oy,createCustomUtxoApi:()=>jL,createBCHToolbox:()=>H0,compileMemo:()=>zy,calculateTxSize:()=>XT,bchValidateAddress:()=>Ay,addressFromKeysGetter:()=>U0,addInputsAndOutputs:()=>h5,accumulative:()=>_y,UtxoNetwork:()=>q0,UTXOScriptType:()=>qf,TX_OVERHEAD:()=>Qf,OutputSizes:()=>PT,OP_RETURN_OVERHEAD:()=>$5,MIN_TX_FEE:()=>iL,InputSizes:()=>Jf});var I0=E(()=>{xT();e5();_f();$T();C0()});import{AssetValue as k0,Chain as ty,DerivationPath as m8,derivationPathToString as c8,getChainConfig as fG,getRPCUrl as t8,NetworkDerivationPath as g8,SwapKitError as gy,updateDerivationPath as i8}from"@swapkit/helpers";import{match as d8,P as yG}from"ts-pattern";async function r8(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 a8(T){let f=await cy(),{PublicKey:X}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),L=new X(T),G=[],x=await f.getBalance(L);if(x>0){let{baseDecimal:B}=fG(ty.Solana);G.push(k0.from({chain:ty.Solana,fromBaseDecimal:B,value:x}))}let Z=await f.getParsedTokenAccountsByOwner(L,{programId:y});for(let{account:B}of Z.value){let J=B.data.parsed.info,Q=J.mint,q=J.tokenAmount.amount;if(Number(q)===0)continue;let z=await r8(Q),M=z?.symbol||"UNKNOWN",_=z?.decimals||J.tokenAmount.decimals;G.push(k0.from({asset:`${ty.Solana}.${M}-${Q}`,fromBaseDecimal:_,value:q}))}return G}async function w0(){let{PublicKey:T}=await import("@solana/web3.js");return(f)=>{try{let X=new T(f);return T.isOnCurve(X.toBytes())}catch(X){return!1}}}async function s8(T){let f=T&&"index"in T?T.index||0:0,X=c8(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:i8(g8[ty.Solana],{index:f})),y=await d8(T).with({phrase:yG.string},({phrase:G})=>E0({derivationPath:X,phrase:G})).with({signer:yG.any},({signer:G})=>G).otherwise(()=>{return});function L(){return y?.publicKey?TG(y.publicKey):""}return{broadcastTransaction:O0(cy),createKeysForPath:E0,createTransaction:P0(cy),createTransactionFromInstructions:fX,estimateTransactionFee:e8(cy),getAddress:L,getAddressFromPubKey:TG,getAddressValidator:w0,getBalance:(G)=>{let x=G||L();if(!x)throw new gy("core_wallet_connection_not_found");return a8(x)},getConnection:cy,getPubkeyFromAddress:l0,signTransaction:LX(cy,y),transfer:GX(cy,y)}}function e8(T){return async({recipient:f,assetValue:X,memo:y,isProgramDerivedAddress:L,sender:G})=>{let x=await T(),B=(await P0(T)({assetValue:X,isProgramDerivedAddress:L,memo:y,recipient:f,sender:G})).compileMessage(),J=await x.getFeeForMessage(B);if(J.value===null)throw new gy("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:Q}=fG(ty.Solana);return k0.from({chain:ty.Solana,fromBaseDecimal:Q,value:J.value})}}async function cy(){let{Connection:T}=await import("@solana/web3.js"),f=await t8(ty.Solana);return new T(f,"confirmed")}function yX(T){return async({assetValue:f,recipient:X,sender:y,isProgramDerivedAddress:L})=>{let G=await T(),x=await l0(y);if(f.isGasAsset){let{Transaction:Z,SystemProgram:B,PublicKey:J}=await import("@solana/web3.js");return new Z().add(B.transfer({fromPubkey:x,lamports:f.getBaseValue("number"),toPubkey:new J(X)}))}if(f.address)return TX({amount:f.getBaseValue("number"),connection:G,decimals:f.decimal,from:x,isProgramDerivedAddress:L,recipient:X,tokenAddress:f.address});return}}async function TX({tokenAddress:T,recipient:f,from:X,connection:y,amount:L,decimals:G,isProgramDerivedAddress:x}){let{getAssociatedTokenAddress:Z,getAccount:B,createAssociatedTokenAccountInstruction:J,createTransferCheckedInstruction:Q}=await import("@solana/spl-token"),{Transaction:q,PublicKey:z}=await import("@solana/web3.js"),M=new q,_=new z(T),U=await Z(_,X),D=new z(f),l=await Z(_,D,x),F=!1;try{await B(y,l),F=!0}catch(n){}if(!F)M.add(J(X,l,D,_));return M.add(Q(U,_,l,X,L,G)),M}function P0(T){return async({recipient:f,assetValue:X,memo:y,isProgramDerivedAddress:L,sender:G})=>{let{createMemoInstruction:x}=await import("@solana/spl-memo"),Z=await l0(G),B=await w0();if(!(L||B(f)))throw new gy("core_transaction_invalid_recipient_address");let J=await T(),Q=await yX(T)({assetValue:X,isProgramDerivedAddress:L,recipient:f,sender:G});if(!Q)throw new gy("core_transaction_invalid_sender_address");if(y)Q.add(x(y));let q=await J.getLatestBlockhash();return Q.recentBlockhash=q.blockhash,Q.feePayer=Z,Q}}async function fX({instructions:T}){let{Transaction:f}=await import("@solana/web3.js"),X=new f().add(...T);if(!X)throw new gy("core_transaction_invalid_sender_address");return X}function GX(T,f){return async({recipient:X,assetValue:y,memo:L,isProgramDerivedAddress:G})=>{if(!f)throw new gy("core_transaction_invalid_sender_address");let x=f.publicKey?.toString()??(await f.connect()).publicKey.toString(),Z=await P0(T)({assetValue:y,isProgramDerivedAddress:G,memo:L,recipient:X,sender:x});if("signTransaction"in f){let B=await f.signTransaction(Z);return O0(T)(B)}return Z.sign(f),O0(T)(Z)}}function O0(T){return async(f)=>{return(await T()).sendRawTransaction(f.serialize())}}function LX(T,f){return async(X)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!f)throw new gy("toolbox_solana_no_signer");if(!(X instanceof y)){let G=await(await T()).getLatestBlockhash();X.recentBlockhash=G.blockhash,X.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(X);return await X.sign([f]),X}}async function E0({phrase:T,derivationPath:f=m8.SOL}){let{HDKey:X}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:y}=await import("@scure/bip39"),{Keypair:L}=await import("@solana/web3.js"),G=y(T),x=X.fromMasterSeed(G);return L.fromSeed(x.derive(f,!0).privateKey)}function TG(T){return T.toString()}async function l0(T){let{PublicKey:f}=await import("@solana/web3.js");return new f(T)}var GG=()=>{};var v0={};Ly(v0,{getSolanaToolbox:()=>s8,getSolanaAddressValidator:()=>w0,createKeysForPath:()=>E0});var F0=E(()=>{GG()});import{derivationPathToString as XX,SwapKitError as xX}from"@swapkit/helpers";import{KeyPairSigner as ZX}from"near-api-js";async function Yf(){let{validateAccountId:T}=await import("near-sdk-js");return(f)=>{try{return T(f)}catch{let X=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return f.length>=2&&f.length<=64&&X.test(f)}}}async function Uf(T){let{parseSeedPhrase:f}=await import("near-seed-phrase"),{KeyPair:X}=await import("near-api-js"),y=T.index||0,L=T.derivationPath?XX(T.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:G}=f(T.phrase,L),x=X.fromString(G);return XG(x)}async function A0(T){let{KeyPair:f}=await import("near-api-js/lib/utils"),X=f.fromString(T);return XG(X)}function XG(T){return new LG(T)}async function Hf(T,f){let y=(await T.query({account_id:f,finality:"final",request_type:"view_access_key_list"})).keys.find((Z)=>Z.access_key.permission==="FullAccess");if(!y)throw new xX("toolbox_near_invalid_address");let{utils:L}=await import("near-api-js"),G=L.PublicKey.fromString(y.public_key);return{nonce:y.access_key.nonce||0,publicKey:G}}var LG;var S0=E(()=>{LG=class LG extends ZX{#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 V0(T){return"recipient"in T&&"amount"in T&&!("contractId"in T)}function $0(T){return"contractId"in T&&"methodName"in T}function K0(T){return"actions"in T}function u0(T){return"newAccountId"in T}function b0(T){return"contractCode"in T}function n0(T){return"customEstimator"in T}function j0(T){let f=0;for(let X of T)switch(X.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 h0(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 BX(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function JX(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var t;var p0=E(()=>{t={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function Wf({account:T,contractId:f,viewMethods:X,changeMethods:y}){let{Contract:L}=await import("near-api-js");return new L(T,f,{changeMethods:y,useLocalViewExecution:!0,viewMethods:X})}async function o0({contractId:T,account:f}){let X=(await import("bn.js")).default,y=await Wf({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"]}),L=async(G)=>{if(!await y.storage_balance_of({account_id:G})){let B=(await y.storage_balance_bounds())?.min||"1250000000000000000000";await y.storage_deposit({account_id:G},new X("100000000000000"),new X(B))}};return{balanceOf:(G)=>y.ft_balance_of({account_id:G}),contract:y,ensureStorage:L,metadata:()=>y.ft_metadata(),storageBalanceOf:(G)=>y.storage_balance_of({account_id:G}),storageDeposit:(G,x)=>y.storage_deposit({account_id:G},new X("100000000000000"),new X(x||"1250000000000000000000")),totalSupply:()=>y.ft_total_supply(),transfer:async(G,x,Z)=>{return await L(G),y.ft_transfer({amount:x,memo:Z,receiver_id:G},new X("100000000000000"),new X("1"))},transferCall:async(G,x,Z,B)=>{return await L(G),y.ft_transfer_call({amount:x,memo:B,msg:Z,receiver_id:G},new X("100000000000000"),new X("1"))}}}import{AssetValue as xG,Chain as QT,getChainConfig as ZG,getRPCUrl as QX,SwapKitError as yy}from"@swapkit/helpers";async function qX(T){let{P:f,match:X}=await import("ts-pattern"),{providers:y}=await import("near-api-js"),L=await X(T).with({phrase:f.string},async(N)=>{return await Uf(N)}).with({signer:f.any},({signer:N})=>N).otherwise(()=>{return}),G=await QX(QT.Near),x=new y.JsonRpcProvider({url:G});async function Z(N){let{Account:Y}=await import("near-api-js"),I=N||await B();return new Y(I,x,L)}async function B(){if(!L)throw new yy("toolbox_near_no_signer");return await L.getAddress()}async function J(N){if(!L)throw new yy("toolbox_near_no_signer");let Y=await Q({...N,sender:await B()});return U(await _(Y))}async function Q(N){let{recipient:Y,assetValue:I,memo:O,attachedDeposit:w,sender:v,functionCall:V}=N,u=await Yf();if(!u(Y))throw new yy("toolbox_near_invalid_address",{recipient:Y});if(!u(v))throw new yy("toolbox_near_invalid_address",{signerId:v});if(V)return z({...V,sender:v});if(!I.isGasAsset){let $y=I.address;if(!$y)throw new yy("toolbox_near_missing_contract_address");return z({args:{amount:I.getBaseValue("string"),memo:O||null,receiver_id:Y},attachedDeposit:w||"1",contractId:$y,gas:"250000000000000",methodName:"ft_transfer",sender:v})}let{publicKey:S,nonce:Ty}=await Hf(x,v),fy=I.getBaseValue("bigint"),{transactions:i,utils:Ny}=await import("near-api-js"),Vy=[i.transfer(fy)];if(O&&w)Vy.push(i.functionCall("memo",{memo:O},BigInt("250000000000000"),BigInt(w)));let uT=await x.block({finality:"final"}),Rf=Ny.serialize.base_decode(uT.header.hash);return i.createTransaction(v,S,Y,Ty+1,Vy,Rf)}async function q(N){let{SCHEMA:Y}=await import("near-api-js/lib/transaction"),{utils:I}=await import("near-api-js"),O=I.serialize.serialize(Y.Transaction,N);return Buffer.from(O).toString("base64")}async function z(N){let{sender:Y}=N,{publicKey:I,nonce:O}=await Hf(x,Y),{transactions:w,utils:v}=await import("near-api-js"),V=await x.block({finality:"final"}),u=v.serialize.base_decode(V.header.hash),S=[w.functionCall(N.methodName,Buffer.from(JSON.stringify(N.args)),BigInt(N.gas),BigInt(N.attachedDeposit))];return w.createTransaction(Y,I,N.contractId,O+1,S,u)}async function M(N){let{transactions:Y}=await import("near-api-js");return Y.functionCall(N.methodName,Buffer.from(JSON.stringify(N.args)),BigInt(N.gas),BigInt(N.attachedDeposit))}async function _(N){if(!L)throw new yy("toolbox_near_no_signer");let[Y,I]=await L.signTransaction(N);return I}async function U(N){return(await x.sendTransaction(N)).transaction.hash}async function D(N){if("assetValue"in N){let w=BigInt("115123062500")+BigInt("108059500000"),v=await l(),V=w*BigInt(v.toString()),{baseDecimal:u}=ZG(QT.Near);return xG.from({chain:QT.Near,fromBaseDecimal:u,value:V.toString()})}let Y=L?await Z():void 0;return a(N,Y)}async function l(){try{return await x.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function F(N,Y,I){if(!L)throw new yy("toolbox_near_no_signer");let O=await Z(),{utils:w}=await import("near-api-js"),v=w.format.parseNearAmount(I)||"0";return(await O.createAccount(N,w.PublicKey.fromString(Y),BigInt(v))).transaction.hash}async function n(N){try{if(!L)throw new yy("toolbox_near_no_signer");let{transactions:Y}=await import("near-api-js"),{contractId:I,methodName:O,args:w,deposit:v}=N,V=await Z(),u=await a({args:w||{},contractId:I,methodName:O}),S=Y.functionCall(O,w||{},u.getBaseValue("bigint"),BigInt(v||"1"));return(await V.signAndSendTransaction({actions:[S],receiverId:I})).transaction_outcome.id}catch(Y){throw new yy("toolbox_near_transfer_failed",{error:Y})}}async function K(N){let Y=await Z();return Wf({account:Y,changeMethods:N.changeMethods,contractId:N.contractId,viewMethods:N.viewMethods})}async function g(N){if(!L)throw new yy("toolbox_near_no_signer");if(N.actions.length===0)throw new yy("toolbox_near_empty_batch");return(await(await Z()).signAndSendTransaction({actions:N.actions,receiverId:N.receiverId})).transaction.hash}async function m(N){let Y=await Z();return o0({account:Y,contractId:N})}async function a(N,Y){let{baseDecimal:I}=ZG(QT.Near),O=await X(N).when(V0,()=>t.SIMPLE_TRANSFER).when($0,(V)=>h0(V.methodName)).when(K0,(V)=>j0(V.actions)).when(u0,()=>t.ACCOUNT_CREATION).when(b0,()=>t.CONTRACT_DEPLOYMENT).when(n0,(V)=>{if(!Y)throw new yy("toolbox_near_no_account");return V.customEstimator(Y)}).otherwise(()=>{throw new yy("toolbox_near_invalid_gas_params")}),v=BigInt(O)*BigInt(1000000000000);return xG.from({chain:QT.Near,fromBaseDecimal:I,value:v})}async function KT(){try{return(await x.gasPrice(null)).gas_price||"100000000"}catch(N){return"100000000"}}return{broadcastTransaction:U,callFunction:n,createAction:M,createContract:K,createContractFunctionCall:z,createSubAccount:F,createTransaction:Q,estimateGas:a,estimateTransactionFee:D,executeBatchTransaction:g,getAddress:B,getBalance:iy(QT.Near),getGasPrice:KT,getPublicKey:async()=>L?(await L.getPublicKey()).toString():"",getSignerFromPhrase:(N)=>Uf(N),getSignerFromPrivateKey:A0,nep141:m,provider:x,serializeTransaction:q,signTransaction:_,transfer:J,validateAddress:await Yf()}}var m0=E(()=>{RT();S0();p0()});var BG=E(()=>{m0()});var c0={};Ly(c0,{tgasToGas:()=>BX,isSimpleTransfer:()=>V0,isCustomEstimator:()=>n0,isContractDeployment:()=>b0,isContractCall:()=>$0,isBatchTransaction:()=>K0,isAccountCreation:()=>u0,getValidateNearAddress:()=>Yf,getNearToolbox:()=>qX,getNearSignerFromPrivateKey:()=>A0,getNearSignerFromPhrase:()=>Uf,getFullAccessPublicKey:()=>Hf,getContractMethodGas:()=>h0,gasToTGas:()=>JX,estimateBatchGas:()=>j0,createNearContract:()=>Wf,createNEP141Token:()=>o0,GAS_COSTS:()=>t});var t0=E(()=>{S0();p0();m0();BG()});var d0={};Ly(d0,{rippleValidateAddress:()=>i0,hashes:()=>RX,getRippleToolbox:()=>WX});import{AssetValue as g0,Chain as Iy,getChainConfig as JG,getRPCUrl as zX,SwapKitError as Sy,SwapKitNumber as _X}from"@swapkit/helpers";import{Client as MX,isValidAddress as NX,Wallet as YX,xrpToDrops as UX}from"xrpl";import{hashes as RX}from"xrpl";function QG(T){let f=YX.fromMnemonic(T);return{getAddress:()=>Promise.resolve(f.address),signTransaction:(X)=>Promise.resolve(f.sign(X))}}function i0(T){return NX(T)}var HX,WX=async(T={})=>{let f="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?QG(T.phrase):void 0,X=await zX(Iy.Ripple);if(!X)throw new Sy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:Iy.Ripple}});let y=new MX(X);await y.connect();let L=()=>{if(!f)throw new Sy({errorKey:"toolbox_ripple_signer_not_found"});return f.getAddress()},G=async(z)=>{let M=z||await L(),{baseDecimal:_}=JG(Iy.Ripple);try{let D=(await y.request({account:M,command:"account_info"})).result.account_data.Balance;return[g0.from({chain:Iy.Ripple,fromBaseDecimal:_,value:D})]}catch(U){if(U.data.error_code===HX.ACCOUNT_NOT_FOUND)return[g0.from({chain:Iy.Ripple,value:0})];throw new Sy("toolbox_ripple_get_balance_error",{info:{address:M,error:U}})}},x=async()=>{let M=(await y.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:_}=JG(Iy.Ripple);return g0.from({chain:Iy.Ripple,fromBaseDecimal:_,value:_X.fromBigInt(BigInt(M),_)})},Z=async({assetValue:z,recipient:M,memo:_,sender:U})=>{if(!i0(M))throw new Sy({errorKey:"core_transaction_invalid_recipient_address"});let D=U||await L();if(!z.isGasAsset||z.chain!==Iy.Ripple)throw new Sy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:z.toString()}});let l={Account:D,Amount:UX(z.getValue("string")),Destination:M,TransactionType:"Payment"};if(_)l.Memos=[{Memo:{MemoData:Buffer.from(_).toString("hex")}}];return await y.autofill(l)},B=(z)=>{if(!f)throw new Sy({errorKey:"toolbox_ripple_signer_not_found"});return f.signTransaction(z)},J=async(z)=>{let _=(await y.submitAndWait(z)).result;if(_.validated)return _.hash;throw new Sy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Iy.Ripple}})};return{broadcastTransaction:J,createSigner:QG,createTransaction:Z,disconnect:()=>y.disconnect(),estimateTransactionFee:x,getAddress:L,getBalance:G,signer:f,signTransaction:B,transfer:async(z)=>{if(!f)throw new Sy({errorKey:"toolbox_ripple_signer_not_found"});let M=await f.getAddress(),_=await Z({...z,sender:M}),U=await B(_);return J(U.tx_blob)},validateAddress:i0}};var r0=E(()=>{HX={ACCOUNT_NOT_FOUND:19}});var a0={};Ly(a0,{radixValidateAddress:()=>zG,RadixToolbox:()=>PX});import{AssetValue as CX,Chain as qG,SKConfig as DX,SwapKitError as IX}from"@swapkit/helpers";function zG(T){return T.startsWith("account_rdx1")&&T.length===66}function kX({networkApi:T}){return async function(X){let y=await OX({address:X,networkApi:T});return EX({networkApi:T,resources:y})}}async function OX({address:T,networkApi:f}){let X=!0,y,L=[],G=await wX(f);while(X){let x={address:T,at_ledger_state:{state_version:G},cursor:y,limit_per_page:100},Z=await f.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:x});if(L=L.concat(Z.items),Z.next_cursor)y=Z.next_cursor;else X=!1}return L}async function EX({resources:T,networkApi:f}){let X=[],y=50,L=[];for(let G=0;G<T.length;G+=50)L.push(T.slice(G,G+50));for(let G of L){let x=G.map((J)=>J.resource_address),Z=await f.state.getEntityDetailsVaultAggregated(x),B=new Map;for(let J of Z)if(J.details!==void 0){let Q=J.metadata?.items.find((z)=>z.key==="symbol"),q=Q?.value.typed.type==="String"?Q.value.typed.value:"?";if(J.details.type==="FungibleResource")B.set(J.address,{decimals:J.details.divisibility,symbol:q})}for(let J of G)if(J.aggregation_level==="Global"){let Q=B.get(J.resource_address)||{decimals:0,symbol:"?"},q=CX.from({asset:Q.symbol!==qG.Radix?`${qG.Radix}.${Q.symbol}-${J.resource_address}`:"XRD.XRD",value:J.amount});X.push(q)}}return X}function wX(T){return T.status.getCurrent().then((f)=>f.ledger_state.state_version)}var PX=async({dappConfig:T}={})=>{let{RadixDappToolkit:f}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:X}=await import("@radixdlt/babylon-gateway-api-sdk"),y=T||DX.get("integrations").radix,L=f({...y,networkId:y.network?.networkId||1}),G=X.initialize(L.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:kX({networkApi:G}),networkApi:G,signAndBroadcast:()=>{throw new IX("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:zG}};var s0=()=>{};var qT;var e0=E(()=>{qT=[{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 lX}from"@swapkit/helpers";async function _G(T){let f=await import("tronweb"),X=f.TronWeb??f.default?.TronWeb;try{let y=await fetch(`${vX}/v1/accounts/${T}`);if(!y.ok)throw Error(`TronGrid API error: ${y.status} ${y.statusText}`);let L=await y.json();if(!(L.success&&L.data)||L.data.length===0)throw Error("Invalid response from TronGrid API");let G;try{G=X.address.toHex(T).toLowerCase()}catch{G=T.toLowerCase()}let x=L.data.find((Z)=>{return Z.address.toLowerCase()===G});if(!x)return;return{balance:x.balance,trc20:x.trc20||[]}}catch(y){throw new lX("toolbox_tron_trongrid_api_error",{address:T,message:y instanceof Error?y.message:"Unknown error"})}}var vX="https://api.trongrid.io";var MG=()=>{};import{AssetValue as ky,BaseDecimal as NG,Chain as My,derivationPathToString as HG,getRPCUrl as FX,NetworkDerivationPath as WG,SwapKitError as r,updateDerivationPath as RG,warnOnce as y1}from"@swapkit/helpers";import{match as AX,P as YG}from"ts-pattern";async function T1(){let T=await import("tronweb"),f=T.TronWeb??T.default?.TronWeb;return(X)=>{return f.isAddress(X)}}async function CG({phrase:T,derivationPath:f,index:X}){let y=f||HG(RG(WG[My.Tron],{index:X||0})),{HDKey:L}=await import("@scure/bip32"),{mnemonicToSeedSync:G}=await import("@scure/bip39"),x=G(T),B=L.fromMasterSeed(x).derive(y);if(!B.privateKey)throw new r("toolbox_tron_no_signer");return Buffer.from(B.privateKey).toString("hex")}async function uX({phrase:T,derivationPath:f,tronWeb:X}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),G=L(T),Z=y.fromMasterSeed(G).derive(f);if(!Z.privateKey)throw new r("toolbox_tron_no_signer");let B=Buffer.from(Z.privateKey).toString("hex");X.setPrivateKey(B);let J=X?.address.fromPrivateKey(B);return{getAddress:()=>Promise.resolve(typeof J==="string"?J:""),signTransaction:async(Q)=>{return await X.trx.sign(Q,B)}}}var SX=268,VX=13000,$X=345,UG="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",KX="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",DG=async(T={})=>{let f=await import("tronweb"),X=f.TronWeb??f.default?.TronWeb,y=await FX(My.Tron),L=void 0,G=new X({fullHost:y,headers:void 0}),x="index"in T?T.index||0:0,Z=HG("derivationPath"in T&&T.derivationPath?T.derivationPath:RG(WG[My.Tron],{index:x})),B=await AX(T).with({phrase:YG.string},async({phrase:N})=>uX({derivationPath:Z,phrase:N,tronWeb:G})).with({signer:YG.any},({signer:N})=>Promise.resolve(N)).otherwise(()=>Promise.resolve(void 0)),J=async()=>{if(!B)throw new r("toolbox_tron_no_signer");return await B.getAddress()},Q=()=>{return 1e8},q=async()=>{try{let N=await G.trx.getChainParameters(),Y={};for(let I of N)Y[I.key]=I.value;return{bandwidthFee:Y.getTransactionFee||1000,createAccountFee:Y.getCreateAccountFee||1e5,energyFee:Y.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},z=async(N)=>{try{let Y=await G.trx.getAccount(N);return Y&&Object.keys(Y).length>0}catch{return!1}},M=async(N)=>{try{let Y=await G.trx.getAccountResources(N);return{bandwidth:{free:Y.freeNetLimit-Y.freeNetUsed,total:Y.NetLimit||0,used:Y.NetUsed||0},energy:{total:Y.EnergyLimit||0,used:Y.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},_=async(N,Y)=>{try{let I=G.contract(qT,Y);if(!I.methods?.balanceOf)return 0n;let[O]=await I.methods.balanceOf(N).call();return O?typeof O==="bigint"?O:BigInt(O):0n}catch(I){return console.warn(`balanceOf() failed for ${Y}:`,I),0n}},U=async(N,Y)=>{try{G.setAddress(Y);let I=G.contract(qT,N),[O,w]=await Promise.all([I.symbol().call().catch(()=>"UNKNOWN"),I.decimals().call().catch(()=>"18")]);return{decimals:Number(w??18),symbol:O??"UNKNOWN"}}catch(I){return y1({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${N}: ${I instanceof Error?I.message:I}`}),null}},D=async(N,Y=!0)=>{let I=[ky.from({chain:My.Tron})];try{let O=await _G(N);if(O){let w=[];w.push(ky.from({chain:My.Tron,fromBaseDecimal:6,value:O.balance}));for(let v of O.trc20){let[V,u]=Object.entries(v)[0]||[];if(!(V&&u))continue;let S=await U(V,N);if(!S)continue;w.push(ky.from({asset:`TRON.${S.symbol}-${V}`,fromBaseDecimal:S.decimals,value:BigInt(u||0)}))}return w}return I}catch(O){y1({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${O instanceof Error?O.message:O}`});let w=[],v=await G.trx.getBalance(N);if(v&&Number(v)>0)w.push(ky.from({chain:My.Tron,fromBaseDecimal:6,value:v}));let V=await _(N,UG);if(V)w.push(ky.from({asset:`TRON.USDT-${UG}`,fromBaseDecimal:6,value:V}));return w}},l=async({recipient:N,assetValue:Y,memo:I})=>{if(!B)throw new r("toolbox_tron_no_signer");let O=await J();if(G.setAddress(O),Y.isGasAsset){let S=await G.transactionBuilder.sendTrx(N,Y.getBaseValue("number"),O);if(I){let i=await G.transactionBuilder.addUpdateData(S,I,"utf8"),Ny=await B.signTransaction(i),{txid:Vy}=await G.trx.sendRawTransaction(Ny);return Vy}let Ty=await B.signTransaction(S),{txid:fy}=await G.trx.sendRawTransaction(Ty);return fy}let v=await n({assetValue:Y,memo:I,recipient:N,sender:O}),V=await B.signTransaction(v),{txid:u}=await G.trx.sendRawTransaction(V);if(!u)throw new r("toolbox_tron_token_transfer_failed");return u},F=async({assetValue:N,recipient:Y,sender:I})=>{let O=N.isGasAsset;try{let w=I?I:B?await J():void 0;if(!w)return O?ky.from({chain:My.Tron,fromBaseDecimal:0,value:0.1}):ky.from({chain:My.Tron,fromBaseDecimal:0,value:15});let v=await q(),u=await z(Y)?0:v.createAccountFee,S=await M(w);if(O){let $y=SX,L1=S.bandwidth.free+(S.bandwidth.total-S.bandwidth.used),X1=0;if($y>L1)X1=($y-L1)*v.bandwidthFee;let OG=u+X1;return ky.from({chain:My.Tron,fromBaseDecimal:NG.TRON,value:OG})}let Ty=$X,fy=VX,i=S.bandwidth.free+(S.bandwidth.total-S.bandwidth.used),Ny=S.energy.total-S.energy.used,Vy=0;if(Ty>i)Vy=(Ty-i)*v.bandwidthFee;let uT=0;if(fy>Ny)uT=(fy-Ny)*v.energyFee;let Rf=u+Vy+uT;return ky.from({chain:My.Tron,fromBaseDecimal:NG.TRON,value:Rf})}catch(w){throw y1({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${w instanceof Error?w.message:w}`}),new r("toolbox_tron_fee_estimation_failed",{error:w})}},n=async(N)=>{let{recipient:Y,assetValue:I,memo:O,sender:w,expiration:v}=N;if(I.isGasAsset){let S=await G.transactionBuilder.sendTrx(Y,I.getBaseValue("number"),w);if(O)return G.transactionBuilder.addUpdateData(S,O,"utf8");if(v)G.transactionBuilder.extendExpiration(S,v);return S}G.setAddress(w);let u=I.address;if(!u)throw new r("toolbox_tron_invalid_token_identifier",{identifier:I.toString()});try{let Ty=[{type:"address",value:Y},{type:"uint256",value:I.getBaseValue("string")}],fy={callValue:0,feeLimit:Q()},i=await G.transactionBuilder.triggerSmartContract(u,"transfer(address,uint256)",fy,Ty,w);if(O)return G.transactionBuilder.addUpdateData(i.transaction,O,"utf8");if(v)G.transactionBuilder.extendExpiration(i.transaction,v);return i.transaction}catch(S){throw new r("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction. This might be due to TronWeb 6.0.3 bug. Use the transfer method directly instead.",originalError:S instanceof Error?S.message:String(S)})}},K=async(N)=>{if(!B)throw new r("toolbox_tron_no_signer");return await B.signTransaction(N)},g=async(N)=>{let{txid:Y}=await G.trx.sendRawTransaction(N);return Y},m=async({assetAddress:N,spenderAddress:Y,from:I})=>{try{let O=G.contract(qT,N);if(!O.methods?.allowance)throw new r("toolbox_tron_invalid_token_contract");let[w]=await O.methods.allowance(I,Y).call();return w?typeof w==="bigint"?w:BigInt(w):0n}catch(O){throw new r("toolbox_tron_allowance_check_failed",{error:O})}};return{approve:async({assetAddress:N,spenderAddress:Y,amount:I,from:O})=>{if(!B)throw new r("toolbox_tron_no_signer");let w=O||await J(),v=I!==void 0?BigInt(I).toString():KX,V="approve(address,uint256)",u=[{type:"address",value:Y},{type:"uint256",value:v}],Ty={callValue:0,feeLimit:Q()};try{let{transaction:fy}=await G.transactionBuilder.triggerSmartContract(N,V,Ty,u,w),i=await B.signTransaction(fy),{txid:Ny}=await G.trx.sendRawTransaction(i);if(!Ny)throw new r("toolbox_tron_approve_failed");return Ny}catch(fy){throw new r("toolbox_tron_approve_failed",{error:fy})}},broadcastTransaction:g,createTransaction:n,estimateTransactionFee:F,getAddress:J,getApprovedAmount:m,getBalance:D,isApproved:async({assetAddress:N,spenderAddress:Y,from:I,amount:O})=>{let w=await m({assetAddress:N,from:I,spenderAddress:Y});if(!O)return w>0n;let v=BigInt(O);return w>=v},signTransaction:K,transfer:l,tronWeb:G,validateAddress:await T1()}};var IG=E(()=>{e0();MG()});var f1={};Ly(f1,{trc20ABI:()=>qT,getTronPrivateKeyFromMnemonic:()=>CG,getTronAddressValidator:()=>T1,createTronToolbox:()=>DG});var G1=E(()=>{e0();IG()});import{AssetValue as bX,Chain as C,EVMChains as nX,FeeOption as jX,SwapKitError as hX,UTXOChains as pX}from"@swapkit/helpers";async function S4(){let{match:T}=await import("ts-pattern"),{cosmosValidateAddress:f}=await Promise.resolve().then(() => (mT(),oT)),{evmValidateAddress:X}=await Promise.resolve().then(() => (J5(),B5)),{substrateValidateAddress:y}=await Promise.resolve().then(() => (J0(),B0)),{getUTXOAddressValidator:L}=await Promise.resolve().then(() => (I0(),D0)),{getSolanaAddressValidator:G}=await Promise.resolve().then(() => (F0(),v0)),{getValidateNearAddress:x}=await Promise.resolve().then(() => (t0(),c0)),{rippleValidateAddress:Z}=await Promise.resolve().then(() => (r0(),d0)),{radixValidateAddress:B}=await Promise.resolve().then(() => (s0(),a0)),{getTronAddressValidator:J}=await Promise.resolve().then(() => (G1(),f1)),Q=await G(),q=await L(),z=await J(),M=await x();return function({address:U,chain:D}){return T(D).with(...nX,()=>X({address:U})).with(...pX,()=>q({address:U,chain:D})).with(C.Cosmos,C.Kujira,C.Noble,C.Maya,C.THORChain,()=>f({address:U,chain:D})).with(C.Chainflip,C.Polkadot,()=>y({address:U,chain:D})).with(C.Radix,()=>B(U)).with(C.Near,()=>M(U)).with(C.Ripple,()=>Z(U)).with(C.Solana,()=>Q(U)).with(C.Tron,()=>z(U)).otherwise(()=>!1)}}function V4(T){return async function(X){let{match:y}=await import("ts-pattern");return y(T).returnType().with(C.Arbitrum,C.Aurora,C.Avalanche,C.Base,C.Berachain,C.BinanceSmartChain,C.Ethereum,C.Gnosis,C.Optimism,C.Polygon,async(L)=>{let G=await kG(L),x=await G.createTransaction(X);return G.estimateTransactionFee({...x,chain:L,feeOption:X.feeOptionKey||jX.Fast})}).with(C.Bitcoin,C.BitcoinCash,C.Dogecoin,C.Dash,C.Litecoin,C.Polkadot,C.Solana,C.Ripple,C.Tron,C.Near,async(L)=>{return(await kG(L)).estimateTransactionFee(X)}).with(C.THORChain,C.Maya,C.Kujira,C.Noble,C.Cosmos,async()=>{let{estimateTransactionFee:L}=await Promise.resolve().then(() => (mT(),oT));return L(X)}).otherwise(async()=>bX.from({chain:T}))}}async function kG(T,f){let{match:X}=await import("ts-pattern");return X(T).returnType().with(C.Arbitrum,C.Aurora,C.Avalanche,C.Base,C.Berachain,C.BinanceSmartChain,C.Ethereum,C.Gnosis,C.Optimism,C.Polygon,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (T0(),X5));return await y(T,f)}).with(C.Litecoin,C.Dash,C.Dogecoin,C.BitcoinCash,C.Bitcoin,C.Zcash,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (I0(),D0));return await y(T,f)}).with(C.Cosmos,C.Kujira,C.Noble,C.Maya,C.THORChain,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (mT(),oT));return await y(T,f)}).with(C.Chainflip,C.Polkadot,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (J0(),B0));return await y(T,f)}).with(C.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (s0(),a0));return await y(f)}).with(C.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (r0(),d0));return await y(f)}).with(C.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (F0(),v0));return await y(f)}).with(C.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (G1(),f1));return await y(f)}).with(C.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (t0(),c0));return await y(f)}).otherwise(()=>{throw new hX("toolbox_not_supported",{chain:T})})}export{kG as getToolbox,V4 as getFeeEstimator,S4 as getAddressValidator};
3
3
 
4
- //# debugId=E3E62FA07A482B1A64756E2164756E21
4
+ //# debugId=57F4F5AD9CB430B764756E2164756E21
5
5
  //# sourceMappingURL=index.js.map