@swapkit/toolboxes 4.0.18 → 4.0.20

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