@swapkit/toolboxes 4.0.16 → 4.0.17

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