@swapkit/toolboxes 4.0.0-beta.67 → 4.0.0

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.
Files changed (49) hide show
  1. package/dist/src/cosmos/index.cjs +2 -2
  2. package/dist/src/cosmos/index.cjs.map +5 -5
  3. package/dist/src/cosmos/index.js +2 -2
  4. package/dist/src/cosmos/index.js.map +5 -5
  5. package/dist/src/evm/index.cjs +2 -2
  6. package/dist/src/evm/index.cjs.map +6 -6
  7. package/dist/src/evm/index.js +2 -2
  8. package/dist/src/evm/index.js.map +6 -6
  9. package/dist/src/index.cjs +3 -3
  10. package/dist/src/index.cjs.map +15 -15
  11. package/dist/src/index.js +3 -3
  12. package/dist/src/index.js.map +15 -15
  13. package/dist/src/near/index.cjs +2 -2
  14. package/dist/src/near/index.cjs.map +3 -3
  15. package/dist/src/near/index.js +2 -2
  16. package/dist/src/near/index.js.map +3 -3
  17. package/dist/src/ripple/index.cjs +2 -2
  18. package/dist/src/ripple/index.cjs.map +3 -3
  19. package/dist/src/ripple/index.js +2 -2
  20. package/dist/src/ripple/index.js.map +3 -3
  21. package/dist/src/solana/index.cjs +2 -2
  22. package/dist/src/solana/index.cjs.map +3 -3
  23. package/dist/src/solana/index.js +2 -2
  24. package/dist/src/solana/index.js.map +3 -3
  25. package/dist/src/substrate/index.cjs +2 -2
  26. package/dist/src/substrate/index.cjs.map +3 -3
  27. package/dist/src/substrate/index.js +2 -2
  28. package/dist/src/substrate/index.js.map +3 -3
  29. package/dist/src/tron/index.cjs +2 -2
  30. package/dist/src/tron/index.cjs.map +3 -3
  31. package/dist/src/tron/index.js +2 -2
  32. package/dist/src/tron/index.js.map +3 -3
  33. package/dist/src/utxo/index.cjs +2 -2
  34. package/dist/src/utxo/index.cjs.map +3 -3
  35. package/dist/src/utxo/index.js +3 -3
  36. package/dist/src/utxo/index.js.map +3 -3
  37. package/dist/types/cosmos/toolbox/cosmos.d.ts.map +1 -1
  38. package/dist/types/cosmos/toolbox/thorchain.d.ts.map +1 -1
  39. package/dist/types/cosmos/util.d.ts +2 -3
  40. package/dist/types/cosmos/util.d.ts.map +1 -1
  41. package/dist/types/evm/api.d.ts.map +1 -1
  42. package/dist/types/evm/helpers.d.ts.map +1 -1
  43. package/dist/types/evm/toolbox/evm.d.ts.map +1 -1
  44. package/dist/types/evm/toolbox/op.d.ts.map +1 -1
  45. package/dist/types/solana/toolbox.d.ts.map +1 -1
  46. package/dist/types/substrate/substrate.d.ts.map +1 -1
  47. package/dist/types/tron/toolbox.d.ts.map +1 -1
  48. package/dist/types/utxo/helpers/api.d.ts.map +1 -1
  49. package/package.json +3 -3
package/dist/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
- var A2=Object.create;var{getPrototypeOf:S2,defineProperty:E5,getOwnPropertyNames:b2}=Object;var u2=Object.prototype.hasOwnProperty;var U=(T,f,Z)=>{Z=T!=null?A2(S2(T)):{};let y=f||!T||!T.__esModule?E5(Z,"default",{value:T,enumerable:!0}):Z;for(let L of b2(T))if(!u2.call(y,L))E5(y,L,{get:()=>T[L],enumerable:!0});return y};var Jy=(T,f)=>{for(var Z in f)E5(T,Z,{get:f[Z],enumerable:!0,configurable:!0,set:(y)=>f[Z]=()=>y})};var E=(T,f)=>()=>(T&&(f=T(T=0)),f);var _=((T)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(T,{get:(f,Z)=>(typeof require!=="undefined"?require:f)[Z]}):T)(function(T){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+T+'" is not supported')});import{base64 as H1,bech32 as pT}from"@scure/base";import{SwapKitError as j2}from"@swapkit/helpers";import{fromByteArray as h2,toByteArray as n2}from"base64-js";function QT(T){return H1.encode(Uint8Array.from(pT.fromWords(pT.decode(T).words)))}function qT(T,f="thor"){return pT.encode(f,pT.toWords(H1.decode(T)))}function p2(T){return h2(T)}function m2(T){if(!T.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new j2("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return n2(T)}var v5=()=>{};import{AssetValue as P5,BaseDecimal as zy,Chain as F,ChainId as mT,SKConfig as Y1,SwapKitError as U1}from"@swapkit/helpers";function Uy(T){switch(T){case F.Maya:return{amount:[],gas:"10000000000"};case F.THORChain:return{amount:[],gas:"500000000"};case F.Kujira:return N1;case F.Noble:return D1;default:return R1}}async function _y(T){let f=await import("@cosmjs/stargate"),Z=f.StargateClient??f.default?.StargateClient,y=typeof window!=="undefined"?{}:{referrer:"https://sdk.swapkit.dev",referer:"https://sdk.swapkit.dev"};return Z.connect({url:T,headers:y})}async function MT(T,f,Z={}){let y=await import("@cosmjs/stargate"),L=y.SigningStargateClient??y.default?.SigningStargateClient,X=y.GasPrice??y.default?.GasPrice,J=typeof Z==="string"?Z:"0.0003uatom",x=typeof Z==="string"?{}:Z;return L.connectWithSigner(T,f,{gasPrice:X.fromString(J),...x})}async function V5(T,f){let Z=await import("@cosmjs/stargate");return(Z.SigningStargateClient??Z.default?.SigningStargateClient).offline(T,f)}var l5="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",_1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",R1,N1,D1,Ey=(T,f=!1)=>{if(f)return T.toLowerCase();switch(T){case"uUSK":case"USK":return l5;case"uYUM":case"YUM":return _1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return T}},zT=({symbol:T,chain:f})=>{if(f===F.Maya)return(T.toUpperCase()!=="CACAO"?T:`${F.Maya}.${T}`).toUpperCase();if(f===F.THORChain)return(["RUNE","TCY","RUJI"].includes(T.toUpperCase())?`${F.THORChain}.${T}`:T).toUpperCase();return Ey(T,!1)},k1=(T)=>{let{isStagenet:f}=Y1.get("envs"),Z=Y1.get("rpcUrls");switch(T){case mT.Kujira:return Z.KUJI;case mT.Noble:return Z.NOBLE;case mT.THORChain:case"thorchain-mainnet-v1":return f?Z.THOR_STAGENET:Z.THOR;case mT.Maya:return f?Z.MAYA_STAGENET:Z.MAYA;default:return Z.GAIA}},o2=(T)=>{switch(T){case F.Maya:case F.THORChain:return"/types.MsgSend";case F.Cosmos:case F.Kujira:case F.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new U1("toolbox_cosmos_not_supported",{chain:T})}},$5=async({sender:T,recipient:f,assetValue:Z,memo:y="",feeRate:L,sequence:X,accountNumber:J})=>{let{chain:x,chainId:Q}=Z,q=k1(Q),M=await(await _y(q)).getAccount(T);if(!M)throw new U1("toolbox_cosmos_account_not_found",{sender:T});let G=P5.from({chain:x}),B=Ey(G.symbol),W=Uy(x),Y=B&&L?{amount:[{denom:B,amount:L.toString()}],gas:W.gas}:W,k={fromAddress:T,toAddress:f,amount:[{amount:Z.getBaseValue("string"),denom:Ey(Z.symbol)}]};return{accountNumber:J??M.accountNumber,chainId:Q,fee:Y,memo:y,sequence:X??M.sequence,msgs:[{typeUrl:o2(x),value:k}]}},c2,F5=(T,f)=>{let Z=c2[T.toLowerCase()];if(!Z)return P5.from({asset:T,value:f,fromBaseDecimal:8});let{chain:y,asset:L,decimals:X}=Z,J=y?{chain:y}:{asset:L};return P5.from({...J,value:f,fromBaseDecimal:X})};var GT=E(()=>{R1={amount:[{denom:"uatom",amount:"500"}],gas:"200000"},N1={amount:[{denom:"ukuji",amount:"1000"}],gas:"200000"},D1={amount:[{denom:"uusdc",amount:"1000"}],gas:"200000"};c2={rune:{chain:F.THORChain,decimals:zy[F.THORChain]},tcy:{asset:"THOR.TCY",decimals:zy[F.THORChain]},"x/kuji":{asset:"THOR.KUJI",decimals:zy[F.THORChain]},uatom:{chain:F.Cosmos,decimals:zy[F.Cosmos]},atom:{chain:F.Cosmos,decimals:zy[F.Cosmos]},cacao:{chain:F.Maya,decimals:10},maya:{asset:`${F.Maya}.${F.Maya}`,decimals:4},ukuji:{chain:F.Kujira,decimals:zy[F.Kujira]},kuji:{chain:F.Kujira,decimals:zy[F.Kujira]},uusdc:{chain:F.Noble,decimals:zy[F.Noble]},usdc:{chain:F.Noble,decimals:zy[F.Noble]},[l5.toLowerCase()]:{asset:`${F.Kujira}.USK`,decimals:zy[F.Kujira]}}});var I1={};Jy(I1,{$root:()=>R});import g from"protobufjs/minimal.js";var P,fy,I,R;var O1=E(()=>{P=g.Reader,fy=g.Writer,I=g.util,R=g.roots.default||(g.roots.default={});R.common=(()=>{let T={};return T.Asset=(()=>{function f(Z){if(Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.chain="",f.prototype.symbol="",f.prototype.ticker="",f.prototype.synth=!1,f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))L.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))L.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))L.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))L.uint32(32).bool(y.synth);return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.common.Asset;while(y.pos<X){let x=y.uint32();switch(x>>>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(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(y){if(typeof y!=="object"||y===null)return"object expected";if(y.chain!=null&&y.hasOwnProperty("chain")){if(!I.isString(y.chain))return"chain: string expected"}if(y.symbol!=null&&y.hasOwnProperty("symbol")){if(!I.isString(y.symbol))return"symbol: string expected"}if(y.ticker!=null&&y.hasOwnProperty("ticker")){if(!I.isString(y.ticker))return"ticker: string expected"}if(y.synth!=null&&y.hasOwnProperty("synth")){if(typeof y.synth!=="boolean")return"synth: boolean expected"}return null},f.fromObject=function Z(y){if(y instanceof R.common.Asset)return y;let L=new R.common.Asset;if(y.chain!=null)L.chain=String(y.chain);if(y.symbol!=null)L.symbol=String(y.symbol);if(y.ticker!=null)L.ticker=String(y.ticker);if(y.synth!=null)L.synth=Boolean(y.synth);return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.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 Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.Coin=(()=>{function f(Z){if(Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.asset=null,f.prototype.amount="",f.prototype.decimals=I.Long?I.Long.fromBits(0,0,!1):0,f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))R.common.Asset.encode(y.asset,L.uint32(10).fork()).ldelim();if(y.amount!=null&&Object.hasOwnProperty.call(y,"amount"))L.uint32(18).string(y.amount);if(y.decimals!=null&&Object.hasOwnProperty.call(y,"decimals"))L.uint32(24).int64(y.decimals);return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.common.Coin;while(y.pos<X){let x=y.uint32();switch(x>>>3){case 1:J.asset=R.common.Asset.decode(y,y.uint32());break;case 2:J.amount=y.string();break;case 3:J.decimals=y.int64();break;default:y.skipType(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(y){if(typeof y!=="object"||y===null)return"object expected";if(y.asset!=null&&y.hasOwnProperty("asset")){let L=R.common.Asset.verify(y.asset);if(L)return"asset."+L}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!I.isString(y.amount))return"amount: string expected"}if(y.decimals!=null&&y.hasOwnProperty("decimals")){if(!I.isInteger(y.decimals)&&!(y.decimals&&I.isInteger(y.decimals.low)&&I.isInteger(y.decimals.high)))return"decimals: integer|Long expected"}return null},f.fromObject=function Z(y){if(y instanceof R.common.Coin)return y;let L=new R.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");L.asset=R.common.Asset.fromObject(y.asset)}if(y.amount!=null)L.amount=String(y.amount);if(y.decimals!=null){if(I.Long)(L.decimals=I.Long.fromValue(y.decimals)).unsigned=!1;else if(typeof y.decimals==="string")L.decimals=Number.parseInt(y.decimals,10);else if(typeof y.decimals==="number")L.decimals=y.decimals;else if(typeof y.decimals==="object")L.decimals=new I.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber()}return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.defaults)if(X.asset=null,X.amount="",I.Long){let J=new I.Long(0,0,!1);X.decimals=L.longs===String?J.toString():L.longs===Number?J.toNumber():J}else X.decimals=L.longs===String?"0":0;if(y.asset!=null&&y.hasOwnProperty("asset"))X.asset=R.common.Asset.toObject(y.asset,L);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=L.longs===String?String(y.decimals):y.decimals;else X.decimals=L.longs===String?I.Long.prototype.toString.call(y.decimals):L.longs===Number?new I.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber():y.decimals;return X},f.prototype.toJSON=function Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.PubKeySet=(()=>{function f(Z){if(Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.secp256k1="",f.prototype.ed25519="",f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))L.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))L.uint32(18).string(y.ed25519);return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.common.PubKeySet;while(y.pos<X){let x=y.uint32();switch(x>>>3){case 1:J.secp256k1=y.string();break;case 2:J.ed25519=y.string();break;default:y.skipType(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(y){if(typeof y!=="object"||y===null)return"object expected";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1")){if(!I.isString(y.secp256k1))return"secp256k1: string expected"}if(y.ed25519!=null&&y.hasOwnProperty("ed25519")){if(!I.isString(y.ed25519))return"ed25519: string expected"}return null},f.fromObject=function Z(y){if(y instanceof R.common.PubKeySet)return y;let L=new R.common.PubKeySet;if(y.secp256k1!=null)L.secp256k1=String(y.secp256k1);if(y.ed25519!=null)L.ed25519=String(y.ed25519);return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.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 Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.Tx=(()=>{function f(Z){if(this.coins=[],this.gas=[],Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.id="",f.prototype.chain="",f.prototype.fromAddress="",f.prototype.toAddress="",f.prototype.coins=I.emptyArray,f.prototype.gas=I.emptyArray,f.prototype.memo="",f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))L.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))L.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))L.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))L.uint32(34).string(y.toAddress);if(y.coins?.length)for(let X=0;X<y.coins.length;++X)R.common.Coin.encode(y.coins[X],L.uint32(42).fork()).ldelim();if(y.gas?.length)for(let X=0;X<y.gas.length;++X)R.common.Coin.encode(y.gas[X],L.uint32(50).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))L.uint32(58).string(y.memo);return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.common.Tx;while(y.pos<X){let x=y.uint32();switch(x>>>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(R.common.Coin.decode(y,y.uint32()));break;case 6:if(!J.gas?.length)J.gas=[];J.gas.push(R.common.Coin.decode(y,y.uint32()));break;case 7:J.memo=y.string();break;default:y.skipType(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(y){if(typeof y!=="object"||y===null)return"object expected";if(y.id!=null&&y.hasOwnProperty("id")){if(!I.isString(y.id))return"id: string expected"}if(y.chain!=null&&y.hasOwnProperty("chain")){if(!I.isString(y.chain))return"chain: string expected"}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!I.isString(y.fromAddress))return"fromAddress: string expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!I.isString(y.toAddress))return"toAddress: string expected"}if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let X=R.common.Coin.verify(y.coins[L]);if(X)return"coins."+X}}if(y.gas!=null&&y.hasOwnProperty("gas")){if(!Array.isArray(y.gas))return"gas: array expected";for(let L=0;L<y.gas.length;++L){let X=R.common.Coin.verify(y.gas[L]);if(X)return"gas."+X}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!I.isString(y.memo))return"memo: string expected"}return null},f.fromObject=function Z(y){if(y instanceof R.common.Tx)return y;let L=new R.common.Tx;if(y.id!=null)L.id=String(y.id);if(y.chain!=null)L.chain=String(y.chain);if(y.fromAddress!=null)L.fromAddress=String(y.fromAddress);if(y.toAddress!=null)L.toAddress=String(y.toAddress);if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Tx.coins: array expected");L.coins=[];for(let X=0;X<y.coins.length;++X){if(typeof y.coins[X]!=="object")throw TypeError(".common.Tx.coins: object expected");L.coins[X]=R.common.Coin.fromObject(y.coins[X])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");L.gas=[];for(let X=0;X<y.gas.length;++X){if(typeof y.gas[X]!=="object")throw TypeError(".common.Tx.gas: object expected");L.gas[X]=R.common.Coin.fromObject(y.gas[X])}}if(y.memo!=null)L.memo=String(y.memo);return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.arrays||L.defaults)X.coins=[],X.gas=[];if(L.defaults)X.id="",X.chain="",X.fromAddress="",X.toAddress="",X.memo="";if(y.id!=null&&y.hasOwnProperty("id"))X.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))X.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))X.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))X.toAddress=y.toAddress;if(y.coins?.length){X.coins=[];for(let J=0;J<y.coins.length;++J)X.coins[J]=R.common.Coin.toObject(y.coins[J],L)}if(y.gas?.length){X.gas=[];for(let J=0;J<y.gas.length;++J)X.gas[J]=R.common.Coin.toObject(y.gas[J],L)}if(y.memo!=null&&y.hasOwnProperty("memo"))X.memo=y.memo;return X},f.prototype.toJSON=function Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.Fee=(()=>{function f(Z){if(this.coins=[],Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.coins=I.emptyArray,f.prototype.poolDeduct="",f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.coins?.length)for(let X=0;X<y.coins.length;++X)R.common.Coin.encode(y.coins[X],L.uint32(10).fork()).ldelim();if(y.poolDeduct!=null&&Object.hasOwnProperty.call(y,"poolDeduct"))L.uint32(18).string(y.poolDeduct);return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.common.Fee;while(y.pos<X){let x=y.uint32();switch(x>>>3){case 1:if(!J.coins?.length)J.coins=[];J.coins.push(R.common.Coin.decode(y,y.uint32()));break;case 2:J.poolDeduct=y.string();break;default:y.skipType(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let X=R.common.Coin.verify(y.coins[L]);if(X)return"coins."+X}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!I.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},f.fromObject=function Z(y){if(y instanceof R.common.Fee)return y;let L=new R.common.Fee;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Fee.coins: array expected");L.coins=[];for(let X=0;X<y.coins.length;++X){if(typeof y.coins[X]!=="object")throw TypeError(".common.Fee.coins: object expected");L.coins[X]=R.common.Coin.fromObject(y.coins[X])}}if(y.poolDeduct!=null)L.poolDeduct=String(y.poolDeduct);return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.arrays||L.defaults)X.coins=[];if(L.defaults)X.poolDeduct="";if(y.coins?.length){X.coins=[];for(let J=0;J<y.coins.length;++J)X.coins[J]=R.common.Coin.toObject(y.coins[J],L)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))X.poolDeduct=y.poolDeduct;return X},f.prototype.toJSON=function Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.ProtoUint=(()=>{function f(Z){if(Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.value="",f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))L.uint32(10).string(y.value);return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.common.ProtoUint;while(y.pos<X){let x=y.uint32();switch(x>>>3){case 1:J.value=y.string();break;default:y.skipType(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(y){if(typeof y!=="object"||y===null)return"object expected";if(y.value!=null&&y.hasOwnProperty("value")){if(!I.isString(y.value))return"value: string expected"}return null},f.fromObject=function Z(y){if(y instanceof R.common.ProtoUint)return y;let L=new R.common.ProtoUint;if(y.value!=null)L.value=String(y.value);return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.defaults)X.value="";if(y.value!=null&&y.hasOwnProperty("value"))X.value=y.value;return X},f.prototype.toJSON=function Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T})();R.types=(()=>{let T={};return T.MsgDeposit=(()=>{function f(Z){if(this.coins=[],Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.coins=I.emptyArray,f.prototype.memo="",f.prototype.signer=I.newBuffer([]),f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.coins?.length)for(let X=0;X<y.coins.length;++X)R.common.Coin.encode(y.coins[X],L.uint32(10).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))L.uint32(18).string(y.memo);if(y.signer!=null&&Object.hasOwnProperty.call(y,"signer"))L.uint32(26).bytes(y.signer);return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.types.MsgDeposit;while(y.pos<X){let x=y.uint32();switch(x>>>3){case 1:if(!J.coins?.length)J.coins=[];J.coins.push(R.common.Coin.decode(y,y.uint32()));break;case 2:J.memo=y.string();break;case 3:J.signer=y.bytes();break;default:y.skipType(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let X=R.common.Coin.verify(y.coins[L]);if(X)return"coins."+X}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!I.isString(y.memo))return"memo: string expected"}if(y.signer!=null&&y.hasOwnProperty("signer")){if(!(y.signer&&typeof y.signer.length==="number"||I.isString(y.signer)))return"signer: buffer expected"}return null},f.fromObject=function Z(y){if(y instanceof R.types.MsgDeposit)return y;let L=new R.types.MsgDeposit;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".types.MsgDeposit.coins: array expected");L.coins=[];for(let X=0;X<y.coins.length;++X){if(typeof y.coins[X]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");L.coins[X]=R.common.Coin.fromObject(y.coins[X])}}if(y.memo!=null)L.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")I.base64.decode(y.signer,L.signer=I.newBuffer(I.base64.length(y.signer)),0);else if(y.signer.length)L.signer=y.signer}return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.arrays||L.defaults)X.coins=[];if(L.defaults){if(X.memo="",L.bytes===String)X.signer="";else if(X.signer=[],L.bytes!==Array)X.signer=I.newBuffer(X.signer)}if(y.coins?.length){X.coins=[];for(let J=0;J<y.coins.length;++J)X.coins[J]=R.common.Coin.toObject(y.coins[J],L)}if(y.memo!=null&&y.hasOwnProperty("memo"))X.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))X.signer=L.bytes===String?I.base64.encode(y.signer,0,y.signer.length):L.bytes===Array?Array.prototype.slice.call(y.signer):y.signer;return X},f.prototype.toJSON=function Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.MsgSend=(()=>{function f(Z){if(this.amount=[],Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.fromAddress=I.newBuffer([]),f.prototype.toAddress=I.newBuffer([]),f.prototype.amount=I.emptyArray,f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))L.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))L.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let X=0;X<y.amount.length;++X)R.cosmos.base.v1beta1.Coin.encode(y.amount[X],L.uint32(26).fork()).ldelim();return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.types.MsgSend;while(y.pos<X){let x=y.uint32();switch(x>>>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(R.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(y){if(typeof y!=="object"||y===null)return"object expected";if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!(y.fromAddress&&typeof y.fromAddress.length==="number"||I.isString(y.fromAddress)))return"fromAddress: buffer expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!(y.toAddress&&typeof y.toAddress.length==="number"||I.isString(y.toAddress)))return"toAddress: buffer expected"}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!Array.isArray(y.amount))return"amount: array expected";for(let L=0;L<y.amount.length;++L){let X=R.cosmos.base.v1beta1.Coin.verify(y.amount[L]);if(X)return"amount."+X}}return null},f.fromObject=function Z(y){if(y instanceof R.types.MsgSend)return y;let L=new R.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")I.base64.decode(y.fromAddress,L.fromAddress=I.newBuffer(I.base64.length(y.fromAddress)),0);else if(y.fromAddress.length)L.fromAddress=y.fromAddress}if(y.toAddress!=null){if(typeof y.toAddress==="string")I.base64.decode(y.toAddress,L.toAddress=I.newBuffer(I.base64.length(y.toAddress)),0);else if(y.toAddress.length)L.toAddress=y.toAddress}if(y.amount){if(!Array.isArray(y.amount))throw TypeError(".types.MsgSend.amount: array expected");L.amount=[];for(let X=0;X<y.amount.length;++X){if(typeof y.amount[X]!=="object")throw TypeError(".types.MsgSend.amount: object expected");L.amount[X]=R.cosmos.base.v1beta1.Coin.fromObject(y.amount[X])}}return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.arrays||L.defaults)X.amount=[];if(L.defaults){if(L.bytes===String)X.fromAddress="";else if(X.fromAddress=[],L.bytes!==Array)X.fromAddress=I.newBuffer(X.fromAddress);if(L.bytes===String)X.toAddress="";else if(X.toAddress=[],L.bytes!==Array)X.toAddress=I.newBuffer(X.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))X.fromAddress=L.bytes===String?I.base64.encode(y.fromAddress,0,y.fromAddress.length):L.bytes===Array?Array.prototype.slice.call(y.fromAddress):y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))X.toAddress=L.bytes===String?I.base64.encode(y.toAddress,0,y.toAddress.length):L.bytes===Array?Array.prototype.slice.call(y.toAddress):y.toAddress;if(y.amount?.length){X.amount=[];for(let J=0;J<y.amount.length;++J)X.amount[J]=R.cosmos.base.v1beta1.Coin.toObject(y.amount[J],L)}return X},f.prototype.toJSON=function Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T})();R.cosmos=(()=>{let T={};return T.base=(()=>{let f={};return f.v1beta1=(()=>{let Z={};return Z.Coin=(()=>{function y(L){if(L){for(let X=Object.keys(L),J=0;J<X.length;++J)if(L[X[J]]!=null)this[X[J]]=L[X[J]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function L(X){return new y(X)},y.encode=function L(X,J){if(!J)J=fy.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))J.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))J.uint32(18).string(X.amount);return J},y.encodeDelimited=function L(X,J){return this.encode(X,J).ldelim()},y.decode=function L(X,J){if(!(X instanceof P))X=P.create(X);let x=J===void 0?X.len:X.pos+J,Q=new R.cosmos.base.v1beta1.Coin;while(X.pos<x){let q=X.uint32();switch(q>>>3){case 1:Q.denom=X.string();break;case 2:Q.amount=X.string();break;default:X.skipType(q&7);break}}return Q},y.decodeDelimited=function L(X){if(!(X instanceof P))X=new P(X);return this.decode(X,X.uint32())},y.verify=function L(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!I.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!I.isString(X.amount))return"amount: string expected"}return null},y.fromObject=function L(X){if(X instanceof R.cosmos.base.v1beta1.Coin)return X;let J=new R.cosmos.base.v1beta1.Coin;if(X.denom!=null)J.denom=String(X.denom);if(X.amount!=null)J.amount=String(X.amount);return J},y.toObject=function L(X,J){if(!J)J={};let x={};if(J.defaults)x.denom="",x.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))x.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))x.amount=X.amount;return x},y.prototype.toJSON=function L(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),Z.DecCoin=(()=>{function y(L){if(L){for(let X=Object.keys(L),J=0;J<X.length;++J)if(L[X[J]]!=null)this[X[J]]=L[X[J]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function L(X){return new y(X)},y.encode=function L(X,J){if(!J)J=fy.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))J.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))J.uint32(18).string(X.amount);return J},y.encodeDelimited=function L(X,J){return this.encode(X,J).ldelim()},y.decode=function L(X,J){if(!(X instanceof P))X=P.create(X);let x=J===void 0?X.len:X.pos+J,Q=new R.cosmos.base.v1beta1.DecCoin;while(X.pos<x){let q=X.uint32();switch(q>>>3){case 1:Q.denom=X.string();break;case 2:Q.amount=X.string();break;default:X.skipType(q&7);break}}return Q},y.decodeDelimited=function L(X){if(!(X instanceof P))X=new P(X);return this.decode(X,X.uint32())},y.verify=function L(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!I.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!I.isString(X.amount))return"amount: string expected"}return null},y.fromObject=function L(X){if(X instanceof R.cosmos.base.v1beta1.DecCoin)return X;let J=new R.cosmos.base.v1beta1.DecCoin;if(X.denom!=null)J.denom=String(X.denom);if(X.amount!=null)J.amount=String(X.amount);return J},y.toObject=function L(X,J){if(!J)J={};let x={};if(J.defaults)x.denom="",x.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))x.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))x.amount=X.amount;return x},y.prototype.toJSON=function L(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),Z.IntProto=(()=>{function y(L){if(L){for(let X=Object.keys(L),J=0;J<X.length;++J)if(L[X[J]]!=null)this[X[J]]=L[X[J]]}}return y.prototype.int="",y.create=function L(X){return new y(X)},y.encode=function L(X,J){if(!J)J=fy.create();if(X.int!=null&&Object.hasOwnProperty.call(X,"int"))J.uint32(10).string(X.int);return J},y.encodeDelimited=function L(X,J){return this.encode(X,J).ldelim()},y.decode=function L(X,J){if(!(X instanceof P))X=P.create(X);let x=J===void 0?X.len:X.pos+J,Q=new R.cosmos.base.v1beta1.IntProto;while(X.pos<x){let q=X.uint32();switch(q>>>3){case 1:Q.int=X.string();break;default:X.skipType(q&7);break}}return Q},y.decodeDelimited=function L(X){if(!(X instanceof P))X=new P(X);return this.decode(X,X.uint32())},y.verify=function L(X){if(typeof X!=="object"||X===null)return"object expected";if(X.int!=null&&X.hasOwnProperty("int")){if(!I.isString(X.int))return"int: string expected"}return null},y.fromObject=function L(X){if(X instanceof R.cosmos.base.v1beta1.IntProto)return X;let J=new R.cosmos.base.v1beta1.IntProto;if(X.int!=null)J.int=String(X.int);return J},y.toObject=function L(X,J){if(!J)J={};let x={};if(J.defaults)x.int="";if(X.int!=null&&X.hasOwnProperty("int"))x.int=X.int;return x},y.prototype.toJSON=function L(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),Z.DecProto=(()=>{function y(L){if(L){for(let X=Object.keys(L),J=0;J<X.length;++J)if(L[X[J]]!=null)this[X[J]]=L[X[J]]}}return y.prototype.dec="",y.create=function L(X){return new y(X)},y.encode=function L(X,J){if(!J)J=fy.create();if(X.dec!=null&&Object.hasOwnProperty.call(X,"dec"))J.uint32(10).string(X.dec);return J},y.encodeDelimited=function L(X,J){return this.encode(X,J).ldelim()},y.decode=function L(X,J){if(!(X instanceof P))X=P.create(X);let x=J===void 0?X.len:X.pos+J,Q=new R.cosmos.base.v1beta1.DecProto;while(X.pos<x){let q=X.uint32();switch(q>>>3){case 1:Q.dec=X.string();break;default:X.skipType(q&7);break}}return Q},y.decodeDelimited=function L(X){if(!(X instanceof P))X=new P(X);return this.decode(X,X.uint32())},y.verify=function L(X){if(typeof X!=="object"||X===null)return"object expected";if(X.dec!=null&&X.hasOwnProperty("dec")){if(!I.isString(X.dec))return"dec: string expected"}return null},y.fromObject=function L(X){if(X instanceof R.cosmos.base.v1beta1.DecProto)return X;let J=new R.cosmos.base.v1beta1.DecProto;if(X.dec!=null)J.dec=String(X.dec);return J},y.toObject=function L(X,J){if(!J)J={};let x={};if(J.defaults)x.dec="";if(X.dec!=null&&X.hasOwnProperty("dec"))x.dec=X.dec;return x},y.prototype.toJSON=function L(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),Z})(),f})(),T})()});import{Chain as g2}from"@swapkit/helpers";async function by(){let{$root:T}=await Promise.resolve().then(() => (O1(),I1)),f=await import("@cosmjs/proto-signing"),Z=f.Registry??f.default?.Registry,y=await import("@cosmjs/stargate"),L=y.defaultRegistryTypes??y.default?.defaultRegistryTypes;return new Z([...L,["/types.MsgSend",T.types.MsgSend],["/types.MsgDeposit",T.types.MsgDeposit]])}async function vy(T){let f=await import("@cosmjs/stargate"),Z=f.AminoTypes??f.default?.AminoTypes,y=T===g2.THORChain?"thorchain":"mayachain";return new Z({"/types.MsgSend":{aminoType:`${y}/MsgSend`,toAmino:({fromAddress:L,toAddress:X,...J})=>({...J,from_address:qT(L),to_address:qT(X)}),fromAmino:({from_address:L,to_address:X,...J})=>({...J,fromAddress:QT(L),toAddress:QT(X)})},"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,toAmino:({signer:L,...X})=>({...X,signer:qT(L)}),fromAmino:({signer:L,...X})=>({...X,signer:QT(L)})}})}var K5=E(()=>{v5()});import{AssetValue as t2,Chain as oT,ChainToChainId as C1,SwapKitError as d2}from"@swapkit/helpers";function b5(T){return function f(Z){let{assetValue:y,recipient:L,memo:X,sender:J,asSignable:x,asAminoMessage:Q}=Z;if(L)return E1(T)({sender:J,recipient:L,assetValue:y,memo:X,asSignable:x,asAminoMessage:Q});return v1(T)({sender:J,assetValue:y,memo:X,asSignable:x,asAminoMessage:Q})}}function ly(T){if(T.type==="thorchain/MsgSend"||T.type==="mayachain/MsgSend")return T;return{...T,value:{...T.value,coins:T.value.coins.map((f)=>{let Z=t2.from({asset:f.asset}),y=(Z.isSynthetic?Z.symbol.split("/")?.[1]:Z.symbol)?.toUpperCase(),L=(Z.isSynthetic?Z.symbol.split("/")?.[0]:Z.chain)?.toUpperCase();return{...f,asset:{chain:L,symbol:y,ticker:Z.ticker,synth:Z.isSynthetic}}})}}}async function BT({chain:T,memo:f,msgs:Z}){let y=await by(),L=await vy(T),X={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:f,messages:Z.map((J)=>L.fromAmino(J))}};return y.encode(X)}var i2,r2,A5=({sender:T,recipient:f,assetValue:Z})=>{return{type:`${Z.chain===oT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{from_address:T,to_address:f,amount:[{amount:Z.getBaseValue("string"),denom:Ey(Z.symbol,!0)}]}}},S5=({sender:T,assetValue:f,memo:Z=""})=>{return{type:`${f.chain===oT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:f.getBaseValue("string"),asset:zT(f)}],signer:T,memo:Z}}},cT=({sender:T,recipient:f,assetValue:Z,memo:y})=>{return!f?S5({sender:T,assetValue:Z,memo:y}):A5({sender:T,recipient:f,assetValue:Z})},Py=async(T,f)=>{return(await vy(f)).fromAmino(T)},w1=async({rpcUrl:T,sender:f})=>{let y=await(await _y(T)).getAccount(f);if(!y)throw new d2("toolbox_cosmos_account_not_found",{sender:f});return y},E1=(T)=>async({sender:f,recipient:Z,assetValue:y,memo:L="",asSignable:X=!0,asAminoMessage:J=!1,sequence:x,accountNumber:Q})=>{let q=await w1({rpcUrl:T,sender:f}),z=y.chain,M=A5({sender:f,recipient:Z,assetValue:y}),G=X?await Py(J?M:ly(M),z):M;return{chainId:C1[z],accountNumber:Q||q.accountNumber,sequence:x||q.sequence,msgs:[G],fee:Uy(y.chain),memo:L}},v1=(T)=>async({sender:f,assetValue:Z,memo:y="",asSignable:L=!0,asAminoMessage:X=!1,sequence:J,accountNumber:x})=>{let Q=await w1({rpcUrl:T,sender:f}),q=Z.chain,z=S5({sender:f,assetValue:Z,memo:y}),M=L?await Py(X?z:ly(z),q):z;return{chainId:C1[q],accountNumber:x||Q.accountNumber,sequence:J||Q.sequence,msgs:[M],fee:Uy(Z.chain),memo:y}};var P1=E(()=>{GT();K5();i2=Uy(oT.THORChain).gas,r2=Uy(oT.Maya).gas});var l1=()=>{};var V1=E(()=>{l1()});var u5=E(()=>{v5();P1();K5();V1()});import{base64 as p5,bech32 as j5}from"@scure/base";import{AssetValue as u1,BaseDecimal as h5,Chain as r,ChainToChainId as a2,CosmosChainPrefixes as j1,DerivationPath as s2,FeeOption as m5,NetworkDerivationPath as e2,SKConfig as h1,SwapKitError as gT,SwapKitNumber as n5,applyFeeMultiplier as $1,derivationPathToString as F1,updateDerivationPath as yX}from"@swapkit/helpers";import{SwapKitApi as n1}from"@swapkit/helpers/api";import{P as K1,match as TX}from"ts-pattern";async function c5(T,f){try{let y=(await n1.getGasRate()).find((L)=>L.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(Z){return f}}async function o5({phrase:T,prefix:f,...Z}){let y=await import("@cosmjs/proto-signing"),L=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,X=await import("@cosmjs/crypto"),J=X.stringToPath??X.default?.stringToPath,x="derivationPath"in Z?Z.derivationPath:`${s2[Z.chain]}/${Z.index}`;return L.fromMnemonic(T,{prefix:f,hdPaths:[J(x)]})}async function fX({privateKey:T,prefix:f}){let Z=await import("@cosmjs/proto-signing");return(Z.DirectSecp256k1Wallet??Z.default?.DirectSecp256k1Wallet).fromKey(T,f)}function p1(T){return async function f({signature:Z,message:y,address:L}){let X=await T(L);if(!X?.pubkey)throw new gT("toolbox_cosmos_verify_signature_no_pubkey");let J=await import("@cosmjs/crypto"),x=J.Secp256k1Signature??J.default?.Secp256k1Signature,Q=J.Secp256k1??J.default?.Secp256k1,q=x.fromFixedLength(p5.decode(Z));return Q.verifySignature(q,p5.decode(y),X.pubkey.value)}}async function WT({chain:T,...f}){let Z=h1.get("rpcUrls")[T],y=j1[T],L="index"in f?f.index||0:0,X=F1("derivationPath"in f&&f.derivationPath?f.derivationPath:yX(e2[T],{index:L})),J=await TX(f).with({phrase:K1.string},({phrase:M})=>o5({phrase:M,prefix:y,derivationPath:X})).with({signer:K1.any},({signer:M})=>M).otherwise(()=>{return});async function x(M){return(await _y(Z)).getAccount(M)}async function Q(){let[M]=await J?.getAccounts()||[];return M?.address}async function q(){let[M]=await J?.getAccounts()||[];if(!M?.pubkey)throw new gT("toolbox_cosmos_signer_not_defined");return p5.encode(M?.pubkey)}async function z({recipient:M,assetValue:G,memo:B="",feeRate:W,feeOptionKey:Y=m5.Fast}){let k=await Q();if(!(J&&k))throw new gT("toolbox_cosmos_signer_not_defined");let V=u1.from({chain:T}),$=zT(V),j=W||xX((await S1(T,A1[T]))[Y],$),A=await MT(Z,J),c=[{denom:Ey(`u${G.symbol}`).toLowerCase(),amount:G.getBaseValue("string")}],{transactionHash:m}=await A.sendTokens(k,M,c,j,B);return m}return{transfer:z,getAddress:Q,getAccount:x,getBalance:async(M,G)=>{let B=await b1(Z)(M);return await Promise.all(B.filter(({denom:W})=>W&&!W.includes("IBC/")).map(({denom:W,amount:Y})=>{let k=[r.THORChain,r.Maya].includes(T)&&(W.includes("/")||W.includes("˜"))?`${T}.${W}`:W;return F5(k,Y)}))},getSignerFromPhrase:async({phrase:M,derivationPath:G})=>o5({phrase:M,prefix:y,derivationPath:F1(G),index:L}),getSignerFromPrivateKey:async(M)=>{let G=await import("@cosmjs/proto-signing");return(G.DirectSecp256k1Wallet??G.default?.DirectSecp256k1Wallet).fromKey(M,y)},createPrivateKeyFromPhrase:qX(X),validateAddress:o1(y),getPubKey:q,getFees:()=>S1(T,A1[T]),fetchFeeRateFromSwapKit:c5,getBalanceAsDenoms:b1(Z),createTransaction:$5,verifySignature:p1(x)}}async function m1(T,f){try{let y=(await n1.getGasRate()).find((L)=>L.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(Z){return f}}function LX({address:T,chain:f,prefix:Z}){let y=Z||JX(f);if(!(y&&T))throw new gT("toolbox_cosmos_validate_address_prefix_not_found");return o1(y)(T)}function ZX({assetValue:{chain:T}}){return u1.from({chain:T,value:QX(T)})}function JX(T){let{isStagenet:f}=h1.get("envs"),Z=T?[r.THORChain,r.Maya].includes(T)&&f:!1,y=T?j1[T]:void 0;return Z?`s${y}`:y}async function S1(T,f){let Z=await c5(a2[T],f);return{average:n5.fromBigInt(BigInt(Z),h5[T]),fast:n5.fromBigInt(BigInt($1(Z,m5.Fast,!0)),h5[T]),fastest:n5.fromBigInt(BigInt($1(Z,m5.Fastest,!0)),h5[T])}}function xX(T,f){return{amount:[{denom:f,amount:T.getBaseValue("string")}],gas:"200000"}}function QX(T){return{[r.Cosmos]:0.007,[r.Kujira]:0.02,[r.Noble]:0.01,[r.THORChain]:0.02,[r.Maya]:0.02}[T]||0}function o1(T){return function f(Z){if(!Z.startsWith(T))return!1;try{let{prefix:y,words:L}=j5.decode(Z);return j5.encode(y,L)===Z.toLocaleLowerCase()}catch(y){return!1}}}function b1(T){return async function f(Z){return(await(await _y(T)).getAllBalances(Z)).map((J)=>({...J,denom:J.denom.includes("/")?J.denom.toUpperCase():J.denom}))}}function qX(T){return async function f(Z){let y=await import("@cosmjs/crypto"),L=y.stringToPath??y.default?.stringToPath,X=y.Slip10Curve??y.default?.Slip10Curve,J=y.Slip10??y.default?.Slip10,x=y.EnglishMnemonic??y.default?.EnglishMnemonic,Q=y.Bip39??y.default?.Bip39,q=new x(Z),z=await Q.mnemonicToSeed(q),{privkey:M}=J.derivePath(X.Secp256k1,z,L(T));return M}}var A1,XX;var tT=E(()=>{GT();A1={[r.Cosmos]:500,[r.Kujira]:1000,[r.Noble]:1000,[r.THORChain]:5000000,[r.Maya]:5000000};XX=m1});import{base64 as uy}from"@scure/base";import{BaseDecimal as zX,Chain as MX,CosmosChainPrefixes as GX,FeeOption as g5,NetworkDerivationPath as BX,RequestClient as WX,SKConfig as t5,SwapKitError as c1,SwapKitNumber as g1,derivationPathToString as HX,updateDerivationPath as YX}from"@swapkit/helpers";import{P as t1,match as UX}from"ts-pattern";function _X({prefix:T,derivationPath:f}){return async function Z(y,L=0){let X=await import("@cosmjs/amino"),J=X.Secp256k1HdWallet??X.default?.Secp256k1HdWallet,x=await import("@cosmjs/crypto"),Q=x.stringToPath??x.default?.stringToPath;return J.fromMnemonic(y,{hdPaths:[Q(`${f}/${L}`)],prefix:T})}}function RX(T){return uy.encode(T)}function NX(T){return async function f({wallet:Z,tx:y}){let{msgs:L,accountNumber:X,sequence:J,chainId:x,fee:Q,memo:q}=typeof y==="string"?JSON.parse(y):y,z=(await Z.getAccounts())?.[0]?.address||"",M=await vy(T),G=await by(),B=await V5(Z,{registry:G,aminoTypes:M}),W=[];for(let V of L){let $=await Py(V,T);W.push($)}let{signatures:[Y]}=await B.sign(z,W,Q,q,{accountNumber:X,sequence:J,chainId:x}),k=await BT({chain:T,memo:q,msgs:L.map(ly)});return{signature:RX(Y),bodyBytes:k}}}function DX({prefix:T,rpcUrl:f}){return async function Z(y,L,X,J,x){let{encodeSecp256k1Pubkey:Q,pubkeyToAddress:q}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:z}=(await import("@cosmjs/stargate")).default,{sequence:M,fee:G}=JSON.parse(y),B=await d1(X,J),W=L.map((V)=>[q(Q(uy.decode(V.pubKey)),T),uy.decode(V.signature)]),Y=await _y(f),{transactionHash:k}=await Y.broadcastTx(z(B,M,G,x,new Map(W)));return k}}async function d1(T,f,Z=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:L}=(await import("@cosmjs/amino")).default;return y(T.map((X)=>L(uy.decode(X))),f,Z)}function kX(T){return uy.decode(T)}async function IX({privateKey:T,message:f}){let{Secp256k1:Z}=(await import("@cosmjs/crypto")).default,y=await Z.createSignature(uy.decode(f),T);return uy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function d5({chain:T,...f}){let Z=t5.get("nodeUrls")[T],y=t5.get("rpcUrls")[T],{isStagenet:L}=t5.get("envs"),X=T===MX.THORChain,J=`${L?"s":""}${GX[T]}`,x="index"in f?f.index||0:0,Q="derivationPath"in f&&f.derivationPath?f.derivationPath:YX(BX[T],{index:x}),q=await WT({chain:T,...f}),z=await UX(f).with({phrase:t1.string},({phrase:W})=>q.getSignerFromPhrase({phrase:W,derivationPath:Q})).with({signer:t1.any},({signer:W})=>W).otherwise(()=>{return}),M=Uy(T);async function G(){let W,Y=`${Z}/${X?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:k}}=await WX.get(Y);if(!k||Number.isNaN(k)||k<0)throw new c1("toolbox_cosmos_invalid_fee",{nativeFee:k.toString()});W=new g1(k)}catch{W=new g1({value:X?0.02:1,decimal:zX[T]})}return{[g5.Average]:W,[g5.Fast]:W,[g5.Fastest]:W}}async function B({assetValue:W,memo:Y="",recipient:k}){let{TxRaw:V}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),$=(await z?.getAccounts())?.[0]?.address;if(!($&&z))throw new c1("toolbox_cosmos_no_signer");let j="signAmino"in z,A=await by(),c=await vy(T),m=await MT(y,z,{registry:A,aminoTypes:c}),s=cT({assetValue:W,sender:$,recipient:k,memo:Y});if(j){let O=await Py(s,T),{signatures:v,authInfoBytes:w}=await m.sign($,[O],M,Y),l=V.encode({signatures:v,authInfoBytes:w,bodyBytes:await BT({chain:T,msgs:[s].map(ly),memo:Y})}).finish();return(await m.broadcastTx(l)).transactionHash}let C=ly(s),H=await Py(C,T);return(await m.signAndBroadcast($,[H],M,Y)).transactionHash}return{...q,broadcastMultisigTx:DX({prefix:J,rpcUrl:y}),buildAminoMsg:cT,buildEncodedTxBody:BT,convertToSignable:Py,createDefaultAminoTypes:()=>vy(T),createDefaultRegistry:by,createMultisig:d1,createTransaction:b5(y),deposit:B,getFees:G,importSignature:kX,parseAminoMessageForDirectSigning:ly,secp256k1HdWalletFromMnemonic:_X({derivationPath:HX(Q),prefix:J}),signMultisigTx:NX(T),signWithPrivateKey:IX,transfer:B,pubkeyToAddress:async(W)=>{let{pubkeyToAddress:Y}=(await import("@cosmjs/amino")).default;return Y(W,J)}}}var i5=E(()=>{u5();GT();tT()});import{Chain as HT,SwapKitError as OX}from"@swapkit/helpers";var CX=(T,f)=>{switch(T){case HT.Cosmos:case HT.Kujira:case HT.Noble:return WT({chain:T,...f});case HT.Maya:case HT.THORChain:return d5({chain:T,...f});default:throw new OX("toolbox_cosmos_not_supported",{chain:T})}};var i1=E(()=>{tT();i5();tT();i5()});var dT={};Jy(dT,{verifySignature:()=>p1,transferMsgAmino:()=>A5,toBase64:()=>p2,parseAminoMessageForDirectSigning:()=>ly,getSignerFromPrivateKey:()=>fX,getSignerFromPhrase:()=>o5,getRPC:()=>k1,getMsgSendDenom:()=>Ey,getFeeRateFromThorswap:()=>XX,getFeeRateFromSwapKit:()=>m1,getDenomWithChain:()=>zT,getDefaultChainFee:()=>Uy,getCreateTransaction:()=>b5,getCosmosToolbox:()=>CX,getAssetFromDenom:()=>F5,fromBase64:()=>m2,fetchFeeRateFromSwapKit:()=>c5,estimateTransactionFee:()=>ZX,depositMsgAmino:()=>S5,createThorchainToolbox:()=>d5,createStargateClient:()=>_y,createSigningStargateClient:()=>MT,createOfflineStargateClient:()=>V5,createDefaultRegistry:()=>by,createDefaultAminoTypes:()=>vy,createCosmosToolbox:()=>WT,cosmosValidateAddress:()=>LX,cosmosCreateTransaction:()=>$5,convertToSignable:()=>Py,buildTransferTx:()=>E1,buildEncodedTxBody:()=>BT,buildDepositTx:()=>v1,buildAminoMsg:()=>cT,bech32ToBase64:()=>QT,base64ToBech32:()=>qT,YUM_KUJIRA_FACTORY_DENOM:()=>_1,USK_KUJIRA_FACTORY_DENOM:()=>l5,THORCHAIN_GAS_VALUE:()=>i2,MAYA_GAS_VALUE:()=>r2,DEFAULT_NOBLE_FEE_MAINNET:()=>D1,DEFAULT_KUJI_FEE_MAINNET:()=>N1,DEFAULT_COSMOS_FEE_MAINNET:()=>R1});var iT=E(()=>{u5();i1();GT()});import{AssetValue as wX,BaseDecimal as EX}from"@swapkit/helpers";import{SwapKitApi as vX}from"@swapkit/helpers/api";function r1(){function T(){let f=Date.now(),Z=r5||f;return r5=Z,f>r5?f:Z+1}return PX+T().toString(36)}function rT(T){return async function f(Z,y=!0){return(await vX.getChainBalance({chain:T,address:Z,scamFilter:y})).map(({identifier:X,value:J,decimal:x})=>{return new wX({decimal:x||EX[T],value:J,identifier:X})})}}var PX,r5=0;var aT=E(()=>{PX=typeof process!=="undefined"&&process.pid?process.pid.toString(36):""});import{SKConfig as lX,warnOnce as VX}from"@swapkit/helpers";function YT(T){let f=lX.get("apis")[T];if(f)return VX(!0,"Using custom EVM API. Be sure to implement all methods to avoid issues."),f;return FX(T)}function $X(T){return T}function FX(T){return{getBalance:rT(T)}}var sT=E(()=>{aT()});import{Chain as o,ContractAddress as My,FeeOption as K,SwapKitError as n,SwapKitNumber as a1,applyFeeMultiplierToBigInt as Xy,isGasAsset as KX}from"@swapkit/helpers";import{erc20ABI as _T}from"@swapkit/helpers/contracts";import{BrowserProvider as AX,Contract as s1,Interface as e1,getAddress as eT}from"ethers";function dy({chain:T=o.Ethereum,provider:f,signer:Z,isEIP1559Compatible:y=!0}){return{getAddress:()=>{return Z?Z.getAddress():void 0},estimateTransactionFee:f0({provider:f,isEIP1559Compatible:y,chain:T}),call:T0({provider:f,signer:Z,isEIP1559Compatible:y,chain:T}),estimateCall:Xf({provider:f,signer:Z}),EIP1193SendTransaction:ry(f),approve:jX({provider:f,signer:Z,isEIP1559Compatible:y,chain:T}),approvedAmount:ff({provider:f,chain:T}),broadcastTransaction:f.broadcastTransaction,createApprovalTx:mX({provider:f,signer:Z,chain:T}),createContract:e5({provider:f,chain:T}),createContractTxObject:jy({provider:f,chain:T}),createTransferTx:a5({provider:f,signer:Z,chain:T}),createTransaction:a5({provider:f,signer:Z,chain:T}),estimateGasLimit:nX({provider:f,signer:Z,chain:T}),estimateGasPrices:Vy({chain:T,provider:f,isEIP1559Compatible:y}),isApproved:uX({provider:f,chain:T}),sendTransaction:Lf({provider:f,signer:Z,isEIP1559Compatible:y,chain:T}),signMessage:Z?.signMessage,transfer:hX({provider:f,signer:Z,isEIP1559Compatible:y,chain:T}),validateAddress:(L)=>s5({address:L})}}function s5({address:T}){try{return eT(T),!0}catch(f){return!1}}function iy(T){return T instanceof AX}function NT(T,f,Z){return new s1(T,e1.from(f),Z)}function e5({provider:T}){return function f(Z,y){return new s1(Z,e1.from(y),T)}}function y0({abi:T,funcName:f}){let Z=T.find((y)=>y.name===f);if(!Z)throw new n("toolbox_evm_no_abi_fragment",{funcName:f});return Z.stateMutability&&SX.includes(Z.stateMutability)}function yf(T){return eT(T)}function ry(T){return function f({value:Z,...y}){if(!iy(T))throw new n("toolbox_evm_provider_not_eip1193_compatible");return T.send("eth_sendTransaction",[{value:UT(BigInt(Z||0)),...y}])}}function Tf(T,f){let Z=ay(T,f);if(Z)return eT(Z.toLowerCase());throw new n("toolbox_evm_invalid_gas_asset_address")}function ay({chain:T,symbol:f,ticker:Z},y){try{let L=T===o.BinanceSmartChain&&f==="BNB"&&Z==="BNB",X=T===y&&f===y&&Z===y,J=[o.Arbitrum,o.Aurora,o.Base,o.Optimism].includes(T)&&f==="ETH"&&Z==="ETH";if(X||L||J)return bX[y];return eT(f.slice(Z.length+1).replace(/^0X/,""))}catch(L){return null}}function jy({provider:T}){return async({contractAddress:f,abi:Z,funcName:y,funcParams:L=[],txOverrides:X})=>NT(f,Z,T).getFunction(y).populateTransaction(...L.concat(X).filter((J)=>typeof J!=="undefined"))}function Vy({chain:T,provider:f,isEIP1559Compatible:Z=!0}){if(T===o.Arbitrum)return async function y(){try{let{gasPrice:L}=await f.getFeeData();if(!L)throw new n("toolbox_evm_no_fee_data");return{[K.Average]:{gasPrice:L},[K.Fast]:{gasPrice:L},[K.Fastest]:{gasPrice:L}}}catch(L){throw new n("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}};if(T===o.Optimism)return async function y(){try{let{maxFeePerGas:L,maxPriorityFeePerGas:X,gasPrice:J}=await f.getFeeData(),x=kT(f)(),Q=J;if(!(L&&X))throw new n("toolbox_evm_no_fee_data");return{[K.Average]:{l1GasPrice:x,gasPrice:Q,maxFeePerGas:L,maxPriorityFeePerGas:X},[K.Fast]:{l1GasPrice:Xy(x||0n,K.Fast),gasPrice:Xy(Q,K.Fast),maxFeePerGas:L,maxPriorityFeePerGas:Xy(X,K.Fast)},[K.Fastest]:{l1GasPrice:Xy(x||0n,K.Fastest),gasPrice:Xy(Q,K.Fastest),maxFeePerGas:L,maxPriorityFeePerGas:Xy(X,K.Fastest)}}}catch(L){throw new n("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}};return async function y(){try{let{maxFeePerGas:L,maxPriorityFeePerGas:X,gasPrice:J}=await f.getFeeData();if(Z){if(L===null||X===null)throw new n("toolbox_evm_no_fee_data");return{[K.Average]:{maxFeePerGas:L,maxPriorityFeePerGas:X},[K.Fast]:{maxFeePerGas:Xy(L,K.Fast),maxPriorityFeePerGas:Xy(X,K.Fast)},[K.Fastest]:{maxFeePerGas:Xy(L,K.Fastest),maxPriorityFeePerGas:Xy(X,K.Fastest)}}}if(!J)throw new n("toolbox_evm_no_gas_price");return{[K.Average]:{gasPrice:J},[K.Fast]:{gasPrice:Xy(J,K.Fast)},[K.Fastest]:{gasPrice:Xy(J,K.Fastest)}}}catch(L){throw new n("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}}}function T0({provider:T,isEIP1559Compatible:f,signer:Z,chain:y}){return async function L({callProvider:X,contractAddress:J,abi:x,funcName:Q,funcParams:q=[],txOverrides:z={},feeOption:M=K.Fast}){let G=X||T;if(!J)throw new n("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let B=y0({abi:x,funcName:Q});if(B&&iy(G)&&Z){let k=jy({provider:G,chain:y}),V=z?.from||await Z?.getAddress(),$=await k({contractAddress:J,abi:x,funcName:Q,funcParams:q,txOverrides:{...z,from:V}});return ry(G)($)}let W=NT(J,x,G);if(B){if(!Z)throw new n("toolbox_evm_no_signer");let k=z?.from||await Z.getAddress();if(!k)throw new n("toolbox_evm_no_signer_address");let V=W.connect(Z),$=Vy({provider:T,isEIP1559Compatible:f,chain:y}),{maxFeePerGas:j,maxPriorityFeePerGas:A,gasPrice:c}=(await $())[M],m=await W.getFunction(Q).estimateGas(...q,z),s=await V[Q](...q,{...z,gasLimit:m,maxFeePerGas:j,maxPriorityFeePerGas:A,gasPrice:c,nonce:z?.nonce||await G.getTransactionCount(k)});return typeof s?.hash==="string"?s?.hash:s}let Y=await W[Q]?.(...q);return typeof Y?.hash==="string"?Y?.hash:Y}}function ff({provider:T,chain:f}){return function Z({assetAddress:y,spenderAddress:L,from:X}){return T0({provider:T,isEIP1559Compatible:!0,chain:f})({contractAddress:y,abi:_T,funcName:"allowance",funcParams:[X,L]})}}function uX({provider:T,chain:f}){return async function Z({assetAddress:y,spenderAddress:L,from:X,amount:J=RT}){let x=await ff({provider:T,chain:f})({assetAddress:y,spenderAddress:L,from:X});return a1.fromBigInt(x).gte(a1.fromBigInt(BigInt(J)))}}function jX({signer:T,isEIP1559Compatible:f=!0,provider:Z,chain:y}){return async function L({assetAddress:X,spenderAddress:J,feeOptionKey:x=K.Fast,amount:Q,gasLimitFallback:q,from:z,nonce:M}){let G=[J,BigInt(Q||RT)],B=await T?.getAddress()||z,W={contractAddress:X,abi:_T,funcName:"approve",funcParams:G,signer:T,txOverrides:{from:B}};if(iy(Z)){let k=jy({provider:Z,chain:y}),V=ry(Z),$=await k(W);return V($)}return T0({provider:Z,isEIP1559Compatible:f,signer:T,chain:y})({...W,funcParams:G,txOverrides:{from:B,nonce:M,gasLimit:q?BigInt(q.toString()):void 0},feeOption:x})}}function hX({signer:T,isEIP1559Compatible:f=!0,provider:Z}){return async function y({assetValue:L,memo:X,recipient:J,feeOptionKey:x=K.Fast,sender:Q,...q}){let{hexlify:z,toUtf8Bytes:M}=await import("ethers"),G=L.getBaseValue("bigint"),B=L.chain,W=Q||await T?.getAddress(),Y=Lf({provider:Z,signer:T,isEIP1559Compatible:f,chain:B});if(!W)throw new n("toolbox_evm_no_from_address");if(L.isGasAsset){let c={...q,from:W,to:J,value:G,data:z(M(X||"")),feeOptionKey:x};return Y(c)}if(!ay(L,B))throw new n("toolbox_evm_no_contract_address");let{maxFeePerGas:V,maxPriorityFeePerGas:$,gasPrice:j}=(await Vy({provider:Z,isEIP1559Compatible:f,chain:B})())[x],A=await a5({provider:Z,signer:T,chain:B})({assetValue:L,memo:X,recipient:J,data:z(M(X||"")),sender:W,maxFeePerGas:V,maxPriorityFeePerGas:$,gasPrice:j});return Y(A)}}function Xf({provider:T,signer:f}){return function Z({contractAddress:y,abi:L,funcName:X,funcParams:J=[],txOverrides:x}){if(!y)throw new n("toolbox_evm_no_contract_address");let Q=NT(y,L,T);return f?Q.connect(f).getFunction(X).estimateGas(...J,x):Q.getFunction(X).estimateGas(...J,x)}}function nX({provider:T,signer:f}){return async function Z({assetValue:y,recipient:L,memo:X,data:J,sender:x,funcName:Q,funcParams:q,txOverrides:z}){let M=y.bigIntValue,G=y.isGasAsset?null:ay(y,y.chain);if(G&&Q)return Xf({provider:T,signer:f})({contractAddress:G,abi:_T,funcName:Q,funcParams:q,txOverrides:z});let{hexlify:B,toUtf8Bytes:W}=await import("ethers");return T.estimateGas({from:x,to:L,value:M,data:J?J:X?B(W(X)):void 0})}}function Lf({provider:T,signer:f,isEIP1559Compatible:Z=!0,chain:y}){return async function L({feeOptionKey:X=K.Fast,...J}){let{from:x,to:Q,data:q,value:z,...M}=J;if(!f)throw new n("toolbox_evm_no_signer");if(!Q)throw new n("toolbox_evm_no_to_address");let G={...M,data:q||"0x",to:Q,from:x,value:BigInt(z||0)};if(iy(T))return ry(T)(G);let B=x||await f.getAddress(),W=J.nonce||await T.getTransactionCount(B),Y=(await T.getNetwork()).chainId,k=pX(G)||Z,V=Vy({provider:T,isEIP1559Compatible:Z,chain:y}),$=k&&!(G.maxFeePerGas&&G.maxPriorityFeePerGas)||!G.gasPrice?Object.entries((await V())[X]).reduce((A,[c,m])=>({...A,[c]:UT(BigInt(m))}),{}):{},j;try{j=UT(G.gasLimit||await T.estimateGas(G)*11n/10n)}catch(A){throw new n("toolbox_evm_error_estimating_gas_limit",{error:A})}try{let A={...G,chainId:Y,type:k?2:0,gasLimit:j,nonce:W,...$};try{return(await f.sendTransaction(A)).hash}catch(c){let m=await f.signTransaction({...A,from:B});return(await T.broadcastTransaction(m)).hash}}catch(A){throw new n("toolbox_evm_error_sending_transaction",{error:A})}}}function a5({provider:T,signer:f}){return async function Z({assetValue:y,memo:L,recipient:X,data:J,sender:x,maxFeePerGas:Q,maxPriorityFeePerGas:q,gasPrice:z,...M}){let G=y.getBaseValue("bigint"),B=y.chain,W=x||await f?.getAddress();if(!W)throw new n("toolbox_evm_no_from_address");if(KX(y)){let{hexlify:V,toUtf8Bytes:$}=await import("ethers");return{...M,from:W,to:X,value:G,data:J||V($(L||""))}}let Y=ay(y,B);if(!Y)throw new n("toolbox_evm_no_contract_address");return jy({provider:T,chain:y.chain})({contractAddress:Y,abi:_T,funcName:"transfer",funcParams:[X,G],txOverrides:{from:W,maxFeePerGas:Q,maxPriorityFeePerGas:q,gasPrice:z}})}}function mX({provider:T,signer:f,chain:Z}){return async function y({assetAddress:L,spenderAddress:X,amount:J,from:x}){let Q=await f?.getAddress()||x,q=jy({provider:T,chain:Z}),z=["bigint","number"].includes(typeof J)?J:J||RT;return await q({contractAddress:L,abi:_T,funcName:"approve",funcParams:[X,BigInt(z)],txOverrides:{from:Q}})}}var RT,SX,bX,pX=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var DT=E(()=>{X0();RT=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");SX=["payable","nonpayable"];bX={[o.Arbitrum]:My.ARB,[o.Aurora]:My.AURORA,[o.Avalanche]:My.AVAX,[o.Base]:My.BASE,[o.Berachain]:My.BERA,[o.BinanceSmartChain]:My.BSC,[o.Ethereum]:My.ETH,[o.Gnosis]:My.GNO,[o.Optimism]:My.OP,[o.Polygon]:My.MATIC}});var Zf;var Jf=E(()=>{Zf=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{Chain as Ry,FeeOption as oX,SKConfig as cX}from"@swapkit/helpers";import{HDNodeWallet as gX}from"ethers";import{P as xf,match as tX}from"ts-pattern";async function y5({provider:T,...f}){let Z=await Ny(Ry.Ethereum)({provider:T,...f});async function y(L,X="0x5ba1e12693dc8f9c48aad8770482f4739beed696",J="aggregate",x=oX.Fast){let Q=await Z.createContractTxObject({contractAddress:X,abi:Zf,funcName:J,funcParams:[L]});return Z.sendTransaction({...Q,feeOptionKey:x})}return{...Z,multicall:y}}function Ny(T){return async function f({provider:Z,...y}){let L=cX.get("rpcUrls")[T],X=Z||await hy(T,L),J=J0(T),x=tX(y).with({phrase:xf.string},({phrase:q})=>gX.fromPhrase(q).connect(X)).with({signer:xf.any},({signer:q})=>q).otherwise(()=>{return});return{...dy({provider:X,signer:x,isEIP1559Compatible:J,chain:T}),getNetworkParams:Z0(T),getBalance:YT(T).getBalance}}}var T5,f5,X5,L5,Z5,J5,x5,Q5;var L0=E(()=>{sT();Jf();IT();DT();T5=Ny(Ry.Arbitrum),f5=Ny(Ry.Aurora),X5=Ny(Ry.Avalanche),L5=Ny(Ry.Base),Z5=Ny(Ry.Berachain),J5=Ny(Ry.BinanceSmartChain),x5=Ny(Ry.Gnosis),Q5=Ny(Ry.Polygon)});var Qf;var qf=E(()=>{Qf=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{BaseDecimal as dX,Chain as OT,ChainId as iX,ChainToExplorerUrl as rX,SKConfig as Mf,SwapKitError as aX}from"@swapkit/helpers";import{Contract as sX,HDNodeWallet as eX}from"ethers";import{P as zf}from"ts-pattern";import{match as y8}from"ts-pattern";function x0(T){return new sX(T8,Qf,T)}function kT(T){return function f(){let Z=x0(T);if(Z&&"l1BaseFee"in Z)return Z?.l1BaseFee();return}}function Gf(T){return async function f({from:Z,to:y,nonce:L,...X}){let{Transaction:J}=await import("ethers");if(!y)throw new aX("toolbox_evm_invalid_transaction",{error:"Missing to address"});return J.from({...X,authorizationList:X.authorizationList,to:y,nonce:L?L:Z?await T.getTransactionCount(Z):0}).serialized}}function Bf(T){return async function f(Z){let y=x0(T),L=await Gf(T)(Z);if(y&&"getL1Fee"in y)return y.getL1Fee(L)}}function Wf(T){return async function f(Z){let y=await T.send("eth_gasPrice",[]),L=await T.estimateGas(Z);return y.mul(L)}}function f8(T){return async function f(Z){let y=await Bf(T)(Z),L=await Wf(T)(Z);return y.add(L)}}function Q0(T){return async function f(Z){let y=x0(T),L=await Gf(T)(Z);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(L)}}async function q5({provider:T,...f}){let Z=OT.Optimism,y=Mf.get("rpcUrls")[Z],L=T||await hy(Z,y),X=y8(f).with({phrase:zf.string},({phrase:Q})=>eX.fromPhrase(Q).connect(L)).with({signer:zf.any},({signer:Q})=>Q).otherwise(()=>{return}),J=dy({provider:L,signer:X}),x=kT(L);return{...J,estimateL1Gas:Q0(L),estimateL1GasCost:Bf(L),estimateL2GasCost:Wf(L),estimateTotalGasCost:f8(L),getBalance:YT(OT.Optimism).getBalance,getL1GasPrice:x,getNetworkParams:X8}}var T8="0x420000000000000000000000000000000000000f",X8=()=>({chainId:iX.OptimismHex,chainName:"Optimism",nativeCurrency:{name:"Ethereum",symbol:OT.Ethereum,decimals:dX.ETH},rpcUrls:[Mf.get("rpcUrls")[OT.Optimism]],blockExplorerUrls:[rX[OT.Optimism]]});var q0=E(()=>{sT();qf();IT();DT()});var z0={};Jy(z0,{toChecksumAddress:()=>yf,isStateChangingCall:()=>y0,isBrowserProvider:()=>iy,getTokenAddress:()=>ay,getL1GasPriceFetcher:()=>kT,getEvmToolbox:()=>Hf,getEstimateGasPrices:()=>Vy,getEIP1193SendTransaction:()=>ry,getCreateContractTxObject:()=>jy,getCreateContract:()=>e5,getChecksumAddressFromAsset:()=>Tf,evmValidateAddress:()=>s5,estimateL1Gas:()=>Q0,createContract:()=>NT,OPToolbox:()=>q5,MAX_APPROVAL:()=>RT,MATICToolbox:()=>Q5,GNOToolbox:()=>x5,ETHToolbox:()=>y5,BaseEVMToolbox:()=>dy,BSCToolbox:()=>J5,BERAToolbox:()=>Z5,BASEToolbox:()=>L5,AVAXToolbox:()=>X5,AURORAToolbox:()=>f5,ARBToolbox:()=>T5});import{Chain as Gy,SwapKitError as L8}from"@swapkit/helpers";async function Hf(T,f){let Z={...f,provider:f?.provider||await hy(T)};switch(T){case Gy.Arbitrum:return T5(Z);case Gy.Aurora:return f5(Z);case Gy.Avalanche:return X5(Z);case Gy.Base:return L5(Z);case Gy.Berachain:return Z5(Z);case Gy.BinanceSmartChain:return J5(Z);case Gy.Gnosis:return x5(Z);case Gy.Optimism:return q5(Z);case Gy.Polygon:return Q5(Z);case Gy.Ethereum:return y5(Z);default:throw new L8("toolbox_evm_not_supported",{chain:T})}}var z5=E(()=>{IT();L0();q0();DT();L0();q0()});import{AssetValue as M5,BaseDecimal as Z8,Chain as p,ChainToExplorerUrl as J8,ChainToHexChainId as x8,FeeOption as Yf,SKConfig as Uf,SwapKitError as G0,SwapKitNumber as M0}from"@swapkit/helpers";async function hy(T,f){let{JsonRpcProvider:Z}=await import("ethers");return new Z(f||Uf.get("rpcUrls")[T])}function UT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function f0({provider:T,isEIP1559Compatible:f=!0}){return async function Z({feeOption:y=Yf.Fast,chain:L,...X}){let x=await Vy({provider:T,isEIP1559Compatible:f,chain:L})(),Q=await T.estimateGas(X),q=M5.from({chain:L}),{gasPrice:z,maxFeePerGas:M,maxPriorityFeePerGas:G}=x[y];if(!f&&z)return q.set(M0.fromBigInt(z*Q,q.decimal));if(M&&G){let B=(M+G)*Q;return q.set(M0.fromBigInt(B,q.decimal))}throw new G0("toolbox_evm_no_gas_price")}}function Z0(T){return()=>p.Ethereum===T?void 0:{...q8({chain:T}),chainId:x8[T],rpcUrls:[Uf.get("rpcUrls")[T]],blockExplorerUrls:[J8[T]]}}function J0(T){return![p.Arbitrum,p.BinanceSmartChain].includes(T)}function q8({chain:T}){let f=Z8[T];switch(T){case p.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{name:"Ethereum",symbol:p.Ethereum,decimals:f}};case p.Aurora:return{chainName:"Aurora Mainnet",nativeCurrency:{name:"Ethereum",symbol:p.Ethereum,decimals:f}};case p.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{name:"Avalanche",symbol:T,decimals:f}};case p.Base:return{chainName:"Base Mainnet",nativeCurrency:{name:"Ethereum",symbol:p.Ethereum,decimals:f}};case p.Berachain:return{chainName:"Berachain",nativeCurrency:{name:"Berachain",symbol:"BERA",decimals:f}};case p.BinanceSmartChain:return{chainName:"BNB Smart Chain Mainnet",nativeCurrency:{name:"Binance Coin",symbol:"BNB",decimals:f}};case p.Gnosis:return{chainName:"Gnosis",nativeCurrency:{name:"xDAI",symbol:"XDAI",decimals:f}};case p.Optimism:return{chainName:"OP Mainnet",nativeCurrency:{name:"Ethereum",symbol:p.Ethereum,decimals:f}};case p.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{name:"Polygon",symbol:p.Polygon,decimals:f}};default:throw new G0("toolbox_evm_not_supported",{chain:T})}}var Q8=async({from:T,memo:f="",feeOptionKey:Z=Yf.Fastest,assetValue:y,abi:L,funcName:X,funcParams:J,contractAddress:x,txOverrides:Q})=>{let{getEvmToolbox:q}=await Promise.resolve().then(() => (z5(),z0)),z=await q(y.chain),G=(await z.getBalance(T)).find(({symbol:A,chain:c})=>y?A===y.symbol:A===M5.from({chain:c})?.symbol),B=(await z.estimateGasPrices())[Z];if(!G)return M5.from({chain:y.chain});if(y&&(G.chain!==y.chain||G.symbol!==y?.symbol))return G;let W=L&&X&&J&&x?await z.estimateCall({contractAddress:x,abi:L,funcName:X,funcParams:J,txOverrides:Q}):await z.estimateGasLimit({sender:T,recipient:T,memo:f,assetValue:y}),Y="maxFeePerGas"in B,k="gasPrice"in B&&B.gasPrice!==void 0;if(!(B&&(k||Y)))throw new G0("toolbox_evm_no_fee_data");let V=Y?(B.maxFeePerGas||1n)+(B.maxPriorityFeePerGas||1n):B.gasPrice||1n,$=W*V,j=M0.fromBigInt(G.getBaseValue("bigint")).sub($.toString());return M5.from({chain:G.chain,value:j.getValue("string")})};var IT=E(()=>{DT()});var _f;var Rf=E(()=>{((Z)=>{Z.Test="goerli";Z.Main="homestead"})(_f||={})});var Nf={};Jy(Nf,{toHexString:()=>UT,toChecksumAddress:()=>yf,isStateChangingCall:()=>y0,isBrowserProvider:()=>iy,getTokenAddress:()=>ay,getProvider:()=>hy,getNetworkParams:()=>Z0,getL1GasPriceFetcher:()=>kT,getIsEIP1559Compatible:()=>J0,getEvmToolbox:()=>Hf,getEvmApi:()=>YT,getEstimateTransactionFee:()=>f0,getEstimateGasPrices:()=>Vy,getEIP1193SendTransaction:()=>ry,getCreateContractTxObject:()=>jy,getCreateContract:()=>e5,getChecksumAddressFromAsset:()=>Tf,evmValidateAddress:()=>s5,estimateMaxSendableAmount:()=>Q8,estimateL1Gas:()=>Q0,createCustomEvmApi:()=>$X,createContract:()=>NT,OPToolbox:()=>q5,MAX_APPROVAL:()=>RT,MATICToolbox:()=>Q5,GNOToolbox:()=>x5,EthNetwork:()=>_f,ETHToolbox:()=>y5,BaseEVMToolbox:()=>dy,BSCToolbox:()=>J5,BERAToolbox:()=>Z5,BASEToolbox:()=>L5,AVAXToolbox:()=>X5,AURORAToolbox:()=>f5,ARBToolbox:()=>T5});var X0=E(()=>{sT();IT();Rf();z5()});import{AssetValue as z8,Chain as M8,SwapKitNumber as Df}from"@swapkit/helpers";async function G8(T,f,Z){try{let y=await T.query.system?.account?.(Z);if(!y)return[f.set(0)];let{data:{free:L}}=y,X=Df.fromBigInt(BigInt(L.toString()),f.decimal).getValue("string");return[f.set(X)]}catch(y){return console.error("Error fetching substrate balance:",y),[f.set(0)]}}async function B8(T,f,Z){try{let y=await T.query.flip?.account?.(Z);if(!y)return[f.set(0)];let L=y.balance||y.data?.balance;if(!L||L.isEmpty)return[f.set(0)];let X=Df.fromBigInt(BigInt(L.toString()),f.decimal).getValue("string");return[f.set(X)]}catch(y){return console.error("Error fetching chainflip balance:",y),[f.set(0)]}}function kf(T,f){return function Z(y){let L=z8.from({chain:T});switch(T){case M8.Chainflip:return B8(f,L,y);default:return G8(f,L,y)}}}var If=()=>{};var W8,H8,Y8,$y;var B0=E(()=>{W8={prefix:0,network:"polkadot",displayName:"Polkadot Relay Chain",symbols:["DOT"],decimals:[10],standardAccount:"*25519",website:"https://polkadot.network"},H8={prefix:2112,network:"chainflip",displayName:"Chainflip",symbols:["FLIP"],decimals:[18],standardAccount:"*25519",website:"https://chainflip.io/"},Y8={prefix:42,network:"substrate",displayName:"Substrate",symbols:[],decimals:[],standardAccount:"*25519",website:"https://substrate.io/"},$y={DOT:W8,FLIP:H8,GENERIC:Y8}});import{hexToU8a as U8,isHex as _8,u8aToHex as R8}from"@polkadot/util";import{decodeAddress as Cf,encodeAddress as wf}from"@polkadot/util-crypto";import{AssetValue as N8,Chain as ey,SKConfig as D8,SwapKitError as Dy,SwapKitNumber as k8}from"@swapkit/helpers";import{P as Of,match as I8}from"ts-pattern";function O8(T,f){switch(T){case ey.Chainflip:return vf(f);case ey.Polkadot:return Ef(f);default:throw new Dy("toolbox_substrate_not_supported",{chain:T})}}function sy(T){return"address"in T}async function H0(T,f){let{Keyring:Z}=await import("@polkadot/api"),{cryptoWaitReady:y}=await import("@polkadot/util-crypto");return await y(),new Z({type:"sr25519",ss58Format:f}).addFromUri(T)}function V8(T,f){let Z=Cf(T);return wf(Z,f)}function Pf(T,f){return _8(T)?U8(T):Cf(T,void 0,f)}function lf(T,f="ss58",Z){if(f==="hex")return R8(T);return wf(T,Z)}async function _0({generic:T,chain:f,...Z}){let{ApiPromise:y,WsProvider:L}=await import("@polkadot/api"),X=new L(D8.get("rpcUrls")[f]),J=await y.create({provider:X}),x=N8.from({chain:f}),Q=T?$y.GENERIC:$y[f],q=await I8(Z).with({phrase:Of.string},({phrase:z})=>H0(z,$y[f].prefix)).with({signer:Of.any},({signer:z})=>z).otherwise(()=>{return});return Vf({api:J,signer:q,gasAsset:x,network:Q,chain:f})}var Ef=({generic:T=!1,...f}={})=>{return _0({chain:ey.Polkadot,generic:T,...f})},vf=async({generic:T=!1,...f}={})=>{return{...await _0({chain:ey.Chainflip,generic:T,...f})}},Y0=(T,f)=>T.rpc.system.accountNextIndex(f),W0=(T,f)=>{try{let Z=Pf(T,f);return lf(Z,"ss58",f),!0}catch(Z){return!1}},U0=(T,{recipient:f,assetValue:Z})=>T.tx.balances?.transferAllowDeath?.(f,Z.getBaseValue("number")),C8=async(T,f,{recipient:Z,assetValue:y,sender:L})=>{let X=U0(T,{recipient:Z,assetValue:y}),J=sy(f);if(!X)return;let x=J?f.address:L;if(!x)throw new Dy("core_transaction_invalid_sender_address");let Q=await Y0(T,x);return(await X.signAndSend(J?f:x,{signer:J?void 0:f,nonce:Q}))?.toString()},w8=async(T,f,Z,{recipient:y,assetValue:L,sender:X})=>{let J=U0(T,{recipient:y,assetValue:L}),x=sy(f)?f.address:X;if(!x)return;let Q=await J?.paymentInfo(x,{nonce:await Y0(T,x)})||{partialFee:0};return Z.set(k8.fromBigInt(BigInt(Q.partialFee.toString()),Z.decimal).getValue("string"))},E8=async(T,f)=>{if(f)return T.send(f);return(await T.send()).toString()},v8=async(T,f)=>{return await f.signAsync(T)},P8=(T,f,Z)=>{if(Z)return f.signAndSend(T,Z);return f.signAndSend(T).toString()},l8=async({signer:T,address:f,tx:Z,callback:y,api:L})=>{let X=await Y0(L,f);if(y)Z.signAndSend(f,{nonce:X,signer:T},y);return Z.signAndSend(f,{nonce:X,signer:T}).toString()},Vf=({api:T,network:f,gasAsset:Z,signer:y,chain:L})=>({api:T,network:f,gasAsset:Z,decodeAddress:Pf,encodeAddress:lf,convertAddress:V8,getBalance:kf(L||ey.Polkadot,T),createKeyring:(X)=>H0(X,f.prefix),getAddress:(X)=>{let J=X||y;if(!J)throw new Dy("core_wallet_not_keypair_wallet");return sy(J)?J.address:void 0},createTransaction:(X)=>U0(T,X),validateAddress:(X)=>W0(X,f.prefix),transfer:(X)=>{if(!y)throw new Dy("core_wallet_not_keypair_wallet");return C8(T,y,X)},estimateTransactionFee:(X)=>{if(!y)throw new Dy("core_wallet_not_keypair_wallet");return w8(T,y,Z,X)},sign:(X)=>{if(!y)throw new Dy("core_wallet_not_keypair_wallet");if(sy(y))return v8(y,X);throw new Dy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},broadcast:E8,signAndBroadcast:({tx:X,callback:J,address:x})=>{if(!y)throw new Dy("core_wallet_not_keypair_wallet");if(sy(y))return P8(y,X,J);if(x)return l8({signer:y,address:x,tx:X,callback:J,api:T});throw new Dy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")}}),$8=({address:T,chain:f})=>{let{prefix:Z}=f===ey.Polkadot?$y.DOT:$y.FLIP;return W0(T,Z)||W0(T,$y.GENERIC.prefix)};var $f=E(()=>{If();B0()});var R0={};Jy(R0,{substrateValidateAddress:()=>$8,isKeyringPair:()=>sy,getSubstrateToolbox:()=>O8,createSubstrateToolbox:()=>_0,createKeyring:()=>H0,SubstrateNetwork:()=>$y,PolkadotToolbox:()=>Ef,ChainflipToolbox:()=>vf,BaseSubstrateToolbox:()=>Vf});var N0=E(()=>{$f();B0()});import{networks as F8}from"@bitgo/utxo-lib";import{Chain as d,RequestClient as G5,SKConfig as D0,SwapKitError as Fy,warnOnce as Af}from"@swapkit/helpers";import{networks as K8}from"bitcoinjs-lib";import CT from"coininfo";async function A8({chain:T,txHash:f}){let Z=`${B5(T)}/push/transaction`,y=JSON.stringify({data:f});try{let L=await G5.post(Z,{headers:{"Content-Type":"application/json"},body:y});if(L.context.code!==200)throw new Fy("toolbox_utxo_broadcast_failed",{error:L.context.error||"Transaction broadcast failed"});return L.data?.transaction_hash||f}catch(L){let X=D0.get("rpcUrls")[T];if(X){let J=JSON.stringify({jsonrpc:"2.0",method:"sendrawtransaction",params:[f],id:r1()}),x=await G5.post(X,{headers:{"Content-Type":"application/json"},body:J});if(x.error)throw new Fy("toolbox_utxo_broadcast_failed",{error:x.error?.message});if(x.result.includes('"code":-26'))throw new Fy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return x.result}throw L}}function B5(T){return`https://api.blockchair.com/${S8(T)}`}function Ff(T){switch(T){case d.Bitcoin:return 5;case d.Dogecoin:return 1e4;case d.Litecoin:return 1;case d.Zcash:return 1;default:return 2}}function S8(T){switch(T){case d.BitcoinCash:return"bitcoin-cash";case d.Litecoin:return"litecoin";case d.Dash:return"dash";case d.Dogecoin:return"dogecoin";case d.Zcash:return"zcash";case d.Polkadot:return"polkadot";default:return"bitcoin"}}async function b8(T){try{let{feePerKb:f}=await G5.get(`https://app.bitgo.com/api/v2/${T.toLowerCase()}/tx/fee`),Z=f/1000;return Math.max(Z,Ff(T))}catch(f){return Ff(T)}}async function k0(T,f){let Z=await G5.get(`${T}${f?`${T.includes("?")?"&":"?"}key=${f}`:""}`);if(!Z||Z.context.code!==200)throw new Fy("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return Z.data}async function Sf({address:T,chain:f,apiKey:Z}){if(!T)throw new Fy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await k0(`${B5(f)}/dashboards/address/${T}?transaction_details=true`,Z))[T]}catch(y){return{utxo:[],address:{balance:0,transaction_count:0}}}}async function u8({address:T,chain:f,apiKey:Z}){return(await Sf({address:T,chain:f,apiKey:Z}))?.address.balance||0}async function bf({chain:T,apiKey:f,txHash:Z}){if(!Z)throw new Fy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await k0(`${B5(T)}/raw/transaction/${Z}`,f))?.[Z]?.raw_transaction||""}catch(y){return console.error("Failed to fetch raw transaction:",y),""}}async function j8({chain:T,address:f,apiKey:Z,offset:y=0,limit:L=30}){return(await k0(`${B5(T)}/outputs?q=recipient(${f}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${L}&offset=${y}`,Z)).map(({is_spent:Q,script_hex:q,block_id:z,transaction_hash:M,index:G,value:B,spending_signature_hex:W})=>({hash:M,index:G,value:B,txHex:W,script_hex:q,is_confirmed:z!==-1,is_spent:Q}))}function h8(T){return T.reduce((f,Z)=>f+Z.value,0)}function Kf(T,f){let Z=[...T].sort((y,L)=>L.value-y.value);if(f){let y=[],L=0;for(let X of Z)if(y.push(X),L+=X.value,L>=f)break;return y}return Z}async function uf({chain:T,address:f,apiKey:Z,targetValue:y,accumulativeValue:L=0,offset:X=0,limit:J=30}){if(!f)throw new Fy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let x=await j8({targetValue:y,chain:T,address:f,apiKey:Z,offset:X,limit:J}),q=x.length<J,z=x.filter(({is_spent:k})=>!k),M=h8(z),G=L+M,B=y&&G>=y;if(q||B)return Kf(z,y);let W=await uf({chain:T,address:f,apiKey:Z,offset:X+J,limit:J,accumulativeValue:G,targetValue:y}),Y=[...z,...W];return Kf(Y,y)}catch(x){return console.error("Failed to fetch unspent UTXOs:",x),[]}}async function n8({address:T,chain:f,apiKey:Z,fetchTxHex:y=!0,targetValue:L}){let X=await uf({chain:f,address:T,apiKey:Z,targetValue:L}),J=[];for(let{hash:x,index:Q,script_hex:q,value:z}of X){let M;if(y)M=await bf({txHash:x,chain:f,apiKey:Z});J.push({address:T,hash:x,index:Q,txHex:M,value:z,witnessUtxo:{value:z,script:Buffer.from(q,"hex")}})}return J}function p8(T){let f=D0.get("apiKeys").blockchair||"";return Af(!f,"No Blockchair API key found. Functionality will be limited."),{broadcastTx:(Z)=>A8({txHash:Z,chain:T}),getRawTx:(Z)=>bf({txHash:Z,chain:T,apiKey:f}),getSuggestedTxFee:()=>b8(T),getBalance:(Z)=>u8({address:Z,chain:T,apiKey:f}),getAddressData:(Z)=>Sf({address:Z,chain:T,apiKey:f}),getUtxos:(Z)=>n8({...Z,chain:T,apiKey:f})}}function m8(T){return T}function yy(T){let f=D0.get("apis")[T];if(f)return Af(!0,"Using custom UTXO API. Be sure to implement all methods to avoid issues."),f;return p8(T)}function By(){return function T(f){switch(f){case d.Bitcoin:return K8.bitcoin;case d.BitcoinCash:return CT.bitcoincash.main.toBitcoinJS();case d.Dash:return CT.dash.main.toBitcoinJS();case d.Litecoin:return CT.litecoin.main.toBitcoinJS();case d.Dogecoin:{let Z={private:70615956,public:70617039},y=CT.dogecoin.test;return y.versions.bip32=Z,CT.dogecoin.main.toBitcoinJS()}case d.Zcash:return F8.zcash;default:throw new Fy("toolbox_utxo_not_supported",{chain:f})}}}var jf=E(()=>{aT()});import{SwapKitError as nf}from"@swapkit/helpers";import pf from"bs58check";import mf from"cashaddrjs";function O0(T){try{return W5(T),!0}catch(f){return!1}}function C0(T){return W5(T)?.network}function yT(T){let f=W5(T);if(f?.format==="legacy")return T;return g8(f)}function wT(T){let f=W5(T);return t8(f)}function W5(T){try{let f=o8(T);if(f)return f}catch(f){}try{let f=c8(T);if(f)return f}catch(f){}throw new nf("toolbox_utxo_invalid_address",{address:T})}function o8(T){try{let f=pf.decode(T);if(f.length!==21)throw new nf("toolbox_utxo_invalid_address",{address:T});let Z=f[0],y=Array.prototype.slice.call(f,1);switch(Z){case b.legacy.mainnet.p2pkh:return{hash:y,format:"legacy",network:"mainnet",type:"p2pkh"};case b.legacy.mainnet.p2sh:return{hash:y,format:"legacy",network:"mainnet",type:"p2sh"};case b.legacy.testnet.p2pkh:return{hash:y,format:"legacy",network:"testnet",type:"p2pkh"};case b.legacy.testnet.p2sh:return{hash:y,format:"legacy",network:"testnet",type:"p2sh"};case b.bitpay.mainnet.p2pkh:return{hash:y,format:"bitpay",network:"mainnet",type:"p2pkh"};case b.bitpay.mainnet.p2sh:return{hash:y,format:"bitpay",network:"mainnet",type:"p2sh"};default:return}}catch(f){return}}function c8(T){if(T.indexOf(":")!==-1)try{return hf(T)}catch(f){}else{let f=["bitcoincash","bchtest","bchreg"];for(let Z of f)try{return hf(`${Z}:${T}`)}catch(y){}}return}function hf(T){try{let{hash:f,prefix:Z,type:y}=mf.decode(T);return{format:"cashaddr",hash:Array.prototype.slice.call(f,0),network:Z==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch(f){return}}function g8(T){let f=b.legacy[T.network][T.type],Z=Buffer.alloc(1+T.hash.length);return Z[0]=f,Z.set(T.hash,1),pf.encode(Z)}function t8(T){let f=T.network==="mainnet"?"bitcoincash":"bchtest",Z=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return mf.encode(f,Z,y)}var I0,b;var of=E(()=>{((Z)=>{Z.Mainnet="mainnet";Z.Testnet="testnet"})(I0||={});b={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{Chain as ny,SwapKitError as d8}from"@swapkit/helpers";var H5=(T)=>{switch(T){case ny.Bitcoin:case ny.BitcoinCash:return 550;case ny.Dash:case ny.Litecoin:return 5500;case ny.Dogecoin:return 1e5;case ny.Zcash:return 546;default:throw new d8("toolbox_utxo_not_supported",{chain:T})}},Wy=({inputs:T,outputs:f,feeRate:Z=1,chain:y=ny.Bitcoin,changeAddress:L=""})=>{let X=Math.ceil(Z),J=T[0]&&"address"in T[0]&&T[0].address?vT(T[0].address):"P2PKH",x=T.filter((B)=>Ky(B)*X<=B.value),Q=Y5+f.reduce((B,W)=>B+ET(W,J),0),q=f.reduce((B,W)=>B+W.value,0),z=Q*X,M=0,G=[];for(let B of x){let W=Ky(B),Y=X*W;z+=Y,M+=B.value,G.push(B);let k=z+q;if(M<k)continue;let V=M-k,$=X*ET({address:"",value:0},J);if(V>$){let j=$+z,A=M-(q+j);if(A>Math.max(Ky({})*X,H5(y)))return{inputs:G,outputs:f.concat({value:A,address:L}),fee:j}}return{inputs:G,outputs:f,fee:z}}return{fee:X*TT({inputs:T,outputs:f,feeRate:X})}};var cf=E(()=>{fT()});import{SwapKitError as i8}from"@swapkit/helpers";import{opcodes as r8,script as a8}from"bitcoinjs-lib";function Hy(T){let f=Buffer.from(T,"utf8");return a8.compile([r8.OP_RETURN,f])}var s8=1000,Y5=10,gf=10,e8=41,yL=107,U5,_5,PT,vT=(T)=>{if(T.startsWith("bc1")||T.startsWith("tb1")||T.startsWith("ltc1")||T.startsWith("tltc1"))return"P2WPKH";if(T.startsWith("1")||T.startsWith("m")||T.startsWith("n")||T.startsWith("bitcoincash:q")||T.startsWith("bitcoincash:p")||T.startsWith("q")||T.startsWith("p")||T.startsWith("L")||T.startsWith("M")||T.startsWith("3")||T.startsWith("D")||T.startsWith("A")||T.startsWith("9")||T.startsWith("X")||T.startsWith("7")||T.startsWith("y")||T.startsWith("t1")||T.startsWith("t3")||T.startsWith("tm"))return"P2PKH";throw new i8("toolbox_utxo_invalid_address",{address:T})},TT=({inputs:T,outputs:f,feeRate:Z})=>{let y=T[0]&&"address"in T[0]&&T[0].address?vT(T[0].address):"P2PKH",L=T.filter((J)=>J.value>=_5["type"in J?J.type:"P2PKH"]*Math.ceil(Z)).reduce((J,x)=>J+Ky(x),0),X=f?.reduce((J,x)=>J+ET(x),0)||PT[y];return Y5+L+X},Ky=(T)=>{if("type"in T)return _5[T.type];if("address"in T&&T.address)return _5[vT(T.address)];return e8+yL},ET=(T,f)=>{if(T?.script)return gf+T.script.length+(T.script.length>=74?2:1);if(f)return PT[f];return PT.P2PKH};var tf=E(()=>{((Z)=>{Z.P2PKH="P2PKH";Z.P2WPKH="P2WPKH"})(U5||={});_5={["P2PKH"]:148,["P2WPKH"]:68},PT={["P2PKH"]:34,["P2WPKH"]:31}});var fT=E(()=>{jf();of();cf();tf()});import{crypto as TL,ECPair as rf,bitgo as fL,networks as XL,address as af}from"@bitgo/utxo-lib";import{HDKey as sf}from"@scure/bip32";import{mnemonicToSeedSync as ef}from"@scure/bip39";import{Chain as R5,FeeOption as LL,NetworkDerivationPath as ZL,SKConfig as JL,SwapKitError as N5,derivationPathToString as xL,updateDerivationPath as QL}from"@swapkit/helpers";import y2 from"bs58check";import{P as w0,match as qL}from"ts-pattern";function E0(){return XL.zcash}function T2(){return{messagePrefix:`\x18ZCash Signed Message:
2
- `,bech32:void 0,bip32:{public:76067358,private:76066276},pubKeyHash:28,scriptHash:28,wif:128}}function lT(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=E0();try{return af.toOutputScript(T,f),!0}catch{let Z=y2.decode(T);if(Z.length<21)return!1;let y=Z[0];return y===f.pubKeyHash||y===f.scriptHash}}catch{return!1}}function zL({phrase:T,derivationPath:f}){let Z=ef(T),L=sf.fromMasterSeed(Z).derive(f);if(!L.privateKey)throw new N5("toolbox_utxo_invalid_params");let X=T2(),J=rf.fromPrivateKey(Buffer.from(L.privateKey),{network:X}),x=TL.hash160(J.publicKey),{isStagenet:Q}=JL.get("envs"),q=Q?Buffer.from([29,37]):Buffer.from([28,184]),z=Buffer.concat([q,x]),M=y2.encode(z);return{getAddress:()=>Promise.resolve(M),signTransaction:(G)=>{let B=G.signAllInputs(J);return Promise.resolve(B)}}}function ML({inputs:T,outputs:f,psbt:Z,sender:y,compiledMemo:L}){for(let X of T){let J=!!X.witnessUtxo&&{witnessUtxo:{...X.witnessUtxo,value:BigInt(X.value)}},x=!X.witnessUtxo&&{nonWitnessUtxo:X.txHex?Buffer.from(X.txHex,"hex"):void 0};Z.addInput({hash:X.hash,index:X.index,...J,...x})}for(let X of f){let J="address"in X&&X.address?X.address:y,x=X.script;if(x&&!L)continue;let Q=x?{script:L,value:0n}:{script:af.toOutputScript(J,E0()),value:BigInt(X.value)};Z.addOutput(Q)}return{psbt:Z,inputs:T}}async function df(T){let{assetValue:f,recipient:Z,memo:y,feeRate:L,sender:X,fetchTxHex:J}=T,x=y?Hy(y):null,Q=await yy(R5.Zcash).getUtxos({address:X,fetchTxHex:J!==!1}),q=[{address:Z,value:Number(f.getBaseValue("string"))},...x?[{script:x,value:0}]:[]],{inputs:z,outputs:M}=Wy({inputs:Q,outputs:q,feeRate:L,chain:R5.Zcash,changeAddress:X});if(!(z&&M))throw new N5("toolbox_utxo_insufficient_balance",{sender:X,assetValue:f});let G=fL.createPsbtForNetwork({network:E0()},{version:455});G.setVersion(4,!0);let B=Buffer.concat([Buffer.of(252),Buffer.of(5),Buffer.from("BITGO"),Buffer.of(0)]),W=3370586197,Y=Buffer.allocUnsafe(4);Y.writeUInt32LE(W>>>0,0),G.addUnknownKeyValToGlobal({key:B,value:Y});let{psbt:k,inputs:V}=await ML({inputs:z,outputs:M,psbt:G,sender:X,compiledMemo:x});return{inputs:V,outputs:M,psbt:k}}async function v0(T){let f=await qL(T).with({signer:w0.not(w0.nullish)},({signer:J})=>Promise.resolve(J)).with({phrase:w0.string},({phrase:J,derivationPath:x,index:Q=0})=>{let q=x||ZL[R5.Zcash]||[44,133,0,0,0],z=QL(q,{index:Q}),M=xL(z);return zL({phrase:J,derivationPath:M})}).otherwise(()=>Promise.resolve(void 0)),Z=await py({chain:R5.Zcash,signer:f});async function y({recipient:J,assetValue:x,feeOptionKey:Q=LL.Fast,...q}){let z=await f?.getAddress();if(!(f&&z))throw new N5("toolbox_utxo_no_signer");let M=q.feeRate||(await Z.getFeeRates())[Q],{psbt:G}=await df({...q,assetValue:x,feeRate:M,recipient:J,sender:z}),B=await f.signTransaction(G);return B.finalizeAllInputs(),Z.broadcastTx(B.extractTransaction().toHex())}function L({phrase:J,derivationPath:x="m/44'/133'/0'/0/0"}){let Q=ef(J),z=sf.fromMasterSeed(Q).derive(x);if(!z.privateKey)throw new N5("toolbox_utxo_invalid_params");let M=T2();return rf.fromPrivateKey(Buffer.from(z.privateKey),{network:M})}function X({phrase:J,derivationPath:x="m/44'/133'/0'/0/0"}){return L({phrase:J,derivationPath:x}).toWIF()}return{...Z,transfer:y,createTransaction:df,createKeysForPath:L,getPrivateKeyFromMnemonic:X,validateAddress:lT}}var VT=E(()=>{fT();$T()});import{AssetValue as P0,Chain as Qy,DerivationPath as GL,FeeOption as ky,NetworkDerivationPath as BL,SwapKitError as Iy,SwapKitNumber as WL,applyFeeMultiplier as f2,derivationPathToString as HL,updateDerivationPath as YL}from"@swapkit/helpers";import{Psbt as UL,address as _L,initEccLib as Z2,payments as X2}from"bitcoinjs-lib";import{ECPairFactory as RL}from"ecpair";import l0 from"@bitcoinerlab/secp256k1";import{ECPair as NL,HDNode as DL}from"@psf/bitcoincashjs-lib";import{HDKey as kL}from"@scure/bip32";import{mnemonicToSeedSync as L2}from"@scure/bip39";function J2({inputs:T,outputs:f,chain:Z,psbt:y,sender:L,compiledMemo:X}){for(let J of T){let x=!!J.witnessUtxo&&!FT.includes(Z)&&{witnessUtxo:J.witnessUtxo},Q=FT.includes(Z)&&{nonWitnessUtxo:J.txHex?Buffer.from(J.txHex,"hex"):void 0};y.addInput({hash:J.hash,index:J.index,...x,...Q})}for(let J of f){let x="address"in J&&J.address?J.address:L,Q=J.script;if(Q&&!X)continue;let q=Q?{script:X,value:0}:{address:x,value:J.value};Z2(l0),y.addOutput(q)}return{psbt:y,inputs:T}}async function x2({assetValue:T,recipient:f,memo:Z,feeRate:y,sender:L,fetchTxHex:X=!1}){let J=T.chain,x=Z?await Hy(Z):null,Q=await z2({assetValue:T,recipient:f,memo:Z,sender:L,fetchTxHex:X}),{inputs:q,outputs:z}=Wy({...Q,feeRate:y,chain:J});if(!(q&&z))throw new Iy("toolbox_utxo_insufficient_balance",{sender:L,assetValue:T});let M=await By(),G=new UL({network:M(J)});if(J===Qy.Dogecoin)G.setMaximumFeeRate(650000000);let{psbt:B,inputs:W}=await J2({inputs:q,outputs:z,chain:J,psbt:G,sender:L,compiledMemo:x});return{psbt:B,utxos:Q.inputs,inputs:W}}async function Q2(){let T=await By();return function f({address:Z,chain:y}){if(y===Qy.BitcoinCash)return my(Z);if(y===Qy.Zcash)return lT(Z);try{return Z2(l0),_L.toOutputScript(Z,T(y)),!0}catch(L){return!1}}}async function IL({chain:T,phrase:f,derivationPath:Z}){let y=(await KT(T))({phrase:f,derivationPath:Z});async function L(J){return await J.signAllInputs(y),J}async function X(){return(await V0(T))(y)}return{getAddress:X,signTransaction:L}}async function py({chain:T,...f}){let Z="phrase"in f?f.phrase:void 0,y="index"in f?f.index||0:0,L=HL("derivationPath"in f&&f.derivationPath?f.derivationPath:YL(BL[T],{index:y})),X=Z?await IL({chain:T,phrase:Z,derivationPath:L}):("signer"in f)?f.signer:void 0;function J(){return Promise.resolve(X?.getAddress())}let x=await V0(T),Q=await Q2(),q=await KT(T);return{accumulative:Wy,calculateTxSize:TT,getAddressFromKeys:x,getAddress:J,validateAddress:(z)=>Q({address:z,chain:T}),broadcastTx:(z)=>yy(T).broadcastTx(z),createTransaction:x2,createKeysForPath:q,getFeeRates:()=>AT(T),getInputsOutputsFee:q2,transfer:wL(X),getPrivateKeyFromMnemonic:(z)=>{return q(z).toWIF()},getBalance:rT(T),estimateTransactionFee:CL(T),estimateMaxSendableAmount:OL(T)}}async function q2({assetValue:T,feeOptionKey:f=ky.Fast,feeRate:Z,memo:y,sender:L,recipient:X}){let J=T.chain,x=await z2({assetValue:T,sender:L,memo:y,recipient:X}),Q=Z?Math.floor(Z):(await AT(J))[f];return Wy({...x,feeRate:Q,chain:J})}function OL(T){return async function f({from:Z,memo:y,feeRate:L,feeOptionKey:X=ky.Fast,recipients:J=1}){let x=await yy(T).getAddressData(Z),Q=L?Math.ceil(L):(await AT(T))[X],q=x?.utxo.map((W)=>({...W,type:"P2PKH",hash:""})).filter((W)=>W.value>Math.max(H5(T),Ky(W)*Q));if(!q?.length)return P0.from({chain:T});let z=P0.from({chain:T,value:q.reduce((W,Y)=>W+Y.value,0)}),M=typeof J==="number"?Array.from({length:J},()=>({address:Z,value:0})):J;if(y){let W=await Hy(y);M.push({address:Z,script:W,value:0})}let B=TT({inputs:q,outputs:M,feeRate:Q})*Q;return z.sub(B)}}function CL(T){return async(f)=>{let Z=await q2(f);return P0.from({chain:T,value:WL.fromBigInt(BigInt(Z.fee),8).getValue("string")})}}async function KT(T){let f=await By();switch(T){case Qy.BitcoinCash:return function Z({phrase:y,derivationPath:L=`${GL.BCH}/0`,wif:X}){let J=f(T);if(X)return NL.fromWIF(X,J);if(!y)throw new Iy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return DL.fromSeedBuffer(Buffer.from(L2(y)),J).derivePath(L).keyPair};case Qy.Bitcoin:case Qy.Dogecoin:case Qy.Litecoin:case Qy.Zcash:case Qy.Dash:return function Z({phrase:y,wif:L,derivationPath:X}){if(!(L||y))throw new Iy("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let J=RL(l0),x=f(T);if(L)return J.fromWIF(L,x);let Q=L2(y),q=kL.fromMasterSeed(Q,x).derive(X);if(!q.privateKey)throw new Iy("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return J.fromPrivateKey(Buffer.from(q.privateKey),{network:x})};default:throw new Iy("toolbox_utxo_not_supported",{chain:T})}}async function V0(T){let f=await By();return function Z(y){if(!y)throw new Iy("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let L=FT.includes(T)?X2.p2pkh:X2.p2wpkh,{address:X}=L({pubkey:y.publicKey,network:f(T)});if(!X)throw new Iy("toolbox_utxo_invalid_address",{error:"Address not defined"});return X}}function wL(T){return async function f({memo:Z,recipient:y,feeOptionKey:L,feeRate:X,assetValue:J}){let x=await T?.getAddress(),Q=J.chain;if(!(T&&x))throw new Iy("toolbox_utxo_no_signer");if(!y)throw new Iy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let q=X||(await AT(Q))[L||ky.Fast],{psbt:z}=await x2({recipient:y,feeRate:q,sender:x,assetValue:J,memo:Z}),M=await T.signTransaction(z);return M.finalizeAllInputs(),yy(Q).broadcastTx(M.extractTransaction().toHex())}}async function AT(T){let f=await yy(T).getSuggestedTxFee();return{[ky.Average]:f,[ky.Fast]:f2(f,ky.Fast),[ky.Fastest]:f2(f,ky.Fastest)}}async function z2({assetValue:T,recipient:f,memo:Z,sender:y,fetchTxHex:L=!1}){let X=T.chain,J=(await AT(X))[ky.Fastest],x=L||FT.includes(X),Q=T.getBaseValue("number"),q=Math.ceil(Q+J*5000);return{inputs:await yy(X).getUtxos({address:y,fetchTxHex:x,targetValue:q}),outputs:[{address:f,value:Q},...Z?[{address:"",script:await Hy(Z),value:0}]:[]]}}var FT;var $T=E(()=>{aT();fT();ST();VT();FT=[Qy.Dash,Qy.Dogecoin]});import{Transaction as EL,TransactionBuilder as vL,address as PL}from"@psf/bitcoincashjs-lib";import{Chain as lL,FeeOption as VL,NetworkDerivationPath as $L,SwapKitError as XT,derivationPathToString as FL,updateDerivationPath as KL}from"@swapkit/helpers";import{Psbt as AL}from"bitcoinjs-lib";function LT(T){return T.replace(/(bchtest:|bitcoincash:)/,"")}function my(T){let f=LT(T);return O0(f)&&C0(f)==="mainnet"}function oy(T){return LT(wT(T))}async function SL(T){async function f({builder:y,utxos:L}){return L.forEach((X,J)=>{y.sign(J,T,void 0,65,X.witnessUtxo?.value)}),y.build()}return{getAddress:()=>{let y=T.getAddress(0);return Promise.resolve(oy(y))},signTransaction:f}}async function $0(T){let f="phrase"in T?T.phrase:void 0,Z="index"in T?T.index||0:0,y=FL("derivationPath"in T&&T.derivationPath?T.derivationPath:KL($L[qy],{index:Z})),L=f?(await KT(qy))({phrase:f,derivationPath:y}):void 0,X=L?await SL(L):("signer"in T)?T.signer:void 0;function J(){return Promise.resolve(X?.getAddress())}let{getBalance:x,getFeeRates:Q,broadcastTx:q,...z}=await py({chain:qy});function M(G,B=!0){return x(LT(wT(G)))}return{...z,getAddress:J,broadcastTx:q,createTransaction:M2,buildTx:uL,getAddressFromKeys:jL,getBalance:M,getFeeRates:Q,stripPrefix:LT,stripToCashAddress:oy,validateAddress:my,transfer:bL({getFeeRates:Q,broadcastTx:q,signer:X})}}async function M2({assetValue:T,recipient:f,memo:Z,feeRate:y,sender:L}){if(!my(f))throw new XT("toolbox_utxo_invalid_address",{address:f});let X=Math.ceil(T.getBaseValue("number")+y*7500),J=await yy(qy).getUtxos({address:oy(L),fetchTxHex:!0,targetValue:X}),x=Z?await Hy(Z):null,Q=[];Q.push({address:f,value:T.getBaseValue("number")});let{inputs:q,outputs:z}=Wy({inputs:J,outputs:Q,feeRate:y,chain:qy});if(!(q&&z))throw new XT("toolbox_utxo_insufficient_balance",{sender:L,assetValue:T});let M=await By(),G=new vL(M(qy));await Promise.all(q.map(async(B)=>{let W=await yy(qy).getRawTx(B.hash);G.addInput(EL.fromBuffer(Buffer.from(W,"hex")),B.index)}));for(let B of z){let W="address"in B&&B.address?B.address:yT(L),Y=await By(),k=PL.toOutputScript(yT(W),Y(qy));G.addOutput(k,B.value)}if(x)G.addOutput(x,0);return{builder:G,utxos:q}}function bL({broadcastTx:T,getFeeRates:f,signer:Z}){return async function y({recipient:L,assetValue:X,feeOptionKey:J=VL.Fast,...x}){let Q=await Z?.getAddress();if(!(Z&&Q))throw new XT("toolbox_utxo_no_signer");if(!L)throw new XT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let q=x.feeRate||(await f())[J],{builder:z,utxos:M}=await M2({...x,assetValue:X,feeRate:q,recipient:L,sender:Q}),B=(await Z.signTransaction({builder:z,utxos:M})).toHex();return T(B)}}async function uL({assetValue:T,recipient:f,memo:Z,feeRate:y,sender:L,setSigHashType:X}){let J=wT(f);if(!my(J))throw new XT("toolbox_utxo_invalid_address",{address:J});let x=Math.ceil(T.getBaseValue("number")+y*7500),Q=await yy(qy).getUtxos({address:oy(L),fetchTxHex:!1,targetValue:x}),q=Number(y.toFixed(0)),z=Z?await Hy(Z):null,M=[];if(M.push({address:yT(f),value:T.getBaseValue("number")}),z)M.push({script:z,value:0});let{inputs:G,outputs:B}=Wy({inputs:Q,outputs:M,feeRate:q,chain:qy});if(!(G&&B))throw new XT("toolbox_utxo_insufficient_balance",{sender:L,assetValue:T});let W=await By(),Y=new AL({network:W(qy)});for(let{hash:k,index:V,witnessUtxo:$}of G)Y.addInput({hash:k,index:V,witnessUtxo:$,sighashType:X?65:void 0});for(let k of B){let V="address"in k&&k.address?k.address:yT(L),$=k.script?z?{script:z,value:0}:void 0:{address:V,value:k.value};if($)Y.addOutput($)}return{psbt:Y,utxos:Q,inputs:G}}function jL(T){let f=T.getAddress(0);return oy(f)}var qy;var ST=E(()=>{fT();$T();qy=lL.BitcoinCash});import{Chain as ZT,SwapKitError as hL}from"@swapkit/helpers";async function nL(T,f){switch(T){case ZT.BitcoinCash:return await $0(f||{});case ZT.Zcash:return await v0(f);case ZT.Bitcoin:case ZT.Dogecoin:case ZT.Litecoin:case ZT.Dash:return await py({chain:T,...f});default:throw new hL("toolbox_utxo_not_supported",{chain:T})}}var G2=E(()=>{ST();$T();VT();ST();VT()});var F0={};Jy(F0,{validateZcashAddress:()=>lT,toLegacyAddress:()=>yT,toCashAddress:()=>wT,stripToCashAddress:()=>oy,stripPrefix:()=>LT,nonSegwitChains:()=>FT,isValidAddress:()=>O0,getUtxoToolbox:()=>nL,getUtxoNetwork:()=>By,getUtxoApi:()=>yy,getUTXOAddressValidator:()=>Q2,getScriptTypeForAddress:()=>vT,getOutputSize:()=>ET,getInputSize:()=>Ky,getDustThreshold:()=>H5,getCreateKeysForPath:()=>KT,detectAddressNetwork:()=>C0,createZcashToolbox:()=>v0,createUTXOToolbox:()=>py,createCustomUtxoApi:()=>m8,createBCHToolbox:()=>$0,compileMemo:()=>Hy,calculateTxSize:()=>TT,bchValidateAddress:()=>my,addressFromKeysGetter:()=>V0,addInputsAndOutputs:()=>J2,accumulative:()=>Wy,UtxoNetwork:()=>I0,UTXOScriptType:()=>U5,TX_OVERHEAD:()=>Y5,OutputSizes:()=>PT,OP_RETURN_OVERHEAD:()=>gf,MIN_TX_FEE:()=>s8,InputSizes:()=>_5});var K0=E(()=>{G2();ST();$T();VT();fT()});import{AssetValue as A0,BaseDecimal as H2,Chain as JT,DerivationPath as pL,NetworkDerivationPath as mL,SKConfig as oL,SwapKitError as gy,derivationPathToString as cL,updateDerivationPath as gL}from"@swapkit/helpers";import{P as B2}from"ts-pattern";import{match as tL}from"ts-pattern";async function dL(T){try{let f=await fetch(`https://lite-api.jup.ag/tokens/v1/token/${T}`);if(!f.ok)return null;return await f.json()}catch{return null}}async function iL(T){let f=await cy(),{PublicKey:Z}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),L=new Z(T),X=[],J=await f.getBalance(L);if(J>0)X.push(A0.from({chain:JT.Solana,value:J,fromBaseDecimal:H2[JT.Solana]}));let x=await f.getParsedTokenAccountsByOwner(L,{programId:y});for(let{account:Q}of x.value){let q=Q.data.parsed.info,z=q.mint,M=q.tokenAmount.amount;if(Number(M)===0)continue;let G=await dL(z),B=G?.symbol||"UNKNOWN",W=G?.decimals||q.tokenAmount.decimals;X.push(A0.from({asset:`${JT.Solana}.${B}-${z}`,value:M,fromBaseDecimal:W}))}return X}async function u0(){let{PublicKey:T}=await import("@solana/web3.js");return(f)=>{try{let Z=new T(f);return T.isOnCurve(Z.toBytes())}catch(Z){return!1}}}async function rL(T){let f=T&&"index"in T?T.index||0:0,Z=cL(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:gL(mL[JT.Solana],{index:f})),y=await tL(T).with({phrase:B2.string},({phrase:X})=>b0({phrase:X,derivationPath:Z})).with({signer:B2.any},({signer:X})=>X).otherwise(()=>{return});function L(){return y?.publicKey?W2(y.publicKey):""}return{getConnection:cy,getAddress:L,createKeysForPath:b0,getAddressFromPubKey:W2,getPubkeyFromAddress:h0,createTransaction:j0(cy),createTransactionFromInstructions:yZ,getBalance:(X)=>{let J=X||L();if(!J)throw new gy("core_wallet_connection_not_found");return iL(J)},transfer:TZ(cy,y),broadcastTransaction:S0(cy),getAddressValidator:u0,signTransaction:fZ(cy,y),estimateTransactionFee:aL(cy)}}function aL(T){return async({recipient:f,assetValue:Z,memo:y,isProgramDerivedAddress:L,sender:X})=>{let J=await T(),Q=(await j0(T)({recipient:f,assetValue:Z,memo:y,isProgramDerivedAddress:L,sender:X})).compileMessage(),q=await J.getFeeForMessage(Q);if(q.value===null)throw new gy("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");return A0.from({chain:JT.Solana,value:q.value,fromBaseDecimal:H2[JT.Solana]})}}async function cy(){let{Connection:T}=await import("@solana/web3.js");return new T(oL.get("rpcUrls").SOL,"confirmed")}function sL(T){return async({assetValue:f,recipient:Z,sender:y,isProgramDerivedAddress:L})=>{let X=await T(),J=await h0(y);if(f.isGasAsset){let{Transaction:x,SystemProgram:Q,PublicKey:q}=await import("@solana/web3.js");return new x().add(Q.transfer({fromPubkey:J,lamports:f.getBaseValue("number"),toPubkey:new q(Z)}))}if(f.address)return eL({amount:f.getBaseValue("number"),connection:X,decimals:f.decimal,from:J,recipient:Z,tokenAddress:f.address,isProgramDerivedAddress:L});return}}async function eL({tokenAddress:T,recipient:f,from:Z,connection:y,amount:L,decimals:X,isProgramDerivedAddress:J}){let{getAssociatedTokenAddress:x,getAccount:Q,createAssociatedTokenAccountInstruction:q,createTransferCheckedInstruction:z}=await import("@solana/spl-token"),{Transaction:M,PublicKey:G}=await import("@solana/web3.js"),B=new M,W=new G(T),Y=await x(W,Z),k=new G(f),V=await x(W,k,J),$=!1;try{await Q(y,V),$=!0}catch(j){}if(!$)B.add(q(Z,V,k,W));return B.add(z(Y,W,V,Z,L,X)),B}function j0(T){return async({recipient:f,assetValue:Z,memo:y,isProgramDerivedAddress:L,sender:X})=>{let{createMemoInstruction:J}=await import("@solana/spl-memo"),x=await h0(X),Q=await u0();if(!(L||Q(f)))throw new gy("core_transaction_invalid_recipient_address");let q=await T(),z=await sL(T)({assetValue:Z,recipient:f,sender:X,isProgramDerivedAddress:L});if(!z)throw new gy("core_transaction_invalid_sender_address");if(y)z.add(J(y));let M=await q.getLatestBlockhash();return z.recentBlockhash=M.blockhash,z.feePayer=x,z}}async function yZ({instructions:T}){let{Transaction:f}=await import("@solana/web3.js"),Z=new f().add(...T);if(!Z)throw new gy("core_transaction_invalid_sender_address");return Z}function TZ(T,f){return async({recipient:Z,assetValue:y,memo:L,isProgramDerivedAddress:X})=>{if(!f)throw new gy("core_transaction_invalid_sender_address");let J=f.publicKey?.toString()??(await f.connect()).publicKey.toString(),x=await j0(T)({recipient:Z,assetValue:y,memo:L,isProgramDerivedAddress:X,sender:J});if("connect"in f){let Q=await f.signTransaction(x);return S0(T)(Q)}return x.sign(f),S0(T)(x)}}function S0(T){return async(f)=>{return(await T()).sendRawTransaction(f.serialize())}}function fZ(T,f){return async(Z)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!f)throw new gy("toolbox_solana_no_signer");if(!(Z instanceof y)){let X=await(await T()).getLatestBlockhash();Z.recentBlockhash=X.blockhash,Z.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(Z);return await Z.sign([f]),Z}}async function b0({phrase:T,derivationPath:f=pL.SOL}){let{HDKey:Z}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:y}=await import("@scure/bip39"),{Keypair:L}=await import("@solana/web3.js"),X=y(T),J=Z.fromMasterSeed(X);return L.fromSeed(J.derive(f,!0).privateKey)}function W2(T){return T.toString()}async function h0(T){let{PublicKey:f}=await import("@solana/web3.js");return new f(T)}var Y2=()=>{};var n0={};Jy(n0,{getSolanaToolbox:()=>rL,getSolanaAddressValidator:()=>u0,createKeysForPath:()=>b0});var p0=E(()=>{Y2()});import{SwapKitError as XZ,derivationPathToString as LZ}from"@swapkit/helpers";import{KeyPairSigner as ZZ}from"near-api-js";async function bT(){let{validateAccountId:T}=await import("near-sdk-js");return(f)=>{try{return T(f)}catch{let Z=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return f.length>=2&&f.length<=64&&Z.test(f)}}}async function D5(T){let{parseSeedPhrase:f}=await import("near-seed-phrase"),{KeyPair:Z}=await import("near-api-js"),y=T.index||0,L=T.derivationPath?LZ(T.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:X}=f(T.phrase,L),J=Z.fromString(X);return _2(J)}async function m0(T){let{KeyPair:f}=await import("near-api-js/lib/utils"),Z=f.fromString(T);return _2(Z)}function _2(T){return new U2(T)}async function k5(T,f){let y=(await T.query({request_type:"view_access_key_list",finality:"final",account_id:f})).keys.find((x)=>x.access_key.permission==="FullAccess");if(!y)throw new XZ("toolbox_near_invalid_address");let{utils:L}=await import("near-api-js"),X=L.PublicKey.fromString(y.public_key),J=y.access_key.nonce||0;return{publicKey:X,nonce:J}}var U2;var o0=E(()=>{U2=class U2 extends ZZ{#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 c0(T){return"recipient"in T&&"amount"in T&&!("contractId"in T)}function g0(T){return"contractId"in T&&"methodName"in T}function t0(T){return"actions"in T}function d0(T){return"newAccountId"in T}function i0(T){return"contractCode"in T}function r0(T){return"customEstimator"in T}function a0(T){let f=0;for(let Z of T)switch(Z.enum){case"transfer":f+=Number(i.SIMPLE_TRANSFER);break;case"functionCall":f+=Number(i.CONTRACT_CALL);break;case"createAccount":f+=Number(i.ACCOUNT_CREATION);break;case"deployContract":f+=Number(i.CONTRACT_DEPLOYMENT);break;case"addKey":f+=Number(i.ACCESS_KEY_ADDITION);break;case"deleteKey":f+=Number(i.ACCESS_KEY_DELETION);break;case"stake":f+=Number(i.STAKE);break;default:f+=Number(i.CONTRACT_CALL)}return f.toString()}function s0(T){if(T==="ft_transfer"||T==="ft_transfer_call")return i.TOKEN_TRANSFER;if(T==="storage_deposit")return i.STORAGE_DEPOSIT;return i.CONTRACT_CALL}function JZ(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function xZ(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var i;var e0=E(()=>{i={SIMPLE_TRANSFER:"1",TOKEN_TRANSFER:"100",CONTRACT_CALL:"100",ACCOUNT_CREATION:"30",CONTRACT_DEPLOYMENT:"200",ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",STAKE:"10",STORAGE_DEPOSIT:"100"}});async function I5({account:T,contractId:f,viewMethods:Z,changeMethods:y}){let{Contract:L}=await import("near-api-js");return new L(T,f,{viewMethods:Z,changeMethods:y,useLocalViewExecution:!0})}async function y1({contractId:T,account:f}){let Z=(await import("bn.js")).default,y=await I5({account:f,contractId:T,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"],changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"]}),L=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 Z("100000000000000"),new Z(Q))}};return{transfer:async(X,J,x)=>{return await L(X),y.ft_transfer({receiver_id:X,amount:J,memo:x},new Z("100000000000000"),new Z("1"))},transferCall:async(X,J,x,Q)=>{return await L(X),y.ft_transfer_call({receiver_id:X,amount:J,memo:Q,msg:x},new Z("100000000000000"),new Z("1"))},balanceOf:(X)=>y.ft_balance_of({account_id:X}),totalSupply:()=>y.ft_total_supply(),metadata:()=>y.ft_metadata(),storageBalanceOf:(X)=>y.storage_balance_of({account_id:X}),storageDeposit:(X,J)=>y.storage_deposit({account_id:X},new Z("100000000000000"),new Z(J||"1250000000000000000000")),ensureStorage:L,contract:y}}import{AssetValue as O5,BaseDecimal as C5,Chain as Oy,SKConfig as QZ,SwapKitError as t}from"@swapkit/helpers";async function qZ(T){let{P:f,match:Z}=await import("ts-pattern"),{providers:y}=await import("near-api-js"),L=await Z(T).with({phrase:f.string},async(C)=>{return await D5(C)}).with({signer:f.any},({signer:C})=>C).otherwise(()=>{return}),X=QZ.get("rpcUrls")[Oy.Near],J=new y.JsonRpcProvider({url:X});async function x(C){let{Account:H}=await import("near-api-js"),N=C||await Q();return new H(N,J,L)}async function Q(){if(!L)throw new t("toolbox_near_no_signer");return await L.getAddress()}async function q(C){if(!L)throw new t("toolbox_near_no_signer");let{recipient:H,assetValue:N}=C;if(!(await bT())(H))throw new t("toolbox_near_invalid_address");let v=await x();if(N.isGasAsset===!1){let w=N.address;if(!w)throw new t("toolbox_near_missing_contract_address");let l=N.getBaseValue("string");return V({contractId:w,methodName:"ft_transfer",args:{receiver_id:H,amount:l,memo:C.memo}})}try{let w=N.getBaseValue("string");return(await v.transfer({receiverId:H,amount:w})).transaction_outcome.id}catch(w){throw new t("toolbox_near_transfer_failed",{error:w})}}async function z(C){let{recipient:H,assetValue:N,memo:O,feeRate:v,attachedDeposit:w,sender:l}=C,h=await bT();if(!h(H))throw new t("toolbox_near_invalid_address",{address:H});if(!h(l))throw new t("toolbox_near_invalid_address",{address:l});if(!N.isGasAsset){let nT=N.address;if(!nT)throw new t("toolbox_near_missing_contract_address");return M({sender:l,contractId:nT,methodName:"ft_transfer",args:{receiver_id:H,amount:N.getBaseValue("string"),memo:O||null},gas:v.toString()||"100000000000000",attachedDeposit:"1"})}let{publicKey:S,nonce:u}=await k5(J,l),Ty=N.getBaseValue("bigint"),{SCHEMA:e}=await import("near-api-js/lib/transaction"),{transactions:Ly,utils:Zy}=await import("near-api-js"),Sy=[Ly.transfer(Ty)];if(O&&w)Sy.push(Ly.functionCall("memo",{memo:O},BigInt(v),BigInt(w)));let uT=await J.block({finality:"final"}),jT=Zy.serialize.base_decode(uT.header.hash),ty=Ly.createTransaction(l,S,H,u,Sy,jT),hT=Zy.serialize.serialize(e.Transaction,ty);return{serialized:Buffer.from(hT).toString("base64"),publicKey:S.toString(),details:{signerId:l,nonce:u,blockHash:Zy.serialize.base_encode(jT)}}}async function M(C){let{sender:H}=C,{publicKey:N,nonce:O}=await k5(J,H),{SCHEMA:v}=await import("near-api-js/lib/transaction"),{transactions:w,utils:l}=await import("near-api-js"),h=await J.block({finality:"final"}),S=l.serialize.base_decode(h.header.hash),u=[w.functionCall(C.methodName,Buffer.from(JSON.stringify(C.args)),BigInt(C.gas),BigInt(C.attachedDeposit))],Ty=w.createTransaction(H,N,C.contractId,O,u,S),e=l.serialize.serialize(v.Transaction,Ty);return{serialized:Buffer.from(e).toString("base64"),publicKey:N.toString(),details:{signerId:H,receiverId:C.contractId,methodName:C.methodName,nonce:O,blockHash:l.serialize.base_encode(S)}}}async function G(C){if(!L)throw new t("toolbox_near_no_signer");let[H,N]=await L.signTransaction(C);return N}async function B(C){return(await J.sendTransaction(C)).transaction.hash}async function W(C){if("assetValue"in C){let v=BigInt("115123062500")+BigInt("108059500000"),w=await Y(),l=v*BigInt(w.toString());return O5.from({chain:Oy.Near,value:l.toString(),fromBaseDecimal:C5[Oy.Near]})}let H=L?await x():void 0;return m(C,H)}async function Y(){try{return await J.query({request_type:"call_function",finality:"final",account_id:"system",method_name:"gas_price",args_base64:""})}catch{return"100000000"}}async function k(C,H,N){if(!L)throw new t("toolbox_near_no_signer");let O=await x(),{utils:v}=await import("near-api-js"),w=v.format.parseNearAmount(N)||"0";return(await O.createAccount(C,v.PublicKey.fromString(H),BigInt(w))).transaction.hash}async function V(C){try{if(!L)throw new t("toolbox_near_no_signer");let{transactions:H}=await import("near-api-js"),{contractId:N,methodName:O,args:v,deposit:w}=C,l=await x(),h=await m({methodName:O,args:v||{},contractId:N}),S=H.functionCall(O,v||{},h.getBaseValue("bigint"),BigInt(w||"0"));return(await l.signAndSendTransaction({receiverId:N,actions:[S]})).transaction_outcome.id}catch(H){throw new t("toolbox_near_transfer_failed",{error:H})}}async function $(C){let H=await x();return I5({account:H,contractId:C.contractId,viewMethods:C.viewMethods,changeMethods:C.changeMethods})}async function j(C){if(!L)throw new t("toolbox_near_no_signer");if(C.actions.length===0)throw new t("toolbox_near_empty_batch");return(await(await x()).signAndSendTransaction({receiverId:C.receiverId,actions:C.actions})).transaction.hash}async function A(C){let H=await x();return y1({contractId:C,account:H})}async function c(C){try{let H=await x(C),N;try{let O=await H.getBalance();N=O5.from({chain:Oy.Near,value:O,fromBaseDecimal:C5[Oy.Near]})}catch{N=O5.from({chain:Oy.Near,value:"0",fromBaseDecimal:C5[Oy.Near]})}return[N]}catch(H){throw new t("toolbox_near_balance_failed",{error:H})}}async function m(C,H){let N=await Z(C).when(c0,()=>i.SIMPLE_TRANSFER).when(g0,(l)=>s0(l.methodName)).when(t0,(l)=>a0(l.actions)).when(d0,()=>i.ACCOUNT_CREATION).when(i0,()=>i.CONTRACT_DEPLOYMENT).when(r0,(l)=>{if(!H)throw new t("toolbox_near_no_account");return l.customEstimator(H)}).otherwise(()=>{throw new t("toolbox_near_invalid_gas_params")}),O=await s(),w=BigInt(N)*BigInt(1000000000000)*BigInt(O);return O5.from({chain:Oy.Near,value:w,fromBaseDecimal:C5[Oy.Near]})}async function s(){try{return(await J.gasPrice(null)).gas_price||"100000000"}catch(C){return"100000000"}}return{getAddress:Q,getPublicKey:async()=>L?(await L.getPublicKey()).toString():"",provider:J,transfer:q,createTransaction:z,createContractFunctionCall:M,estimateTransactionFee:W,broadcastTransaction:B,signTransaction:G,getBalance:c,validateAddress:await bT(),getSignerFromPhrase:(C)=>D5(C),getSignerFromPrivateKey:m0,callFunction:V,createSubAccount:k,createContract:$,executeBatchTransaction:j,nep141:A,getGasPrice:s,estimateGas:m}}var T1=E(()=>{o0();e0()});var R2=E(()=>{T1()});var f1={};Jy(f1,{tgasToGas:()=>JZ,isSimpleTransfer:()=>c0,isCustomEstimator:()=>r0,isContractDeployment:()=>i0,isContractCall:()=>g0,isBatchTransaction:()=>t0,isAccountCreation:()=>d0,getValidateNearAddress:()=>bT,getNearToolbox:()=>qZ,getNearSignerFromPrivateKey:()=>m0,getNearSignerFromPhrase:()=>D5,getFullAccessPublicKey:()=>k5,getContractMethodGas:()=>s0,gasToTGas:()=>xZ,estimateBatchGas:()=>a0,createNearContract:()=>I5,createNEP141Token:()=>y1,GAS_COSTS:()=>i});var X1=E(()=>{T1();R2();o0();e0()});var J1={};Jy(J1,{rippleValidateAddress:()=>Z1,hashes:()=>_Z,getRippleToolbox:()=>UZ});import{AssetValue as L1,BaseDecimal as N2,Chain as Cy,SKConfig as zZ,SwapKitError as Ay,SwapKitNumber as MZ}from"@swapkit/helpers";import{Client as GZ,Wallet as BZ,isValidAddress as WZ,xrpToDrops as HZ}from"xrpl";import{hashes as _Z}from"xrpl";function D2(T){let f=BZ.fromMnemonic(T);return{getAddress:()=>Promise.resolve(f.address),signTransaction:(Z)=>Promise.resolve(f.sign(Z))}}function Z1(T){return WZ(T)}var YZ,UZ=async(T={})=>{let f="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?D2(T.phrase):void 0,Z=zZ.get("rpcUrls")[Cy.Ripple];if(!Z)throw new Ay({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:Cy.Ripple}});let y=new GZ(Z);await y.connect();let L=()=>{if(!f)throw new Ay({errorKey:"toolbox_ripple_signer_not_found"});return f.getAddress()},X=async(G)=>{let B=G||await L();try{let Y=(await y.request({command:"account_info",account:B})).result.account_data.Balance;return[L1.from({chain:Cy.Ripple,value:Y,fromBaseDecimal:N2[Cy.Ripple]})]}catch(W){if(W.data.error_code===YZ.ACCOUNT_NOT_FOUND)return[L1.from({chain:Cy.Ripple,value:0})];throw new Ay("toolbox_ripple_get_balance_error",{info:{address:B,error:W}})}},J=async()=>{let B=(await y.request({command:"fee"})).result.drops.open_ledger_fee;return L1.from({chain:Cy.Ripple,value:MZ.fromBigInt(BigInt(B),N2[Cy.Ripple])})},x=async({assetValue:G,recipient:B,memo:W,sender:Y})=>{if(!Z1(B))throw new Ay({errorKey:"core_transaction_invalid_recipient_address"});let k=Y||await L();if(!G.isGasAsset||G.chain!==Cy.Ripple)throw new Ay({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:G.toString()}});let V={TransactionType:"Payment",Account:k,Amount:HZ(G.getValue("string")),Destination:B};if(W)V.Memos=[{Memo:{MemoData:Buffer.from(W).toString("hex")}}];return await y.autofill(V)},Q=(G)=>{if(!f)throw new Ay({errorKey:"toolbox_ripple_signer_not_found"});return f.signTransaction(G)},q=async(G)=>{let W=(await y.submitAndWait(G)).result;if(W.validated)return W.hash;throw new Ay({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Cy.Ripple}})};return{signer:f,createSigner:D2,getAddress:L,validateAddress:Z1,getBalance:X,createTransaction:x,signTransaction:Q,broadcastTransaction:q,transfer:async(G)=>{if(!f)throw new Ay({errorKey:"toolbox_ripple_signer_not_found"});let B=await f.getAddress(),W=await x({...G,sender:B}),Y=await Q(W);return q(Y.tx_blob)},estimateTransactionFee:J,disconnect:()=>y.disconnect()}};var x1=E(()=>{YZ={ACCOUNT_NOT_FOUND:19}});var Q1={};Jy(Q1,{radixValidateAddress:()=>I2,RadixToolbox:()=>wZ});import{AssetValue as RZ,Chain as k2,SKConfig as NZ,SwapKitError as DZ}from"@swapkit/helpers";function I2(T){return T.startsWith("account_rdx1")&&T.length===66}function kZ({networkApi:T}){return async function f(Z){let y=await IZ({address:Z,networkApi:T});return OZ({resources:y,networkApi:T})}}async function IZ({address:T,networkApi:f}){let Z=!0,y,L=[],X=await CZ(f);while(Z){let J={address:T,limit_per_page:100,cursor:y,at_ledger_state:{state_version:X}},x=await f.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:J});if(L=L.concat(x.items),x.next_cursor)y=x.next_cursor;else Z=!1}return L}async function OZ({resources:T,networkApi:f}){let Z=[],y=50,L=[];for(let X=0;X<T.length;X+=50)L.push(T.slice(X,X+50));for(let X of L){let J=X.map((q)=>q.resource_address),x=await f.state.getEntityDetailsVaultAggregated(J),Q=new Map;for(let q of x)if(q.details!==void 0){let z=q.metadata?.items.find((G)=>G.key==="symbol"),M=z?.value.typed.type==="String"?z.value.typed.value:"?";if(q.details.type==="FungibleResource")Q.set(q.address,{decimals:q.details.divisibility,symbol:M})}for(let q of X)if(q.aggregation_level==="Global"){let z=Q.get(q.resource_address)||{decimals:0,symbol:"?"},M=RZ.from({asset:z.symbol!==k2.Radix?`${k2.Radix}.${z.symbol}-${q.resource_address}`:"XRD.XRD",value:q.amount});Z.push(M)}}return Z}async function CZ(T){return T.status.getCurrent().then((f)=>f.ledger_state.state_version)}var wZ=async({dappConfig:T}={})=>{let{RadixDappToolkit:f}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:Z}=await import("@radixdlt/babylon-gateway-api-sdk"),y=T||NZ.get("integrations").radix,L=f({...y,networkId:y.network?.networkId||1}),X=Z.initialize(L.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:kZ({networkApi:X}),networkApi:X,validateAddress:I2,signAndBroadcast:()=>{throw new DZ("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})}}};var q1=()=>{};var xT;var z1=E(()=>{xT=[{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 EZ}from"@swapkit/helpers";async function O2(T){let f=await import("tronweb"),Z=f.TronWeb??f.default?.TronWeb;try{let y=await fetch(`${vZ}/v1/accounts/${T}`);if(!y.ok)throw new Error(`TronGrid API error: ${y.status} ${y.statusText}`);let L=await y.json();if(!(L.success&&L.data)||L.data.length===0)throw new Error("Invalid response from TronGrid API");let X;try{X=Z.address.toHex(T).toLowerCase()}catch{X=T.toLowerCase()}let J=L.data.find((x)=>{return x.address.toLowerCase()===X});if(!J)return;return{balance:J.balance,trc20:J.trc20||[]}}catch(y){throw new EZ("toolbox_tron_trongrid_api_error",{message:y instanceof Error?y.message:"Unknown error",address:T})}}var vZ="https://api.trongrid.io";var C2=()=>{};import{AssetValue as wy,Chain as Yy,NetworkDerivationPath as v2,SKConfig as PZ,SwapKitError as a,derivationPathToString as P2,updateDerivationPath as l2,warnOnce as M1}from"@swapkit/helpers";import{P as w2,match as lZ}from"ts-pattern";async function G1(){let T=await import("tronweb"),f=T.TronWeb??T.default?.TronWeb;return(Z)=>{return f.isAddress(Z)}}async function V2({phrase:T,derivationPath:f,index:Z}){let y=f||P2(l2(v2[Yy.Tron],{index:Z||0})),{HDKey:L}=await import("@scure/bip32"),{mnemonicToSeedSync:X}=await import("@scure/bip39"),J=X(T),Q=L.fromMasterSeed(J).derive(y);if(!Q.privateKey)throw new a("toolbox_tron_no_signer");return Buffer.from(Q.privateKey).toString("hex")}async function AZ({phrase:T,derivationPath:f,tronWeb:Z}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),X=L(T),x=y.fromMasterSeed(X).derive(f);if(!x.privateKey)throw new a("toolbox_tron_no_signer");let Q=Buffer.from(x.privateKey).toString("hex");Z.setPrivateKey(Q);let q=Z?.address.fromPrivateKey(Q);return{getAddress:()=>Promise.resolve(typeof q==="string"?q:""),signTransaction:async(z)=>{return await Z.trx.sign(z,Q)}}}var VZ=268,$Z=13000,FZ=345,E2="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",KZ="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",$2=async(T={})=>{let f=await import("tronweb"),Z=f.TronWeb??f.default?.TronWeb,y=PZ.get("rpcUrls")[Yy.Tron],L=void 0,X=new Z({fullHost:y,headers:void 0}),J="index"in T?T.index||0:0,x=P2("derivationPath"in T&&T.derivationPath?T.derivationPath:l2(v2[Yy.Tron],{index:J})),Q=await lZ(T).with({phrase:w2.string},async({phrase:H})=>AZ({phrase:H,derivationPath:x,tronWeb:X})).with({signer:w2.any},({signer:H})=>Promise.resolve(H)).otherwise(()=>Promise.resolve(void 0)),q=async()=>{if(!Q)throw new a("toolbox_tron_no_signer");return await Q.getAddress()},z=()=>{return 1e8},M=async()=>{try{let H=await X.trx.getChainParameters(),N={};for(let O of H)N[O.key]=O.value;return{energyFee:N.getEnergyFee||420,bandwidthFee:N.getTransactionFee||1000,createAccountFee:N.getCreateAccountFee||1e5}}catch{return{energyFee:420,bandwidthFee:1000,createAccountFee:1e5}}},G=async(H)=>{try{let N=await X.trx.getAccount(H);return N&&Object.keys(N).length>0}catch{return!1}},B=async(H)=>{try{let N=await X.trx.getAccountResources(H);return{bandwidth:{free:N.freeNetLimit-N.freeNetUsed,total:N.NetLimit||0,used:N.NetUsed||0},energy:{total:N.EnergyLimit||0,used:N.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},W=async(H,N)=>{try{let O=X.contract(xT,N);if(!O.methods?.balanceOf)return 0n;let v=(await O.methods.balanceOf(H).call())[0];return BigInt(v||0)}catch(O){return console.warn(`balanceOf() failed for ${N}:`,O),0n}},Y=async(H,N)=>{try{X.setAddress(N);let O=X.contract(xT,H),[v,w]=await Promise.all([O.symbol().call().catch(()=>"UNKNOWN"),O.decimals().call().catch(()=>"18")]);return{symbol:v??"UNKNOWN",decimals:Number(w??18)}}catch(O){return M1(!0,`Failed to get token balance for ${H}: ${O instanceof Error?O.message:O}`),null}},k=async(H,N=!0)=>{let O=[wy.from({chain:Yy.Tron})];try{let v=await O2(H);if(v){let w=[];w.push(wy.from({chain:Yy.Tron,value:v.balance,fromBaseDecimal:6}));for(let l of v.trc20){let[h,S]=Object.entries(l)[0]||[];if(!(h&&S))continue;let u=await Y(h,H);if(!u)continue;w.push(wy.from({asset:`TRON.${u.symbol}-${h}`,value:BigInt(S||0),fromBaseDecimal:u.decimals}))}return w}return O}catch(v){M1(!0,`Tron API getBalance failed: ${v instanceof Error?v.message:v}`);let w=[],l=await X.trx.getBalance(H);if(l&&Number(l)>0)w.push(wy.from({chain:Yy.Tron,value:l,fromBaseDecimal:6}));let h=await W(H,E2);if(h)w.push(wy.from({asset:`TRON.USDT-${E2}`,value:h,fromBaseDecimal:6}));return w}},V=async({recipient:H,assetValue:N,memo:O})=>{if(!Q)throw new a("toolbox_tron_no_signer");let v=await q();if(X.setAddress(v),N.isGasAsset){let u=await X.transactionBuilder.sendTrx(H,N.getBaseValue("number"),v);if(O){let Ly=await X.transactionBuilder.addUpdateData(u,O,"utf8"),Zy=await Q.signTransaction(Ly),{txid:Sy}=await X.trx.sendRawTransaction(Zy);return Sy}let Ty=await Q.signTransaction(u),{txid:e}=await X.trx.sendRawTransaction(Ty);return e}let l=await j({recipient:H,assetValue:N,memo:O,sender:v}),h=await Q.signTransaction(l),{txid:S}=await X.trx.sendRawTransaction(h);if(!S)throw new a("toolbox_tron_token_transfer_failed");return S},$=async({assetValue:H,recipient:N,sender:O})=>{let v=H.isGasAsset;try{let w=O?O:Q?await q():void 0;if(!w)return v?wy.from({chain:Yy.Tron,value:0.1,fromBaseDecimal:0}):wy.from({chain:Yy.Tron,value:15,fromBaseDecimal:0});let l=await M(),S=await G(N)?0:l.createAccountFee,u=await B(w);if(v){let ty=VZ,hT=u.bandwidth.free+(u.bandwidth.total-u.bandwidth.used),w5=0;if(ty>hT)w5=(ty-hT)*l.bandwidthFee;let nT=S+w5;return wy.from({chain:Yy.Tron,value:nT,fromBaseDecimal:6})}let Ty=FZ,e=$Z,Ly=u.bandwidth.free+(u.bandwidth.total-u.bandwidth.used),Zy=u.energy.total-u.energy.used,Sy=0;if(Ty>Ly)Sy=(Ty-Ly)*l.bandwidthFee;let uT=0;if(e>Zy)uT=(e-Zy)*l.energyFee;let jT=S+Sy+uT;return wy.from({chain:Yy.Tron,value:jT,fromBaseDecimal:6})}catch(w){throw M1(!0,`Failed to calculate exact fee, using conservative estimate: ${w instanceof Error?w.message:w}`),new a("toolbox_tron_fee_estimation_failed",{error:w})}},j=async(H)=>{let{recipient:N,assetValue:O,memo:v,sender:w}=H;if(O.isGasAsset){let S=await X.transactionBuilder.sendTrx(N,O.getBaseValue("number"),w);if(v)return X.transactionBuilder.addUpdateData(S,v,"utf8");return S}X.setAddress(w);let h=O.address;if(!h)throw new a("toolbox_tron_invalid_token_identifier",{identifier:O.toString()});try{let u=[{type:"address",value:N},{type:"uint256",value:O.getBaseValue("string")}],Ty={feeLimit:z(),callValue:0};return(await X.transactionBuilder.triggerSmartContract(h,"transfer(address,uint256)",Ty,u,w)).transaction}catch(S){throw new a("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction. This might be due to TronWeb 6.0.3 bug. Use the transfer method directly instead.",originalError:S instanceof Error?S.message:String(S)})}},A=async(H)=>{if(!Q)throw new a("toolbox_tron_no_signer");return await Q.signTransaction(H)},c=async(H)=>{let{txid:N}=await X.trx.sendRawTransaction(H);return N},m=async({assetAddress:H,spenderAddress:N,from:O})=>{try{let v=X.contract(xT,H);if(!v.methods?.allowance)throw new a("toolbox_tron_invalid_token_contract");let w=(await v.methods.allowance(O,N).call())[0];return BigInt(w||0)}catch(v){throw new a("toolbox_tron_allowance_check_failed",{error:v})}},s=async({assetAddress:H,spenderAddress:N,from:O,amount:v})=>{let w=await m({assetAddress:H,spenderAddress:N,from:O});if(!v)return w>0n;let l=BigInt(v);return w>=l},C=async({assetAddress:H,spenderAddress:N,amount:O,from:v})=>{if(!Q)throw new a("toolbox_tron_no_signer");let w=v||await q(),l=O!==void 0?BigInt(O).toString():KZ,h="approve(address,uint256)",S=[{type:"address",value:N},{type:"uint256",value:l}],Ty={feeLimit:z(),callValue:0};try{let{transaction:e}=await X.transactionBuilder.triggerSmartContract(H,h,Ty,S,w),Ly=await Q.signTransaction(e),{txid:Zy}=await X.trx.sendRawTransaction(Ly);if(!Zy)throw new a("toolbox_tron_approve_failed");return Zy}catch(e){throw new a("toolbox_tron_approve_failed",{error:e})}};return{tronWeb:X,getAddress:q,validateAddress:await G1(),getBalance:k,transfer:V,estimateTransactionFee:$,createTransaction:j,signTransaction:A,broadcastTransaction:c,approve:C,isApproved:s,getApprovedAmount:m}};var F2=E(()=>{z1();C2()});var B1={};Jy(B1,{trc20ABI:()=>xT,getTronPrivateKeyFromMnemonic:()=>V2,getTronAddressValidator:()=>G1,createTronToolbox:()=>$2});var W1=E(()=>{F2();z1()});import{AssetValue as SZ,Chain as D,EVMChains as bZ,FeeOption as uZ,SwapKitError as jZ,UTXOChains as hZ}from"@swapkit/helpers";async function vQ(){let{match:T}=await import("ts-pattern"),{cosmosValidateAddress:f}=await Promise.resolve().then(() => (iT(),dT)),{evmValidateAddress:Z}=await Promise.resolve().then(() => (X0(),Nf)),{substrateValidateAddress:y}=await Promise.resolve().then(() => (N0(),R0)),{getUTXOAddressValidator:L}=await Promise.resolve().then(() => (K0(),F0)),{getSolanaAddressValidator:X}=await Promise.resolve().then(() => (p0(),n0)),{getValidateNearAddress:J}=await Promise.resolve().then(() => (X1(),f1)),{rippleValidateAddress:x}=await Promise.resolve().then(() => (x1(),J1)),{radixValidateAddress:Q}=await Promise.resolve().then(() => (q1(),Q1)),{getTronAddressValidator:q}=await Promise.resolve().then(() => (W1(),B1)),z=await X(),M=await L(),G=await q(),B=await J();return function W({address:Y,chain:k}){return T(k).with(...bZ,()=>Z({address:Y})).with(...hZ,()=>M({address:Y,chain:k})).with(D.Cosmos,D.Kujira,D.Noble,D.Maya,D.THORChain,()=>f({address:Y,chain:k})).with(D.Chainflip,D.Polkadot,()=>y({address:Y,chain:k})).with(D.Radix,()=>Q(Y)).with(D.Near,()=>B(Y)).with(D.Ripple,()=>x(Y)).with(D.Solana,()=>z(Y)).with(D.Tron,()=>G(Y)).otherwise(()=>!1)}}function PQ(T){return async function f(Z){let{match:y}=await import("ts-pattern");return y(T).returnType().with(D.Arbitrum,D.Aurora,D.Avalanche,D.Base,D.Berachain,D.BinanceSmartChain,D.Ethereum,D.Gnosis,D.Optimism,D.Polygon,async(L)=>{let X=await K2(L),J=await X.createTransaction(Z);return X.estimateTransactionFee({...J,feeOption:Z.feeOptionKey||uZ.Fast,chain:L})}).with(D.Bitcoin,D.BitcoinCash,D.Dogecoin,D.Dash,D.Litecoin,D.Polkadot,D.Solana,D.Ripple,D.Tron,D.Near,async(L)=>{return(await K2(L)).estimateTransactionFee(Z)}).with(D.THORChain,D.Maya,D.Kujira,D.Noble,D.Cosmos,async()=>{let{estimateTransactionFee:L}=await Promise.resolve().then(() => (iT(),dT));return L(Z)}).otherwise(async()=>SZ.from({chain:T}))}}async function K2(T,f){let{match:Z}=await import("ts-pattern");return Z(T).returnType().with(D.Arbitrum,D.Aurora,D.Avalanche,D.Base,D.Berachain,D.BinanceSmartChain,D.Ethereum,D.Gnosis,D.Optimism,D.Polygon,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (z5(),z0));return await y(T,f)}).with(D.Litecoin,D.Dash,D.Dogecoin,D.BitcoinCash,D.Bitcoin,D.Zcash,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (K0(),F0));return await y(T,f)}).with(D.Cosmos,D.Kujira,D.Noble,D.Maya,D.THORChain,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (iT(),dT));return await y(T,f)}).with(D.Chainflip,D.Polkadot,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (N0(),R0));return await y(T,f)}).with(D.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (q1(),Q1));return await y(f)}).with(D.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (x1(),J1));return await y(f)}).with(D.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (p0(),n0));return await y(f)}).with(D.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (W1(),B1));return await y(f)}).with(D.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (X1(),f1));return await y(f)}).otherwise(()=>{throw new jZ("toolbox_not_supported",{chain:T})})}export{K2 as getToolbox,PQ as getFeeEstimator,vQ as getAddressValidator};
1
+ var P2=Object.create;var{getPrototypeOf:l2,defineProperty:w5,getOwnPropertyNames:V2}=Object;var $2=Object.prototype.hasOwnProperty;var U=(T,f,Z)=>{Z=T!=null?P2(l2(T)):{};let y=f||!T||!T.__esModule?w5(Z,"default",{value:T,enumerable:!0}):Z;for(let L of V2(T))if(!$2.call(y,L))w5(y,L,{get:()=>T[L],enumerable:!0});return y};var Jy=(T,f)=>{for(var Z in f)w5(T,Z,{get:f[Z],enumerable:!0,configurable:!0,set:(y)=>f[Z]=()=>y})};var E=(T,f)=>()=>(T&&(f=T(T=0)),f);var _=((T)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(T,{get:(f,Z)=>(typeof require!=="undefined"?require:f)[Z]}):T)(function(T){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+T+'" is not supported')});import{base64 as G1,bech32 as pT}from"@scure/base";import{SwapKitError as F2}from"@swapkit/helpers";import{fromByteArray as K2,toByteArray as A2}from"base64-js";function QT(T){return G1.encode(Uint8Array.from(pT.fromWords(pT.decode(T).words)))}function qT(T,f="thor"){return pT.encode(f,pT.toWords(G1.decode(T)))}function S2(T){return K2(T)}function b2(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 E5=()=>{};import{AssetValue as v5,BaseDecimal as zy,Chain as F,SwapKitError as B1,getRPCUrl as u2}from"@swapkit/helpers";function Uy(T){switch(T){case F.Maya:return{amount:[],gas:"10000000000"};case F.THORChain:return{amount:[],gas:"500000000"};case F.Kujira:return Y1;case F.Noble:return U1;default:return H1}}async function _y(T){let f=await import("@cosmjs/stargate"),Z=f.StargateClient??f.default?.StargateClient,y=typeof window!=="undefined"?{}:{referrer:"https://sdk.swapkit.dev",referer:"https://sdk.swapkit.dev"};return Z.connect({url:T,headers:y})}async function MT(T,f,Z={}){let y=await import("@cosmjs/stargate"),L=y.SigningStargateClient??y.default?.SigningStargateClient,X=y.GasPrice??y.default?.GasPrice,J=typeof Z==="string"?Z:"0.0003uatom",x=typeof Z==="string"?{}:Z;return L.connectWithSigner(T,f,{gasPrice:X.fromString(J),...x})}async function l5(T,f){let Z=await import("@cosmjs/stargate");return(Z.SigningStargateClient??Z.default?.SigningStargateClient).offline(T,f)}var P5="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",W1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",H1,Y1,U1,Ey=(T,f=!1)=>{if(f)return T.toLowerCase();switch(T){case"uUSK":case"USK":return P5;case"uYUM":case"YUM":return W1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return T}},zT=({symbol:T,chain:f})=>{if(f===F.Maya)return(T.toUpperCase()!=="CACAO"?T:`${F.Maya}.${T}`).toUpperCase();if(f===F.THORChain)return(["RUNE","TCY","RUJI"].includes(T.toUpperCase())?`${F.THORChain}.${T}`:T).toUpperCase();return Ey(T,!1)},j2=(T)=>{switch(T){case F.Maya:case F.THORChain:return"/types.MsgSend";case F.Cosmos:case F.Kujira:case F.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new B1("toolbox_cosmos_not_supported",{chain:T})}},V5=async({sender:T,recipient:f,assetValue:Z,memo:y="",feeRate:L,sequence:X,accountNumber:J})=>{let{chain:x,chainId:Q}=Z,q=await u2(x),M=await(await _y(q)).getAccount(T);if(!M)throw new B1("toolbox_cosmos_account_not_found",{sender:T});let G=v5.from({chain:x}),B=Ey(G.symbol),W=Uy(x),Y=B&&L?{amount:[{denom:B,amount:L.toString()}],gas:W.gas}:W,I={fromAddress:T,toAddress:f,amount:[{amount:Z.getBaseValue("string"),denom:Ey(Z.symbol)}]};return{accountNumber:J??M.accountNumber,chainId:Q,fee:Y,memo:y,sequence:X??M.sequence,msgs:[{typeUrl:j2(x),value:I}]}},n2,$5=(T,f)=>{let Z=n2[T.toLowerCase()];if(!Z)return v5.from({asset:T,value:f,fromBaseDecimal:8});let{chain:y,asset:L,decimals:X}=Z,J=y?{chain:y}:{asset:L};return v5.from({...J,value:f,fromBaseDecimal:X})};var GT=E(()=>{H1={amount:[{denom:"uatom",amount:"500"}],gas:"200000"},Y1={amount:[{denom:"ukuji",amount:"1000"}],gas:"200000"},U1={amount:[{denom:"uusdc",amount:"1000"}],gas:"200000"};n2={rune:{chain:F.THORChain,decimals:zy[F.THORChain]},tcy:{asset:"THOR.TCY",decimals:zy[F.THORChain]},"x/kuji":{asset:"THOR.KUJI",decimals:zy[F.THORChain]},uatom:{chain:F.Cosmos,decimals:zy[F.Cosmos]},atom:{chain:F.Cosmos,decimals:zy[F.Cosmos]},cacao:{chain:F.Maya,decimals:10},maya:{asset:`${F.Maya}.${F.Maya}`,decimals:4},ukuji:{chain:F.Kujira,decimals:zy[F.Kujira]},kuji:{chain:F.Kujira,decimals:zy[F.Kujira]},uusdc:{chain:F.Noble,decimals:zy[F.Noble]},usdc:{chain:F.Noble,decimals:zy[F.Noble]},[P5.toLowerCase()]:{asset:`${F.Kujira}.USK`,decimals:zy[F.Kujira]}}});var _1={};Jy(_1,{$root:()=>R});import g from"protobufjs/minimal.js";var P,fy,C,R;var R1=E(()=>{P=g.Reader,fy=g.Writer,C=g.util,R=g.roots.default||(g.roots.default={});R.common=(()=>{let T={};return T.Asset=(()=>{function f(Z){if(Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.chain="",f.prototype.symbol="",f.prototype.ticker="",f.prototype.synth=!1,f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))L.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))L.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))L.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))L.uint32(32).bool(y.synth);return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.common.Asset;while(y.pos<X){let x=y.uint32();switch(x>>>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(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(y){if(typeof y!=="object"||y===null)return"object expected";if(y.chain!=null&&y.hasOwnProperty("chain")){if(!C.isString(y.chain))return"chain: string expected"}if(y.symbol!=null&&y.hasOwnProperty("symbol")){if(!C.isString(y.symbol))return"symbol: string expected"}if(y.ticker!=null&&y.hasOwnProperty("ticker")){if(!C.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 Z(y){if(y instanceof R.common.Asset)return y;let L=new R.common.Asset;if(y.chain!=null)L.chain=String(y.chain);if(y.symbol!=null)L.symbol=String(y.symbol);if(y.ticker!=null)L.ticker=String(y.ticker);if(y.synth!=null)L.synth=Boolean(y.synth);return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.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 Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.Coin=(()=>{function f(Z){if(Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.asset=null,f.prototype.amount="",f.prototype.decimals=C.Long?C.Long.fromBits(0,0,!1):0,f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))R.common.Asset.encode(y.asset,L.uint32(10).fork()).ldelim();if(y.amount!=null&&Object.hasOwnProperty.call(y,"amount"))L.uint32(18).string(y.amount);if(y.decimals!=null&&Object.hasOwnProperty.call(y,"decimals"))L.uint32(24).int64(y.decimals);return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.common.Coin;while(y.pos<X){let x=y.uint32();switch(x>>>3){case 1:J.asset=R.common.Asset.decode(y,y.uint32());break;case 2:J.amount=y.string();break;case 3:J.decimals=y.int64();break;default:y.skipType(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(y){if(typeof y!=="object"||y===null)return"object expected";if(y.asset!=null&&y.hasOwnProperty("asset")){let L=R.common.Asset.verify(y.asset);if(L)return"asset."+L}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!C.isString(y.amount))return"amount: string expected"}if(y.decimals!=null&&y.hasOwnProperty("decimals")){if(!C.isInteger(y.decimals)&&!(y.decimals&&C.isInteger(y.decimals.low)&&C.isInteger(y.decimals.high)))return"decimals: integer|Long expected"}return null},f.fromObject=function Z(y){if(y instanceof R.common.Coin)return y;let L=new R.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");L.asset=R.common.Asset.fromObject(y.asset)}if(y.amount!=null)L.amount=String(y.amount);if(y.decimals!=null){if(C.Long)(L.decimals=C.Long.fromValue(y.decimals)).unsigned=!1;else if(typeof y.decimals==="string")L.decimals=Number.parseInt(y.decimals,10);else if(typeof y.decimals==="number")L.decimals=y.decimals;else if(typeof y.decimals==="object")L.decimals=new C.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber()}return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.defaults)if(X.asset=null,X.amount="",C.Long){let J=new C.Long(0,0,!1);X.decimals=L.longs===String?J.toString():L.longs===Number?J.toNumber():J}else X.decimals=L.longs===String?"0":0;if(y.asset!=null&&y.hasOwnProperty("asset"))X.asset=R.common.Asset.toObject(y.asset,L);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=L.longs===String?String(y.decimals):y.decimals;else X.decimals=L.longs===String?C.Long.prototype.toString.call(y.decimals):L.longs===Number?new C.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber():y.decimals;return X},f.prototype.toJSON=function Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.PubKeySet=(()=>{function f(Z){if(Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.secp256k1="",f.prototype.ed25519="",f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))L.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))L.uint32(18).string(y.ed25519);return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.common.PubKeySet;while(y.pos<X){let x=y.uint32();switch(x>>>3){case 1:J.secp256k1=y.string();break;case 2:J.ed25519=y.string();break;default:y.skipType(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(y){if(typeof y!=="object"||y===null)return"object expected";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1")){if(!C.isString(y.secp256k1))return"secp256k1: string expected"}if(y.ed25519!=null&&y.hasOwnProperty("ed25519")){if(!C.isString(y.ed25519))return"ed25519: string expected"}return null},f.fromObject=function Z(y){if(y instanceof R.common.PubKeySet)return y;let L=new R.common.PubKeySet;if(y.secp256k1!=null)L.secp256k1=String(y.secp256k1);if(y.ed25519!=null)L.ed25519=String(y.ed25519);return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.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 Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.Tx=(()=>{function f(Z){if(this.coins=[],this.gas=[],Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.id="",f.prototype.chain="",f.prototype.fromAddress="",f.prototype.toAddress="",f.prototype.coins=C.emptyArray,f.prototype.gas=C.emptyArray,f.prototype.memo="",f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))L.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))L.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))L.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))L.uint32(34).string(y.toAddress);if(y.coins?.length)for(let X=0;X<y.coins.length;++X)R.common.Coin.encode(y.coins[X],L.uint32(42).fork()).ldelim();if(y.gas?.length)for(let X=0;X<y.gas.length;++X)R.common.Coin.encode(y.gas[X],L.uint32(50).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))L.uint32(58).string(y.memo);return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.common.Tx;while(y.pos<X){let x=y.uint32();switch(x>>>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(R.common.Coin.decode(y,y.uint32()));break;case 6:if(!J.gas?.length)J.gas=[];J.gas.push(R.common.Coin.decode(y,y.uint32()));break;case 7:J.memo=y.string();break;default:y.skipType(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(y){if(typeof y!=="object"||y===null)return"object expected";if(y.id!=null&&y.hasOwnProperty("id")){if(!C.isString(y.id))return"id: string expected"}if(y.chain!=null&&y.hasOwnProperty("chain")){if(!C.isString(y.chain))return"chain: string expected"}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!C.isString(y.fromAddress))return"fromAddress: string expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!C.isString(y.toAddress))return"toAddress: string expected"}if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let X=R.common.Coin.verify(y.coins[L]);if(X)return"coins."+X}}if(y.gas!=null&&y.hasOwnProperty("gas")){if(!Array.isArray(y.gas))return"gas: array expected";for(let L=0;L<y.gas.length;++L){let X=R.common.Coin.verify(y.gas[L]);if(X)return"gas."+X}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!C.isString(y.memo))return"memo: string expected"}return null},f.fromObject=function Z(y){if(y instanceof R.common.Tx)return y;let L=new R.common.Tx;if(y.id!=null)L.id=String(y.id);if(y.chain!=null)L.chain=String(y.chain);if(y.fromAddress!=null)L.fromAddress=String(y.fromAddress);if(y.toAddress!=null)L.toAddress=String(y.toAddress);if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Tx.coins: array expected");L.coins=[];for(let X=0;X<y.coins.length;++X){if(typeof y.coins[X]!=="object")throw TypeError(".common.Tx.coins: object expected");L.coins[X]=R.common.Coin.fromObject(y.coins[X])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");L.gas=[];for(let X=0;X<y.gas.length;++X){if(typeof y.gas[X]!=="object")throw TypeError(".common.Tx.gas: object expected");L.gas[X]=R.common.Coin.fromObject(y.gas[X])}}if(y.memo!=null)L.memo=String(y.memo);return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.arrays||L.defaults)X.coins=[],X.gas=[];if(L.defaults)X.id="",X.chain="",X.fromAddress="",X.toAddress="",X.memo="";if(y.id!=null&&y.hasOwnProperty("id"))X.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))X.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))X.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))X.toAddress=y.toAddress;if(y.coins?.length){X.coins=[];for(let J=0;J<y.coins.length;++J)X.coins[J]=R.common.Coin.toObject(y.coins[J],L)}if(y.gas?.length){X.gas=[];for(let J=0;J<y.gas.length;++J)X.gas[J]=R.common.Coin.toObject(y.gas[J],L)}if(y.memo!=null&&y.hasOwnProperty("memo"))X.memo=y.memo;return X},f.prototype.toJSON=function Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.Fee=(()=>{function f(Z){if(this.coins=[],Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.coins=C.emptyArray,f.prototype.poolDeduct="",f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.coins?.length)for(let X=0;X<y.coins.length;++X)R.common.Coin.encode(y.coins[X],L.uint32(10).fork()).ldelim();if(y.poolDeduct!=null&&Object.hasOwnProperty.call(y,"poolDeduct"))L.uint32(18).string(y.poolDeduct);return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.common.Fee;while(y.pos<X){let x=y.uint32();switch(x>>>3){case 1:if(!J.coins?.length)J.coins=[];J.coins.push(R.common.Coin.decode(y,y.uint32()));break;case 2:J.poolDeduct=y.string();break;default:y.skipType(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let X=R.common.Coin.verify(y.coins[L]);if(X)return"coins."+X}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!C.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},f.fromObject=function Z(y){if(y instanceof R.common.Fee)return y;let L=new R.common.Fee;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Fee.coins: array expected");L.coins=[];for(let X=0;X<y.coins.length;++X){if(typeof y.coins[X]!=="object")throw TypeError(".common.Fee.coins: object expected");L.coins[X]=R.common.Coin.fromObject(y.coins[X])}}if(y.poolDeduct!=null)L.poolDeduct=String(y.poolDeduct);return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.arrays||L.defaults)X.coins=[];if(L.defaults)X.poolDeduct="";if(y.coins?.length){X.coins=[];for(let J=0;J<y.coins.length;++J)X.coins[J]=R.common.Coin.toObject(y.coins[J],L)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))X.poolDeduct=y.poolDeduct;return X},f.prototype.toJSON=function Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.ProtoUint=(()=>{function f(Z){if(Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.value="",f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))L.uint32(10).string(y.value);return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.common.ProtoUint;while(y.pos<X){let x=y.uint32();switch(x>>>3){case 1:J.value=y.string();break;default:y.skipType(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(y){if(typeof y!=="object"||y===null)return"object expected";if(y.value!=null&&y.hasOwnProperty("value")){if(!C.isString(y.value))return"value: string expected"}return null},f.fromObject=function Z(y){if(y instanceof R.common.ProtoUint)return y;let L=new R.common.ProtoUint;if(y.value!=null)L.value=String(y.value);return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.defaults)X.value="";if(y.value!=null&&y.hasOwnProperty("value"))X.value=y.value;return X},f.prototype.toJSON=function Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T})();R.types=(()=>{let T={};return T.MsgDeposit=(()=>{function f(Z){if(this.coins=[],Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.coins=C.emptyArray,f.prototype.memo="",f.prototype.signer=C.newBuffer([]),f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.coins?.length)for(let X=0;X<y.coins.length;++X)R.common.Coin.encode(y.coins[X],L.uint32(10).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))L.uint32(18).string(y.memo);if(y.signer!=null&&Object.hasOwnProperty.call(y,"signer"))L.uint32(26).bytes(y.signer);return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.types.MsgDeposit;while(y.pos<X){let x=y.uint32();switch(x>>>3){case 1:if(!J.coins?.length)J.coins=[];J.coins.push(R.common.Coin.decode(y,y.uint32()));break;case 2:J.memo=y.string();break;case 3:J.signer=y.bytes();break;default:y.skipType(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let X=R.common.Coin.verify(y.coins[L]);if(X)return"coins."+X}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!C.isString(y.memo))return"memo: string expected"}if(y.signer!=null&&y.hasOwnProperty("signer")){if(!(y.signer&&typeof y.signer.length==="number"||C.isString(y.signer)))return"signer: buffer expected"}return null},f.fromObject=function Z(y){if(y instanceof R.types.MsgDeposit)return y;let L=new R.types.MsgDeposit;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".types.MsgDeposit.coins: array expected");L.coins=[];for(let X=0;X<y.coins.length;++X){if(typeof y.coins[X]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");L.coins[X]=R.common.Coin.fromObject(y.coins[X])}}if(y.memo!=null)L.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")C.base64.decode(y.signer,L.signer=C.newBuffer(C.base64.length(y.signer)),0);else if(y.signer.length)L.signer=y.signer}return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.arrays||L.defaults)X.coins=[];if(L.defaults){if(X.memo="",L.bytes===String)X.signer="";else if(X.signer=[],L.bytes!==Array)X.signer=C.newBuffer(X.signer)}if(y.coins?.length){X.coins=[];for(let J=0;J<y.coins.length;++J)X.coins[J]=R.common.Coin.toObject(y.coins[J],L)}if(y.memo!=null&&y.hasOwnProperty("memo"))X.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))X.signer=L.bytes===String?C.base64.encode(y.signer,0,y.signer.length):L.bytes===Array?Array.prototype.slice.call(y.signer):y.signer;return X},f.prototype.toJSON=function Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.MsgSend=(()=>{function f(Z){if(this.amount=[],Z){for(let y=Object.keys(Z),L=0;L<y.length;++L)if(Z[y[L]]!=null)this[y[L]]=Z[y[L]]}}return f.prototype.fromAddress=C.newBuffer([]),f.prototype.toAddress=C.newBuffer([]),f.prototype.amount=C.emptyArray,f.create=function Z(y){return new f(y)},f.encode=function Z(y,L){if(!L)L=fy.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))L.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))L.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let X=0;X<y.amount.length;++X)R.cosmos.base.v1beta1.Coin.encode(y.amount[X],L.uint32(26).fork()).ldelim();return L},f.encodeDelimited=function Z(y,L){return this.encode(y,L).ldelim()},f.decode=function Z(y,L){if(!(y instanceof P))y=P.create(y);let X=L===void 0?y.len:y.pos+L,J=new R.types.MsgSend;while(y.pos<X){let x=y.uint32();switch(x>>>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(R.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(x&7);break}}return J},f.decodeDelimited=function Z(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function Z(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"||C.isString(y.fromAddress)))return"fromAddress: buffer expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!(y.toAddress&&typeof y.toAddress.length==="number"||C.isString(y.toAddress)))return"toAddress: buffer expected"}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!Array.isArray(y.amount))return"amount: array expected";for(let L=0;L<y.amount.length;++L){let X=R.cosmos.base.v1beta1.Coin.verify(y.amount[L]);if(X)return"amount."+X}}return null},f.fromObject=function Z(y){if(y instanceof R.types.MsgSend)return y;let L=new R.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")C.base64.decode(y.fromAddress,L.fromAddress=C.newBuffer(C.base64.length(y.fromAddress)),0);else if(y.fromAddress.length)L.fromAddress=y.fromAddress}if(y.toAddress!=null){if(typeof y.toAddress==="string")C.base64.decode(y.toAddress,L.toAddress=C.newBuffer(C.base64.length(y.toAddress)),0);else if(y.toAddress.length)L.toAddress=y.toAddress}if(y.amount){if(!Array.isArray(y.amount))throw TypeError(".types.MsgSend.amount: array expected");L.amount=[];for(let X=0;X<y.amount.length;++X){if(typeof y.amount[X]!=="object")throw TypeError(".types.MsgSend.amount: object expected");L.amount[X]=R.cosmos.base.v1beta1.Coin.fromObject(y.amount[X])}}return L},f.toObject=function Z(y,L){if(!L)L={};let X={};if(L.arrays||L.defaults)X.amount=[];if(L.defaults){if(L.bytes===String)X.fromAddress="";else if(X.fromAddress=[],L.bytes!==Array)X.fromAddress=C.newBuffer(X.fromAddress);if(L.bytes===String)X.toAddress="";else if(X.toAddress=[],L.bytes!==Array)X.toAddress=C.newBuffer(X.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))X.fromAddress=L.bytes===String?C.base64.encode(y.fromAddress,0,y.fromAddress.length):L.bytes===Array?Array.prototype.slice.call(y.fromAddress):y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))X.toAddress=L.bytes===String?C.base64.encode(y.toAddress,0,y.toAddress.length):L.bytes===Array?Array.prototype.slice.call(y.toAddress):y.toAddress;if(y.amount?.length){X.amount=[];for(let J=0;J<y.amount.length;++J)X.amount[J]=R.cosmos.base.v1beta1.Coin.toObject(y.amount[J],L)}return X},f.prototype.toJSON=function Z(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T})();R.cosmos=(()=>{let T={};return T.base=(()=>{let f={};return f.v1beta1=(()=>{let Z={};return Z.Coin=(()=>{function y(L){if(L){for(let X=Object.keys(L),J=0;J<X.length;++J)if(L[X[J]]!=null)this[X[J]]=L[X[J]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function L(X){return new y(X)},y.encode=function L(X,J){if(!J)J=fy.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))J.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))J.uint32(18).string(X.amount);return J},y.encodeDelimited=function L(X,J){return this.encode(X,J).ldelim()},y.decode=function L(X,J){if(!(X instanceof P))X=P.create(X);let x=J===void 0?X.len:X.pos+J,Q=new R.cosmos.base.v1beta1.Coin;while(X.pos<x){let q=X.uint32();switch(q>>>3){case 1:Q.denom=X.string();break;case 2:Q.amount=X.string();break;default:X.skipType(q&7);break}}return Q},y.decodeDelimited=function L(X){if(!(X instanceof P))X=new P(X);return this.decode(X,X.uint32())},y.verify=function L(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!C.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!C.isString(X.amount))return"amount: string expected"}return null},y.fromObject=function L(X){if(X instanceof R.cosmos.base.v1beta1.Coin)return X;let J=new R.cosmos.base.v1beta1.Coin;if(X.denom!=null)J.denom=String(X.denom);if(X.amount!=null)J.amount=String(X.amount);return J},y.toObject=function L(X,J){if(!J)J={};let x={};if(J.defaults)x.denom="",x.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))x.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))x.amount=X.amount;return x},y.prototype.toJSON=function L(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),Z.DecCoin=(()=>{function y(L){if(L){for(let X=Object.keys(L),J=0;J<X.length;++J)if(L[X[J]]!=null)this[X[J]]=L[X[J]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function L(X){return new y(X)},y.encode=function L(X,J){if(!J)J=fy.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))J.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))J.uint32(18).string(X.amount);return J},y.encodeDelimited=function L(X,J){return this.encode(X,J).ldelim()},y.decode=function L(X,J){if(!(X instanceof P))X=P.create(X);let x=J===void 0?X.len:X.pos+J,Q=new R.cosmos.base.v1beta1.DecCoin;while(X.pos<x){let q=X.uint32();switch(q>>>3){case 1:Q.denom=X.string();break;case 2:Q.amount=X.string();break;default:X.skipType(q&7);break}}return Q},y.decodeDelimited=function L(X){if(!(X instanceof P))X=new P(X);return this.decode(X,X.uint32())},y.verify=function L(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!C.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!C.isString(X.amount))return"amount: string expected"}return null},y.fromObject=function L(X){if(X instanceof R.cosmos.base.v1beta1.DecCoin)return X;let J=new R.cosmos.base.v1beta1.DecCoin;if(X.denom!=null)J.denom=String(X.denom);if(X.amount!=null)J.amount=String(X.amount);return J},y.toObject=function L(X,J){if(!J)J={};let x={};if(J.defaults)x.denom="",x.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))x.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))x.amount=X.amount;return x},y.prototype.toJSON=function L(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),Z.IntProto=(()=>{function y(L){if(L){for(let X=Object.keys(L),J=0;J<X.length;++J)if(L[X[J]]!=null)this[X[J]]=L[X[J]]}}return y.prototype.int="",y.create=function L(X){return new y(X)},y.encode=function L(X,J){if(!J)J=fy.create();if(X.int!=null&&Object.hasOwnProperty.call(X,"int"))J.uint32(10).string(X.int);return J},y.encodeDelimited=function L(X,J){return this.encode(X,J).ldelim()},y.decode=function L(X,J){if(!(X instanceof P))X=P.create(X);let x=J===void 0?X.len:X.pos+J,Q=new R.cosmos.base.v1beta1.IntProto;while(X.pos<x){let q=X.uint32();switch(q>>>3){case 1:Q.int=X.string();break;default:X.skipType(q&7);break}}return Q},y.decodeDelimited=function L(X){if(!(X instanceof P))X=new P(X);return this.decode(X,X.uint32())},y.verify=function L(X){if(typeof X!=="object"||X===null)return"object expected";if(X.int!=null&&X.hasOwnProperty("int")){if(!C.isString(X.int))return"int: string expected"}return null},y.fromObject=function L(X){if(X instanceof R.cosmos.base.v1beta1.IntProto)return X;let J=new R.cosmos.base.v1beta1.IntProto;if(X.int!=null)J.int=String(X.int);return J},y.toObject=function L(X,J){if(!J)J={};let x={};if(J.defaults)x.int="";if(X.int!=null&&X.hasOwnProperty("int"))x.int=X.int;return x},y.prototype.toJSON=function L(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),Z.DecProto=(()=>{function y(L){if(L){for(let X=Object.keys(L),J=0;J<X.length;++J)if(L[X[J]]!=null)this[X[J]]=L[X[J]]}}return y.prototype.dec="",y.create=function L(X){return new y(X)},y.encode=function L(X,J){if(!J)J=fy.create();if(X.dec!=null&&Object.hasOwnProperty.call(X,"dec"))J.uint32(10).string(X.dec);return J},y.encodeDelimited=function L(X,J){return this.encode(X,J).ldelim()},y.decode=function L(X,J){if(!(X instanceof P))X=P.create(X);let x=J===void 0?X.len:X.pos+J,Q=new R.cosmos.base.v1beta1.DecProto;while(X.pos<x){let q=X.uint32();switch(q>>>3){case 1:Q.dec=X.string();break;default:X.skipType(q&7);break}}return Q},y.decodeDelimited=function L(X){if(!(X instanceof P))X=new P(X);return this.decode(X,X.uint32())},y.verify=function L(X){if(typeof X!=="object"||X===null)return"object expected";if(X.dec!=null&&X.hasOwnProperty("dec")){if(!C.isString(X.dec))return"dec: string expected"}return null},y.fromObject=function L(X){if(X instanceof R.cosmos.base.v1beta1.DecProto)return X;let J=new R.cosmos.base.v1beta1.DecProto;if(X.dec!=null)J.dec=String(X.dec);return J},y.toObject=function L(X,J){if(!J)J={};let x={};if(J.defaults)x.dec="";if(X.dec!=null&&X.hasOwnProperty("dec"))x.dec=X.dec;return x},y.prototype.toJSON=function L(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),Z})(),f})(),T})()});import{Chain as h2}from"@swapkit/helpers";async function by(){let{$root:T}=await Promise.resolve().then(() => (R1(),_1)),f=await import("@cosmjs/proto-signing"),Z=f.Registry??f.default?.Registry,y=await import("@cosmjs/stargate"),L=y.defaultRegistryTypes??y.default?.defaultRegistryTypes;return new Z([...L,["/types.MsgSend",T.types.MsgSend],["/types.MsgDeposit",T.types.MsgDeposit]])}async function vy(T){let f=await import("@cosmjs/stargate"),Z=f.AminoTypes??f.default?.AminoTypes,y=T===h2.THORChain?"thorchain":"mayachain";return new Z({"/types.MsgSend":{aminoType:`${y}/MsgSend`,toAmino:({fromAddress:L,toAddress:X,...J})=>({...J,from_address:qT(L),to_address:qT(X)}),fromAmino:({from_address:L,to_address:X,...J})=>({...J,fromAddress:QT(L),toAddress:QT(X)})},"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,toAmino:({signer:L,...X})=>({...X,signer:qT(L)}),fromAmino:({signer:L,...X})=>({...X,signer:QT(L)})}})}var F5=E(()=>{E5()});import{AssetValue as p2,Chain as mT,ChainToChainId as N1,SwapKitError as m2}from"@swapkit/helpers";function S5(T){return function f(Z){let{assetValue:y,recipient:L,memo:X,sender:J,asSignable:x,asAminoMessage:Q}=Z;if(L)return I1(T)({sender:J,recipient:L,assetValue:y,memo:X,asSignable:x,asAminoMessage:Q});return C1(T)({sender:J,assetValue:y,memo:X,asSignable:x,asAminoMessage:Q})}}function ly(T){if(T.type==="thorchain/MsgSend"||T.type==="mayachain/MsgSend")return T;return{...T,value:{...T.value,coins:T.value.coins.map((f)=>{let Z=p2.from({asset:f.asset}),y=(Z.isSynthetic?Z.symbol.split("/")?.[1]:Z.symbol)?.toUpperCase(),L=(Z.isSynthetic?Z.symbol.split("/")?.[0]:Z.chain)?.toUpperCase();return{...f,asset:{chain:L,symbol:y,ticker:Z.ticker,synth:Z.isSynthetic}}})}}}async function BT({chain:T,memo:f,msgs:Z}){let y=await by(),L=await vy(T),X={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:f,messages:Z.map((J)=>L.fromAmino(J))}};return y.encode(X)}var o2,c2,K5=({sender:T,recipient:f,assetValue:Z})=>{return{type:`${Z.chain===mT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{from_address:T,to_address:f,amount:[{amount:Z.getBaseValue("string"),denom:Ey(Z.symbol,!0)}]}}},A5=({sender:T,assetValue:f,memo:Z=""})=>{return{type:`${f.chain===mT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:f.getBaseValue("string"),asset:zT(f)}],signer:T,memo:Z}}},oT=({sender:T,recipient:f,assetValue:Z,memo:y})=>{return!f?A5({sender:T,assetValue:Z,memo:y}):K5({sender:T,recipient:f,assetValue:Z})},Py=async(T,f)=>{return(await vy(f)).fromAmino(T)},D1=async({rpcUrl:T,sender:f})=>{let y=await(await _y(T)).getAccount(f);if(!y)throw new m2("toolbox_cosmos_account_not_found",{sender:f});return y},I1=(T)=>async({sender:f,recipient:Z,assetValue:y,memo:L="",asSignable:X=!0,asAminoMessage:J=!1,sequence:x,accountNumber:Q})=>{let q=await D1({rpcUrl:T,sender:f}),z=y.chain,M=K5({sender:f,recipient:Z,assetValue:y}),G=X?await Py(J?M:ly(M),z):M;return{chainId:N1[z],accountNumber:Q||q.accountNumber,sequence:x||q.sequence,msgs:[G],fee:Uy(y.chain),memo:L}},C1=(T)=>async({sender:f,assetValue:Z,memo:y="",asSignable:L=!0,asAminoMessage:X=!1,sequence:J,accountNumber:x})=>{let Q=await D1({rpcUrl:T,sender:f}),q=Z.chain,z=A5({sender:f,assetValue:Z,memo:y}),M=L?await Py(X?z:ly(z),q):z;return{chainId:N1[q],accountNumber:x||Q.accountNumber,sequence:J||Q.sequence,msgs:[M],fee:Uy(Z.chain),memo:y}};var k1=E(()=>{GT();F5();o2=Uy(mT.THORChain).gas,c2=Uy(mT.Maya).gas});var O1=()=>{};var w1=E(()=>{O1()});var b5=E(()=>{E5();k1();F5();w1()});import{base64 as h5,bech32 as u5}from"@scure/base";import{AssetValue as F1,BaseDecimal as j5,Chain as r,ChainToChainId as g2,CosmosChainPrefixes as K1,DerivationPath as t2,FeeOption as p5,NetworkDerivationPath as d2,SKConfig as i2,SwapKitError as cT,SwapKitNumber as n5,applyFeeMultiplier as E1,derivationPathToString as v1,getRPCUrl as r2,updateDerivationPath as a2}from"@swapkit/helpers";import{SwapKitApi as A1}from"@swapkit/helpers/api";import{P as P1,match as s2}from"ts-pattern";async function o5(T,f){try{let y=(await A1.getGasRate()).find((L)=>L.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(Z){return f}}async function m5({phrase:T,prefix:f,...Z}){let y=await import("@cosmjs/proto-signing"),L=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,X=await import("@cosmjs/crypto"),J=X.stringToPath??X.default?.stringToPath,x="derivationPath"in Z?Z.derivationPath:`${t2[Z.chain]}/${Z.index}`;return L.fromMnemonic(T,{prefix:f,hdPaths:[J(x)]})}async function e2({privateKey:T,prefix:f}){let Z=await import("@cosmjs/proto-signing");return(Z.DirectSecp256k1Wallet??Z.default?.DirectSecp256k1Wallet).fromKey(T,f)}function S1(T){return async function f({signature:Z,message:y,address:L}){let X=await T(L);if(!X?.pubkey)throw new cT("toolbox_cosmos_verify_signature_no_pubkey");let J=await import("@cosmjs/crypto"),x=J.Secp256k1Signature??J.default?.Secp256k1Signature,Q=J.Secp256k1??J.default?.Secp256k1,q=x.fromFixedLength(h5.decode(Z));return Q.verifySignature(q,h5.decode(y),X.pubkey.value)}}async function WT({chain:T,...f}){let Z=await r2(T),y=K1[T],L="index"in f?f.index||0:0,X=v1("derivationPath"in f&&f.derivationPath?f.derivationPath:a2(d2[T],{index:L})),J=await s2(f).with({phrase:P1.string},({phrase:M})=>m5({phrase:M,prefix:y,derivationPath:X})).with({signer:P1.any},({signer:M})=>M).otherwise(()=>{return});async function x(M){return(await _y(Z)).getAccount(M)}async function Q(){let[M]=await J?.getAccounts()||[];return M?.address}async function q(){let[M]=await J?.getAccounts()||[];if(!M?.pubkey)throw new cT("toolbox_cosmos_signer_not_defined");return h5.encode(M?.pubkey)}async function z({recipient:M,assetValue:G,memo:B="",feeRate:W,feeOptionKey:Y=p5.Fast}){let I=await Q();if(!(J&&I))throw new cT("toolbox_cosmos_signer_not_defined");let V=F1.from({chain:T}),$=zT(V),j=W||LX((await V1(T,l1[T]))[Y],$),A=await MT(Z,J),c=[{denom:Ey(`u${G.symbol}`).toLowerCase(),amount:G.getBaseValue("string")}],{transactionHash:m}=await A.sendTokens(I,M,c,j,B);return m}return{transfer:z,getAddress:Q,getAccount:x,getBalance:async(M,G)=>{let B=await $1(Z)(M);return await Promise.all(B.filter(({denom:W})=>W&&!W.includes("IBC/")).map(({denom:W,amount:Y})=>{let I=[r.THORChain,r.Maya].includes(T)&&(W.includes("/")||W.includes("˜"))?`${T}.${W}`:W;return $5(I,Y)}))},getSignerFromPhrase:async({phrase:M,derivationPath:G})=>m5({phrase:M,prefix:y,derivationPath:v1(G),index:L}),getSignerFromPrivateKey:async(M)=>{let G=await import("@cosmjs/proto-signing");return(G.DirectSecp256k1Wallet??G.default?.DirectSecp256k1Wallet).fromKey(M,y)},createPrivateKeyFromPhrase:JX(X),validateAddress:u1(y),getPubKey:q,getFees:()=>V1(T,l1[T]),fetchFeeRateFromSwapKit:o5,getBalanceAsDenoms:$1(Z),createTransaction:V5,verifySignature:S1(x)}}async function b1(T,f){try{let y=(await A1.getGasRate()).find((L)=>L.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(Z){return f}}function TX({address:T,chain:f,prefix:Z}){let y=Z||XX(f);if(!(y&&T))throw new cT("toolbox_cosmos_validate_address_prefix_not_found");return u1(y)(T)}function fX({assetValue:{chain:T}}){return F1.from({chain:T,value:ZX(T)})}function XX(T){let{isStagenet:f}=i2.get("envs"),Z=T?[r.THORChain,r.Maya].includes(T)&&f:!1,y=T?K1[T]:void 0;return Z?`s${y}`:y}async function V1(T,f){let Z=await o5(g2[T],f);return{average:n5.fromBigInt(BigInt(Z),j5[T]),fast:n5.fromBigInt(BigInt(E1(Z,p5.Fast,!0)),j5[T]),fastest:n5.fromBigInt(BigInt(E1(Z,p5.Fastest,!0)),j5[T])}}function LX(T,f){return{amount:[{denom:f,amount:T.getBaseValue("string")}],gas:"200000"}}function ZX(T){return{[r.Cosmos]:0.007,[r.Kujira]:0.02,[r.Noble]:0.01,[r.THORChain]:0.02,[r.Maya]:0.02}[T]||0}function u1(T){return function f(Z){if(!Z.startsWith(T))return!1;try{let{prefix:y,words:L}=u5.decode(Z);return u5.encode(y,L)===Z.toLocaleLowerCase()}catch(y){return!1}}}function $1(T){return async function f(Z){return(await(await _y(T)).getAllBalances(Z)).map((J)=>({...J,denom:J.denom.includes("/")?J.denom.toUpperCase():J.denom}))}}function JX(T){return async function f(Z){let y=await import("@cosmjs/crypto"),L=y.stringToPath??y.default?.stringToPath,X=y.Slip10Curve??y.default?.Slip10Curve,J=y.Slip10??y.default?.Slip10,x=y.EnglishMnemonic??y.default?.EnglishMnemonic,Q=y.Bip39??y.default?.Bip39,q=new x(Z),z=await Q.mnemonicToSeed(q),{privkey:M}=J.derivePath(X.Secp256k1,z,L(T));return M}}var l1,yX;var gT=E(()=>{GT();l1={[r.Cosmos]:500,[r.Kujira]:1000,[r.Noble]:1000,[r.THORChain]:5000000,[r.Maya]:5000000};yX=b1});import{base64 as uy}from"@scure/base";import{BaseDecimal as xX,Chain as QX,CosmosChainPrefixes as qX,FeeOption as c5,NetworkDerivationPath as zX,RequestClient as MX,SKConfig as j1,SwapKitError as n1,SwapKitNumber as h1,derivationPathToString as GX,getRPCUrl as BX,updateDerivationPath as WX}from"@swapkit/helpers";import{P as p1,match as HX}from"ts-pattern";function YX({prefix:T,derivationPath:f}){return async function Z(y,L=0){let X=await import("@cosmjs/amino"),J=X.Secp256k1HdWallet??X.default?.Secp256k1HdWallet,x=await import("@cosmjs/crypto"),Q=x.stringToPath??x.default?.stringToPath;return J.fromMnemonic(y,{hdPaths:[Q(`${f}/${L}`)],prefix:T})}}function UX(T){return uy.encode(T)}function _X(T){return async function f({wallet:Z,tx:y}){let{msgs:L,accountNumber:X,sequence:J,chainId:x,fee:Q,memo:q}=typeof y==="string"?JSON.parse(y):y,z=(await Z.getAccounts())?.[0]?.address||"",M=await vy(T),G=await by(),B=await l5(Z,{registry:G,aminoTypes:M}),W=[];for(let V of L){let $=await Py(V,T);W.push($)}let{signatures:[Y]}=await B.sign(z,W,Q,q,{accountNumber:X,sequence:J,chainId:x}),I=await BT({chain:T,memo:q,msgs:L.map(ly)});return{signature:UX(Y),bodyBytes:I}}}function RX({prefix:T,rpcUrl:f}){return async function Z(y,L,X,J,x){let{encodeSecp256k1Pubkey:Q,pubkeyToAddress:q}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:z}=(await import("@cosmjs/stargate")).default,{sequence:M,fee:G}=JSON.parse(y),B=await m1(X,J),W=L.map((V)=>[q(Q(uy.decode(V.pubKey)),T),uy.decode(V.signature)]),Y=await _y(f),{transactionHash:I}=await Y.broadcastTx(z(B,M,G,x,new Map(W)));return I}}async function m1(T,f,Z=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:L}=(await import("@cosmjs/amino")).default;return y(T.map((X)=>L(uy.decode(X))),f,Z)}function NX(T){return uy.decode(T)}async function DX({privateKey:T,message:f}){let{Secp256k1:Z}=(await import("@cosmjs/crypto")).default,y=await Z.createSignature(uy.decode(f),T);return uy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function g5({chain:T,...f}){let Z=j1.get("nodeUrls")[T],y=await BX(T),{isStagenet:L}=j1.get("envs"),X=T===QX.THORChain,J=`${L?"s":""}${qX[T]}`,x="index"in f?f.index||0:0,Q="derivationPath"in f&&f.derivationPath?f.derivationPath:WX(zX[T],{index:x}),q=await WT({chain:T,...f}),z=await HX(f).with({phrase:p1.string},({phrase:W})=>q.getSignerFromPhrase({phrase:W,derivationPath:Q})).with({signer:p1.any},({signer:W})=>W).otherwise(()=>{return}),M=Uy(T);async function G(){let W,Y=`${Z}/${X?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:I}}=await MX.get(Y);if(!I||Number.isNaN(I)||I<0)throw new n1("toolbox_cosmos_invalid_fee",{nativeFee:I.toString()});W=new h1(I)}catch{W=new h1({value:X?0.02:1,decimal:xX[T]})}return{[c5.Average]:W,[c5.Fast]:W,[c5.Fastest]:W}}async function B({assetValue:W,memo:Y="",recipient:I}){let{TxRaw:V}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),$=(await z?.getAccounts())?.[0]?.address;if(!($&&z))throw new n1("toolbox_cosmos_no_signer");let j="signAmino"in z,A=await by(),c=await vy(T),m=await MT(y,z,{registry:A,aminoTypes:c}),s=oT({assetValue:W,sender:$,recipient:I,memo:Y});if(j){let k=await Py(s,T),{signatures:v,authInfoBytes:w}=await m.sign($,[k],M,Y),l=V.encode({signatures:v,authInfoBytes:w,bodyBytes:await BT({chain:T,msgs:[s].map(ly),memo:Y})}).finish();return(await m.broadcastTx(l)).transactionHash}let O=ly(s),H=await Py(O,T);return(await m.signAndBroadcast($,[H],M,Y)).transactionHash}return{...q,broadcastMultisigTx:RX({prefix:J,rpcUrl:y}),buildAminoMsg:oT,buildEncodedTxBody:BT,convertToSignable:Py,createDefaultAminoTypes:()=>vy(T),createDefaultRegistry:by,createMultisig:m1,createTransaction:S5(y),deposit:B,getFees:G,importSignature:NX,parseAminoMessageForDirectSigning:ly,secp256k1HdWalletFromMnemonic:YX({derivationPath:GX(Q),prefix:J}),signMultisigTx:_X(T),signWithPrivateKey:DX,transfer:B,pubkeyToAddress:async(W)=>{let{pubkeyToAddress:Y}=(await import("@cosmjs/amino")).default;return Y(W,J)}}}var t5=E(()=>{b5();GT();gT()});import{Chain as HT,SwapKitError as IX}from"@swapkit/helpers";var CX=(T,f)=>{switch(T){case HT.Cosmos:case HT.Kujira:case HT.Noble:return WT({chain:T,...f});case HT.Maya:case HT.THORChain:return g5({chain:T,...f});default:throw new IX("toolbox_cosmos_not_supported",{chain:T})}};var o1=E(()=>{gT();t5();gT();t5()});var tT={};Jy(tT,{verifySignature:()=>S1,transferMsgAmino:()=>K5,toBase64:()=>S2,parseAminoMessageForDirectSigning:()=>ly,getSignerFromPrivateKey:()=>e2,getSignerFromPhrase:()=>m5,getMsgSendDenom:()=>Ey,getFeeRateFromThorswap:()=>yX,getFeeRateFromSwapKit:()=>b1,getDenomWithChain:()=>zT,getDefaultChainFee:()=>Uy,getCreateTransaction:()=>S5,getCosmosToolbox:()=>CX,getAssetFromDenom:()=>$5,fromBase64:()=>b2,fetchFeeRateFromSwapKit:()=>o5,estimateTransactionFee:()=>fX,depositMsgAmino:()=>A5,createThorchainToolbox:()=>g5,createStargateClient:()=>_y,createSigningStargateClient:()=>MT,createOfflineStargateClient:()=>l5,createDefaultRegistry:()=>by,createDefaultAminoTypes:()=>vy,createCosmosToolbox:()=>WT,cosmosValidateAddress:()=>TX,cosmosCreateTransaction:()=>V5,convertToSignable:()=>Py,buildTransferTx:()=>I1,buildEncodedTxBody:()=>BT,buildDepositTx:()=>C1,buildAminoMsg:()=>oT,bech32ToBase64:()=>QT,base64ToBech32:()=>qT,YUM_KUJIRA_FACTORY_DENOM:()=>W1,USK_KUJIRA_FACTORY_DENOM:()=>P5,THORCHAIN_GAS_VALUE:()=>o2,MAYA_GAS_VALUE:()=>c2,DEFAULT_NOBLE_FEE_MAINNET:()=>U1,DEFAULT_KUJI_FEE_MAINNET:()=>Y1,DEFAULT_COSMOS_FEE_MAINNET:()=>H1});var dT=E(()=>{b5();o1();GT()});import{AssetValue as kX,BaseDecimal as OX}from"@swapkit/helpers";import{SwapKitApi as wX}from"@swapkit/helpers/api";function c1(){function T(){let f=Date.now(),Z=d5||f;return d5=Z,f>d5?f:Z+1}return EX+T().toString(36)}function iT(T){return async function f(Z,y=!0){return(await wX.getChainBalance({chain:T,address:Z,scamFilter:y})).map(({identifier:X,value:J,decimal:x})=>{return new kX({decimal:x||OX[T],value:J,identifier:X})})}}var EX,d5=0;var rT=E(()=>{EX=typeof process!=="undefined"&&process.pid?process.pid.toString(36):""});import{SKConfig as vX,warnOnce as PX}from"@swapkit/helpers";function YT(T){let f=vX.get("apis")[T];if(f)return PX({condition:!0,id:"custom_evm_api_warning",warning:"Using custom EVM API. Be sure to implement all methods to avoid issues."}),f;return VX(T)}function lX(T){return T}function VX(T){return{getBalance:iT(T)}}var aT=E(()=>{rT()});import{Chain as o,ContractAddress as My,FeeOption as K,SwapKitError as h,SwapKitNumber as g1,applyFeeMultiplierToBigInt as Xy,isGasAsset as $X}from"@swapkit/helpers";import{erc20ABI as _T}from"@swapkit/helpers/contracts";import{BrowserProvider as FX,Contract as t1,Interface as d1,getAddress as sT}from"ethers";function iy({chain:T=o.Ethereum,provider:f,signer:Z,isEIP1559Compatible:y=!0}){return{getAddress:()=>{return Z?Z.getAddress():void 0},estimateTransactionFee:y0({provider:f,isEIP1559Compatible:y,chain:T}),call:e5({provider:f,signer:Z,isEIP1559Compatible:y,chain:T}),estimateCall:s1({provider:f,signer:Z}),EIP1193SendTransaction:ay(f),approve:bX({provider:f,signer:Z,isEIP1559Compatible:y,chain:T}),approvedAmount:a1({provider:f,chain:T}),broadcastTransaction:f.broadcastTransaction,createApprovalTx:hX({provider:f,signer:Z,chain:T}),createContract:a5({provider:f,chain:T}),createContractTxObject:jy({provider:f,chain:T}),createTransferTx:i5({provider:f,signer:Z,chain:T}),createTransaction:i5({provider:f,signer:Z,chain:T}),estimateGasLimit:jX({provider:f,signer:Z,chain:T}),estimateGasPrices:Vy({chain:T,provider:f,isEIP1559Compatible:y}),isApproved:SX({provider:f,chain:T}),sendTransaction:e1({provider:f,signer:Z,isEIP1559Compatible:y,chain:T}),signMessage:Z?.signMessage,transfer:uX({provider:f,signer:Z,isEIP1559Compatible:y,chain:T}),validateAddress:(L)=>r5({address:L})}}function r5({address:T}){try{return sT(T),!0}catch(f){return!1}}function ry(T){return T instanceof FX}function NT(T,f,Z){return new t1(T,d1.from(f),Z)}function a5({provider:T}){return function f(Z,y){return new t1(Z,d1.from(y),T)}}function s5({abi:T,funcName:f}){let Z=T.find((y)=>y.name===f);if(!Z)throw new h("toolbox_evm_no_abi_fragment",{funcName:f});return Z.stateMutability&&KX.includes(Z.stateMutability)}function i1(T){return sT(T)}function ay(T){return function f({value:Z,...y}){if(!ry(T))throw new h("toolbox_evm_provider_not_eip1193_compatible");return T.send("eth_sendTransaction",[{value:UT(BigInt(Z||0)),...y}])}}function r1(T,f){let Z=sy(T,f);if(Z)return sT(Z.toLowerCase());throw new h("toolbox_evm_invalid_gas_asset_address")}function sy({chain:T,symbol:f,ticker:Z},y){try{let L=T===o.BinanceSmartChain&&f==="BNB"&&Z==="BNB",X=T===y&&f===y&&Z===y,J=[o.Arbitrum,o.Aurora,o.Base,o.Optimism].includes(T)&&f==="ETH"&&Z==="ETH";if(X||L||J)return AX[y];return sT(f.slice(Z.length+1).replace(/^0X/,""))}catch(L){return null}}function jy({provider:T}){return async({contractAddress:f,abi:Z,funcName:y,funcParams:L=[],txOverrides:X})=>NT(f,Z,T).getFunction(y).populateTransaction(...L.concat(X).filter((J)=>typeof J!=="undefined"))}function Vy({chain:T,provider:f,isEIP1559Compatible:Z=!0}){if(T===o.Arbitrum)return async function y(){try{let{gasPrice:L}=await f.getFeeData();if(!L)throw new h("toolbox_evm_no_fee_data");return{[K.Average]:{gasPrice:L},[K.Fast]:{gasPrice:L},[K.Fastest]:{gasPrice:L}}}catch(L){throw new h("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}};if(T===o.Optimism)return async function y(){try{let{maxFeePerGas:L,maxPriorityFeePerGas:X,gasPrice:J}=await f.getFeeData(),x=IT(f)(),Q=J;if(!(L&&X))throw new h("toolbox_evm_no_fee_data");return{[K.Average]:{l1GasPrice:x,gasPrice:Q,maxFeePerGas:L,maxPriorityFeePerGas:X},[K.Fast]:{l1GasPrice:Xy(x||0n,K.Fast),gasPrice:Xy(Q,K.Fast),maxFeePerGas:L,maxPriorityFeePerGas:Xy(X,K.Fast)},[K.Fastest]:{l1GasPrice:Xy(x||0n,K.Fastest),gasPrice:Xy(Q,K.Fastest),maxFeePerGas:L,maxPriorityFeePerGas:Xy(X,K.Fastest)}}}catch(L){throw new h("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}};return async function y(){try{let{maxFeePerGas:L,maxPriorityFeePerGas:X,gasPrice:J}=await f.getFeeData();if(Z){if(L===null||X===null)throw new h("toolbox_evm_no_fee_data");return{[K.Average]:{maxFeePerGas:L,maxPriorityFeePerGas:X},[K.Fast]:{maxFeePerGas:Xy(L,K.Fast),maxPriorityFeePerGas:Xy(X,K.Fast)},[K.Fastest]:{maxFeePerGas:Xy(L,K.Fastest),maxPriorityFeePerGas:Xy(X,K.Fastest)}}}if(!J)throw new h("toolbox_evm_no_gas_price");return{[K.Average]:{gasPrice:J},[K.Fast]:{gasPrice:Xy(J,K.Fast)},[K.Fastest]:{gasPrice:Xy(J,K.Fastest)}}}catch(L){throw new h("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}}}function e5({provider:T,isEIP1559Compatible:f,signer:Z,chain:y}){return async function L({callProvider:X,contractAddress:J,abi:x,funcName:Q,funcParams:q=[],txOverrides:z={},feeOption:M=K.Fast}){let G=X||T;if(!J)throw new h("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let B=s5({abi:x,funcName:Q});if(B&&ry(G)&&Z){let I=jy({provider:G,chain:y}),V=z?.from||await Z?.getAddress(),$=await I({contractAddress:J,abi:x,funcName:Q,funcParams:q,txOverrides:{...z,from:V}});return ay(G)($)}let W=NT(J,x,G);if(B){if(!Z)throw new h("toolbox_evm_no_signer");let I=z?.from||await Z.getAddress();if(!I)throw new h("toolbox_evm_no_signer_address");let V=W.connect(Z),$=Vy({provider:T,isEIP1559Compatible:f,chain:y}),{maxFeePerGas:j,maxPriorityFeePerGas:A,gasPrice:c}=(await $())[M],m=await W.getFunction(Q).estimateGas(...q,z),s=await V[Q](...q,{...z,gasLimit:m,maxFeePerGas:j,maxPriorityFeePerGas:A,gasPrice:c,nonce:z?.nonce||await G.getTransactionCount(I)});return typeof s?.hash==="string"?s?.hash:s}let Y=await W[Q]?.(...q);return typeof Y?.hash==="string"?Y?.hash:Y}}function a1({provider:T,chain:f}){return function Z({assetAddress:y,spenderAddress:L,from:X}){return e5({provider:T,isEIP1559Compatible:!0,chain:f})({contractAddress:y,abi:_T,funcName:"allowance",funcParams:[X,L]})}}function SX({provider:T,chain:f}){return async function Z({assetAddress:y,spenderAddress:L,from:X,amount:J=RT}){let x=await a1({provider:T,chain:f})({assetAddress:y,spenderAddress:L,from:X});return g1.fromBigInt(x).gte(g1.fromBigInt(BigInt(J)))}}function bX({signer:T,isEIP1559Compatible:f=!0,provider:Z,chain:y}){return async function L({assetAddress:X,spenderAddress:J,feeOptionKey:x=K.Fast,amount:Q,gasLimitFallback:q,from:z,nonce:M}){let G=[J,BigInt(Q||RT)],B=await T?.getAddress()||z,W={contractAddress:X,abi:_T,funcName:"approve",funcParams:G,signer:T,txOverrides:{from:B}};if(ry(Z)){let I=jy({provider:Z,chain:y}),V=ay(Z),$=await I(W);return V($)}return e5({provider:Z,isEIP1559Compatible:f,signer:T,chain:y})({...W,funcParams:G,txOverrides:{from:B,nonce:M,gasLimit:q?BigInt(q.toString()):void 0},feeOption:x})}}function uX({signer:T,isEIP1559Compatible:f=!0,provider:Z}){return async function y({assetValue:L,memo:X,recipient:J,feeOptionKey:x=K.Fast,sender:Q,...q}){let{hexlify:z,toUtf8Bytes:M}=await import("ethers"),G=L.getBaseValue("bigint"),B=L.chain,W=Q||await T?.getAddress(),Y=e1({provider:Z,signer:T,isEIP1559Compatible:f,chain:B});if(!W)throw new h("toolbox_evm_no_from_address");if(L.isGasAsset){let c={...q,from:W,to:J,value:G,data:z(M(X||"")),feeOptionKey:x};return Y(c)}if(!sy(L,B))throw new h("toolbox_evm_no_contract_address");let{maxFeePerGas:V,maxPriorityFeePerGas:$,gasPrice:j}=(await Vy({provider:Z,isEIP1559Compatible:f,chain:B})())[x],A=await i5({provider:Z,signer:T,chain:B})({assetValue:L,memo:X,recipient:J,data:z(M(X||"")),sender:W,maxFeePerGas:V,maxPriorityFeePerGas:$,gasPrice:j});return Y(A)}}function s1({provider:T,signer:f}){return function Z({contractAddress:y,abi:L,funcName:X,funcParams:J=[],txOverrides:x}){if(!y)throw new h("toolbox_evm_no_contract_address");let Q=NT(y,L,T);return f?Q.connect(f).getFunction(X).estimateGas(...J,x):Q.getFunction(X).estimateGas(...J,x)}}function jX({provider:T,signer:f}){return async function Z({assetValue:y,recipient:L,memo:X,data:J,sender:x,funcName:Q,funcParams:q,txOverrides:z}){let M=y.bigIntValue,G=y.isGasAsset?null:sy(y,y.chain);if(G&&Q)return s1({provider:T,signer:f})({contractAddress:G,abi:_T,funcName:Q,funcParams:q,txOverrides:z});let{hexlify:B,toUtf8Bytes:W}=await import("ethers");return T.estimateGas({from:x,to:L,value:M,data:J?J:X?B(W(X)):void 0})}}function e1({provider:T,signer:f,isEIP1559Compatible:Z=!0,chain:y}){return async function L({feeOptionKey:X=K.Fast,...J}){let{from:x,to:Q,data:q,value:z,...M}=J;if(!f)throw new h("toolbox_evm_no_signer");if(!Q)throw new h("toolbox_evm_no_to_address");let G={...M,data:q||"0x",to:Q,from:x,value:BigInt(z||0)};if(ry(T))return ay(T)(G);let B=x||await f.getAddress(),W=J.nonce||await T.getTransactionCount(B),Y=(await T.getNetwork()).chainId,I=nX(G)||Z,V=Vy({provider:T,isEIP1559Compatible:Z,chain:y}),$=I&&!(G.maxFeePerGas&&G.maxPriorityFeePerGas)||!G.gasPrice?Object.entries((await V())[X]).reduce((A,[c,m])=>({...A,[c]:UT(BigInt(m))}),{}):{},j;try{j=UT(G.gasLimit||await T.estimateGas(G)*11n/10n)}catch(A){throw new h("toolbox_evm_error_estimating_gas_limit",{error:A})}try{let A={...G,chainId:Y,type:I?2:0,gasLimit:j,nonce:W,...$};try{return(await f.sendTransaction(A)).hash}catch(c){let m=await f.signTransaction({...A,from:B});return(await T.broadcastTransaction(m)).hash}}catch(A){throw new h("toolbox_evm_error_sending_transaction",{error:A})}}}function i5({provider:T,signer:f}){return async function Z({assetValue:y,memo:L,recipient:X,data:J,sender:x,maxFeePerGas:Q,maxPriorityFeePerGas:q,gasPrice:z,...M}){let G=y.getBaseValue("bigint"),B=y.chain,W=x||await f?.getAddress();if(!W)throw new h("toolbox_evm_no_from_address");if($X(y)){let{hexlify:V,toUtf8Bytes:$}=await import("ethers");return{...M,from:W,to:X,value:G,data:J||V($(L||""))}}let Y=sy(y,B);if(!Y)throw new h("toolbox_evm_no_contract_address");return jy({provider:T,chain:y.chain})({contractAddress:Y,abi:_T,funcName:"transfer",funcParams:[X,G],txOverrides:{from:W,maxFeePerGas:Q,maxPriorityFeePerGas:q,gasPrice:z}})}}function hX({provider:T,signer:f,chain:Z}){return async function y({assetAddress:L,spenderAddress:X,amount:J,from:x}){let Q=await f?.getAddress()||x,q=jy({provider:T,chain:Z}),z=["bigint","number"].includes(typeof J)?J:J||RT;return await q({contractAddress:L,abi:_T,funcName:"approve",funcParams:[X,BigInt(z)],txOverrides:{from:Q}})}}var RT,KX,AX,nX=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var DT=E(()=>{T0();RT=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");KX=["payable","nonpayable"];AX={[o.Arbitrum]:My.ARB,[o.Aurora]:My.AURORA,[o.Avalanche]:My.AVAX,[o.Base]:My.BASE,[o.Berachain]:My.BERA,[o.BinanceSmartChain]:My.BSC,[o.Ethereum]:My.ETH,[o.Gnosis]:My.GNO,[o.Optimism]:My.OP,[o.Polygon]:My.MATIC}});var yf;var Tf=E(()=>{yf=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{Chain as Ry,FeeOption as pX,getRPCUrl as mX}from"@swapkit/helpers";import{HDNodeWallet as oX}from"ethers";import{P as ff,match as cX}from"ts-pattern";async function eT({provider:T,...f}){let Z=await Ny(Ry.Ethereum)({provider:T,...f});async function y(L,X="0x5ba1e12693dc8f9c48aad8770482f4739beed696",J="aggregate",x=pX.Fast){let Q=await Z.createContractTxObject({contractAddress:X,abi:yf,funcName:J,funcParams:[L]});return Z.sendTransaction({...Q,feeOptionKey:x})}return{...Z,multicall:y}}function Ny(T){return async function f({provider:Z,...y}){let L=await mX(T),X=Z||await ny(T,L),J=L0(T),x=cX(y).with({phrase:ff.string},({phrase:q})=>oX.fromPhrase(q).connect(X)).with({signer:ff.any},({signer:q})=>q).otherwise(()=>{return});return{...iy({provider:X,signer:x,isEIP1559Compatible:J,chain:T}),getNetworkParams:X0(T),getBalance:YT(T).getBalance}}}var y5,T5,f5,X5,L5,Z5,J5,x5;var f0=E(()=>{aT();Tf();CT();DT();y5=Ny(Ry.Arbitrum),T5=Ny(Ry.Aurora),f5=Ny(Ry.Avalanche),X5=Ny(Ry.Base),L5=Ny(Ry.Berachain),Z5=Ny(Ry.BinanceSmartChain),J5=Ny(Ry.Gnosis),x5=Ny(Ry.Polygon)});var Xf;var Lf=E(()=>{Xf=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{BaseDecimal as gX,Chain as kT,ChainId as tX,ChainToExplorerUrl as dX,SKConfig as iX,SwapKitError as rX,getRPCUrl as aX}from"@swapkit/helpers";import{Contract as sX,HDNodeWallet as eX}from"ethers";import{P as Zf}from"ts-pattern";import{match as y8}from"ts-pattern";function Z0(T){return new sX(T8,Xf,T)}function IT(T){return function f(){let Z=Z0(T);if(Z&&"l1BaseFee"in Z)return Z?.l1BaseFee();return}}function Jf(T){return async function f({from:Z,to:y,nonce:L,...X}){let{Transaction:J}=await import("ethers");if(!y)throw new rX("toolbox_evm_invalid_transaction",{error:"Missing to address"});return J.from({...X,authorizationList:X.authorizationList,to:y,nonce:L?L:Z?await T.getTransactionCount(Z):0}).serialized}}function xf(T){return async function f(Z){let y=Z0(T),L=await Jf(T)(Z);if(y&&"getL1Fee"in y)return y.getL1Fee(L)}}function Qf(T){return async function f(Z){let y=await T.send("eth_gasPrice",[]),L=await T.estimateGas(Z);return y.mul(L)}}function f8(T){return async function f(Z){let y=await xf(T)(Z),L=await Qf(T)(Z);return y.add(L)}}function J0(T){return async function f(Z){let y=Z0(T),L=await Jf(T)(Z);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(L)}}async function Q5({provider:T,...f}){let Z=kT.Optimism,y=await aX(Z),L=T||await ny(Z,y),X=y8(f).with({phrase:Zf.string},({phrase:Q})=>eX.fromPhrase(Q).connect(L)).with({signer:Zf.any},({signer:Q})=>Q).otherwise(()=>{return}),J=iy({provider:L,signer:X}),x=IT(L);return{...J,estimateL1Gas:J0(L),estimateL1GasCost:xf(L),estimateL2GasCost:Qf(L),estimateTotalGasCost:f8(L),getBalance:YT(kT.Optimism).getBalance,getL1GasPrice:x,getNetworkParams:X8}}var T8="0x420000000000000000000000000000000000000f",X8=()=>({chainId:tX.OptimismHex,chainName:"Optimism",nativeCurrency:{name:"Ethereum",symbol:kT.Ethereum,decimals:gX.ETH},rpcUrls:[iX.get("rpcUrls")[kT.Optimism]],blockExplorerUrls:[dX[kT.Optimism]]});var x0=E(()=>{aT();Lf();CT();DT()});var Q0={};Jy(Q0,{toChecksumAddress:()=>i1,isStateChangingCall:()=>s5,isBrowserProvider:()=>ry,getTokenAddress:()=>sy,getL1GasPriceFetcher:()=>IT,getEvmToolbox:()=>qf,getEstimateGasPrices:()=>Vy,getEIP1193SendTransaction:()=>ay,getCreateContractTxObject:()=>jy,getCreateContract:()=>a5,getChecksumAddressFromAsset:()=>r1,evmValidateAddress:()=>r5,estimateL1Gas:()=>J0,createContract:()=>NT,OPToolbox:()=>Q5,MAX_APPROVAL:()=>RT,MATICToolbox:()=>x5,GNOToolbox:()=>J5,ETHToolbox:()=>eT,BaseEVMToolbox:()=>iy,BSCToolbox:()=>Z5,BERAToolbox:()=>L5,BASEToolbox:()=>X5,AVAXToolbox:()=>f5,AURORAToolbox:()=>T5,ARBToolbox:()=>y5});import{Chain as Gy,SwapKitError as L8}from"@swapkit/helpers";async function qf(T,f){let Z={...f,provider:f?.provider||await ny(T)};switch(T){case Gy.Arbitrum:return y5(Z);case Gy.Aurora:return T5(Z);case Gy.Avalanche:return f5(Z);case Gy.Base:return X5(Z);case Gy.Berachain:return L5(Z);case Gy.BinanceSmartChain:return Z5(Z);case Gy.Gnosis:return J5(Z);case Gy.Optimism:return Q5(Z);case Gy.Polygon:return x5(Z);case Gy.Ethereum:return eT(Z);default:throw new L8("toolbox_evm_not_supported",{chain:T})}}var q5=E(()=>{CT();f0();x0();DT();f0();x0()});import{AssetValue as z5,BaseDecimal as Z8,Chain as p,ChainToExplorerUrl as J8,ChainToHexChainId as x8,FeeOption as zf,SKConfig as Q8,SwapKitError as z0,SwapKitNumber as q0,getRPCUrl as q8}from"@swapkit/helpers";async function ny(T,f){let{JsonRpcProvider:Z}=await import("ethers");return new Z(f||await q8(T))}function UT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function y0({provider:T,isEIP1559Compatible:f=!0}){return async function Z({feeOption:y=zf.Fast,chain:L,...X}){let x=await Vy({provider:T,isEIP1559Compatible:f,chain:L})(),Q=await T.estimateGas(X),q=z5.from({chain:L}),{gasPrice:z,maxFeePerGas:M,maxPriorityFeePerGas:G}=x[y];if(!f&&z)return q.set(q0.fromBigInt(z*Q,q.decimal));if(M&&G){let B=(M+G)*Q;return q.set(q0.fromBigInt(B,q.decimal))}throw new z0("toolbox_evm_no_gas_price")}}function X0(T){return()=>p.Ethereum===T?void 0:{...M8({chain:T}),chainId:x8[T],rpcUrls:[Q8.get("rpcUrls")[T]],blockExplorerUrls:[J8[T]]}}function L0(T){return![p.Arbitrum,p.BinanceSmartChain].includes(T)}function M8({chain:T}){let f=Z8[T];switch(T){case p.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{name:"Ethereum",symbol:p.Ethereum,decimals:f}};case p.Aurora:return{chainName:"Aurora Mainnet",nativeCurrency:{name:"Ethereum",symbol:p.Ethereum,decimals:f}};case p.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{name:"Avalanche",symbol:T,decimals:f}};case p.Base:return{chainName:"Base Mainnet",nativeCurrency:{name:"Ethereum",symbol:p.Ethereum,decimals:f}};case p.Berachain:return{chainName:"Berachain",nativeCurrency:{name:"Berachain",symbol:"BERA",decimals:f}};case p.BinanceSmartChain:return{chainName:"BNB Smart Chain Mainnet",nativeCurrency:{name:"Binance Coin",symbol:"BNB",decimals:f}};case p.Gnosis:return{chainName:"Gnosis",nativeCurrency:{name:"xDAI",symbol:"XDAI",decimals:f}};case p.Optimism:return{chainName:"OP Mainnet",nativeCurrency:{name:"Ethereum",symbol:p.Ethereum,decimals:f}};case p.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{name:"Polygon",symbol:p.Polygon,decimals:f}};default:throw new z0("toolbox_evm_not_supported",{chain:T})}}var z8=async({from:T,memo:f="",feeOptionKey:Z=zf.Fastest,assetValue:y,abi:L,funcName:X,funcParams:J,contractAddress:x,txOverrides:Q})=>{let{getEvmToolbox:q}=await Promise.resolve().then(() => (q5(),Q0)),z=await q(y.chain),G=(await z.getBalance(T)).find(({symbol:A,chain:c})=>y?A===y.symbol:A===z5.from({chain:c})?.symbol),B=(await z.estimateGasPrices())[Z];if(!G)return z5.from({chain:y.chain});if(y&&(G.chain!==y.chain||G.symbol!==y?.symbol))return G;let W=L&&X&&J&&x?await z.estimateCall({contractAddress:x,abi:L,funcName:X,funcParams:J,txOverrides:Q}):await z.estimateGasLimit({sender:T,recipient:T,memo:f,assetValue:y}),Y="maxFeePerGas"in B,I="gasPrice"in B&&B.gasPrice!==void 0;if(!(B&&(I||Y)))throw new z0("toolbox_evm_no_fee_data");let V=Y?(B.maxFeePerGas||1n)+(B.maxPriorityFeePerGas||1n):B.gasPrice||1n,$=W*V,j=q0.fromBigInt(G.getBaseValue("bigint")).sub($.toString());return z5.from({chain:G.chain,value:j.getValue("string")})};var CT=E(()=>{DT()});var Mf;var Gf=E(()=>{((Z)=>{Z.Test="goerli";Z.Main="homestead"})(Mf||={})});var Bf={};Jy(Bf,{toHexString:()=>UT,toChecksumAddress:()=>i1,isStateChangingCall:()=>s5,isBrowserProvider:()=>ry,getTokenAddress:()=>sy,getProvider:()=>ny,getNetworkParams:()=>X0,getL1GasPriceFetcher:()=>IT,getIsEIP1559Compatible:()=>L0,getEvmToolbox:()=>qf,getEvmApi:()=>YT,getEstimateTransactionFee:()=>y0,getEstimateGasPrices:()=>Vy,getEIP1193SendTransaction:()=>ay,getCreateContractTxObject:()=>jy,getCreateContract:()=>a5,getChecksumAddressFromAsset:()=>r1,evmValidateAddress:()=>r5,estimateMaxSendableAmount:()=>z8,estimateL1Gas:()=>J0,createCustomEvmApi:()=>lX,createContract:()=>NT,OPToolbox:()=>Q5,MAX_APPROVAL:()=>RT,MATICToolbox:()=>x5,GNOToolbox:()=>J5,EthNetwork:()=>Mf,ETHToolbox:()=>eT,BaseEVMToolbox:()=>iy,BSCToolbox:()=>Z5,BERAToolbox:()=>L5,BASEToolbox:()=>X5,AVAXToolbox:()=>f5,AURORAToolbox:()=>T5,ARBToolbox:()=>y5});var T0=E(()=>{aT();CT();Gf();q5()});import{AssetValue as G8,Chain as B8,SwapKitNumber as Wf}from"@swapkit/helpers";async function W8(T,f,Z){try{let y=await T.query.system?.account?.(Z);if(!y)return[f.set(0)];let{data:{free:L}}=y,X=Wf.fromBigInt(BigInt(L.toString()),f.decimal).getValue("string");return[f.set(X)]}catch(y){return console.error("Error fetching substrate balance:",y),[f.set(0)]}}async function H8(T,f,Z){try{let y=await T.query.flip?.account?.(Z);if(!y)return[f.set(0)];let L=y.balance||y.data?.balance;if(!L||L.isEmpty)return[f.set(0)];let X=Wf.fromBigInt(BigInt(L.toString()),f.decimal).getValue("string");return[f.set(X)]}catch(y){return console.error("Error fetching chainflip balance:",y),[f.set(0)]}}function Hf(T,f){return function Z(y){let L=G8.from({chain:T});switch(T){case B8.Chainflip:return H8(f,L,y);default:return W8(f,L,y)}}}var Yf=()=>{};var Y8,U8,_8,$y;var M0=E(()=>{Y8={prefix:0,network:"polkadot",displayName:"Polkadot Relay Chain",symbols:["DOT"],decimals:[10],standardAccount:"*25519",website:"https://polkadot.network"},U8={prefix:2112,network:"chainflip",displayName:"Chainflip",symbols:["FLIP"],decimals:[18],standardAccount:"*25519",website:"https://chainflip.io/"},_8={prefix:42,network:"substrate",displayName:"Substrate",symbols:[],decimals:[],standardAccount:"*25519",website:"https://substrate.io/"},$y={DOT:Y8,FLIP:U8,GENERIC:_8}});import{hexToU8a as R8,isHex as N8,u8aToHex as D8}from"@polkadot/util";import{decodeAddress as _f,encodeAddress as Rf}from"@polkadot/util-crypto";import{AssetValue as I8,Chain as yT,SwapKitError as Dy,SwapKitNumber as C8,getRPCUrl as k8}from"@swapkit/helpers";import{P as Uf,match as O8}from"ts-pattern";function w8(T,f){switch(T){case yT.Chainflip:return Df(f);case yT.Polkadot:return Nf(f);default:throw new Dy("toolbox_substrate_not_supported",{chain:T})}}function ey(T){return"address"in T}async function B0(T,f){let{Keyring:Z}=await import("@polkadot/api"),{cryptoWaitReady:y}=await import("@polkadot/util-crypto");return await y(),new Z({type:"sr25519",ss58Format:f}).addFromUri(T)}function F8(T,f){let Z=_f(T);return Rf(Z,f)}function If(T,f){return N8(T)?R8(T):_f(T,void 0,f)}function Cf(T,f="ss58",Z){if(f==="hex")return D8(T);return Rf(T,Z)}async function Y0({generic:T,chain:f,...Z}){let{ApiPromise:y,WsProvider:L}=await import("@polkadot/api"),X=await k8(f),J=new L(X),x=await y.create({provider:J}),Q=I8.from({chain:f}),q=T?$y.GENERIC:$y[f],z=await O8(Z).with({phrase:Uf.string},({phrase:M})=>B0(M,$y[f].prefix)).with({signer:Uf.any},({signer:M})=>M).otherwise(()=>{return});return kf({api:x,signer:z,gasAsset:Q,network:q,chain:f})}var Nf=({generic:T=!1,...f}={})=>{return Y0({chain:yT.Polkadot,generic:T,...f})},Df=async({generic:T=!1,...f}={})=>{return{...await Y0({chain:yT.Chainflip,generic:T,...f})}},W0=(T,f)=>T.rpc.system.accountNextIndex(f),G0=(T,f)=>{try{let Z=If(T,f);return Cf(Z,"ss58",f),!0}catch(Z){return!1}},H0=(T,{recipient:f,assetValue:Z})=>T.tx.balances?.transferAllowDeath?.(f,Z.getBaseValue("number")),E8=async(T,f,{recipient:Z,assetValue:y,sender:L})=>{let X=H0(T,{recipient:Z,assetValue:y}),J=ey(f);if(!X)return;let x=J?f.address:L;if(!x)throw new Dy("core_transaction_invalid_sender_address");let Q=await W0(T,x);return(await X.signAndSend(J?f:x,{signer:J?void 0:f,nonce:Q}))?.toString()},v8=async(T,f,Z,{recipient:y,assetValue:L,sender:X})=>{let J=H0(T,{recipient:y,assetValue:L}),x=ey(f)?f.address:X;if(!x)return;let Q=await J?.paymentInfo(x,{nonce:await W0(T,x)})||{partialFee:0};return Z.set(C8.fromBigInt(BigInt(Q.partialFee.toString()),Z.decimal).getValue("string"))},P8=async(T,f)=>{if(f)return T.send(f);return(await T.send()).toString()},l8=async(T,f)=>{return await f.signAsync(T)},V8=(T,f,Z)=>{if(Z)return f.signAndSend(T,Z);return f.signAndSend(T).toString()},$8=async({signer:T,address:f,tx:Z,callback:y,api:L})=>{let X=await W0(L,f);if(y)Z.signAndSend(f,{nonce:X,signer:T},y);return Z.signAndSend(f,{nonce:X,signer:T}).toString()},kf=({api:T,network:f,gasAsset:Z,signer:y,chain:L})=>({api:T,network:f,gasAsset:Z,decodeAddress:If,encodeAddress:Cf,convertAddress:F8,getBalance:Hf(L||yT.Polkadot,T),createKeyring:(X)=>B0(X,f.prefix),getAddress:(X)=>{let J=X||y;if(!J)throw new Dy("core_wallet_not_keypair_wallet");return ey(J)?J.address:void 0},createTransaction:(X)=>H0(T,X),validateAddress:(X)=>G0(X,f.prefix),transfer:(X)=>{if(!y)throw new Dy("core_wallet_not_keypair_wallet");return E8(T,y,X)},estimateTransactionFee:(X)=>{if(!y)throw new Dy("core_wallet_not_keypair_wallet");return v8(T,y,Z,X)},sign:(X)=>{if(!y)throw new Dy("core_wallet_not_keypair_wallet");if(ey(y))return l8(y,X);throw new Dy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},broadcast:P8,signAndBroadcast:({tx:X,callback:J,address:x})=>{if(!y)throw new Dy("core_wallet_not_keypair_wallet");if(ey(y))return V8(y,X,J);if(x)return $8({signer:y,address:x,tx:X,callback:J,api:T});throw new Dy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")}}),K8=({address:T,chain:f})=>{let{prefix:Z}=f===yT.Polkadot?$y.DOT:$y.FLIP;return G0(T,Z)||G0(T,$y.GENERIC.prefix)};var Of=E(()=>{Yf();M0()});var U0={};Jy(U0,{substrateValidateAddress:()=>K8,isKeyringPair:()=>ey,getSubstrateToolbox:()=>w8,createSubstrateToolbox:()=>Y0,createKeyring:()=>B0,SubstrateNetwork:()=>$y,PolkadotToolbox:()=>Nf,ChainflipToolbox:()=>Df,BaseSubstrateToolbox:()=>kf});var _0=E(()=>{Of();M0()});import{networks as A8}from"@bitgo/utxo-lib";import{Chain as d,RequestClient as M5,SKConfig as vf,SwapKitError as Fy,getRPCUrl as S8,warnOnce as Pf}from"@swapkit/helpers";import{networks as b8}from"bitcoinjs-lib";import OT from"coininfo";async function u8({chain:T,txHash:f}){let Z=`${G5(T)}/push/transaction`,y=JSON.stringify({data:f});try{let L=await M5.post(Z,{headers:{"Content-Type":"application/json"},body:y});if(L.context.code!==200)throw new Fy("toolbox_utxo_broadcast_failed",{error:L.context.error||"Transaction broadcast failed"});return L.data?.transaction_hash||f}catch(L){let X=await S8(T);if(X){let J=JSON.stringify({jsonrpc:"2.0",method:"sendrawtransaction",params:[f],id:c1()}),x=await M5.post(X,{headers:{"Content-Type":"application/json"},body:J});if(x.error)throw new Fy("toolbox_utxo_broadcast_failed",{error:x.error?.message});if(x.result.includes('"code":-26'))throw new Fy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return x.result}throw L}}function G5(T){return`https://api.blockchair.com/${j8(T)}`}function wf(T){switch(T){case d.Bitcoin:return 5;case d.Dogecoin:return 1e4;case d.Litecoin:return 1;case d.Zcash:return 1;default:return 2}}function j8(T){switch(T){case d.BitcoinCash:return"bitcoin-cash";case d.Litecoin:return"litecoin";case d.Dash:return"dash";case d.Dogecoin:return"dogecoin";case d.Zcash:return"zcash";case d.Polkadot:return"polkadot";default:return"bitcoin"}}async function n8(T){try{let{feePerKb:f}=await M5.get(`https://app.bitgo.com/api/v2/${T.toLowerCase()}/tx/fee`),Z=f/1000;return Math.max(Z,wf(T))}catch(f){return wf(T)}}async function R0(T,f){let Z=await M5.get(`${T}${f?`${T.includes("?")?"&":"?"}key=${f}`:""}`);if(!Z||Z.context.code!==200)throw new Fy("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return Z.data}async function lf({address:T,chain:f,apiKey:Z}){if(!T)throw new Fy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await R0(`${G5(f)}/dashboards/address/${T}?transaction_details=true`,Z))[T]}catch(y){return{utxo:[],address:{balance:0,transaction_count:0}}}}async function h8({address:T,chain:f,apiKey:Z}){return(await lf({address:T,chain:f,apiKey:Z}))?.address.balance||0}async function Vf({chain:T,apiKey:f,txHash:Z}){if(!Z)throw new Fy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await R0(`${G5(T)}/raw/transaction/${Z}`,f))?.[Z]?.raw_transaction||""}catch(y){return console.error("Failed to fetch raw transaction:",y),""}}async function p8({chain:T,address:f,apiKey:Z,offset:y=0,limit:L=30}){return(await R0(`${G5(T)}/outputs?q=recipient(${f}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${L}&offset=${y}`,Z)).map(({is_spent:Q,script_hex:q,block_id:z,transaction_hash:M,index:G,value:B,spending_signature_hex:W})=>({hash:M,index:G,value:B,txHex:W,script_hex:q,is_confirmed:z!==-1,is_spent:Q}))}function m8(T){return T.reduce((f,Z)=>f+Z.value,0)}function Ef(T,f){let Z=[...T].sort((y,L)=>L.value-y.value);if(f){let y=[],L=0;for(let X of Z)if(y.push(X),L+=X.value,L>=f)break;return y}return Z}async function $f({chain:T,address:f,apiKey:Z,targetValue:y,accumulativeValue:L=0,offset:X=0,limit:J=30}){if(!f)throw new Fy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let x=await p8({targetValue:y,chain:T,address:f,apiKey:Z,offset:X,limit:J}),q=x.length<J,z=x.filter(({is_spent:I})=>!I),M=m8(z),G=L+M,B=y&&G>=y;if(q||B)return Ef(z,y);let W=await $f({chain:T,address:f,apiKey:Z,offset:X+J,limit:J,accumulativeValue:G,targetValue:y}),Y=[...z,...W];return Ef(Y,y)}catch(x){return console.error("Failed to fetch unspent UTXOs:",x),[]}}async function o8({address:T,chain:f,apiKey:Z,fetchTxHex:y=!0,targetValue:L}){let X=await $f({chain:f,address:T,apiKey:Z,targetValue:L}),J=[];for(let{hash:x,index:Q,script_hex:q,value:z}of X){let M;if(y)M=await Vf({txHash:x,chain:f,apiKey:Z});J.push({address:T,hash:x,index:Q,txHex:M,value:z,witnessUtxo:{value:z,script:Buffer.from(q,"hex")}})}return J}function c8(T){let f=vf.get("apiKeys").blockchair||"";return Pf({condition:!f,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(Z)=>u8({txHash:Z,chain:T}),getRawTx:(Z)=>Vf({txHash:Z,chain:T,apiKey:f}),getSuggestedTxFee:()=>n8(T),getBalance:(Z)=>h8({address:Z,chain:T,apiKey:f}),getAddressData:(Z)=>lf({address:Z,chain:T,apiKey:f}),getUtxos:(Z)=>o8({...Z,chain:T,apiKey:f})}}function g8(T){return T}function yy(T){let f=vf.get("apis")[T];if(f)return Pf({condition:!0,id:"custom_utxo_api_warning",warning:"Using custom UTXO API. Be sure to implement all methods to avoid issues."}),f;return c8(T)}function By(){return function T(f){switch(f){case d.Bitcoin:return b8.bitcoin;case d.BitcoinCash:return OT.bitcoincash.main.toBitcoinJS();case d.Dash:return OT.dash.main.toBitcoinJS();case d.Litecoin:return OT.litecoin.main.toBitcoinJS();case d.Dogecoin:{let Z={private:70615956,public:70617039},y=OT.dogecoin.test;return y.versions.bip32=Z,OT.dogecoin.main.toBitcoinJS()}case d.Zcash:return A8.zcash;default:throw new Fy("toolbox_utxo_not_supported",{chain:f})}}}var Ff=E(()=>{rT()});import{SwapKitError as Af}from"@swapkit/helpers";import Sf from"bs58check";import bf from"cashaddrjs";function D0(T){try{return B5(T),!0}catch(f){return!1}}function I0(T){return B5(T)?.network}function TT(T){let f=B5(T);if(f?.format==="legacy")return T;return i8(f)}function wT(T){let f=B5(T);return r8(f)}function B5(T){try{let f=t8(T);if(f)return f}catch(f){}try{let f=d8(T);if(f)return f}catch(f){}throw new Af("toolbox_utxo_invalid_address",{address:T})}function t8(T){try{let f=Sf.decode(T);if(f.length!==21)throw new Af("toolbox_utxo_invalid_address",{address:T});let Z=f[0],y=Array.prototype.slice.call(f,1);switch(Z){case b.legacy.mainnet.p2pkh:return{hash:y,format:"legacy",network:"mainnet",type:"p2pkh"};case b.legacy.mainnet.p2sh:return{hash:y,format:"legacy",network:"mainnet",type:"p2sh"};case b.legacy.testnet.p2pkh:return{hash:y,format:"legacy",network:"testnet",type:"p2pkh"};case b.legacy.testnet.p2sh:return{hash:y,format:"legacy",network:"testnet",type:"p2sh"};case b.bitpay.mainnet.p2pkh:return{hash:y,format:"bitpay",network:"mainnet",type:"p2pkh"};case b.bitpay.mainnet.p2sh:return{hash:y,format:"bitpay",network:"mainnet",type:"p2sh"};default:return}}catch(f){return}}function d8(T){if(T.indexOf(":")!==-1)try{return Kf(T)}catch(f){}else{let f=["bitcoincash","bchtest","bchreg"];for(let Z of f)try{return Kf(`${Z}:${T}`)}catch(y){}}return}function Kf(T){try{let{hash:f,prefix:Z,type:y}=bf.decode(T);return{format:"cashaddr",hash:Array.prototype.slice.call(f,0),network:Z==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch(f){return}}function i8(T){let f=b.legacy[T.network][T.type],Z=Buffer.alloc(1+T.hash.length);return Z[0]=f,Z.set(T.hash,1),Sf.encode(Z)}function r8(T){let f=T.network==="mainnet"?"bitcoincash":"bchtest",Z=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return bf.encode(f,Z,y)}var N0,b;var uf=E(()=>{((Z)=>{Z.Mainnet="mainnet";Z.Testnet="testnet"})(N0||={});b={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{Chain as hy,SwapKitError as a8}from"@swapkit/helpers";var W5=(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 a8("toolbox_utxo_not_supported",{chain:T})}},Wy=({inputs:T,outputs:f,feeRate:Z=1,chain:y=hy.Bitcoin,changeAddress:L=""})=>{let X=Math.ceil(Z),J=T[0]&&"address"in T[0]&&T[0].address?vT(T[0].address):"P2PKH",x=T.filter((B)=>Ky(B)*X<=B.value),Q=H5+f.reduce((B,W)=>B+ET(W,J),0),q=f.reduce((B,W)=>B+W.value,0),z=Q*X,M=0,G=[];for(let B of x){let W=Ky(B),Y=X*W;z+=Y,M+=B.value,G.push(B);let I=z+q;if(M<I)continue;let V=M-I,$=X*ET({address:"",value:0},J);if(V>$){let j=$+z,A=M-(q+j);if(A>Math.max(Ky({})*X,W5(y)))return{inputs:G,outputs:f.concat({value:A,address:L}),fee:j}}return{inputs:G,outputs:f,fee:z}}return{fee:X*fT({inputs:T,outputs:f,feeRate:X})}};var jf=E(()=>{XT()});import{SwapKitError as s8}from"@swapkit/helpers";import{opcodes as e8,script as yL}from"bitcoinjs-lib";function Hy(T){let f=Buffer.from(T,"utf8");return yL.compile([e8.OP_RETURN,f])}var TL=1000,H5=10,nf=10,fL=41,XL=107,Y5,U5,PT,vT=(T)=>{if(T.startsWith("bc1")||T.startsWith("tb1")||T.startsWith("ltc1")||T.startsWith("tltc1"))return"P2WPKH";if(T.startsWith("1")||T.startsWith("m")||T.startsWith("n")||T.startsWith("bitcoincash:q")||T.startsWith("bitcoincash:p")||T.startsWith("q")||T.startsWith("p")||T.startsWith("L")||T.startsWith("M")||T.startsWith("3")||T.startsWith("D")||T.startsWith("A")||T.startsWith("9")||T.startsWith("X")||T.startsWith("7")||T.startsWith("y")||T.startsWith("t1")||T.startsWith("t3")||T.startsWith("tm"))return"P2PKH";throw new s8("toolbox_utxo_invalid_address",{address:T})},fT=({inputs:T,outputs:f,feeRate:Z})=>{let y=T[0]&&"address"in T[0]&&T[0].address?vT(T[0].address):"P2PKH",L=T.filter((J)=>J.value>=U5["type"in J?J.type:"P2PKH"]*Math.ceil(Z)).reduce((J,x)=>J+Ky(x),0),X=f?.reduce((J,x)=>J+ET(x),0)||PT[y];return H5+L+X},Ky=(T)=>{if("type"in T)return U5[T.type];if("address"in T&&T.address)return U5[vT(T.address)];return fL+XL},ET=(T,f)=>{if(T?.script)return nf+T.script.length+(T.script.length>=74?2:1);if(f)return PT[f];return PT.P2PKH};var hf=E(()=>{((Z)=>{Z.P2PKH="P2PKH";Z.P2WPKH="P2WPKH"})(Y5||={});U5={["P2PKH"]:148,["P2WPKH"]:68},PT={["P2PKH"]:34,["P2WPKH"]:31}});var XT=E(()=>{Ff();uf();jf();hf()});import{crypto as LL,ECPair as mf,bitgo as ZL,networks as JL,address as of}from"@bitgo/utxo-lib";import{HDKey as cf}from"@scure/bip32";import{mnemonicToSeedSync as gf}from"@scure/bip39";import{Chain as _5,FeeOption as xL,NetworkDerivationPath as QL,SKConfig as qL,SwapKitError as R5,derivationPathToString as zL,updateDerivationPath as ML}from"@swapkit/helpers";import tf from"bs58check";import{P as C0,match as GL}from"ts-pattern";function k0(){return JL.zcash}function df(){return{messagePrefix:`\x18ZCash Signed Message:
2
+ `,bech32:void 0,bip32:{public:76067358,private:76066276},pubKeyHash:28,scriptHash:28,wif:128}}function lT(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=k0();try{return of.toOutputScript(T,f),!0}catch{let Z=tf.decode(T);if(Z.length<21)return!1;let y=Z[0];return y===f.pubKeyHash||y===f.scriptHash}}catch{return!1}}function BL({phrase:T,derivationPath:f}){let Z=gf(T),L=cf.fromMasterSeed(Z).derive(f);if(!L.privateKey)throw new R5("toolbox_utxo_invalid_params");let X=df(),J=mf.fromPrivateKey(Buffer.from(L.privateKey),{network:X}),x=LL.hash160(J.publicKey),{isStagenet:Q}=qL.get("envs"),q=Q?Buffer.from([29,37]):Buffer.from([28,184]),z=Buffer.concat([q,x]),M=tf.encode(z);return{getAddress:()=>Promise.resolve(M),signTransaction:(G)=>{let B=G.signAllInputs(J);return Promise.resolve(B)}}}function WL({inputs:T,outputs:f,psbt:Z,sender:y,compiledMemo:L}){for(let X of T){let J=!!X.witnessUtxo&&{witnessUtxo:{...X.witnessUtxo,value:BigInt(X.value)}},x=!X.witnessUtxo&&{nonWitnessUtxo:X.txHex?Buffer.from(X.txHex,"hex"):void 0};Z.addInput({hash:X.hash,index:X.index,...J,...x})}for(let X of f){let J="address"in X&&X.address?X.address:y,x=X.script;if(x&&!L)continue;let Q=x?{script:L,value:0n}:{script:of.toOutputScript(J,k0()),value:BigInt(X.value)};Z.addOutput(Q)}return{psbt:Z,inputs:T}}async function pf(T){let{assetValue:f,recipient:Z,memo:y,feeRate:L,sender:X,fetchTxHex:J}=T,x=y?Hy(y):null,Q=await yy(_5.Zcash).getUtxos({address:X,fetchTxHex:J!==!1}),q=[{address:Z,value:Number(f.getBaseValue("string"))},...x?[{script:x,value:0}]:[]],{inputs:z,outputs:M}=Wy({inputs:Q,outputs:q,feeRate:L,chain:_5.Zcash,changeAddress:X});if(!(z&&M))throw new R5("toolbox_utxo_insufficient_balance",{sender:X,assetValue:f});let G=ZL.createPsbtForNetwork({network:k0()},{version:455});G.setVersion(4,!0);let B=Buffer.concat([Buffer.of(252),Buffer.of(5),Buffer.from("BITGO"),Buffer.of(0)]),W=3370586197,Y=Buffer.allocUnsafe(4);Y.writeUInt32LE(W>>>0,0),G.addUnknownKeyValToGlobal({key:B,value:Y});let{psbt:I,inputs:V}=await WL({inputs:z,outputs:M,psbt:G,sender:X,compiledMemo:x});return{inputs:V,outputs:M,psbt:I}}async function O0(T){let f=await GL(T).with({signer:C0.not(C0.nullish)},({signer:J})=>Promise.resolve(J)).with({phrase:C0.string},({phrase:J,derivationPath:x,index:Q=0})=>{let q=x||QL[_5.Zcash]||[44,133,0,0,0],z=ML(q,{index:Q}),M=zL(z);return BL({phrase:J,derivationPath:M})}).otherwise(()=>Promise.resolve(void 0)),Z=await py({chain:_5.Zcash,signer:f});async function y({recipient:J,assetValue:x,feeOptionKey:Q=xL.Fast,...q}){let z=await f?.getAddress();if(!(f&&z))throw new R5("toolbox_utxo_no_signer");let M=q.feeRate||(await Z.getFeeRates())[Q],{psbt:G}=await pf({...q,assetValue:x,feeRate:M,recipient:J,sender:z}),B=await f.signTransaction(G);return B.finalizeAllInputs(),Z.broadcastTx(B.extractTransaction().toHex())}function L({phrase:J,derivationPath:x="m/44'/133'/0'/0/0"}){let Q=gf(J),z=cf.fromMasterSeed(Q).derive(x);if(!z.privateKey)throw new R5("toolbox_utxo_invalid_params");let M=df();return mf.fromPrivateKey(Buffer.from(z.privateKey),{network:M})}function X({phrase:J,derivationPath:x="m/44'/133'/0'/0/0"}){return L({phrase:J,derivationPath:x}).toWIF()}return{...Z,transfer:y,createTransaction:pf,createKeysForPath:L,getPrivateKeyFromMnemonic:X,validateAddress:lT}}var VT=E(()=>{XT();$T()});import{AssetValue as w0,Chain as Qy,DerivationPath as HL,FeeOption as Iy,NetworkDerivationPath as YL,SwapKitError as Cy,SwapKitNumber as UL,applyFeeMultiplier as rf,derivationPathToString as _L,updateDerivationPath as RL}from"@swapkit/helpers";import{Psbt as NL,address as DL,initEccLib as ef,payments as af}from"bitcoinjs-lib";import{ECPairFactory as IL}from"ecpair";import E0 from"@bitcoinerlab/secp256k1";import{ECPair as CL,HDNode as kL}from"@psf/bitcoincashjs-lib";import{HDKey as OL}from"@scure/bip32";import{mnemonicToSeedSync as sf}from"@scure/bip39";function y2({inputs:T,outputs:f,chain:Z,psbt:y,sender:L,compiledMemo:X}){for(let J of T){let x=!!J.witnessUtxo&&!FT.includes(Z)&&{witnessUtxo:J.witnessUtxo},Q=FT.includes(Z)&&{nonWitnessUtxo:J.txHex?Buffer.from(J.txHex,"hex"):void 0};y.addInput({hash:J.hash,index:J.index,...x,...Q})}for(let J of f){let x="address"in J&&J.address?J.address:L,Q=J.script;if(Q&&!X)continue;let q=Q?{script:X,value:0}:{address:x,value:J.value};ef(E0),y.addOutput(q)}return{psbt:y,inputs:T}}async function T2({assetValue:T,recipient:f,memo:Z,feeRate:y,sender:L,fetchTxHex:X=!1}){let J=T.chain,x=Z?await Hy(Z):null,Q=await L2({assetValue:T,recipient:f,memo:Z,sender:L,fetchTxHex:X}),{inputs:q,outputs:z}=Wy({...Q,feeRate:y,chain:J});if(!(q&&z))throw new Cy("toolbox_utxo_insufficient_balance",{sender:L,assetValue:T});let M=await By(),G=new NL({network:M(J)});if(J===Qy.Dogecoin)G.setMaximumFeeRate(650000000);let{psbt:B,inputs:W}=await y2({inputs:q,outputs:z,chain:J,psbt:G,sender:L,compiledMemo:x});return{psbt:B,utxos:Q.inputs,inputs:W}}async function f2(){let T=await By();return function f({address:Z,chain:y}){if(y===Qy.BitcoinCash)return my(Z);if(y===Qy.Zcash)return lT(Z);try{return ef(E0),DL.toOutputScript(Z,T(y)),!0}catch(L){return!1}}}async function wL({chain:T,phrase:f,derivationPath:Z}){let y=(await KT(T))({phrase:f,derivationPath:Z});async function L(J){return await J.signAllInputs(y),J}async function X(){return(await v0(T))(y)}return{getAddress:X,signTransaction:L}}async function py({chain:T,...f}){let Z="phrase"in f?f.phrase:void 0,y="index"in f?f.index||0:0,L=_L("derivationPath"in f&&f.derivationPath?f.derivationPath:RL(YL[T],{index:y})),X=Z?await wL({chain:T,phrase:Z,derivationPath:L}):("signer"in f)?f.signer:void 0;function J(){return Promise.resolve(X?.getAddress())}let x=await v0(T),Q=await f2(),q=await KT(T);return{accumulative:Wy,calculateTxSize:fT,getAddressFromKeys:x,getAddress:J,validateAddress:(z)=>Q({address:z,chain:T}),broadcastTx:(z)=>yy(T).broadcastTx(z),createTransaction:T2,createKeysForPath:q,getFeeRates:()=>AT(T),getInputsOutputsFee:X2,transfer:PL(X),getPrivateKeyFromMnemonic:(z)=>{return q(z).toWIF()},getBalance:iT(T),estimateTransactionFee:vL(T),estimateMaxSendableAmount:EL(T)}}async function X2({assetValue:T,feeOptionKey:f=Iy.Fast,feeRate:Z,memo:y,sender:L,recipient:X}){let J=T.chain,x=await L2({assetValue:T,sender:L,memo:y,recipient:X}),Q=Z?Math.floor(Z):(await AT(J))[f];return Wy({...x,feeRate:Q,chain:J})}function EL(T){return async function f({from:Z,memo:y,feeRate:L,feeOptionKey:X=Iy.Fast,recipients:J=1}){let x=await yy(T).getAddressData(Z),Q=L?Math.ceil(L):(await AT(T))[X],q=x?.utxo.map((W)=>({...W,type:"P2PKH",hash:""})).filter((W)=>W.value>Math.max(W5(T),Ky(W)*Q));if(!q?.length)return w0.from({chain:T});let z=w0.from({chain:T,value:q.reduce((W,Y)=>W+Y.value,0)}),M=typeof J==="number"?Array.from({length:J},()=>({address:Z,value:0})):J;if(y){let W=await Hy(y);M.push({address:Z,script:W,value:0})}let B=fT({inputs:q,outputs:M,feeRate:Q})*Q;return z.sub(B)}}function vL(T){return async(f)=>{let Z=await X2(f);return w0.from({chain:T,value:UL.fromBigInt(BigInt(Z.fee),8).getValue("string")})}}async function KT(T){let f=await By();switch(T){case Qy.BitcoinCash:return function Z({phrase:y,derivationPath:L=`${HL.BCH}/0`,wif:X}){let J=f(T);if(X)return CL.fromWIF(X,J);if(!y)throw new Cy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return kL.fromSeedBuffer(Buffer.from(sf(y)),J).derivePath(L).keyPair};case Qy.Bitcoin:case Qy.Dogecoin:case Qy.Litecoin:case Qy.Zcash:case Qy.Dash:return function Z({phrase:y,wif:L,derivationPath:X}){if(!(L||y))throw new Cy("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let J=IL(E0),x=f(T);if(L)return J.fromWIF(L,x);let Q=sf(y),q=OL.fromMasterSeed(Q,x).derive(X);if(!q.privateKey)throw new Cy("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return J.fromPrivateKey(Buffer.from(q.privateKey),{network:x})};default:throw new Cy("toolbox_utxo_not_supported",{chain:T})}}async function v0(T){let f=await By();return function Z(y){if(!y)throw new Cy("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let L=FT.includes(T)?af.p2pkh:af.p2wpkh,{address:X}=L({pubkey:y.publicKey,network:f(T)});if(!X)throw new Cy("toolbox_utxo_invalid_address",{error:"Address not defined"});return X}}function PL(T){return async function f({memo:Z,recipient:y,feeOptionKey:L,feeRate:X,assetValue:J}){let x=await T?.getAddress(),Q=J.chain;if(!(T&&x))throw new Cy("toolbox_utxo_no_signer");if(!y)throw new Cy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let q=X||(await AT(Q))[L||Iy.Fast],{psbt:z}=await T2({recipient:y,feeRate:q,sender:x,assetValue:J,memo:Z}),M=await T.signTransaction(z);return M.finalizeAllInputs(),yy(Q).broadcastTx(M.extractTransaction().toHex())}}async function AT(T){let f=await yy(T).getSuggestedTxFee();return{[Iy.Average]:f,[Iy.Fast]:rf(f,Iy.Fast),[Iy.Fastest]:rf(f,Iy.Fastest)}}async function L2({assetValue:T,recipient:f,memo:Z,sender:y,fetchTxHex:L=!1}){let X=T.chain,J=(await AT(X))[Iy.Fastest],x=L||FT.includes(X),Q=T.getBaseValue("number"),q=Math.ceil(Q+J*5000);return{inputs:await yy(X).getUtxos({address:y,fetchTxHex:x,targetValue:q}),outputs:[{address:f,value:Q},...Z?[{address:"",script:await Hy(Z),value:0}]:[]]}}var FT;var $T=E(()=>{rT();XT();ST();VT();FT=[Qy.Dash,Qy.Dogecoin]});import{Transaction as lL,TransactionBuilder as VL,address as $L}from"@psf/bitcoincashjs-lib";import{Chain as FL,FeeOption as KL,NetworkDerivationPath as AL,SwapKitError as LT,derivationPathToString as SL,updateDerivationPath as bL}from"@swapkit/helpers";import{Psbt as uL}from"bitcoinjs-lib";function ZT(T){return T.replace(/(bchtest:|bitcoincash:)/,"")}function my(T){let f=ZT(T);return D0(f)&&I0(f)==="mainnet"}function oy(T){return ZT(wT(T))}async function jL(T){async function f({builder:y,utxos:L}){return L.forEach((X,J)=>{y.sign(J,T,void 0,65,X.witnessUtxo?.value)}),y.build()}return{getAddress:()=>{let y=T.getAddress(0);return Promise.resolve(oy(y))},signTransaction:f}}async function P0(T){let f="phrase"in T?T.phrase:void 0,Z="index"in T?T.index||0:0,y=SL("derivationPath"in T&&T.derivationPath?T.derivationPath:bL(AL[qy],{index:Z})),L=f?(await KT(qy))({phrase:f,derivationPath:y}):void 0,X=L?await jL(L):("signer"in T)?T.signer:void 0;function J(){return Promise.resolve(X?.getAddress())}let{getBalance:x,getFeeRates:Q,broadcastTx:q,...z}=await py({chain:qy});function M(G,B=!0){return x(ZT(wT(G)))}return{...z,getAddress:J,broadcastTx:q,createTransaction:Z2,buildTx:hL,getAddressFromKeys:pL,getBalance:M,getFeeRates:Q,stripPrefix:ZT,stripToCashAddress:oy,validateAddress:my,transfer:nL({getFeeRates:Q,broadcastTx:q,signer:X})}}async function Z2({assetValue:T,recipient:f,memo:Z,feeRate:y,sender:L}){if(!my(f))throw new LT("toolbox_utxo_invalid_address",{address:f});let X=Math.ceil(T.getBaseValue("number")+y*7500),J=await yy(qy).getUtxos({address:oy(L),fetchTxHex:!0,targetValue:X}),x=Z?await Hy(Z):null,Q=[];Q.push({address:f,value:T.getBaseValue("number")});let{inputs:q,outputs:z}=Wy({inputs:J,outputs:Q,feeRate:y,chain:qy});if(!(q&&z))throw new LT("toolbox_utxo_insufficient_balance",{sender:L,assetValue:T});let M=await By(),G=new VL(M(qy));await Promise.all(q.map(async(B)=>{let W=await yy(qy).getRawTx(B.hash);G.addInput(lL.fromBuffer(Buffer.from(W,"hex")),B.index)}));for(let B of z){let W="address"in B&&B.address?B.address:TT(L),Y=await By(),I=$L.toOutputScript(TT(W),Y(qy));G.addOutput(I,B.value)}if(x)G.addOutput(x,0);return{builder:G,utxos:q}}function nL({broadcastTx:T,getFeeRates:f,signer:Z}){return async function y({recipient:L,assetValue:X,feeOptionKey:J=KL.Fast,...x}){let Q=await Z?.getAddress();if(!(Z&&Q))throw new LT("toolbox_utxo_no_signer");if(!L)throw new LT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let q=x.feeRate||(await f())[J],{builder:z,utxos:M}=await Z2({...x,assetValue:X,feeRate:q,recipient:L,sender:Q}),B=(await Z.signTransaction({builder:z,utxos:M})).toHex();return T(B)}}async function hL({assetValue:T,recipient:f,memo:Z,feeRate:y,sender:L,setSigHashType:X}){let J=wT(f);if(!my(J))throw new LT("toolbox_utxo_invalid_address",{address:J});let x=Math.ceil(T.getBaseValue("number")+y*7500),Q=await yy(qy).getUtxos({address:oy(L),fetchTxHex:!1,targetValue:x}),q=Number(y.toFixed(0)),z=Z?await Hy(Z):null,M=[];if(M.push({address:TT(f),value:T.getBaseValue("number")}),z)M.push({script:z,value:0});let{inputs:G,outputs:B}=Wy({inputs:Q,outputs:M,feeRate:q,chain:qy});if(!(G&&B))throw new LT("toolbox_utxo_insufficient_balance",{sender:L,assetValue:T});let W=await By(),Y=new uL({network:W(qy)});for(let{hash:I,index:V,witnessUtxo:$}of G)Y.addInput({hash:I,index:V,witnessUtxo:$,sighashType:X?65:void 0});for(let I of B){let V="address"in I&&I.address?I.address:TT(L),$=I.script?z?{script:z,value:0}:void 0:{address:V,value:I.value};if($)Y.addOutput($)}return{psbt:Y,utxos:Q,inputs:G}}function pL(T){let f=T.getAddress(0);return oy(f)}var qy;var ST=E(()=>{XT();$T();qy=FL.BitcoinCash});import{Chain as JT,SwapKitError as mL}from"@swapkit/helpers";async function oL(T,f){switch(T){case JT.BitcoinCash:return await P0(f||{});case JT.Zcash:return await O0(f);case JT.Bitcoin:case JT.Dogecoin:case JT.Litecoin:case JT.Dash:return await py({chain:T,...f});default:throw new mL("toolbox_utxo_not_supported",{chain:T})}}var J2=E(()=>{ST();$T();VT();ST();VT()});var l0={};Jy(l0,{validateZcashAddress:()=>lT,toLegacyAddress:()=>TT,toCashAddress:()=>wT,stripToCashAddress:()=>oy,stripPrefix:()=>ZT,nonSegwitChains:()=>FT,isValidAddress:()=>D0,getUtxoToolbox:()=>oL,getUtxoNetwork:()=>By,getUtxoApi:()=>yy,getUTXOAddressValidator:()=>f2,getScriptTypeForAddress:()=>vT,getOutputSize:()=>ET,getInputSize:()=>Ky,getDustThreshold:()=>W5,getCreateKeysForPath:()=>KT,detectAddressNetwork:()=>I0,createZcashToolbox:()=>O0,createUTXOToolbox:()=>py,createCustomUtxoApi:()=>g8,createBCHToolbox:()=>P0,compileMemo:()=>Hy,calculateTxSize:()=>fT,bchValidateAddress:()=>my,addressFromKeysGetter:()=>v0,addInputsAndOutputs:()=>y2,accumulative:()=>Wy,UtxoNetwork:()=>N0,UTXOScriptType:()=>Y5,TX_OVERHEAD:()=>H5,OutputSizes:()=>PT,OP_RETURN_OVERHEAD:()=>nf,MIN_TX_FEE:()=>TL,InputSizes:()=>U5});var V0=E(()=>{J2();ST();$T();VT();XT()});import{AssetValue as $0,BaseDecimal as q2,Chain as gy,DerivationPath as cL,NetworkDerivationPath as gL,SwapKitError as ty,derivationPathToString as tL,getRPCUrl as dL,updateDerivationPath as iL}from"@swapkit/helpers";import{P as x2}from"ts-pattern";import{match as rL}from"ts-pattern";async function aL(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 sL(T){let f=await cy(),{PublicKey:Z}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),L=new Z(T),X=[],J=await f.getBalance(L);if(J>0)X.push($0.from({chain:gy.Solana,value:J,fromBaseDecimal:q2[gy.Solana]}));let x=await f.getParsedTokenAccountsByOwner(L,{programId:y});for(let{account:Q}of x.value){let q=Q.data.parsed.info,z=q.mint,M=q.tokenAmount.amount;if(Number(M)===0)continue;let G=await aL(z),B=G?.symbol||"UNKNOWN",W=G?.decimals||q.tokenAmount.decimals;X.push($0.from({asset:`${gy.Solana}.${B}-${z}`,value:M,fromBaseDecimal:W}))}return X}async function A0(){let{PublicKey:T}=await import("@solana/web3.js");return(f)=>{try{let Z=new T(f);return T.isOnCurve(Z.toBytes())}catch(Z){return!1}}}async function eL(T){let f=T&&"index"in T?T.index||0:0,Z=tL(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:iL(gL[gy.Solana],{index:f})),y=await rL(T).with({phrase:x2.string},({phrase:X})=>K0({phrase:X,derivationPath:Z})).with({signer:x2.any},({signer:X})=>X).otherwise(()=>{return});function L(){return y?.publicKey?Q2(y.publicKey):""}return{getConnection:cy,getAddress:L,createKeysForPath:K0,getAddressFromPubKey:Q2,getPubkeyFromAddress:b0,createTransaction:S0(cy),createTransactionFromInstructions:XZ,getBalance:(X)=>{let J=X||L();if(!J)throw new ty("core_wallet_connection_not_found");return sL(J)},transfer:LZ(cy,y),broadcastTransaction:F0(cy),getAddressValidator:A0,signTransaction:ZZ(cy,y),estimateTransactionFee:yZ(cy)}}function yZ(T){return async({recipient:f,assetValue:Z,memo:y,isProgramDerivedAddress:L,sender:X})=>{let J=await T(),Q=(await S0(T)({recipient:f,assetValue:Z,memo:y,isProgramDerivedAddress:L,sender:X})).compileMessage(),q=await J.getFeeForMessage(Q);if(q.value===null)throw new ty("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");return $0.from({chain:gy.Solana,value:q.value,fromBaseDecimal:q2[gy.Solana]})}}async function cy(){let{Connection:T}=await import("@solana/web3.js"),f=await dL(gy.Solana);return new T(f,"confirmed")}function TZ(T){return async({assetValue:f,recipient:Z,sender:y,isProgramDerivedAddress:L})=>{let X=await T(),J=await b0(y);if(f.isGasAsset){let{Transaction:x,SystemProgram:Q,PublicKey:q}=await import("@solana/web3.js");return new x().add(Q.transfer({fromPubkey:J,lamports:f.getBaseValue("number"),toPubkey:new q(Z)}))}if(f.address)return fZ({amount:f.getBaseValue("number"),connection:X,decimals:f.decimal,from:J,recipient:Z,tokenAddress:f.address,isProgramDerivedAddress:L});return}}async function fZ({tokenAddress:T,recipient:f,from:Z,connection:y,amount:L,decimals:X,isProgramDerivedAddress:J}){let{getAssociatedTokenAddress:x,getAccount:Q,createAssociatedTokenAccountInstruction:q,createTransferCheckedInstruction:z}=await import("@solana/spl-token"),{Transaction:M,PublicKey:G}=await import("@solana/web3.js"),B=new M,W=new G(T),Y=await x(W,Z),I=new G(f),V=await x(W,I,J),$=!1;try{await Q(y,V),$=!0}catch(j){}if(!$)B.add(q(Z,V,I,W));return B.add(z(Y,W,V,Z,L,X)),B}function S0(T){return async({recipient:f,assetValue:Z,memo:y,isProgramDerivedAddress:L,sender:X})=>{let{createMemoInstruction:J}=await import("@solana/spl-memo"),x=await b0(X),Q=await A0();if(!(L||Q(f)))throw new ty("core_transaction_invalid_recipient_address");let q=await T(),z=await TZ(T)({assetValue:Z,recipient:f,sender:X,isProgramDerivedAddress:L});if(!z)throw new ty("core_transaction_invalid_sender_address");if(y)z.add(J(y));let M=await q.getLatestBlockhash();return z.recentBlockhash=M.blockhash,z.feePayer=x,z}}async function XZ({instructions:T}){let{Transaction:f}=await import("@solana/web3.js"),Z=new f().add(...T);if(!Z)throw new ty("core_transaction_invalid_sender_address");return Z}function LZ(T,f){return async({recipient:Z,assetValue:y,memo:L,isProgramDerivedAddress:X})=>{if(!f)throw new ty("core_transaction_invalid_sender_address");let J=f.publicKey?.toString()??(await f.connect()).publicKey.toString(),x=await S0(T)({recipient:Z,assetValue:y,memo:L,isProgramDerivedAddress:X,sender:J});if("connect"in f){let Q=await f.signTransaction(x);return F0(T)(Q)}return x.sign(f),F0(T)(x)}}function F0(T){return async(f)=>{return(await T()).sendRawTransaction(f.serialize())}}function ZZ(T,f){return async(Z)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!f)throw new ty("toolbox_solana_no_signer");if(!(Z instanceof y)){let X=await(await T()).getLatestBlockhash();Z.recentBlockhash=X.blockhash,Z.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(Z);return await Z.sign([f]),Z}}async function K0({phrase:T,derivationPath:f=cL.SOL}){let{HDKey:Z}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:y}=await import("@scure/bip39"),{Keypair:L}=await import("@solana/web3.js"),X=y(T),J=Z.fromMasterSeed(X);return L.fromSeed(J.derive(f,!0).privateKey)}function Q2(T){return T.toString()}async function b0(T){let{PublicKey:f}=await import("@solana/web3.js");return new f(T)}var z2=()=>{};var u0={};Jy(u0,{getSolanaToolbox:()=>eL,getSolanaAddressValidator:()=>A0,createKeysForPath:()=>K0});var j0=E(()=>{z2()});import{SwapKitError as JZ,derivationPathToString as xZ}from"@swapkit/helpers";import{KeyPairSigner as QZ}from"near-api-js";async function bT(){let{validateAccountId:T}=await import("near-sdk-js");return(f)=>{try{return T(f)}catch{let Z=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return f.length>=2&&f.length<=64&&Z.test(f)}}}async function N5(T){let{parseSeedPhrase:f}=await import("near-seed-phrase"),{KeyPair:Z}=await import("near-api-js"),y=T.index||0,L=T.derivationPath?xZ(T.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:X}=f(T.phrase,L),J=Z.fromString(X);return G2(J)}async function n0(T){let{KeyPair:f}=await import("near-api-js/lib/utils"),Z=f.fromString(T);return G2(Z)}function G2(T){return new M2(T)}async function D5(T,f){let y=(await T.query({request_type:"view_access_key_list",finality:"final",account_id:f})).keys.find((x)=>x.access_key.permission==="FullAccess");if(!y)throw new JZ("toolbox_near_invalid_address");let{utils:L}=await import("near-api-js"),X=L.PublicKey.fromString(y.public_key),J=y.access_key.nonce||0;return{publicKey:X,nonce:J}}var M2;var h0=E(()=>{M2=class M2 extends QZ{#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 p0(T){return"recipient"in T&&"amount"in T&&!("contractId"in T)}function m0(T){return"contractId"in T&&"methodName"in T}function o0(T){return"actions"in T}function c0(T){return"newAccountId"in T}function g0(T){return"contractCode"in T}function t0(T){return"customEstimator"in T}function d0(T){let f=0;for(let Z of T)switch(Z.enum){case"transfer":f+=Number(i.SIMPLE_TRANSFER);break;case"functionCall":f+=Number(i.CONTRACT_CALL);break;case"createAccount":f+=Number(i.ACCOUNT_CREATION);break;case"deployContract":f+=Number(i.CONTRACT_DEPLOYMENT);break;case"addKey":f+=Number(i.ACCESS_KEY_ADDITION);break;case"deleteKey":f+=Number(i.ACCESS_KEY_DELETION);break;case"stake":f+=Number(i.STAKE);break;default:f+=Number(i.CONTRACT_CALL)}return f.toString()}function i0(T){if(T==="ft_transfer"||T==="ft_transfer_call")return i.TOKEN_TRANSFER;if(T==="storage_deposit")return i.STORAGE_DEPOSIT;return i.CONTRACT_CALL}function qZ(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function zZ(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var i;var r0=E(()=>{i={SIMPLE_TRANSFER:"1",TOKEN_TRANSFER:"100",CONTRACT_CALL:"100",ACCOUNT_CREATION:"30",CONTRACT_DEPLOYMENT:"200",ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",STAKE:"10",STORAGE_DEPOSIT:"100"}});async function I5({account:T,contractId:f,viewMethods:Z,changeMethods:y}){let{Contract:L}=await import("near-api-js");return new L(T,f,{viewMethods:Z,changeMethods:y,useLocalViewExecution:!0})}async function a0({contractId:T,account:f}){let Z=(await import("bn.js")).default,y=await I5({account:f,contractId:T,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"],changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"]}),L=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 Z("100000000000000"),new Z(Q))}};return{transfer:async(X,J,x)=>{return await L(X),y.ft_transfer({receiver_id:X,amount:J,memo:x},new Z("100000000000000"),new Z("1"))},transferCall:async(X,J,x,Q)=>{return await L(X),y.ft_transfer_call({receiver_id:X,amount:J,memo:Q,msg:x},new Z("100000000000000"),new Z("1"))},balanceOf:(X)=>y.ft_balance_of({account_id:X}),totalSupply:()=>y.ft_total_supply(),metadata:()=>y.ft_metadata(),storageBalanceOf:(X)=>y.storage_balance_of({account_id:X}),storageDeposit:(X,J)=>y.storage_deposit({account_id:X},new Z("100000000000000"),new Z(J||"1250000000000000000000")),ensureStorage:L,contract:y}}import{AssetValue as C5,BaseDecimal as k5,Chain as ky,SwapKitError as t,getRPCUrl as MZ}from"@swapkit/helpers";async function GZ(T){let{P:f,match:Z}=await import("ts-pattern"),{providers:y}=await import("near-api-js"),L=await Z(T).with({phrase:f.string},async(O)=>{return await N5(O)}).with({signer:f.any},({signer:O})=>O).otherwise(()=>{return}),X=await MZ(ky.Near),J=new y.JsonRpcProvider({url:X});async function x(O){let{Account:H}=await import("near-api-js"),N=O||await Q();return new H(N,J,L)}async function Q(){if(!L)throw new t("toolbox_near_no_signer");return await L.getAddress()}async function q(O){if(!L)throw new t("toolbox_near_no_signer");let{recipient:H,assetValue:N}=O;if(!(await bT())(H))throw new t("toolbox_near_invalid_address");let v=await x();if(N.isGasAsset===!1){let w=N.address;if(!w)throw new t("toolbox_near_missing_contract_address");let l=N.getBaseValue("string");return V({contractId:w,methodName:"ft_transfer",args:{receiver_id:H,amount:l,memo:O.memo}})}try{let w=N.getBaseValue("string");return(await v.transfer({receiverId:H,amount:w})).transaction_outcome.id}catch(w){throw new t("toolbox_near_transfer_failed",{error:w})}}async function z(O){let{recipient:H,assetValue:N,memo:k,feeRate:v,attachedDeposit:w,sender:l}=O,n=await bT();if(!n(H))throw new t("toolbox_near_invalid_address",{address:H});if(!n(l))throw new t("toolbox_near_invalid_address",{address:l});if(!N.isGasAsset){let hT=N.address;if(!hT)throw new t("toolbox_near_missing_contract_address");return M({sender:l,contractId:hT,methodName:"ft_transfer",args:{receiver_id:H,amount:N.getBaseValue("string"),memo:k||null},gas:v.toString()||"100000000000000",attachedDeposit:"1"})}let{publicKey:S,nonce:u}=await D5(J,l),Ty=N.getBaseValue("bigint"),{SCHEMA:e}=await import("near-api-js/lib/transaction"),{transactions:Ly,utils:Zy}=await import("near-api-js"),Sy=[Ly.transfer(Ty)];if(k&&w)Sy.push(Ly.functionCall("memo",{memo:k},BigInt(v),BigInt(w)));let uT=await J.block({finality:"final"}),jT=Zy.serialize.base_decode(uT.header.hash),dy=Ly.createTransaction(l,S,H,u,Sy,jT),nT=Zy.serialize.serialize(e.Transaction,dy);return{serialized:Buffer.from(nT).toString("base64"),publicKey:S.toString(),details:{signerId:l,nonce:u,blockHash:Zy.serialize.base_encode(jT)}}}async function M(O){let{sender:H}=O,{publicKey:N,nonce:k}=await D5(J,H),{SCHEMA:v}=await import("near-api-js/lib/transaction"),{transactions:w,utils:l}=await import("near-api-js"),n=await J.block({finality:"final"}),S=l.serialize.base_decode(n.header.hash),u=[w.functionCall(O.methodName,Buffer.from(JSON.stringify(O.args)),BigInt(O.gas),BigInt(O.attachedDeposit))],Ty=w.createTransaction(H,N,O.contractId,k,u,S),e=l.serialize.serialize(v.Transaction,Ty);return{serialized:Buffer.from(e).toString("base64"),publicKey:N.toString(),details:{signerId:H,receiverId:O.contractId,methodName:O.methodName,nonce:k,blockHash:l.serialize.base_encode(S)}}}async function G(O){if(!L)throw new t("toolbox_near_no_signer");let[H,N]=await L.signTransaction(O);return N}async function B(O){return(await J.sendTransaction(O)).transaction.hash}async function W(O){if("assetValue"in O){let v=BigInt("115123062500")+BigInt("108059500000"),w=await Y(),l=v*BigInt(w.toString());return C5.from({chain:ky.Near,value:l.toString(),fromBaseDecimal:k5[ky.Near]})}let H=L?await x():void 0;return m(O,H)}async function Y(){try{return await J.query({request_type:"call_function",finality:"final",account_id:"system",method_name:"gas_price",args_base64:""})}catch{return"100000000"}}async function I(O,H,N){if(!L)throw new t("toolbox_near_no_signer");let k=await x(),{utils:v}=await import("near-api-js"),w=v.format.parseNearAmount(N)||"0";return(await k.createAccount(O,v.PublicKey.fromString(H),BigInt(w))).transaction.hash}async function V(O){try{if(!L)throw new t("toolbox_near_no_signer");let{transactions:H}=await import("near-api-js"),{contractId:N,methodName:k,args:v,deposit:w}=O,l=await x(),n=await m({methodName:k,args:v||{},contractId:N}),S=H.functionCall(k,v||{},n.getBaseValue("bigint"),BigInt(w||"0"));return(await l.signAndSendTransaction({receiverId:N,actions:[S]})).transaction_outcome.id}catch(H){throw new t("toolbox_near_transfer_failed",{error:H})}}async function $(O){let H=await x();return I5({account:H,contractId:O.contractId,viewMethods:O.viewMethods,changeMethods:O.changeMethods})}async function j(O){if(!L)throw new t("toolbox_near_no_signer");if(O.actions.length===0)throw new t("toolbox_near_empty_batch");return(await(await x()).signAndSendTransaction({receiverId:O.receiverId,actions:O.actions})).transaction.hash}async function A(O){let H=await x();return a0({contractId:O,account:H})}async function c(O){try{let H=await x(O),N;try{let k=await H.getBalance();N=C5.from({chain:ky.Near,value:k,fromBaseDecimal:k5[ky.Near]})}catch{N=C5.from({chain:ky.Near,value:"0",fromBaseDecimal:k5[ky.Near]})}return[N]}catch(H){throw new t("toolbox_near_balance_failed",{error:H})}}async function m(O,H){let N=await Z(O).when(p0,()=>i.SIMPLE_TRANSFER).when(m0,(l)=>i0(l.methodName)).when(o0,(l)=>d0(l.actions)).when(c0,()=>i.ACCOUNT_CREATION).when(g0,()=>i.CONTRACT_DEPLOYMENT).when(t0,(l)=>{if(!H)throw new t("toolbox_near_no_account");return l.customEstimator(H)}).otherwise(()=>{throw new t("toolbox_near_invalid_gas_params")}),k=await s(),w=BigInt(N)*BigInt(1000000000000)*BigInt(k);return C5.from({chain:ky.Near,value:w,fromBaseDecimal:k5[ky.Near]})}async function s(){try{return(await J.gasPrice(null)).gas_price||"100000000"}catch(O){return"100000000"}}return{getAddress:Q,getPublicKey:async()=>L?(await L.getPublicKey()).toString():"",provider:J,transfer:q,createTransaction:z,createContractFunctionCall:M,estimateTransactionFee:W,broadcastTransaction:B,signTransaction:G,getBalance:c,validateAddress:await bT(),getSignerFromPhrase:(O)=>N5(O),getSignerFromPrivateKey:n0,callFunction:V,createSubAccount:I,createContract:$,executeBatchTransaction:j,nep141:A,getGasPrice:s,estimateGas:m}}var s0=E(()=>{h0();r0()});var B2=E(()=>{s0()});var e0={};Jy(e0,{tgasToGas:()=>qZ,isSimpleTransfer:()=>p0,isCustomEstimator:()=>t0,isContractDeployment:()=>g0,isContractCall:()=>m0,isBatchTransaction:()=>o0,isAccountCreation:()=>c0,getValidateNearAddress:()=>bT,getNearToolbox:()=>GZ,getNearSignerFromPrivateKey:()=>n0,getNearSignerFromPhrase:()=>N5,getFullAccessPublicKey:()=>D5,getContractMethodGas:()=>i0,gasToTGas:()=>zZ,estimateBatchGas:()=>d0,createNearContract:()=>I5,createNEP141Token:()=>a0,GAS_COSTS:()=>i});var y1=E(()=>{s0();B2();h0();r0()});var X1={};Jy(X1,{rippleValidateAddress:()=>f1,hashes:()=>DZ,getRippleToolbox:()=>NZ});import{AssetValue as T1,BaseDecimal as W2,Chain as Oy,SwapKitError as Ay,SwapKitNumber as BZ,getRPCUrl as WZ}from"@swapkit/helpers";import{Client as HZ,Wallet as YZ,isValidAddress as UZ,xrpToDrops as _Z}from"xrpl";import{hashes as DZ}from"xrpl";function H2(T){let f=YZ.fromMnemonic(T);return{getAddress:()=>Promise.resolve(f.address),signTransaction:(Z)=>Promise.resolve(f.sign(Z))}}function f1(T){return UZ(T)}var RZ,NZ=async(T={})=>{let f="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?H2(T.phrase):void 0,Z=await WZ(Oy.Ripple);if(!Z)throw new Ay({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:Oy.Ripple}});let y=new HZ(Z);await y.connect();let L=()=>{if(!f)throw new Ay({errorKey:"toolbox_ripple_signer_not_found"});return f.getAddress()},X=async(G)=>{let B=G||await L();try{let Y=(await y.request({command:"account_info",account:B})).result.account_data.Balance;return[T1.from({chain:Oy.Ripple,value:Y,fromBaseDecimal:W2[Oy.Ripple]})]}catch(W){if(W.data.error_code===RZ.ACCOUNT_NOT_FOUND)return[T1.from({chain:Oy.Ripple,value:0})];throw new Ay("toolbox_ripple_get_balance_error",{info:{address:B,error:W}})}},J=async()=>{let B=(await y.request({command:"fee"})).result.drops.open_ledger_fee;return T1.from({chain:Oy.Ripple,value:BZ.fromBigInt(BigInt(B),W2[Oy.Ripple])})},x=async({assetValue:G,recipient:B,memo:W,sender:Y})=>{if(!f1(B))throw new Ay({errorKey:"core_transaction_invalid_recipient_address"});let I=Y||await L();if(!G.isGasAsset||G.chain!==Oy.Ripple)throw new Ay({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:G.toString()}});let V={TransactionType:"Payment",Account:I,Amount:_Z(G.getValue("string")),Destination:B};if(W)V.Memos=[{Memo:{MemoData:Buffer.from(W).toString("hex")}}];return await y.autofill(V)},Q=(G)=>{if(!f)throw new Ay({errorKey:"toolbox_ripple_signer_not_found"});return f.signTransaction(G)},q=async(G)=>{let W=(await y.submitAndWait(G)).result;if(W.validated)return W.hash;throw new Ay({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Oy.Ripple}})};return{signer:f,createSigner:H2,getAddress:L,validateAddress:f1,getBalance:X,createTransaction:x,signTransaction:Q,broadcastTransaction:q,transfer:async(G)=>{if(!f)throw new Ay({errorKey:"toolbox_ripple_signer_not_found"});let B=await f.getAddress(),W=await x({...G,sender:B}),Y=await Q(W);return q(Y.tx_blob)},estimateTransactionFee:J,disconnect:()=>y.disconnect()}};var L1=E(()=>{RZ={ACCOUNT_NOT_FOUND:19}});var Z1={};Jy(Z1,{radixValidateAddress:()=>U2,RadixToolbox:()=>PZ});import{AssetValue as IZ,Chain as Y2,SKConfig as CZ,SwapKitError as kZ}from"@swapkit/helpers";function U2(T){return T.startsWith("account_rdx1")&&T.length===66}function OZ({networkApi:T}){return async function f(Z){let y=await wZ({address:Z,networkApi:T});return EZ({resources:y,networkApi:T})}}async function wZ({address:T,networkApi:f}){let Z=!0,y,L=[],X=await vZ(f);while(Z){let J={address:T,limit_per_page:100,cursor:y,at_ledger_state:{state_version:X}},x=await f.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:J});if(L=L.concat(x.items),x.next_cursor)y=x.next_cursor;else Z=!1}return L}async function EZ({resources:T,networkApi:f}){let Z=[],y=50,L=[];for(let X=0;X<T.length;X+=50)L.push(T.slice(X,X+50));for(let X of L){let J=X.map((q)=>q.resource_address),x=await f.state.getEntityDetailsVaultAggregated(J),Q=new Map;for(let q of x)if(q.details!==void 0){let z=q.metadata?.items.find((G)=>G.key==="symbol"),M=z?.value.typed.type==="String"?z.value.typed.value:"?";if(q.details.type==="FungibleResource")Q.set(q.address,{decimals:q.details.divisibility,symbol:M})}for(let q of X)if(q.aggregation_level==="Global"){let z=Q.get(q.resource_address)||{decimals:0,symbol:"?"},M=IZ.from({asset:z.symbol!==Y2.Radix?`${Y2.Radix}.${z.symbol}-${q.resource_address}`:"XRD.XRD",value:q.amount});Z.push(M)}}return Z}async function vZ(T){return T.status.getCurrent().then((f)=>f.ledger_state.state_version)}var PZ=async({dappConfig:T}={})=>{let{RadixDappToolkit:f}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:Z}=await import("@radixdlt/babylon-gateway-api-sdk"),y=T||CZ.get("integrations").radix,L=f({...y,networkId:y.network?.networkId||1}),X=Z.initialize(L.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:OZ({networkApi:X}),networkApi:X,validateAddress:U2,signAndBroadcast:()=>{throw new kZ("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})}}};var J1=()=>{};var xT;var x1=E(()=>{xT=[{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 lZ}from"@swapkit/helpers";async function _2(T){let f=await import("tronweb"),Z=f.TronWeb??f.default?.TronWeb;try{let y=await fetch(`${VZ}/v1/accounts/${T}`);if(!y.ok)throw new Error(`TronGrid API error: ${y.status} ${y.statusText}`);let L=await y.json();if(!(L.success&&L.data)||L.data.length===0)throw new Error("Invalid response from TronGrid API");let X;try{X=Z.address.toHex(T).toLowerCase()}catch{X=T.toLowerCase()}let J=L.data.find((x)=>{return x.address.toLowerCase()===X});if(!J)return;return{balance:J.balance,trc20:J.trc20||[]}}catch(y){throw new lZ("toolbox_tron_trongrid_api_error",{message:y instanceof Error?y.message:"Unknown error",address:T})}}var VZ="https://api.trongrid.io";var R2=()=>{};import{AssetValue as wy,Chain as Yy,NetworkDerivationPath as I2,SwapKitError as a,derivationPathToString as C2,getRPCUrl as $Z,updateDerivationPath as k2,warnOnce as Q1}from"@swapkit/helpers";import{P as N2,match as FZ}from"ts-pattern";async function q1(){let T=await import("tronweb"),f=T.TronWeb??T.default?.TronWeb;return(Z)=>{return f.isAddress(Z)}}async function O2({phrase:T,derivationPath:f,index:Z}){let y=f||C2(k2(I2[Yy.Tron],{index:Z||0})),{HDKey:L}=await import("@scure/bip32"),{mnemonicToSeedSync:X}=await import("@scure/bip39"),J=X(T),Q=L.fromMasterSeed(J).derive(y);if(!Q.privateKey)throw new a("toolbox_tron_no_signer");return Buffer.from(Q.privateKey).toString("hex")}async function uZ({phrase:T,derivationPath:f,tronWeb:Z}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),X=L(T),x=y.fromMasterSeed(X).derive(f);if(!x.privateKey)throw new a("toolbox_tron_no_signer");let Q=Buffer.from(x.privateKey).toString("hex");Z.setPrivateKey(Q);let q=Z?.address.fromPrivateKey(Q);return{getAddress:()=>Promise.resolve(typeof q==="string"?q:""),signTransaction:async(z)=>{return await Z.trx.sign(z,Q)}}}var KZ=268,AZ=13000,SZ=345,D2="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",bZ="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",w2=async(T={})=>{let f=await import("tronweb"),Z=f.TronWeb??f.default?.TronWeb,y=await $Z(Yy.Tron),L=void 0,X=new Z({fullHost:y,headers:void 0}),J="index"in T?T.index||0:0,x=C2("derivationPath"in T&&T.derivationPath?T.derivationPath:k2(I2[Yy.Tron],{index:J})),Q=await FZ(T).with({phrase:N2.string},async({phrase:H})=>uZ({phrase:H,derivationPath:x,tronWeb:X})).with({signer:N2.any},({signer:H})=>Promise.resolve(H)).otherwise(()=>Promise.resolve(void 0)),q=async()=>{if(!Q)throw new a("toolbox_tron_no_signer");return await Q.getAddress()},z=()=>{return 1e8},M=async()=>{try{let H=await X.trx.getChainParameters(),N={};for(let k of H)N[k.key]=k.value;return{energyFee:N.getEnergyFee||420,bandwidthFee:N.getTransactionFee||1000,createAccountFee:N.getCreateAccountFee||1e5}}catch{return{energyFee:420,bandwidthFee:1000,createAccountFee:1e5}}},G=async(H)=>{try{let N=await X.trx.getAccount(H);return N&&Object.keys(N).length>0}catch{return!1}},B=async(H)=>{try{let N=await X.trx.getAccountResources(H);return{bandwidth:{free:N.freeNetLimit-N.freeNetUsed,total:N.NetLimit||0,used:N.NetUsed||0},energy:{total:N.EnergyLimit||0,used:N.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},W=async(H,N)=>{try{let k=X.contract(xT,N);if(!k.methods?.balanceOf)return 0n;let v=(await k.methods.balanceOf(H).call())[0];return BigInt(v||0)}catch(k){return console.warn(`balanceOf() failed for ${N}:`,k),0n}},Y=async(H,N)=>{try{X.setAddress(N);let k=X.contract(xT,H),[v,w]=await Promise.all([k.symbol().call().catch(()=>"UNKNOWN"),k.decimals().call().catch(()=>"18")]);return{symbol:v??"UNKNOWN",decimals:Number(w??18)}}catch(k){return Q1({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${H}: ${k instanceof Error?k.message:k}`}),null}},I=async(H,N=!0)=>{let k=[wy.from({chain:Yy.Tron})];try{let v=await _2(H);if(v){let w=[];w.push(wy.from({chain:Yy.Tron,value:v.balance,fromBaseDecimal:6}));for(let l of v.trc20){let[n,S]=Object.entries(l)[0]||[];if(!(n&&S))continue;let u=await Y(n,H);if(!u)continue;w.push(wy.from({asset:`TRON.${u.symbol}-${n}`,value:BigInt(S||0),fromBaseDecimal:u.decimals}))}return w}return k}catch(v){Q1({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${v instanceof Error?v.message:v}`});let w=[],l=await X.trx.getBalance(H);if(l&&Number(l)>0)w.push(wy.from({chain:Yy.Tron,value:l,fromBaseDecimal:6}));let n=await W(H,D2);if(n)w.push(wy.from({asset:`TRON.USDT-${D2}`,value:n,fromBaseDecimal:6}));return w}},V=async({recipient:H,assetValue:N,memo:k})=>{if(!Q)throw new a("toolbox_tron_no_signer");let v=await q();if(X.setAddress(v),N.isGasAsset){let u=await X.transactionBuilder.sendTrx(H,N.getBaseValue("number"),v);if(k){let Ly=await X.transactionBuilder.addUpdateData(u,k,"utf8"),Zy=await Q.signTransaction(Ly),{txid:Sy}=await X.trx.sendRawTransaction(Zy);return Sy}let Ty=await Q.signTransaction(u),{txid:e}=await X.trx.sendRawTransaction(Ty);return e}let l=await j({recipient:H,assetValue:N,memo:k,sender:v}),n=await Q.signTransaction(l),{txid:S}=await X.trx.sendRawTransaction(n);if(!S)throw new a("toolbox_tron_token_transfer_failed");return S},$=async({assetValue:H,recipient:N,sender:k})=>{let v=H.isGasAsset;try{let w=k?k:Q?await q():void 0;if(!w)return v?wy.from({chain:Yy.Tron,value:0.1,fromBaseDecimal:0}):wy.from({chain:Yy.Tron,value:15,fromBaseDecimal:0});let l=await M(),S=await G(N)?0:l.createAccountFee,u=await B(w);if(v){let dy=KZ,nT=u.bandwidth.free+(u.bandwidth.total-u.bandwidth.used),O5=0;if(dy>nT)O5=(dy-nT)*l.bandwidthFee;let hT=S+O5;return wy.from({chain:Yy.Tron,value:hT,fromBaseDecimal:6})}let Ty=SZ,e=AZ,Ly=u.bandwidth.free+(u.bandwidth.total-u.bandwidth.used),Zy=u.energy.total-u.energy.used,Sy=0;if(Ty>Ly)Sy=(Ty-Ly)*l.bandwidthFee;let uT=0;if(e>Zy)uT=(e-Zy)*l.energyFee;let jT=S+Sy+uT;return wy.from({chain:Yy.Tron,value:jT,fromBaseDecimal:6})}catch(w){throw Q1({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${w instanceof Error?w.message:w}`}),new a("toolbox_tron_fee_estimation_failed",{error:w})}},j=async(H)=>{let{recipient:N,assetValue:k,memo:v,sender:w}=H;if(k.isGasAsset){let S=await X.transactionBuilder.sendTrx(N,k.getBaseValue("number"),w);if(v)return X.transactionBuilder.addUpdateData(S,v,"utf8");return S}X.setAddress(w);let n=k.address;if(!n)throw new a("toolbox_tron_invalid_token_identifier",{identifier:k.toString()});try{let u=[{type:"address",value:N},{type:"uint256",value:k.getBaseValue("string")}],Ty={feeLimit:z(),callValue:0};return(await X.transactionBuilder.triggerSmartContract(n,"transfer(address,uint256)",Ty,u,w)).transaction}catch(S){throw new a("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction. This might be due to TronWeb 6.0.3 bug. Use the transfer method directly instead.",originalError:S instanceof Error?S.message:String(S)})}},A=async(H)=>{if(!Q)throw new a("toolbox_tron_no_signer");return await Q.signTransaction(H)},c=async(H)=>{let{txid:N}=await X.trx.sendRawTransaction(H);return N},m=async({assetAddress:H,spenderAddress:N,from:k})=>{try{let v=X.contract(xT,H);if(!v.methods?.allowance)throw new a("toolbox_tron_invalid_token_contract");let w=(await v.methods.allowance(k,N).call())[0];return BigInt(w||0)}catch(v){throw new a("toolbox_tron_allowance_check_failed",{error:v})}},s=async({assetAddress:H,spenderAddress:N,from:k,amount:v})=>{let w=await m({assetAddress:H,spenderAddress:N,from:k});if(!v)return w>0n;let l=BigInt(v);return w>=l},O=async({assetAddress:H,spenderAddress:N,amount:k,from:v})=>{if(!Q)throw new a("toolbox_tron_no_signer");let w=v||await q(),l=k!==void 0?BigInt(k).toString():bZ,n="approve(address,uint256)",S=[{type:"address",value:N},{type:"uint256",value:l}],Ty={feeLimit:z(),callValue:0};try{let{transaction:e}=await X.transactionBuilder.triggerSmartContract(H,n,Ty,S,w),Ly=await Q.signTransaction(e),{txid:Zy}=await X.trx.sendRawTransaction(Ly);if(!Zy)throw new a("toolbox_tron_approve_failed");return Zy}catch(e){throw new a("toolbox_tron_approve_failed",{error:e})}};return{tronWeb:X,getAddress:q,validateAddress:await q1(),getBalance:I,transfer:V,estimateTransactionFee:$,createTransaction:j,signTransaction:A,broadcastTransaction:c,approve:O,isApproved:s,getApprovedAmount:m}};var E2=E(()=>{x1();R2()});var z1={};Jy(z1,{trc20ABI:()=>xT,getTronPrivateKeyFromMnemonic:()=>O2,getTronAddressValidator:()=>q1,createTronToolbox:()=>w2});var M1=E(()=>{E2();x1()});import{AssetValue as jZ,Chain as D,EVMChains as nZ,FeeOption as hZ,SwapKitError as pZ,UTXOChains as mZ}from"@swapkit/helpers";async function VQ(){let{match:T}=await import("ts-pattern"),{cosmosValidateAddress:f}=await Promise.resolve().then(() => (dT(),tT)),{evmValidateAddress:Z}=await Promise.resolve().then(() => (T0(),Bf)),{substrateValidateAddress:y}=await Promise.resolve().then(() => (_0(),U0)),{getUTXOAddressValidator:L}=await Promise.resolve().then(() => (V0(),l0)),{getSolanaAddressValidator:X}=await Promise.resolve().then(() => (j0(),u0)),{getValidateNearAddress:J}=await Promise.resolve().then(() => (y1(),e0)),{rippleValidateAddress:x}=await Promise.resolve().then(() => (L1(),X1)),{radixValidateAddress:Q}=await Promise.resolve().then(() => (J1(),Z1)),{getTronAddressValidator:q}=await Promise.resolve().then(() => (M1(),z1)),z=await X(),M=await L(),G=await q(),B=await J();return function W({address:Y,chain:I}){return T(I).with(...nZ,()=>Z({address:Y})).with(...mZ,()=>M({address:Y,chain:I})).with(D.Cosmos,D.Kujira,D.Noble,D.Maya,D.THORChain,()=>f({address:Y,chain:I})).with(D.Chainflip,D.Polkadot,()=>y({address:Y,chain:I})).with(D.Radix,()=>Q(Y)).with(D.Near,()=>B(Y)).with(D.Ripple,()=>x(Y)).with(D.Solana,()=>z(Y)).with(D.Tron,()=>G(Y)).otherwise(()=>!1)}}function $Q(T){return async function f(Z){let{match:y}=await import("ts-pattern");return y(T).returnType().with(D.Arbitrum,D.Aurora,D.Avalanche,D.Base,D.Berachain,D.BinanceSmartChain,D.Ethereum,D.Gnosis,D.Optimism,D.Polygon,async(L)=>{let X=await v2(L),J=await X.createTransaction(Z);return X.estimateTransactionFee({...J,feeOption:Z.feeOptionKey||hZ.Fast,chain:L})}).with(D.Bitcoin,D.BitcoinCash,D.Dogecoin,D.Dash,D.Litecoin,D.Polkadot,D.Solana,D.Ripple,D.Tron,D.Near,async(L)=>{return(await v2(L)).estimateTransactionFee(Z)}).with(D.THORChain,D.Maya,D.Kujira,D.Noble,D.Cosmos,async()=>{let{estimateTransactionFee:L}=await Promise.resolve().then(() => (dT(),tT));return L(Z)}).otherwise(async()=>jZ.from({chain:T}))}}async function v2(T,f){let{match:Z}=await import("ts-pattern");return Z(T).returnType().with(D.Arbitrum,D.Aurora,D.Avalanche,D.Base,D.Berachain,D.BinanceSmartChain,D.Ethereum,D.Gnosis,D.Optimism,D.Polygon,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (q5(),Q0));return await y(T,f)}).with(D.Litecoin,D.Dash,D.Dogecoin,D.BitcoinCash,D.Bitcoin,D.Zcash,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (V0(),l0));return await y(T,f)}).with(D.Cosmos,D.Kujira,D.Noble,D.Maya,D.THORChain,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (dT(),tT));return await y(T,f)}).with(D.Chainflip,D.Polkadot,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (_0(),U0));return await y(T,f)}).with(D.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (J1(),Z1));return await y(f)}).with(D.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (L1(),X1));return await y(f)}).with(D.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (j0(),u0));return await y(f)}).with(D.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (M1(),z1));return await y(f)}).with(D.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (y1(),e0));return await y(f)}).otherwise(()=>{throw new pZ("toolbox_not_supported",{chain:T})})}export{v2 as getToolbox,$Q as getFeeEstimator,VQ as getAddressValidator};
3
3
 
4
- //# debugId=C2ED815CB7D4CB2D64756E2164756E21
4
+ //# debugId=87351713C66E2C3864756E2164756E21
5
5
  //# sourceMappingURL=index.js.map