@swapkit/toolboxes 4.0.20 → 4.0.21

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 (77) hide show
  1. package/dist/src/cosmos/index.cjs +2 -2
  2. package/dist/src/cosmos/index.cjs.map +7 -7
  3. package/dist/src/cosmos/index.js +2 -2
  4. package/dist/src/cosmos/index.js.map +7 -7
  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 +21 -21
  11. package/dist/src/index.js +3 -3
  12. package/dist/src/index.js.map +21 -21
  13. package/dist/src/near/index.cjs +2 -2
  14. package/dist/src/near/index.cjs.map +6 -6
  15. package/dist/src/near/index.js +2 -2
  16. package/dist/src/near/index.js.map +6 -6
  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 +3 -3
  34. package/dist/src/utxo/index.cjs.map +6 -6
  35. package/dist/src/utxo/index.js +3 -3
  36. package/dist/src/utxo/index.js.map +6 -6
  37. package/dist/types/cosmos/thorchainUtils/messages.d.ts +7 -7
  38. package/dist/types/cosmos/thorchainUtils/messages.d.ts.map +1 -1
  39. package/dist/types/cosmos/thorchainUtils/registry.d.ts +2 -2
  40. package/dist/types/cosmos/thorchainUtils/registry.d.ts.map +1 -1
  41. package/dist/types/cosmos/toolbox/cosmos.d.ts.map +1 -1
  42. package/dist/types/cosmos/toolbox/thorchain.d.ts +5 -5
  43. package/dist/types/cosmos/toolbox/thorchain.d.ts.map +1 -1
  44. package/dist/types/cosmos/types.d.ts +3 -3
  45. package/dist/types/cosmos/types.d.ts.map +1 -1
  46. package/dist/types/cosmos/util.d.ts +1 -1
  47. package/dist/types/cosmos/util.d.ts.map +1 -1
  48. package/dist/types/evm/helpers.d.ts +1 -1
  49. package/dist/types/evm/helpers.d.ts.map +1 -1
  50. package/dist/types/evm/toolbox/baseEVMToolbox.d.ts.map +1 -1
  51. package/dist/types/evm/toolbox/evm.d.ts.map +1 -1
  52. package/dist/types/evm/toolbox/index.d.ts +5 -5
  53. package/dist/types/evm/toolbox/index.d.ts.map +1 -1
  54. package/dist/types/evm/toolbox/op.d.ts +15 -13
  55. package/dist/types/evm/toolbox/op.d.ts.map +1 -1
  56. package/dist/types/near/helpers/core.d.ts.map +1 -1
  57. package/dist/types/near/toolbox.d.ts.map +1 -1
  58. package/dist/types/near/types/toolbox.d.ts +5 -13
  59. package/dist/types/near/types/toolbox.d.ts.map +1 -1
  60. package/dist/types/near/types.d.ts +2 -0
  61. package/dist/types/near/types.d.ts.map +1 -1
  62. package/dist/types/ripple/index.d.ts.map +1 -1
  63. package/dist/types/solana/toolbox.d.ts.map +1 -1
  64. package/dist/types/substrate/substrate.d.ts +3 -3
  65. package/dist/types/substrate/substrate.d.ts.map +1 -1
  66. package/dist/types/tron/toolbox.d.ts.map +1 -1
  67. package/dist/types/tron/types.d.ts +1 -0
  68. package/dist/types/tron/types.d.ts.map +1 -1
  69. package/dist/types/utils.d.ts.map +1 -1
  70. package/dist/types/utxo/toolbox/bitcoinCash.d.ts +1 -1
  71. package/dist/types/utxo/toolbox/bitcoinCash.d.ts.map +1 -1
  72. package/dist/types/utxo/toolbox/index.d.ts +1 -1
  73. package/dist/types/utxo/toolbox/index.d.ts.map +1 -1
  74. package/dist/types/utxo/toolbox/utxo.d.ts +2 -2
  75. package/dist/types/utxo/toolbox/utxo.d.ts.map +1 -1
  76. package/dist/types/utxo/toolbox/zcash.d.ts.map +1 -1
  77. package/package.json +3 -3
package/dist/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
- var k2=Object.create;var{getPrototypeOf:E2,defineProperty:I0,getOwnPropertyNames:w2}=Object;var v2=Object.prototype.hasOwnProperty;var Y=(T,f,L)=>{L=T!=null?k2(E2(T)):{};let y=f||!T||!T.__esModule?I0(L,"default",{value:T,enumerable:!0}):L;for(let G of w2(T))if(!v2.call(y,G))I0(y,G,{get:()=>T[G],enumerable:!0});return y};var Gy=(T,f)=>{for(var L in f)I0(T,L,{get:f[L],enumerable:!0,configurable:!0,set:(y)=>f[L]=()=>y})};var v=(T,f)=>()=>(T&&(f=T(T=0)),f);var H=((T)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(T,{get:(f,L)=>(typeof require<"u"?require:f)[L]}):T)(function(T){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+T+'" is not supported')});import{base64 as Z1,bech32 as pT}from"@scure/base";import{SwapKitError as F2}from"@swapkit/helpers";import{fromByteArray as P2,toByteArray as A2}from"base64-js";function YT(T){return Z1.encode(Uint8Array.from(pT.fromWords(pT.decode(T).words)))}function HT(T,f="thor"){return pT.encode(f,pT.toWords(Z1.decode(T)))}function $2(T){return P2(T)}function V2(T){if(!T.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new F2("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return A2(T)}var D0=()=>{};import{AssetValue as k0,BaseDecimal as xy,Chain as V,getRPCUrl as l2,SwapKitError as J1}from"@swapkit/helpers";function Wy(T){switch(T){case V.Maya:return{amount:[],gas:"10000000000"};case V.THORChain:return{amount:[],gas:"500000000"};case V.Kujira:return q1;case V.Noble:return _1;default:return x1}}async function Uy(T){let f=await import("@cosmjs/stargate"),L=f.StargateClient??f.default?.StargateClient,y=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return L.connect({headers:y,url:T})}async function UT(T,f,L={}){let y=await import("@cosmjs/stargate"),G=y.SigningStargateClient??y.default?.SigningStargateClient,X=y.GasPrice??y.default?.GasPrice,Z=typeof L==="string"?L:"0.0003uatom",J=typeof L==="string"?{}:L;return G.connectWithSigner(T,f,{gasPrice:X.fromString(Z),...J})}async function w0(T,f){let L=await import("@cosmjs/stargate");return(L.SigningStargateClient??L.default?.SigningStargateClient).offline(T,f)}async function v0({sender:T,recipient:f,assetValue:L,memo:y="",feeRate:G,sequence:X,accountNumber:Z}){let{chain:J,chainId:Q}=L,x=await l2(J),_=await(await Uy(x)).getAccount(T);if(!_)throw new J1("toolbox_cosmos_account_not_found",{sender:T});let z=k0.from({chain:J}),M=Ey(z.symbol),B=Wy(J),U=M&&G?{amount:[{amount:G.toString(),denom:M}],gas:B.gas}:B,O={amount:[{amount:L.getBaseValue("string"),denom:Ey(L.symbol)}],fromAddress:T,toAddress:f};return{accountNumber:Z??_.accountNumber,chainId:Q,fee:U,memo:y,msgs:[{typeUrl:K2(J),value:O}],sequence:X??_.sequence}}var E0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",Q1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",x1,q1,_1,Ey=(T,f=!1)=>{if(f)return T.toLowerCase();switch(T){case"uUSK":case"USK":return E0;case"uYUM":case"YUM":return Q1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return T}},WT=({symbol:T,chain:f})=>{if(f===V.Maya)return(T.toUpperCase()!=="CACAO"?T:`${V.Maya}.${T}`).toUpperCase();if(f===V.THORChain)return(["RUNE","TCY","RUJI"].includes(T.toUpperCase())?`${V.THORChain}.${T}`:T).toUpperCase();return Ey(T,!1)},K2=(T)=>{switch(T){case V.Maya:case V.THORChain:return"/types.MsgSend";case V.Cosmos:case V.Kujira:case V.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new J1("toolbox_cosmos_not_supported",{chain:T})}},S2,F0=(T,f)=>{let L=S2[T.toLowerCase()];if(!L)return k0.from({asset:T,fromBaseDecimal:8,value:f});let{chain:y,asset:G,decimals:X}=L,Z=y?{chain:y}:{asset:G};return k0.from({...Z,fromBaseDecimal:X,value:f})};var NT=v(()=>{x1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},q1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},_1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};S2={atom:{chain:V.Cosmos,decimals:xy[V.Cosmos]},cacao:{chain:V.Maya,decimals:10},kuji:{chain:V.Kujira,decimals:xy[V.Kujira]},maya:{asset:`${V.Maya}.${V.Maya}`,decimals:4},rune:{chain:V.THORChain,decimals:xy[V.THORChain]},tcy:{asset:"THOR.TCY",decimals:xy[V.THORChain]},uatom:{chain:V.Cosmos,decimals:xy[V.Cosmos]},ukuji:{chain:V.Kujira,decimals:xy[V.Kujira]},usdc:{chain:V.Noble,decimals:xy[V.Noble]},uusdc:{chain:V.Noble,decimals:xy[V.Noble]},"x/kuji":{asset:"THOR.KUJI",decimals:xy[V.THORChain]},[E0.toLowerCase()]:{asset:`${V.Kujira}.USK`,decimals:xy[V.Kujira]}}});var z1={};Gy(z1,{$root:()=>W});import g from"protobufjs/minimal.js";var F,Xy,D,W;var B1=v(()=>{F=g.Reader,Xy=g.Writer,D=g.util,W=g.roots.default||(g.roots.default={});W.common=(()=>{let T={};return T.Asset=(()=>{function f(L){if(L){for(let y=Object.keys(L),G=0;G<y.length;++G)if(L[y[G]]!=null)this[y[G]]=L[y[G]]}}return f.prototype.chain="",f.prototype.symbol="",f.prototype.ticker="",f.prototype.synth=!1,f.create=function(y){return new f(y)},f.encode=function(y,G){if(!G)G=Xy.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))G.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))G.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))G.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))G.uint32(32).bool(y.synth);return G},f.encodeDelimited=function(y,G){return this.encode(y,G).ldelim()},f.decode=function(y,G){if(!(y instanceof F))y=F.create(y);let X=G===void 0?y.len:y.pos+G,Z=new W.common.Asset;while(y.pos<X){let J=y.uint32();switch(J>>>3){case 1:Z.chain=y.string();break;case 2:Z.symbol=y.string();break;case 3:Z.ticker=y.string();break;case 4:Z.synth=y.bool();break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.chain!=null&&y.hasOwnProperty("chain")){if(!D.isString(y.chain))return"chain: string expected"}if(y.symbol!=null&&y.hasOwnProperty("symbol")){if(!D.isString(y.symbol))return"symbol: string expected"}if(y.ticker!=null&&y.hasOwnProperty("ticker")){if(!D.isString(y.ticker))return"ticker: string expected"}if(y.synth!=null&&y.hasOwnProperty("synth")){if(typeof y.synth!=="boolean")return"synth: boolean expected"}return null},f.fromObject=function(y){if(y instanceof W.common.Asset)return y;let G=new W.common.Asset;if(y.chain!=null)G.chain=String(y.chain);if(y.symbol!=null)G.symbol=String(y.symbol);if(y.ticker!=null)G.ticker=String(y.ticker);if(y.synth!=null)G.synth=Boolean(y.synth);return G},f.toObject=function(y,G){if(!G)G={};let X={};if(G.defaults)X.chain="",X.symbol="",X.ticker="",X.synth=!1;if(y.chain!=null&&y.hasOwnProperty("chain"))X.chain=y.chain;if(y.symbol!=null&&y.hasOwnProperty("symbol"))X.symbol=y.symbol;if(y.ticker!=null&&y.hasOwnProperty("ticker"))X.ticker=y.ticker;if(y.synth!=null&&y.hasOwnProperty("synth"))X.synth=y.synth;return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.Coin=(()=>{function f(L){if(L){for(let y=Object.keys(L),G=0;G<y.length;++G)if(L[y[G]]!=null)this[y[G]]=L[y[G]]}}return f.prototype.asset=null,f.prototype.amount="",f.prototype.decimals=D.Long?D.Long.fromBits(0,0,!1):0,f.create=function(y){return new f(y)},f.encode=function(y,G){if(!G)G=Xy.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))W.common.Asset.encode(y.asset,G.uint32(10).fork()).ldelim();if(y.amount!=null&&Object.hasOwnProperty.call(y,"amount"))G.uint32(18).string(y.amount);if(y.decimals!=null&&Object.hasOwnProperty.call(y,"decimals"))G.uint32(24).int64(y.decimals);return G},f.encodeDelimited=function(y,G){return this.encode(y,G).ldelim()},f.decode=function(y,G){if(!(y instanceof F))y=F.create(y);let X=G===void 0?y.len:y.pos+G,Z=new W.common.Coin;while(y.pos<X){let J=y.uint32();switch(J>>>3){case 1:Z.asset=W.common.Asset.decode(y,y.uint32());break;case 2:Z.amount=y.string();break;case 3:Z.decimals=y.int64();break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.asset!=null&&y.hasOwnProperty("asset")){let G=W.common.Asset.verify(y.asset);if(G)return"asset."+G}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!D.isString(y.amount))return"amount: string expected"}if(y.decimals!=null&&y.hasOwnProperty("decimals")){if(!D.isInteger(y.decimals)&&!(y.decimals&&D.isInteger(y.decimals.low)&&D.isInteger(y.decimals.high)))return"decimals: integer|Long expected"}return null},f.fromObject=function(y){if(y instanceof W.common.Coin)return y;let G=new W.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");G.asset=W.common.Asset.fromObject(y.asset)}if(y.amount!=null)G.amount=String(y.amount);if(y.decimals!=null){if(D.Long)(G.decimals=D.Long.fromValue(y.decimals)).unsigned=!1;else if(typeof y.decimals==="string")G.decimals=Number.parseInt(y.decimals,10);else if(typeof y.decimals==="number")G.decimals=y.decimals;else if(typeof y.decimals==="object")G.decimals=new D.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber()}return G},f.toObject=function(y,G){if(!G)G={};let X={};if(G.defaults)if(X.asset=null,X.amount="",D.Long){let Z=new D.Long(0,0,!1);X.decimals=G.longs===String?Z.toString():G.longs===Number?Z.toNumber():Z}else X.decimals=G.longs===String?"0":0;if(y.asset!=null&&y.hasOwnProperty("asset"))X.asset=W.common.Asset.toObject(y.asset,G);if(y.amount!=null&&y.hasOwnProperty("amount"))X.amount=y.amount;if(y.decimals!=null&&y.hasOwnProperty("decimals"))if(typeof y.decimals==="number")X.decimals=G.longs===String?String(y.decimals):y.decimals;else X.decimals=G.longs===String?D.Long.prototype.toString.call(y.decimals):G.longs===Number?new D.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber():y.decimals;return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.PubKeySet=(()=>{function f(L){if(L){for(let y=Object.keys(L),G=0;G<y.length;++G)if(L[y[G]]!=null)this[y[G]]=L[y[G]]}}return f.prototype.secp256k1="",f.prototype.ed25519="",f.create=function(y){return new f(y)},f.encode=function(y,G){if(!G)G=Xy.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))G.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))G.uint32(18).string(y.ed25519);return G},f.encodeDelimited=function(y,G){return this.encode(y,G).ldelim()},f.decode=function(y,G){if(!(y instanceof F))y=F.create(y);let X=G===void 0?y.len:y.pos+G,Z=new W.common.PubKeySet;while(y.pos<X){let J=y.uint32();switch(J>>>3){case 1:Z.secp256k1=y.string();break;case 2:Z.ed25519=y.string();break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1")){if(!D.isString(y.secp256k1))return"secp256k1: string expected"}if(y.ed25519!=null&&y.hasOwnProperty("ed25519")){if(!D.isString(y.ed25519))return"ed25519: string expected"}return null},f.fromObject=function(y){if(y instanceof W.common.PubKeySet)return y;let G=new W.common.PubKeySet;if(y.secp256k1!=null)G.secp256k1=String(y.secp256k1);if(y.ed25519!=null)G.ed25519=String(y.ed25519);return G},f.toObject=function(y,G){if(!G)G={};let X={};if(G.defaults)X.secp256k1="",X.ed25519="";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1"))X.secp256k1=y.secp256k1;if(y.ed25519!=null&&y.hasOwnProperty("ed25519"))X.ed25519=y.ed25519;return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.Tx=(()=>{function f(L){if(this.coins=[],this.gas=[],L){for(let y=Object.keys(L),G=0;G<y.length;++G)if(L[y[G]]!=null)this[y[G]]=L[y[G]]}}return f.prototype.id="",f.prototype.chain="",f.prototype.fromAddress="",f.prototype.toAddress="",f.prototype.coins=D.emptyArray,f.prototype.gas=D.emptyArray,f.prototype.memo="",f.create=function(y){return new f(y)},f.encode=function(y,G){if(!G)G=Xy.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))G.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))G.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))G.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))G.uint32(34).string(y.toAddress);if(y.coins?.length)for(let X=0;X<y.coins.length;++X)W.common.Coin.encode(y.coins[X],G.uint32(42).fork()).ldelim();if(y.gas?.length)for(let X=0;X<y.gas.length;++X)W.common.Coin.encode(y.gas[X],G.uint32(50).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))G.uint32(58).string(y.memo);return G},f.encodeDelimited=function(y,G){return this.encode(y,G).ldelim()},f.decode=function(y,G){if(!(y instanceof F))y=F.create(y);let X=G===void 0?y.len:y.pos+G,Z=new W.common.Tx;while(y.pos<X){let J=y.uint32();switch(J>>>3){case 1:Z.id=y.string();break;case 2:Z.chain=y.string();break;case 3:Z.fromAddress=y.string();break;case 4:Z.toAddress=y.string();break;case 5:if(!Z.coins?.length)Z.coins=[];Z.coins.push(W.common.Coin.decode(y,y.uint32()));break;case 6:if(!Z.gas?.length)Z.gas=[];Z.gas.push(W.common.Coin.decode(y,y.uint32()));break;case 7:Z.memo=y.string();break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.id!=null&&y.hasOwnProperty("id")){if(!D.isString(y.id))return"id: string expected"}if(y.chain!=null&&y.hasOwnProperty("chain")){if(!D.isString(y.chain))return"chain: string expected"}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!D.isString(y.fromAddress))return"fromAddress: string expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!D.isString(y.toAddress))return"toAddress: string expected"}if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let G=0;G<y.coins.length;++G){let X=W.common.Coin.verify(y.coins[G]);if(X)return"coins."+X}}if(y.gas!=null&&y.hasOwnProperty("gas")){if(!Array.isArray(y.gas))return"gas: array expected";for(let G=0;G<y.gas.length;++G){let X=W.common.Coin.verify(y.gas[G]);if(X)return"gas."+X}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!D.isString(y.memo))return"memo: string expected"}return null},f.fromObject=function(y){if(y instanceof W.common.Tx)return y;let G=new W.common.Tx;if(y.id!=null)G.id=String(y.id);if(y.chain!=null)G.chain=String(y.chain);if(y.fromAddress!=null)G.fromAddress=String(y.fromAddress);if(y.toAddress!=null)G.toAddress=String(y.toAddress);if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Tx.coins: array expected");G.coins=[];for(let X=0;X<y.coins.length;++X){if(typeof y.coins[X]!=="object")throw TypeError(".common.Tx.coins: object expected");G.coins[X]=W.common.Coin.fromObject(y.coins[X])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");G.gas=[];for(let X=0;X<y.gas.length;++X){if(typeof y.gas[X]!=="object")throw TypeError(".common.Tx.gas: object expected");G.gas[X]=W.common.Coin.fromObject(y.gas[X])}}if(y.memo!=null)G.memo=String(y.memo);return G},f.toObject=function(y,G){if(!G)G={};let X={};if(G.arrays||G.defaults)X.coins=[],X.gas=[];if(G.defaults)X.id="",X.chain="",X.fromAddress="",X.toAddress="",X.memo="";if(y.id!=null&&y.hasOwnProperty("id"))X.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))X.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))X.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))X.toAddress=y.toAddress;if(y.coins?.length){X.coins=[];for(let Z=0;Z<y.coins.length;++Z)X.coins[Z]=W.common.Coin.toObject(y.coins[Z],G)}if(y.gas?.length){X.gas=[];for(let Z=0;Z<y.gas.length;++Z)X.gas[Z]=W.common.Coin.toObject(y.gas[Z],G)}if(y.memo!=null&&y.hasOwnProperty("memo"))X.memo=y.memo;return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.Fee=(()=>{function f(L){if(this.coins=[],L){for(let y=Object.keys(L),G=0;G<y.length;++G)if(L[y[G]]!=null)this[y[G]]=L[y[G]]}}return f.prototype.coins=D.emptyArray,f.prototype.poolDeduct="",f.create=function(y){return new f(y)},f.encode=function(y,G){if(!G)G=Xy.create();if(y.coins?.length)for(let X=0;X<y.coins.length;++X)W.common.Coin.encode(y.coins[X],G.uint32(10).fork()).ldelim();if(y.poolDeduct!=null&&Object.hasOwnProperty.call(y,"poolDeduct"))G.uint32(18).string(y.poolDeduct);return G},f.encodeDelimited=function(y,G){return this.encode(y,G).ldelim()},f.decode=function(y,G){if(!(y instanceof F))y=F.create(y);let X=G===void 0?y.len:y.pos+G,Z=new W.common.Fee;while(y.pos<X){let J=y.uint32();switch(J>>>3){case 1:if(!Z.coins?.length)Z.coins=[];Z.coins.push(W.common.Coin.decode(y,y.uint32()));break;case 2:Z.poolDeduct=y.string();break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let G=0;G<y.coins.length;++G){let X=W.common.Coin.verify(y.coins[G]);if(X)return"coins."+X}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!D.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},f.fromObject=function(y){if(y instanceof W.common.Fee)return y;let G=new W.common.Fee;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Fee.coins: array expected");G.coins=[];for(let X=0;X<y.coins.length;++X){if(typeof y.coins[X]!=="object")throw TypeError(".common.Fee.coins: object expected");G.coins[X]=W.common.Coin.fromObject(y.coins[X])}}if(y.poolDeduct!=null)G.poolDeduct=String(y.poolDeduct);return G},f.toObject=function(y,G){if(!G)G={};let X={};if(G.arrays||G.defaults)X.coins=[];if(G.defaults)X.poolDeduct="";if(y.coins?.length){X.coins=[];for(let Z=0;Z<y.coins.length;++Z)X.coins[Z]=W.common.Coin.toObject(y.coins[Z],G)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))X.poolDeduct=y.poolDeduct;return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.ProtoUint=(()=>{function f(L){if(L){for(let y=Object.keys(L),G=0;G<y.length;++G)if(L[y[G]]!=null)this[y[G]]=L[y[G]]}}return f.prototype.value="",f.create=function(y){return new f(y)},f.encode=function(y,G){if(!G)G=Xy.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))G.uint32(10).string(y.value);return G},f.encodeDelimited=function(y,G){return this.encode(y,G).ldelim()},f.decode=function(y,G){if(!(y instanceof F))y=F.create(y);let X=G===void 0?y.len:y.pos+G,Z=new W.common.ProtoUint;while(y.pos<X){let J=y.uint32();switch(J>>>3){case 1:Z.value=y.string();break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.value!=null&&y.hasOwnProperty("value")){if(!D.isString(y.value))return"value: string expected"}return null},f.fromObject=function(y){if(y instanceof W.common.ProtoUint)return y;let G=new W.common.ProtoUint;if(y.value!=null)G.value=String(y.value);return G},f.toObject=function(y,G){if(!G)G={};let X={};if(G.defaults)X.value="";if(y.value!=null&&y.hasOwnProperty("value"))X.value=y.value;return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T})();W.types=(()=>{let T={};return T.MsgDeposit=(()=>{function f(L){if(this.coins=[],L){for(let y=Object.keys(L),G=0;G<y.length;++G)if(L[y[G]]!=null)this[y[G]]=L[y[G]]}}return f.prototype.coins=D.emptyArray,f.prototype.memo="",f.prototype.signer=D.newBuffer([]),f.create=function(y){return new f(y)},f.encode=function(y,G){if(!G)G=Xy.create();if(y.coins?.length)for(let X=0;X<y.coins.length;++X)W.common.Coin.encode(y.coins[X],G.uint32(10).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))G.uint32(18).string(y.memo);if(y.signer!=null&&Object.hasOwnProperty.call(y,"signer"))G.uint32(26).bytes(y.signer);return G},f.encodeDelimited=function(y,G){return this.encode(y,G).ldelim()},f.decode=function(y,G){if(!(y instanceof F))y=F.create(y);let X=G===void 0?y.len:y.pos+G,Z=new W.types.MsgDeposit;while(y.pos<X){let J=y.uint32();switch(J>>>3){case 1:if(!Z.coins?.length)Z.coins=[];Z.coins.push(W.common.Coin.decode(y,y.uint32()));break;case 2:Z.memo=y.string();break;case 3:Z.signer=y.bytes();break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let G=0;G<y.coins.length;++G){let X=W.common.Coin.verify(y.coins[G]);if(X)return"coins."+X}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!D.isString(y.memo))return"memo: string expected"}if(y.signer!=null&&y.hasOwnProperty("signer")){if(!(y.signer&&typeof y.signer.length==="number"||D.isString(y.signer)))return"signer: buffer expected"}return null},f.fromObject=function(y){if(y instanceof W.types.MsgDeposit)return y;let G=new W.types.MsgDeposit;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".types.MsgDeposit.coins: array expected");G.coins=[];for(let X=0;X<y.coins.length;++X){if(typeof y.coins[X]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");G.coins[X]=W.common.Coin.fromObject(y.coins[X])}}if(y.memo!=null)G.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")D.base64.decode(y.signer,G.signer=D.newBuffer(D.base64.length(y.signer)),0);else if(y.signer.length)G.signer=y.signer}return G},f.toObject=function(y,G){if(!G)G={};let X={};if(G.arrays||G.defaults)X.coins=[];if(G.defaults){if(X.memo="",G.bytes===String)X.signer="";else if(X.signer=[],G.bytes!==Array)X.signer=D.newBuffer(X.signer)}if(y.coins?.length){X.coins=[];for(let Z=0;Z<y.coins.length;++Z)X.coins[Z]=W.common.Coin.toObject(y.coins[Z],G)}if(y.memo!=null&&y.hasOwnProperty("memo"))X.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))X.signer=G.bytes===String?D.base64.encode(y.signer,0,y.signer.length):G.bytes===Array?Array.prototype.slice.call(y.signer):y.signer;return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T.MsgSend=(()=>{function f(L){if(this.amount=[],L){for(let y=Object.keys(L),G=0;G<y.length;++G)if(L[y[G]]!=null)this[y[G]]=L[y[G]]}}return f.prototype.fromAddress=D.newBuffer([]),f.prototype.toAddress=D.newBuffer([]),f.prototype.amount=D.emptyArray,f.create=function(y){return new f(y)},f.encode=function(y,G){if(!G)G=Xy.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))G.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))G.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let X=0;X<y.amount.length;++X)W.cosmos.base.v1beta1.Coin.encode(y.amount[X],G.uint32(26).fork()).ldelim();return G},f.encodeDelimited=function(y,G){return this.encode(y,G).ldelim()},f.decode=function(y,G){if(!(y instanceof F))y=F.create(y);let X=G===void 0?y.len:y.pos+G,Z=new W.types.MsgSend;while(y.pos<X){let J=y.uint32();switch(J>>>3){case 1:Z.fromAddress=y.bytes();break;case 2:Z.toAddress=y.bytes();break;case 3:if(!Z.amount?.length)Z.amount=[];Z.amount.push(W.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(J&7);break}}return Z},f.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!(y.fromAddress&&typeof y.fromAddress.length==="number"||D.isString(y.fromAddress)))return"fromAddress: buffer expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!(y.toAddress&&typeof y.toAddress.length==="number"||D.isString(y.toAddress)))return"toAddress: buffer expected"}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!Array.isArray(y.amount))return"amount: array expected";for(let G=0;G<y.amount.length;++G){let X=W.cosmos.base.v1beta1.Coin.verify(y.amount[G]);if(X)return"amount."+X}}return null},f.fromObject=function(y){if(y instanceof W.types.MsgSend)return y;let G=new W.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")D.base64.decode(y.fromAddress,G.fromAddress=D.newBuffer(D.base64.length(y.fromAddress)),0);else if(y.fromAddress.length)G.fromAddress=y.fromAddress}if(y.toAddress!=null){if(typeof y.toAddress==="string")D.base64.decode(y.toAddress,G.toAddress=D.newBuffer(D.base64.length(y.toAddress)),0);else if(y.toAddress.length)G.toAddress=y.toAddress}if(y.amount){if(!Array.isArray(y.amount))throw TypeError(".types.MsgSend.amount: array expected");G.amount=[];for(let X=0;X<y.amount.length;++X){if(typeof y.amount[X]!=="object")throw TypeError(".types.MsgSend.amount: object expected");G.amount[X]=W.cosmos.base.v1beta1.Coin.fromObject(y.amount[X])}}return G},f.toObject=function(y,G){if(!G)G={};let X={};if(G.arrays||G.defaults)X.amount=[];if(G.defaults){if(G.bytes===String)X.fromAddress="";else if(X.fromAddress=[],G.bytes!==Array)X.fromAddress=D.newBuffer(X.fromAddress);if(G.bytes===String)X.toAddress="";else if(X.toAddress=[],G.bytes!==Array)X.toAddress=D.newBuffer(X.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))X.fromAddress=G.bytes===String?D.base64.encode(y.fromAddress,0,y.fromAddress.length):G.bytes===Array?Array.prototype.slice.call(y.fromAddress):y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))X.toAddress=G.bytes===String?D.base64.encode(y.toAddress,0,y.toAddress.length):G.bytes===Array?Array.prototype.slice.call(y.toAddress):y.toAddress;if(y.amount?.length){X.amount=[];for(let Z=0;Z<y.amount.length;++Z)X.amount[Z]=W.cosmos.base.v1beta1.Coin.toObject(y.amount[Z],G)}return X},f.prototype.toJSON=function(){return this.constructor.toObject(this,g.util.toJSONOptions)},f})(),T})();W.cosmos=(()=>{let T={};return T.base=(()=>{let f={};return f.v1beta1=(()=>{let L={};return L.Coin=(()=>{function y(G){if(G){for(let X=Object.keys(G),Z=0;Z<X.length;++Z)if(G[X[Z]]!=null)this[X[Z]]=G[X[Z]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(X){return new y(X)},y.encode=function(X,Z){if(!Z)Z=Xy.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))Z.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))Z.uint32(18).string(X.amount);return Z},y.encodeDelimited=function(X,Z){return this.encode(X,Z).ldelim()},y.decode=function(X,Z){if(!(X instanceof F))X=F.create(X);let J=Z===void 0?X.len:X.pos+Z,Q=new W.cosmos.base.v1beta1.Coin;while(X.pos<J){let x=X.uint32();switch(x>>>3){case 1:Q.denom=X.string();break;case 2:Q.amount=X.string();break;default:X.skipType(x&7);break}}return Q},y.decodeDelimited=function(X){if(!(X instanceof F))X=new F(X);return this.decode(X,X.uint32())},y.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!D.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!D.isString(X.amount))return"amount: string expected"}return null},y.fromObject=function(X){if(X instanceof W.cosmos.base.v1beta1.Coin)return X;let Z=new W.cosmos.base.v1beta1.Coin;if(X.denom!=null)Z.denom=String(X.denom);if(X.amount!=null)Z.amount=String(X.amount);return Z},y.toObject=function(X,Z){if(!Z)Z={};let J={};if(Z.defaults)J.denom="",J.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))J.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))J.amount=X.amount;return J},y.prototype.toJSON=function(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),L.DecCoin=(()=>{function y(G){if(G){for(let X=Object.keys(G),Z=0;Z<X.length;++Z)if(G[X[Z]]!=null)this[X[Z]]=G[X[Z]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(X){return new y(X)},y.encode=function(X,Z){if(!Z)Z=Xy.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))Z.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))Z.uint32(18).string(X.amount);return Z},y.encodeDelimited=function(X,Z){return this.encode(X,Z).ldelim()},y.decode=function(X,Z){if(!(X instanceof F))X=F.create(X);let J=Z===void 0?X.len:X.pos+Z,Q=new W.cosmos.base.v1beta1.DecCoin;while(X.pos<J){let x=X.uint32();switch(x>>>3){case 1:Q.denom=X.string();break;case 2:Q.amount=X.string();break;default:X.skipType(x&7);break}}return Q},y.decodeDelimited=function(X){if(!(X instanceof F))X=new F(X);return this.decode(X,X.uint32())},y.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!D.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!D.isString(X.amount))return"amount: string expected"}return null},y.fromObject=function(X){if(X instanceof W.cosmos.base.v1beta1.DecCoin)return X;let Z=new W.cosmos.base.v1beta1.DecCoin;if(X.denom!=null)Z.denom=String(X.denom);if(X.amount!=null)Z.amount=String(X.amount);return Z},y.toObject=function(X,Z){if(!Z)Z={};let J={};if(Z.defaults)J.denom="",J.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))J.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))J.amount=X.amount;return J},y.prototype.toJSON=function(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),L.IntProto=(()=>{function y(G){if(G){for(let X=Object.keys(G),Z=0;Z<X.length;++Z)if(G[X[Z]]!=null)this[X[Z]]=G[X[Z]]}}return y.prototype.int="",y.create=function(X){return new y(X)},y.encode=function(X,Z){if(!Z)Z=Xy.create();if(X.int!=null&&Object.hasOwnProperty.call(X,"int"))Z.uint32(10).string(X.int);return Z},y.encodeDelimited=function(X,Z){return this.encode(X,Z).ldelim()},y.decode=function(X,Z){if(!(X instanceof F))X=F.create(X);let J=Z===void 0?X.len:X.pos+Z,Q=new W.cosmos.base.v1beta1.IntProto;while(X.pos<J){let x=X.uint32();switch(x>>>3){case 1:Q.int=X.string();break;default:X.skipType(x&7);break}}return Q},y.decodeDelimited=function(X){if(!(X instanceof F))X=new F(X);return this.decode(X,X.uint32())},y.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.int!=null&&X.hasOwnProperty("int")){if(!D.isString(X.int))return"int: string expected"}return null},y.fromObject=function(X){if(X instanceof W.cosmos.base.v1beta1.IntProto)return X;let Z=new W.cosmos.base.v1beta1.IntProto;if(X.int!=null)Z.int=String(X.int);return Z},y.toObject=function(X,Z){if(!Z)Z={};let J={};if(Z.defaults)J.int="";if(X.int!=null&&X.hasOwnProperty("int"))J.int=X.int;return J},y.prototype.toJSON=function(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),L.DecProto=(()=>{function y(G){if(G){for(let X=Object.keys(G),Z=0;Z<X.length;++Z)if(G[X[Z]]!=null)this[X[Z]]=G[X[Z]]}}return y.prototype.dec="",y.create=function(X){return new y(X)},y.encode=function(X,Z){if(!Z)Z=Xy.create();if(X.dec!=null&&Object.hasOwnProperty.call(X,"dec"))Z.uint32(10).string(X.dec);return Z},y.encodeDelimited=function(X,Z){return this.encode(X,Z).ldelim()},y.decode=function(X,Z){if(!(X instanceof F))X=F.create(X);let J=Z===void 0?X.len:X.pos+Z,Q=new W.cosmos.base.v1beta1.DecProto;while(X.pos<J){let x=X.uint32();switch(x>>>3){case 1:Q.dec=X.string();break;default:X.skipType(x&7);break}}return Q},y.decodeDelimited=function(X){if(!(X instanceof F))X=new F(X);return this.decode(X,X.uint32())},y.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.dec!=null&&X.hasOwnProperty("dec")){if(!D.isString(X.dec))return"dec: string expected"}return null},y.fromObject=function(X){if(X instanceof W.cosmos.base.v1beta1.DecProto)return X;let Z=new W.cosmos.base.v1beta1.DecProto;if(X.dec!=null)Z.dec=String(X.dec);return Z},y.toObject=function(X,Z){if(!Z)Z={};let J={};if(Z.defaults)J.dec="";if(X.dec!=null&&X.hasOwnProperty("dec"))J.dec=X.dec;return J},y.prototype.toJSON=function(){return this.constructor.toObject(this,g.util.toJSONOptions)},y})(),L})(),f})(),T})()});import{Chain as u2}from"@swapkit/helpers";async function Ky(){let{$root:T}=await Promise.resolve().then(() => (B1(),z1)),f=await import("@cosmjs/proto-signing"),L=f.Registry??f.default?.Registry,y=await import("@cosmjs/stargate"),G=y.defaultRegistryTypes??y.default?.defaultRegistryTypes;return new L([...G,["/types.MsgSend",T.types.MsgSend],["/types.MsgDeposit",T.types.MsgDeposit]])}async function wy(T){let f=await import("@cosmjs/stargate"),L=f.AminoTypes??f.default?.AminoTypes,y=T===u2.THORChain?"thorchain":"mayachain";return new L({"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,fromAmino:({signer:G,...X})=>({...X,signer:YT(G)}),toAmino:({signer:G,...X})=>({...X,signer:HT(G)})},"/types.MsgSend":{aminoType:`${y}/MsgSend`,fromAmino:({from_address:G,to_address:X,...Z})=>({...Z,fromAddress:YT(G),toAddress:YT(X)}),toAmino:({fromAddress:G,toAddress:X,...Z})=>({...Z,from_address:HT(G),to_address:HT(X)})}})}var P0=v(()=>{D0()});import{AssetValue as b2,Chain as mT,ChainToChainId as M1,SwapKitError as j2}from"@swapkit/helpers";function V0(T){return function(L){let{assetValue:y,recipient:G,memo:X,sender:Z,asSignable:J,asAminoMessage:Q}=L;if(G)return H1(T)({asAminoMessage:Q,asSignable:J,assetValue:y,memo:X,recipient:G,sender:Z});return W1(T)({asAminoMessage:Q,asSignable:J,assetValue:y,memo:X,sender:Z})}}function Fy(T){if(T.type==="thorchain/MsgSend"||T.type==="mayachain/MsgSend")return T;return{...T,value:{...T.value,coins:T.value.coins.map((f)=>{let L=b2.from({asset:f.asset}),y=(L.isSynthetic?L.symbol.split("/")?.[1]:L.symbol)?.toUpperCase(),G=(L.isSynthetic?L.symbol.split("/")?.[0]:L.chain)?.toUpperCase();return{...f,asset:{chain:G,symbol:y,synth:L.isSynthetic,ticker:L.ticker}}})}}}async function CT({chain:T,memo:f,msgs:L}){let y=await Ky(),G=await wy(T),X={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:f,messages:L.map((Z)=>G.fromAmino(Z))}};return y.encode(X)}var h2,n2,A0=({sender:T,recipient:f,assetValue:L})=>{return{type:`${L.chain===mT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:L.getBaseValue("string"),denom:Ey(L.symbol,!0)}],from_address:T,to_address:f}}},$0=({sender:T,assetValue:f,memo:L=""})=>{return{type:`${f.chain===mT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:f.getBaseValue("string"),asset:WT(f)}],memo:L,signer:T}}},oT=({sender:T,recipient:f,assetValue:L,memo:y})=>{return!f?$0({assetValue:L,memo:y,sender:T}):A0({assetValue:L,recipient:f,sender:T})},vy=async(T,f)=>{return(await wy(f)).fromAmino(T)},Y1=async({rpcUrl:T,sender:f})=>{let y=await(await Uy(T)).getAccount(f);if(!y)throw new j2("toolbox_cosmos_account_not_found",{sender:f});return y},H1=(T)=>async({sender:f,recipient:L,assetValue:y,memo:G="",asSignable:X=!0,asAminoMessage:Z=!1,sequence:J,accountNumber:Q})=>{let x=await Y1({rpcUrl:T,sender:f}),q=y.chain,_=A0({assetValue:y,recipient:L,sender:f}),z=X?await vy(Z?_:Fy(_),q):_;return{accountNumber:Q||x.accountNumber,chainId:M1[q],fee:Wy(y.chain),memo:G,msgs:[z],sequence:J||x.sequence}},W1=(T)=>async({sender:f,assetValue:L,memo:y="",asSignable:G=!0,asAminoMessage:X=!1,sequence:Z,accountNumber:J})=>{let Q=await Y1({rpcUrl:T,sender:f}),x=L.chain,q=$0({assetValue:L,memo:y,sender:f}),_=G?await vy(X?q:Fy(q),x):q;return{accountNumber:J||Q.accountNumber,chainId:M1[x],fee:Wy(L.chain),memo:y,msgs:[_],sequence:Z||Q.sequence}};var U1=v(()=>{NT();P0();h2=Wy(mT.THORChain).gas,n2=Wy(mT.Maya).gas});var N1=()=>{};var C1=v(()=>{N1()});var l0=v(()=>{D0();U1();P0();C1()});import{base64 as b0,bech32 as K0}from"@scure/base";import{AssetValue as w1,applyFeeMultiplier as R1,BaseDecimal as S0,Chain as s,ChainToChainId as p2,CosmosChainPrefixes as v1,DerivationPath as m2,derivationPathToString as O1,FeeOption as j0,getRPCUrl as o2,NetworkDerivationPath as c2,SKConfig as g2,SwapKitError as cT,SwapKitNumber as u0,updateDerivationPath as t2}from"@swapkit/helpers";import{SwapKitApi as F1}from"@swapkit/helpers/api";import{match as d2,P as I1}from"ts-pattern";async function n0(T,f){try{let y=(await F1.getGasRate()).find((G)=>G.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(L){return f}}async function h0({phrase:T,prefix:f,...L}){let y=await import("@cosmjs/proto-signing"),G=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,X=await import("@cosmjs/crypto"),Z=X.stringToPath??X.default?.stringToPath,J="derivationPath"in L?L.derivationPath:`${m2[L.chain]}/${L.index}`;return G.fromMnemonic(T,{hdPaths:[Z(J)],prefix:f})}async function i2({privateKey:T,prefix:f}){let L=await import("@cosmjs/proto-signing");return(L.DirectSecp256k1Wallet??L.default?.DirectSecp256k1Wallet).fromKey(T,f)}function P1(T){return async function({signature:L,message:y,address:G}){let X=await T(G);if(!X?.pubkey)throw new cT("toolbox_cosmos_verify_signature_no_pubkey");let Z=await import("@cosmjs/crypto"),J=Z.Secp256k1Signature??Z.default?.Secp256k1Signature,Q=Z.Secp256k1??Z.default?.Secp256k1,x=J.fromFixedLength(b0.decode(L));return Q.verifySignature(x,b0.decode(y),X.pubkey.value)}}async function RT({chain:T,...f}){let L=await o2(T),y=v1[T],G="index"in f?f.index||0:0,X=O1("derivationPath"in f&&f.derivationPath?f.derivationPath:t2(c2[T],{index:G})),Z=await d2(f).with({phrase:I1.string},({phrase:_})=>h0({derivationPath:X,phrase:_,prefix:y})).with({signer:I1.any},({signer:_})=>_).otherwise(()=>{return});async function J(_){return(await Uy(L)).getAccount(_)}async function Q(){let[_]=await Z?.getAccounts()||[];return _?.address}async function x(){let[_]=await Z?.getAccounts()||[];if(!_?.pubkey)throw new cT("toolbox_cosmos_signer_not_defined");return b0.encode(_?.pubkey)}async function q({recipient:_,assetValue:z,memo:M="",feeRate:B,feeOptionKey:U=j0.Fast}){let O=await Q();if(!(Z&&O))throw new cT("toolbox_cosmos_signer_not_defined");let P=w1.from({chain:T}),A=WT(P),n=B||yX((await k1(T,D1[T]))[U],A),S=await UT(L,Z),o=[{amount:z.getBaseValue("string"),denom:Ey(`u${z.symbol}`).toLowerCase()}],{transactionHash:d}=await S.sendTokens(O,_,o,n,M);return d}return{createPrivateKeyFromPhrase:fX(X),createTransaction:v0,fetchFeeRateFromSwapKit:n0,getAccount:J,getAddress:Q,getBalance:async(_,z)=>{let M=await E1(L)(_);return await Promise.all(M.filter(({denom:B})=>B&&!B.includes("IBC/")).map(({denom:B,amount:U})=>{let O=[s.THORChain,s.Maya].includes(T)&&(B.includes("/")||B.includes("˜"))?`${T}.${B}`:B;return F0(O,U)}))},getBalanceAsDenoms:E1(L),getFees:()=>k1(T,D1[T]),getPubKey:x,getSignerFromPhrase:async({phrase:_,derivationPath:z})=>h0({derivationPath:O1(z),index:G,phrase:_,prefix:y}),getSignerFromPrivateKey:async(_)=>{let z=await import("@cosmjs/proto-signing");return(z.DirectSecp256k1Wallet??z.default?.DirectSecp256k1Wallet).fromKey(_,y)},transfer:q,validateAddress:$1(y),verifySignature:P1(J)}}async function A1(T,f){try{let y=(await F1.getGasRate()).find((G)=>G.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(L){return f}}function a2({address:T,chain:f,prefix:L}){let y=L||e2(f);if(!(y&&T))throw new cT("toolbox_cosmos_validate_address_prefix_not_found");return $1(y)(T)}function s2({assetValue:{chain:T}}){return w1.from({chain:T,value:TX(T)})}function e2(T){let{isStagenet:f}=g2.get("envs"),L=T?[s.THORChain,s.Maya].includes(T)&&f:!1,y=T?v1[T]:void 0;return L?`s${y}`:y}async function k1(T,f){let L=await n0(p2[T],f);return{average:u0.fromBigInt(BigInt(L),S0[T]),fast:u0.fromBigInt(BigInt(R1(L,j0.Fast,!0)),S0[T]),fastest:u0.fromBigInt(BigInt(R1(L,j0.Fastest,!0)),S0[T])}}function yX(T,f){return{amount:[{amount:T.getBaseValue("string"),denom:f}],gas:"200000"}}function TX(T){return{[s.Cosmos]:0.007,[s.Kujira]:0.02,[s.Noble]:0.01,[s.THORChain]:0.02,[s.Maya]:0.02}[T]||0}function $1(T){return function(L){if(!L.startsWith(T))return!1;try{let{prefix:y,words:G}=K0.decode(L);return K0.encode(y,G)===L.toLocaleLowerCase()}catch(y){return!1}}}function E1(T){return async function(L){return(await(await Uy(T)).getAllBalances(L)).map((Z)=>({...Z,denom:Z.denom.includes("/")?Z.denom.toUpperCase():Z.denom}))}}function fX(T){return async function(L){let y=await import("@cosmjs/crypto"),G=y.stringToPath??y.default?.stringToPath,X=y.Slip10Curve??y.default?.Slip10Curve,Z=y.Slip10??y.default?.Slip10,J=y.EnglishMnemonic??y.default?.EnglishMnemonic,Q=y.Bip39??y.default?.Bip39,x=new J(L),q=await Q.mnemonicToSeed(x),{privkey:_}=Z.derivePath(X.Secp256k1,q,G(T));return _}}var D1,r2;var gT=v(()=>{NT();D1={[s.Cosmos]:500,[s.Kujira]:1000,[s.Noble]:1000,[s.THORChain]:5000000,[s.Maya]:5000000};r2=A1});import{base64 as Sy}from"@scure/base";import{BaseDecimal as XX,Chain as GX,CosmosChainPrefixes as LX,derivationPathToString as ZX,FeeOption as p0,getRPCUrl as JX,NetworkDerivationPath as QX,RequestClient as xX,SKConfig as V1,SwapKitError as l1,SwapKitNumber as K1,updateDerivationPath as qX}from"@swapkit/helpers";import{match as _X,P as S1}from"ts-pattern";function zX({prefix:T,derivationPath:f}){return async function(y,G=0){let X=await import("@cosmjs/amino"),Z=X.Secp256k1HdWallet??X.default?.Secp256k1HdWallet,J=await import("@cosmjs/crypto"),Q=J.stringToPath??J.default?.stringToPath;return Z.fromMnemonic(y,{hdPaths:[Q(`${f}/${G}`)],prefix:T})}}function BX(T){return Sy.encode(T)}function MX(T){return async function({wallet:L,tx:y}){let{msgs:G,accountNumber:X,sequence:Z,chainId:J,fee:Q,memo:x}=typeof y==="string"?JSON.parse(y):y,q=(await L.getAccounts())?.[0]?.address||"",_=await wy(T),z=await Ky(),M=await w0(L,{aminoTypes:_,registry:z}),B=[];for(let P of G){let A=await vy(P,T);B.push(A)}let{signatures:[U]}=await M.sign(q,B,Q,x,{accountNumber:X,chainId:J,sequence:Z});return{bodyBytes:await CT({chain:T,memo:x,msgs:G.map(Fy)}),signature:BX(U)}}}function YX({prefix:T,rpcUrl:f}){return async function(y,G,X,Z,J){let{encodeSecp256k1Pubkey:Q,pubkeyToAddress:x}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:q}=(await import("@cosmjs/stargate")).default,{sequence:_,fee:z}=JSON.parse(y),M=await u1(X,Z),B=G.map((P)=>[x(Q(Sy.decode(P.pubKey)),T),Sy.decode(P.signature)]),U=await Uy(f),{transactionHash:O}=await U.broadcastTx(q(M,_,z,J,new Map(B)));return O}}async function u1(T,f,L=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:G}=(await import("@cosmjs/amino")).default;return y(T.map((X)=>G(Sy.decode(X))),f,L)}function HX(T){return Sy.decode(T)}async function WX({privateKey:T,message:f}){let{Secp256k1:L}=(await import("@cosmjs/crypto")).default,y=await L.createSignature(Sy.decode(f),T);return Sy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function m0({chain:T,...f}){let L=V1.get("nodeUrls")[T],y=await JX(T),{isStagenet:G}=V1.get("envs"),X=T===GX.THORChain,Z=`${G?"s":""}${LX[T]}`,J="index"in f?f.index||0:0,Q="derivationPath"in f&&f.derivationPath?f.derivationPath:qX(QX[T],{index:J}),x=await RT({chain:T,...f}),q=await _X(f).with({phrase:S1.string},({phrase:B})=>x.getSignerFromPhrase({derivationPath:Q,phrase:B})).with({signer:S1.any},({signer:B})=>B).otherwise(()=>{return}),_=Wy(T);async function z(){let B,U=`${L}/${X?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:O}}=await xX.get(U);if(!O||Number.isNaN(O)||O<0)throw new l1("toolbox_cosmos_invalid_fee",{nativeFee:O.toString()});B=new K1(O)}catch{B=new K1({decimal:XX[T],value:X?0.02:1})}return{[p0.Average]:B,[p0.Fast]:B,[p0.Fastest]:B}}async function M({assetValue:B,memo:U="",recipient:O}){let{TxRaw:P}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),A=(await q?.getAccounts())?.[0]?.address;if(!(A&&q))throw new l1("toolbox_cosmos_no_signer");let n="signAmino"in q,S=await Ky(),o=await wy(T),d=await UT(y,q,{aminoTypes:o,registry:S}),I=oT({assetValue:B,memo:U,recipient:O,sender:A});if(n){let k=await vy(I,T),{signatures:R,authInfoBytes:w}=await d.sign(A,[k],_,U),l=P.encode({authInfoBytes:w,bodyBytes:await CT({chain:T,memo:U,msgs:[I].map(Fy)}),signatures:R}).finish();return(await d.broadcastTx(l)).transactionHash}let $=Fy(I),C=await vy($,T);return(await d.signAndBroadcast(A,[C],_,U)).transactionHash}return{...x,broadcastMultisigTx:YX({prefix:Z,rpcUrl:y}),buildAminoMsg:oT,buildEncodedTxBody:CT,convertToSignable:vy,createDefaultAminoTypes:()=>wy(T),createDefaultRegistry:Ky,createMultisig:u1,createTransaction:V0(y),deposit:M,getFees:z,importSignature:HX,parseAminoMessageForDirectSigning:Fy,pubkeyToAddress:async(B)=>{let{pubkeyToAddress:U}=(await import("@cosmjs/amino")).default;return U(B,Z)},secp256k1HdWalletFromMnemonic:zX({derivationPath:ZX(Q),prefix:Z}),signMultisigTx:MX(T),signWithPrivateKey:WX,transfer:M}}var o0=v(()=>{l0();NT();gT()});import{Chain as OT,SwapKitError as UX}from"@swapkit/helpers";var NX=(T,f)=>{switch(T){case OT.Cosmos:case OT.Kujira:case OT.Noble:return RT({chain:T,...f});case OT.Maya:case OT.THORChain:return m0({chain:T,...f});default:throw new UX("toolbox_cosmos_not_supported",{chain:T})}};var b1=v(()=>{gT();o0();gT();o0()});var tT={};Gy(tT,{verifySignature:()=>P1,transferMsgAmino:()=>A0,toBase64:()=>$2,parseAminoMessageForDirectSigning:()=>Fy,getSignerFromPrivateKey:()=>i2,getSignerFromPhrase:()=>h0,getMsgSendDenom:()=>Ey,getFeeRateFromThorswap:()=>r2,getFeeRateFromSwapKit:()=>A1,getDenomWithChain:()=>WT,getDefaultChainFee:()=>Wy,getCreateTransaction:()=>V0,getCosmosToolbox:()=>NX,getAssetFromDenom:()=>F0,fromBase64:()=>V2,fetchFeeRateFromSwapKit:()=>n0,estimateTransactionFee:()=>s2,depositMsgAmino:()=>$0,createThorchainToolbox:()=>m0,createStargateClient:()=>Uy,createSigningStargateClient:()=>UT,createOfflineStargateClient:()=>w0,createDefaultRegistry:()=>Ky,createDefaultAminoTypes:()=>wy,createCosmosToolbox:()=>RT,cosmosValidateAddress:()=>a2,cosmosCreateTransaction:()=>v0,convertToSignable:()=>vy,buildTransferTx:()=>H1,buildEncodedTxBody:()=>CT,buildDepositTx:()=>W1,buildAminoMsg:()=>oT,bech32ToBase64:()=>YT,base64ToBech32:()=>HT,YUM_KUJIRA_FACTORY_DENOM:()=>Q1,USK_KUJIRA_FACTORY_DENOM:()=>E0,THORCHAIN_GAS_VALUE:()=>h2,MAYA_GAS_VALUE:()=>n2,DEFAULT_NOBLE_FEE_MAINNET:()=>_1,DEFAULT_KUJI_FEE_MAINNET:()=>q1,DEFAULT_COSMOS_FEE_MAINNET:()=>x1});var dT=v(()=>{l0();b1();NT()});import{AssetValue as CX,BaseDecimal as RX}from"@swapkit/helpers";import{SwapKitApi as OX}from"@swapkit/helpers/api";function j1(){function T(){let f=Date.now(),L=c0||f;return c0=L,f>c0?f:L+1}return IX+T().toString(36)}function iy(T){return async function(L,y=!0){return(await OX.getChainBalance({address:L,chain:T,scamFilter:y})).map(({identifier:X,value:Z,decimal:J})=>{return new CX({decimal:J||RX[T],identifier:X,value:Z})})}}var IX,c0=0;var IT=v(()=>{IX=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{SKConfig as DX,warnOnce as kX}from"@swapkit/helpers";function DT(T){let f=DX.get("apis")[T];if(f)return kX({condition:!0,id:"custom_evm_api_warning",warning:"Using custom EVM API. Be sure to implement all methods to avoid issues."}),f;return wX(T)}function EX(T){return T}function wX(T){return{getBalance:iy(T)}}var iT=v(()=>{IT()});import{BaseDecimal as vX,Chain as m,ChainToExplorerUrl as FX,ChainToHexChainId as PX,getRPCUrl as AX,SKConfig as $X,SwapKitError as VX}from"@swapkit/helpers";async function uy(T,f){let{JsonRpcProvider:L}=await import("ethers");return new L(f||await AX(T))}function kT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function g0(T){return()=>m.Ethereum===T?void 0:{...lX({chain:T}),blockExplorerUrls:[FX[T]],chainId:PX[T],rpcUrls:[$X.get("rpcUrls")[T]]}}function t0(T){return![m.Arbitrum,m.BinanceSmartChain].includes(T)}function lX({chain:T}){let f=vX[T];switch(T){case m.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:m.Ethereum}};case m.Aurora:return{chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:m.Ethereum}};case m.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:T}};case m.Base:return{chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:m.Ethereum}};case m.Berachain:return{chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}};case m.BinanceSmartChain:return{chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}};case m.Gnosis:return{chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}};case m.Optimism:return{chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:m.Ethereum}};case m.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:m.Polygon}};default:throw new VX("toolbox_evm_not_supported",{chain:T})}}var ry=()=>{};var h1;var n1=v(()=>{h1=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as KX,applyFeeMultiplierToBigInt as ay,Chain as t,ContractAddress as qy,FeeOption as p,isGasAsset as SX,SwapKitError as h,SwapKitNumber as rT}from"@swapkit/helpers";import{erc20ABI as ET}from"@swapkit/helpers/contracts";import{BrowserProvider as uX,Contract as p1,getAddress as aT,Interface as m1}from"ethers";function sy({chain:T=t.Ethereum,provider:f,signer:L,isEIP1559Compatible:y=!0}){return{approve:nX({chain:T,isEIP1559Compatible:y,provider:f,signer:L}),approvedAmount:g1({chain:T,provider:f}),broadcastTransaction:f.broadcastTransaction,call:s0({chain:T,isEIP1559Compatible:y,provider:f,signer:L}),createApprovalTx:cX({chain:T,provider:f,signer:L}),createContract:r0({chain:T,provider:f}),createContractTxObject:by({chain:T,provider:f}),createTransaction:d0({chain:T,provider:f,signer:L}),createTransferTx:d0({chain:T,provider:f,signer:L}),EIP1193SendTransaction:yT(f),estimateCall:t1({provider:f,signer:L}),estimateGasLimit:mX({chain:T,provider:f,signer:L}),estimateGasPrices:jy({chain:T,isEIP1559Compatible:y,provider:f}),estimateTransactionFee:gX({chain:T,isEIP1559Compatible:y,provider:f}),getAddress:()=>{return L?L.getAddress():void 0},isApproved:hX({chain:T,provider:f}),sendTransaction:d1({chain:T,isEIP1559Compatible:y,provider:f,signer:L}),signMessage:L?.signMessage,transfer:pX({chain:T,isEIP1559Compatible:y,provider:f,signer:L}),validateAddress:(G)=>i0({address:G})}}function i0({address:T}){try{return aT(T),!0}catch(f){return!1}}function ey(T){return T instanceof uX}function vT(T,f,L){return new p1(T,m1.from(f),L)}function r0({provider:T}){return function(L,y){return new p1(L,m1.from(y),T)}}function a0({abi:T,funcName:f}){let L=T.find((y)=>y.name===f);if(!L)throw new h("toolbox_evm_no_abi_fragment",{funcName:f});return L.stateMutability&&bX.includes(L.stateMutability)}function o1(T){return aT(T)}function yT(T){return function({value:L,...y}){if(!ey(T))throw new h("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:G,gasPrice:X,maxFeePerGas:Z,maxPriorityFeePerGas:J,...Q}=y;return T.send("eth_sendTransaction",[{...Q,value:kT(BigInt(L||0))}])}}function c1(T,f){let L=TT(T,f);if(L)return aT(L.toLowerCase());throw new h("toolbox_evm_invalid_gas_asset_address")}function TT({chain:T,symbol:f,ticker:L},y){try{let G=T===t.BinanceSmartChain&&f==="BNB"&&L==="BNB",X=T===y&&f===y&&L===y,Z=[t.Arbitrum,t.Aurora,t.Base,t.Optimism].includes(T)&&f==="ETH"&&L==="ETH";if(X||G||Z)return jX[y];return aT(f.slice(L.length+1).replace(/^0X/,""))}catch(G){return null}}function by({provider:T}){return async({contractAddress:f,abi:L,funcName:y,funcParams:G=[],txOverrides:X})=>vT(f,L,T).getFunction(y).populateTransaction(...G.concat(X).filter((Z)=>typeof Z<"u"))}function jy({chain:T,provider:f,isEIP1559Compatible:L=!0}){if(T===t.Arbitrum)return async function(){try{let{gasPrice:G}=await f.getFeeData();if(!G)throw new h("toolbox_evm_no_fee_data");return{[p.Average]:{gasPrice:G},[p.Fast]:{gasPrice:G},[p.Fastest]:{gasPrice:G}}}catch(G){throw new h("toolbox_evm_gas_estimation_error",{error:G.msg??G.toString()})}};return async function(){try{let{maxFeePerGas:G,maxPriorityFeePerGas:X,gasPrice:Z}=await f.getFeeData();if(L){if(G===null||X===null)throw new h("toolbox_evm_no_fee_data");return{[p.Average]:{maxFeePerGas:G,maxPriorityFeePerGas:X},[p.Fast]:{maxFeePerGas:ay(G,p.Fast),maxPriorityFeePerGas:ay(X,p.Fast)},[p.Fastest]:{maxFeePerGas:ay(G,p.Fastest),maxPriorityFeePerGas:ay(X,p.Fastest)}}}if(!Z)throw new h("toolbox_evm_no_gas_price");return{[p.Average]:{gasPrice:Z},[p.Fast]:{gasPrice:ay(Z,p.Fast)},[p.Fastest]:{gasPrice:ay(Z,p.Fastest)}}}catch(G){throw new h("toolbox_evm_gas_estimation_error",{error:G.msg??G.toString()})}}}function s0({provider:T,isEIP1559Compatible:f,signer:L,chain:y}){return async function({callProvider:X,contractAddress:Z,abi:J,funcName:Q,funcParams:x=[],txOverrides:q={},feeOption:_=p.Fast}){let z=X||T;if(!Z)throw new h("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let M=a0({abi:J,funcName:Q});if(M&&ey(z)&&L){let O=by({chain:y,provider:z}),P=q?.from||await L?.getAddress(),A=await O({abi:J,contractAddress:Z,funcName:Q,funcParams:x,txOverrides:{...q,from:P}});return yT(z)(A)}let B=vT(Z,J,z);if(M){if(!L)throw new h("toolbox_evm_no_signer");let O=q?.from||await L.getAddress();if(!O)throw new h("toolbox_evm_no_signer_address");let P=B.connect(L),A=jy({chain:y,isEIP1559Compatible:f,provider:T}),{maxFeePerGas:n,maxPriorityFeePerGas:S,gasPrice:o}=(await A())[_],d=await B.getFunction(Q).estimateGas(...x,q),I=await P[Q](...x,{...q,gasLimit:d,gasPrice:o,maxFeePerGas:n,maxPriorityFeePerGas:S,nonce:q?.nonce||await z.getTransactionCount(O)});return typeof I?.hash==="string"?I?.hash:I}let U=await B[Q]?.(...x);return typeof U?.hash==="string"?U?.hash:U}}function g1({provider:T,chain:f}){return function({assetAddress:y,spenderAddress:G,from:X}){return s0({chain:f,isEIP1559Compatible:!0,provider:T})({abi:ET,contractAddress:y,funcName:"allowance",funcParams:[X,G]})}}function hX({provider:T,chain:f}){return async function({assetAddress:y,spenderAddress:G,from:X,amount:Z=wT}){let J=await g1({chain:f,provider:T})({assetAddress:y,from:X,spenderAddress:G});return rT.fromBigInt(J).gte(rT.fromBigInt(BigInt(Z)))}}function nX({signer:T,isEIP1559Compatible:f=!0,provider:L,chain:y}){return async function({assetAddress:X,spenderAddress:Z,feeOptionKey:J=p.Fast,amount:Q,gasLimitFallback:x,from:q,nonce:_}){let z=[Z,BigInt(Q||wT)],M=await T?.getAddress()||q,B={abi:ET,contractAddress:X,funcName:"approve",funcParams:z,signer:T,txOverrides:{from:M}};if(ey(L)){let O=by({chain:y,provider:L}),P=yT(L),A=await O(B);return P(A)}return s0({chain:y,isEIP1559Compatible:f,provider:L,signer:T})({...B,feeOption:J,funcParams:z,txOverrides:{from:M,gasLimit:x?BigInt(x.toString()):void 0,nonce:_}})}}function pX({signer:T,isEIP1559Compatible:f=!0,provider:L}){return async function({assetValue:G,memo:X,recipient:Z,feeOptionKey:J=p.Fast,sender:Q,...x}){let{hexlify:q,toUtf8Bytes:_}=await import("ethers"),z=G.getBaseValue("bigint"),M=G.chain,B=Q||await T?.getAddress(),U=d1({chain:M,isEIP1559Compatible:f,provider:L,signer:T});if(!B)throw new h("toolbox_evm_no_from_address");if(G.isGasAsset){let o={...x,data:q(_(X||"")),feeOptionKey:J,from:B,to:Z,value:z};return U(o)}if(!TT(G,M))throw new h("toolbox_evm_no_contract_address");let{maxFeePerGas:P,maxPriorityFeePerGas:A,gasPrice:n}=(await jy({chain:M,isEIP1559Compatible:f,provider:L})())[J],S=await d0({chain:M,provider:L,signer:T})({assetValue:G,data:q(_(X||"")),gasPrice:n,maxFeePerGas:P,maxPriorityFeePerGas:A,memo:X,recipient:Z,sender:B});return U(S)}}function t1({provider:T,signer:f}){return function({contractAddress:y,abi:G,funcName:X,funcParams:Z=[],txOverrides:J}){if(!y)throw new h("toolbox_evm_no_contract_address");let Q=vT(y,G,T);return f?Q.connect(f).getFunction(X).estimateGas(...Z,J):Q.getFunction(X).estimateGas(...Z,J)}}function mX({provider:T,signer:f}){return async function({assetValue:y,recipient:G,memo:X,data:Z,sender:J,funcName:Q,funcParams:x,txOverrides:q}){let _=y.bigIntValue,z=y.isGasAsset?null:TT(y,y.chain);if(z&&Q)return t1({provider:T,signer:f})({abi:ET,contractAddress:z,funcName:Q,funcParams:x,txOverrides:q});let{hexlify:M,toUtf8Bytes:B}=await import("ethers");return T.estimateGas({data:Z?Z:X?M(B(X)):void 0,from:J,to:G,value:_})}}function d1({provider:T,signer:f,isEIP1559Compatible:L=!0,chain:y}){return async function({feeOptionKey:X=p.Fast,...Z}){let{from:J,to:Q,data:x,value:q,..._}=Z;if(!f)throw new h("toolbox_evm_no_signer");if(!Q)throw new h("toolbox_evm_no_to_address");let z={..._,data:x||"0x",from:J,to:Q,value:BigInt(q||0)};if(ey(T))return yT(T)(z);let M=J||await f.getAddress(),B=Z.nonce||await T.getTransactionCount(M),U=(await T.getNetwork()).chainId,O=oX(z)||L,P=jy({chain:y,isEIP1559Compatible:L,provider:T}),A=O&&!(z.maxFeePerGas&&z.maxPriorityFeePerGas)||!z.gasPrice?Object.entries((await P())[X]).reduce((S,[o,d])=>({...S,[o]:kT(BigInt(d))}),{}):{},n;try{n=kT(z.gasLimit||await T.estimateGas(z)*11n/10n)}catch(S){throw new h("toolbox_evm_error_estimating_gas_limit",{error:S})}try{let S={...z,chainId:U,gasLimit:n,nonce:B,type:O?2:0,...A};try{return(await f.sendTransaction(S)).hash}catch(o){let d=await f.signTransaction({...S,from:M});return(await T.broadcastTransaction(d)).hash}}catch(S){throw new h("toolbox_evm_error_sending_transaction",{error:S})}}}function d0({provider:T,signer:f}){return async function({assetValue:y,memo:G,recipient:X,data:Z,sender:J,maxFeePerGas:Q,maxPriorityFeePerGas:x,gasPrice:q,..._}){let z=y.getBaseValue("bigint"),M=y.chain,B=J||await f?.getAddress();if(!B)throw new h("toolbox_evm_no_from_address");if(SX(y)){let{hexlify:P,toUtf8Bytes:A}=await import("ethers");return{..._,data:Z||P(A(G||"")),from:B,to:X,value:z}}let U=TT(y,M);if(!U)throw new h("toolbox_evm_no_contract_address");return by({chain:y.chain,provider:T})({abi:ET,contractAddress:U,funcName:"transfer",funcParams:[X,z],txOverrides:{from:B,gasPrice:q,maxFeePerGas:Q,maxPriorityFeePerGas:x}})}}function cX({provider:T,signer:f,chain:L}){return async function({assetAddress:G,spenderAddress:X,amount:Z,from:J}){let Q=await f?.getAddress()||J,x=by({chain:L,provider:T}),q=["bigint","number"].includes(typeof Z)?Z:Z||wT;return await x({abi:ET,contractAddress:G,funcName:"approve",funcParams:[X,BigInt(q)],txOverrides:{from:Q}})}}function gX({provider:T,isEIP1559Compatible:f=!0}){return async function({feeOption:y=p.Fast,chain:G,...X}){let J=await jy({chain:G,isEIP1559Compatible:f,provider:T})(),Q=await T.estimateGas(X),x=KX.from({chain:G}),{gasPrice:q,maxFeePerGas:_,maxPriorityFeePerGas:z}=J[y];if(!f&&q)return x.set(rT.fromBigInt(q*Q,x.decimal));if(_&&z){let M=(_+z)*Q;return x.set(rT.fromBigInt(M,x.decimal))}throw new h("toolbox_evm_no_gas_price")}}var wT,bX,jX,oX=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var sT=v(()=>{ry();wT=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");bX=["payable","nonpayable"];jX={[t.Arbitrum]:qy.ARB,[t.Aurora]:qy.AURORA,[t.Avalanche]:qy.AVAX,[t.Base]:qy.BASE,[t.Berachain]:qy.BERA,[t.BinanceSmartChain]:qy.BSC,[t.Ethereum]:qy.ETH,[t.Gnosis]:qy.GNO,[t.Optimism]:qy.OP,[t.Polygon]:qy.MATIC}});import{Chain as Ny,FeeOption as tX,getRPCUrl as dX}from"@swapkit/helpers";import{HDNodeWallet as iX}from"ethers";import{match as rX,P as i1}from"ts-pattern";async function eT({provider:T,...f}){let L=await Cy(Ny.Ethereum)({provider:T,...f});async function y(G,X="0x5ba1e12693dc8f9c48aad8770482f4739beed696",Z="aggregate",J=tX.Fast){let Q=await L.createContractTxObject({abi:h1,contractAddress:X,funcName:Z,funcParams:[G]});return L.sendTransaction({...Q,feeOptionKey:J})}return{...L,multicall:y}}function Cy(T){return async function({provider:L,...y}){let G=await dX(T),X=L||await uy(T,G),Z=t0(T),J=rX(y).with({phrase:i1.string},({phrase:x})=>iX.fromPhrase(x).connect(X)).with({signer:i1.any},({signer:x})=>x).otherwise(()=>{return});return{...sy({chain:T,isEIP1559Compatible:Z,provider:X,signer:J}),getBalance:DT(T).getBalance,getNetworkParams:g0(T)}}}var y0,T0,f0,X0,G0,L0,Z0,J0;var e0=v(()=>{iT();n1();ry();sT();y0=Cy(Ny.Arbitrum),T0=Cy(Ny.Aurora),f0=Cy(Ny.Avalanche),X0=Cy(Ny.Base),G0=Cy(Ny.Berachain),L0=Cy(Ny.BinanceSmartChain),Z0=Cy(Ny.Gnosis),J0=Cy(Ny.Polygon)});var r1;var a1=v(()=>{r1=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as fT,BaseDecimal as aX,Chain as FT,ChainId as sX,ChainToExplorerUrl as eX,FeeOption as Ry,getRPCUrl as y8,SKConfig as T8,SwapKitError as y5}from"@swapkit/helpers";import{Contract as f8,HDNodeWallet as X8}from"ethers";import{match as G8,P as s1}from"ts-pattern";function T5(T){return new f8(L8,r1,T)}function e1(T){return function(){let L=T5(T);if(L&&"l1BaseFee"in L)return L?.l1BaseFee();return}}function yf(T){return async function({from:L,to:y,nonce:G,...X}){let{Transaction:Z}=await import("ethers");if(!y)throw new y5("toolbox_evm_invalid_transaction",{error:"Missing to address"});return Z.from({...X,authorizationList:X.authorizationList,nonce:G?G:L?await T.getTransactionCount(L):0,to:y}).serialized}}function Tf(T){return async function(L){let y=T5(T),G=await yf(T)(L);if(y&&"getL1Fee"in y)return y.getL1Fee(G)}}function ff(T){return async function(L){let y=await T.send("eth_gasPrice",[]),G=await T.estimateGas(L);return y.mul(G)}}function Z8(T){return async function(L){let y=await Tf(T)(L),G=await ff(T)(L);return y.add(G)}}function J8(T){return async function(L){let y=T5(T),G=await yf(T)(L);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(G)}}async function x8(T){try{let{maxFeePerGas:f,maxPriorityFeePerGas:L,gasPrice:y}=await T.getFeeData(),G=e1(T)(),X=y;if(!(f&&L))throw new y5("toolbox_evm_no_fee_data");return{[Ry.Average]:{gasPrice:X,l1GasPrice:G,maxFeePerGas:f,maxPriorityFeePerGas:L},[Ry.Fast]:{gasPrice:fT(X,Ry.Fast),l1GasPrice:fT(G||0n,Ry.Fast),maxFeePerGas:f,maxPriorityFeePerGas:fT(L,Ry.Fast)},[Ry.Fastest]:{gasPrice:fT(X,Ry.Fastest),l1GasPrice:fT(G||0n,Ry.Fastest),maxFeePerGas:f,maxPriorityFeePerGas:fT(L,Ry.Fastest)}}}catch(f){throw new y5("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}async function Q0({provider:T,...f}){let L=FT.Optimism,y=await y8(L),G=T||await uy(L,y),X=G8(f).with({phrase:s1.string},({phrase:Q})=>X8.fromPhrase(Q).connect(G)).with({signer:s1.any},({signer:Q})=>Q).otherwise(()=>{return}),Z=sy({provider:G,signer:X}),J=e1(G);return{...Z,estimateGasPrices:x8(G),estimateL1Gas:J8(G),estimateL1GasCost:Tf(G),estimateL2GasCost:ff(G),estimateTotalGasCost:Z8(G),getBalance:DT(FT.Optimism).getBalance,getL1GasPrice:J,getNetworkParams:Q8}}var L8="0x420000000000000000000000000000000000000f",Q8=()=>({blockExplorerUrls:[eX[FT.Optimism]],chainId:sX.OptimismHex,chainName:"Optimism",nativeCurrency:{decimals:aX.ETH,name:"Ethereum",symbol:FT.Ethereum},rpcUrls:[T8.get("rpcUrls")[FT.Optimism]]});var f5=v(()=>{iT();a1();ry();sT()});var Gf={};Gy(Gf,{toChecksumAddress:()=>o1,isStateChangingCall:()=>a0,isBrowserProvider:()=>ey,getTokenAddress:()=>TT,getEvmToolbox:()=>Xf,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>yT,getCreateContractTxObject:()=>by,getCreateContract:()=>r0,getChecksumAddressFromAsset:()=>c1,evmValidateAddress:()=>i0,createContract:()=>vT,OPToolbox:()=>Q0,MAX_APPROVAL:()=>wT,MATICToolbox:()=>J0,GNOToolbox:()=>Z0,ETHToolbox:()=>eT,BaseEVMToolbox:()=>sy,BSCToolbox:()=>L0,BERAToolbox:()=>G0,BASEToolbox:()=>X0,AVAXToolbox:()=>f0,AURORAToolbox:()=>T0,ARBToolbox:()=>y0});import{Chain as _y,SwapKitError as q8}from"@swapkit/helpers";async function Xf(T,f){let L={...f,provider:f?.provider||await uy(T)};switch(T){case _y.Arbitrum:return y0(L);case _y.Aurora:return T0(L);case _y.Avalanche:return f0(L);case _y.Base:return X0(L);case _y.Berachain:return G0(L);case _y.BinanceSmartChain:return L0(L);case _y.Gnosis:return Z0(L);case _y.Optimism:return Q0(L);case _y.Polygon:return J0(L);case _y.Ethereum:return eT(L);default:throw new q8("toolbox_evm_not_supported",{chain:T})}}var X5=v(()=>{ry();e0();f5();sT();e0();f5()});var Lf;var Zf=v(()=>{((L)=>{L.Test="goerli";L.Main="homestead"})(Lf||={})});var Jf={};Gy(Jf,{toHexString:()=>kT,toChecksumAddress:()=>o1,isStateChangingCall:()=>a0,isBrowserProvider:()=>ey,getTokenAddress:()=>TT,getProvider:()=>uy,getNetworkParams:()=>g0,getIsEIP1559Compatible:()=>t0,getEvmToolbox:()=>Xf,getEvmApi:()=>DT,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>yT,getCreateContractTxObject:()=>by,getCreateContract:()=>r0,getChecksumAddressFromAsset:()=>c1,evmValidateAddress:()=>i0,createCustomEvmApi:()=>EX,createContract:()=>vT,OPToolbox:()=>Q0,MAX_APPROVAL:()=>wT,MATICToolbox:()=>J0,GNOToolbox:()=>Z0,EthNetwork:()=>Lf,ETHToolbox:()=>eT,BaseEVMToolbox:()=>sy,BSCToolbox:()=>L0,BERAToolbox:()=>G0,BASEToolbox:()=>X0,AVAXToolbox:()=>f0,AURORAToolbox:()=>T0,ARBToolbox:()=>y0});var Qf=v(()=>{iT();ry();X5();Zf()});import{AssetValue as _8,Chain as z8,SwapKitNumber as xf}from"@swapkit/helpers";async function B8(T,f,L){try{let y=await T.query.system?.account?.(L);if(!y)return[f.set(0)];let{data:{free:G}}=y,X=xf.fromBigInt(BigInt(G.toString()),f.decimal).getValue("string");return[f.set(X)]}catch(y){return console.error("Error fetching substrate balance:",y),[f.set(0)]}}async function M8(T,f,L){try{let y=await T.query.flip?.account?.(L);if(!y)return[f.set(0)];let G=y.balance||y.data?.balance;if(!G||G.isEmpty)return[f.set(0)];let X=xf.fromBigInt(BigInt(G.toString()),f.decimal).getValue("string");return[f.set(X)]}catch(y){return console.error("Error fetching chainflip balance:",y),[f.set(0)]}}function qf(T,f){return function(y){let G=_8.from({chain:T});switch(T){case z8.Chainflip:return M8(f,G,y);default:return B8(f,G,y)}}}var _f=()=>{};var Y8,H8,W8,Py;var G5=v(()=>{Y8={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},H8={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},W8={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},Py={DOT:Y8,FLIP:H8,GENERIC:W8}});import{hexToU8a as U8,isHex as N8,u8aToHex as C8}from"@polkadot/util";import{decodeAddress as Bf,encodeAddress as Mf}from"@polkadot/util-crypto";import{AssetValue as R8,Chain as GT,getRPCUrl as O8,SwapKitError as zy,SwapKitNumber as I8}from"@swapkit/helpers";import{match as D8,P as zf}from"ts-pattern";function k8(T,f){switch(T){case GT.Chainflip:return Hf(f);case GT.Polkadot:return Yf(f);default:throw new zy("toolbox_substrate_not_supported",{chain:T})}}function XT(T){return"address"in T}async function Z5(T,f){let{Keyring:L}=await import("@polkadot/api"),{cryptoWaitReady:y}=await import("@polkadot/util-crypto");return await y(),new L({ss58Format:f,type:"sr25519"}).addFromUri(T)}function $8(T,f){let L=Bf(T);return Mf(L,f)}function Wf(T,f){return N8(T)?U8(T):Bf(T,void 0,f)}function Uf(T,f="ss58",L){if(f==="hex")return C8(T);return Mf(T,L)}async function x5({generic:T,chain:f,...L}){let{ApiPromise:y,WsProvider:G}=await import("@polkadot/api"),X=await O8(f),Z=new G(X),J=await y.create({provider:Z}),Q=R8.from({chain:f}),x=T?Py.GENERIC:Py[f],q=await D8(L).with({phrase:zf.string},({phrase:_})=>Z5(_,Py[f].prefix)).with({signer:zf.any},({signer:_})=>_).otherwise(()=>{return});return Nf({api:J,chain:f,gasAsset:Q,network:x,signer:q})}var Yf=({generic:T=!1,...f}={})=>{return x5({chain:GT.Polkadot,generic:T,...f})},Hf=async({generic:T=!1,...f}={})=>{return{...await x5({chain:GT.Chainflip,generic:T,...f})}},J5=(T,f)=>T.rpc.system.accountNextIndex(f),L5=(T,f)=>{try{let L=Wf(T,f);return Uf(L,"ss58",f),!0}catch(L){return!1}},Q5=(T,{recipient:f,assetValue:L})=>T.tx.balances?.transferAllowDeath?.(f,L.getBaseValue("number")),E8=async(T,f,{recipient:L,assetValue:y,sender:G})=>{let X=Q5(T,{assetValue:y,recipient:L});if(!X)throw new zy("toolbox_substrate_transfer_error");let Z=XT(f),J=Z?f.address:G;if(!J)throw new zy("core_transaction_invalid_sender_address");let Q=await J5(T,J);return(await X.signAndSend(Z?f:J,{nonce:Q,signer:Z?void 0:f})).toString()},w8=async(T,f,L,{recipient:y,assetValue:G,sender:X})=>{let Z=Q5(T,{assetValue:G,recipient:y}),J=XT(f)?f.address:X;if(!J)return;let Q=await Z?.paymentInfo(J,{nonce:await J5(T,J)})||{partialFee:0};return L.set(I8.fromBigInt(BigInt(Q.partialFee.toString()),L.decimal).getValue("string"))},v8=async(T,f)=>{if(f)return T.send(f);return(await T.send()).toString()},F8=async(T,f)=>{return await f.signAsync(T)},P8=(T,f,L)=>{if(L)return f.signAndSend(T,L);return f.signAndSend(T).toString()},A8=async({signer:T,address:f,tx:L,callback:y,api:G})=>{let X=await J5(G,f);if(y)L.signAndSend(f,{nonce:X,signer:T},y);return L.signAndSend(f,{nonce:X,signer:T}).toString()},Nf=({api:T,network:f,gasAsset:L,signer:y,chain:G})=>({api:T,broadcast:v8,convertAddress:$8,createKeyring:(X)=>Z5(X,f.prefix),createTransaction:(X)=>Q5(T,X),decodeAddress:Wf,encodeAddress:Uf,estimateTransactionFee:(X)=>{if(!y)throw new zy("core_wallet_not_keypair_wallet");return w8(T,y,L,X)},gasAsset:L,getAddress:(X)=>{let Z=X||y;if(!Z)throw new zy("core_wallet_not_keypair_wallet");return XT(Z)?Z.address:void 0},getBalance:qf(G||GT.Polkadot,T),network:f,sign:(X)=>{if(!y)throw new zy("core_wallet_not_keypair_wallet");if(XT(y))return F8(y,X);throw new zy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:X,callback:Z,address:J})=>{if(!y)throw new zy("core_wallet_not_keypair_wallet");if(XT(y))return P8(y,X,Z);if(J)return A8({address:J,api:T,callback:Z,signer:y,tx:X});throw new zy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(X)=>{if(!y)throw new zy("core_wallet_not_keypair_wallet");return E8(T,y,X)},validateAddress:(X)=>L5(X,f.prefix)}),V8=({address:T,chain:f})=>{let{prefix:L}=f===GT.Polkadot?Py.DOT:Py.FLIP;return L5(T,L)||L5(T,Py.GENERIC.prefix)};var Cf=v(()=>{_f();G5()});var q5={};Gy(q5,{substrateValidateAddress:()=>V8,isKeyringPair:()=>XT,getSubstrateToolbox:()=>k8,createSubstrateToolbox:()=>x5,createKeyring:()=>Z5,SubstrateNetwork:()=>Py,PolkadotToolbox:()=>Yf,ChainflipToolbox:()=>Hf,BaseSubstrateToolbox:()=>Nf});var _5=v(()=>{Cf();G5()});import{networks as l8}from"@bitgo/utxo-lib";import{Chain as i,getRPCUrl as K8,RequestClient as x0,SKConfig as If,SwapKitError as Ay,warnOnce as Df}from"@swapkit/helpers";import{networks as S8}from"bitcoinjs-lib";import PT from"coininfo";async function u8({chain:T,txHash:f}){let L=`${q0(T)}/push/transaction`,y=JSON.stringify({data:f});try{let G=await x0.post(L,{body:y,headers:{"Content-Type":"application/json"}});if(G.context.code!==200)throw new Ay("toolbox_utxo_broadcast_failed",{error:G.context.error||"Transaction broadcast failed"});return G.data?.transaction_hash||f}catch(G){let X=await K8(T);if(X){let Z=JSON.stringify({id:j1(),jsonrpc:"2.0",method:"sendrawtransaction",params:[f]}),J=await x0.post(X,{body:Z,headers:{"Content-Type":"application/json"}});if(J.error)throw new Ay("toolbox_utxo_broadcast_failed",{error:J.error?.message});if(J.result.includes('"code":-26'))throw new Ay("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return J.result}throw G}}function q0(T){return`https://api.blockchair.com/${b8(T)}`}function Rf(T){switch(T){case i.Bitcoin:return 5;case i.Dogecoin:return 1e4;case i.Litecoin:return 1;case i.Zcash:return 1;default:return 2}}function b8(T){switch(T){case i.BitcoinCash:return"bitcoin-cash";case i.Litecoin:return"litecoin";case i.Dash:return"dash";case i.Dogecoin:return"dogecoin";case i.Zcash:return"zcash";case i.Polkadot:return"polkadot";default:return"bitcoin"}}async function j8(T){try{let{feePerKb:f}=await x0.get(`https://app.bitgo.com/api/v2/${T.toLowerCase()}/tx/fee`),L=f/1000;return Math.max(L,Rf(T))}catch(f){return Rf(T)}}async function z5(T,f){let L=await x0.get(`${T}${f?`${T.includes("?")?"&":"?"}key=${f}`:""}`);if(!L||L.context.code!==200)throw new Ay("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return L.data}async function kf({address:T,chain:f,apiKey:L}){if(!T)throw new Ay("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await z5(`${q0(f)}/dashboards/address/${T}?transaction_details=true`,L))[T]}catch(y){return{address:{balance:0,transaction_count:0},utxo:[]}}}async function h8({address:T,chain:f,apiKey:L}){return(await kf({address:T,apiKey:L,chain:f}))?.address.balance||0}async function Ef({chain:T,apiKey:f,txHash:L}){if(!L)throw new Ay("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await z5(`${q0(T)}/raw/transaction/${L}`,f))?.[L]?.raw_transaction||""}catch(y){return console.error("Failed to fetch raw transaction:",y),""}}async function n8({chain:T,address:f,apiKey:L,offset:y=0,limit:G=30}){return(await z5(`${q0(T)}/outputs?q=recipient(${f}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${G}&offset=${y}`,L)).map(({is_spent:Q,script_hex:x,block_id:q,transaction_hash:_,index:z,value:M,spending_signature_hex:B})=>({hash:_,index:z,is_confirmed:q!==-1,is_spent:Q,script_hex:x,txHex:B,value:M}))}function p8(T){return T.reduce((f,L)=>f+L.value,0)}function Of(T,f){let L=[...T].sort((y,G)=>G.value-y.value);if(f){let y=[],G=0;for(let X of L)if(y.push(X),G+=X.value,G>=f)break;return y}return L}async function wf({chain:T,address:f,apiKey:L,targetValue:y,accumulativeValue:G=0,offset:X=0,limit:Z=30}){if(!f)throw new Ay("toolbox_utxo_invalid_params",{error:"Address is required"});try{let J=await n8({address:f,apiKey:L,chain:T,limit:Z,offset:X,targetValue:y}),x=J.length<Z,q=J.filter(({is_spent:O})=>!O),_=p8(q),z=G+_,M=y&&z>=y;if(x||M)return Of(q,y);let B=await wf({accumulativeValue:z,address:f,apiKey:L,chain:T,limit:Z,offset:X+Z,targetValue:y}),U=[...q,...B];return Of(U,y)}catch(J){return console.error("Failed to fetch unspent UTXOs:",J),[]}}async function m8({address:T,chain:f,apiKey:L,fetchTxHex:y=!0,targetValue:G}){let X=await wf({address:T,apiKey:L,chain:f,targetValue:G}),Z=[];for(let{hash:J,index:Q,script_hex:x,value:q}of X){let _;if(y)_=await Ef({apiKey:L,chain:f,txHash:J});Z.push({address:T,hash:J,index:Q,txHex:_,value:q,witnessUtxo:{script:Buffer.from(x,"hex"),value:q}})}return Z}function o8(T){let f=If.get("apiKeys").blockchair||"";return Df({condition:!f,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(L)=>u8({chain:T,txHash:L}),getAddressData:(L)=>kf({address:L,apiKey:f,chain:T}),getBalance:(L)=>h8({address:L,apiKey:f,chain:T}),getRawTx:(L)=>Ef({apiKey:f,chain:T,txHash:L}),getSuggestedTxFee:()=>j8(T),getUtxos:(L)=>m8({...L,apiKey:f,chain:T})}}function c8(T){return T}function yy(T){let f=If.get("apis")[T];if(f)return Df({condition:!0,id:"custom_utxo_api_warning",warning:"Using custom UTXO API. Be sure to implement all methods to avoid issues."}),f;return o8(T)}function By(){return function(f){switch(f){case i.Bitcoin:return S8.bitcoin;case i.BitcoinCash:return PT.bitcoincash.main.toBitcoinJS();case i.Dash:return PT.dash.main.toBitcoinJS();case i.Litecoin:return PT.litecoin.main.toBitcoinJS();case i.Dogecoin:{let L={private:70615956,public:70617039},y=PT.dogecoin.test;return y.versions.bip32=L,PT.dogecoin.main.toBitcoinJS()}case i.Zcash:return l8.zcash;default:throw new Ay("toolbox_utxo_not_supported",{chain:f})}}}var vf=v(()=>{IT()});import{SwapKitError as Pf}from"@swapkit/helpers";import Af from"bs58check";import $f from"cashaddrjs";function M5(T){try{return _0(T),!0}catch(f){return!1}}function Y5(T){return _0(T)?.network}function LT(T){let f=_0(T);if(f?.format==="legacy")return T;return d8(f)}function AT(T){let f=_0(T);return i8(f)}function _0(T){try{let f=g8(T);if(f)return f}catch(f){}try{let f=t8(T);if(f)return f}catch(f){}throw new Pf("toolbox_utxo_invalid_address",{address:T})}function g8(T){try{let f=Af.decode(T);if(f.length!==21)throw new Pf("toolbox_utxo_invalid_address",{address:T});let L=f[0],y=Array.prototype.slice.call(f,1);switch(L){case K.legacy.mainnet.p2pkh:return{format:"legacy",hash:y,network:"mainnet",type:"p2pkh"};case K.legacy.mainnet.p2sh:return{format:"legacy",hash:y,network:"mainnet",type:"p2sh"};case K.legacy.testnet.p2pkh:return{format:"legacy",hash:y,network:"testnet",type:"p2pkh"};case K.legacy.testnet.p2sh:return{format:"legacy",hash:y,network:"testnet",type:"p2sh"};case K.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2pkh"};case K.bitpay.mainnet.p2sh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2sh"};default:return}}catch(f){return}}function t8(T){if(T.indexOf(":")!==-1)try{return Ff(T)}catch(f){}else{let f=["bitcoincash","bchtest","bchreg"];for(let L of f)try{return Ff(`${L}:${T}`)}catch(y){}}return}function Ff(T){try{let{hash:f,prefix:L,type:y}=$f.decode(T);return{format:"cashaddr",hash:Array.prototype.slice.call(f,0),network:L==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch(f){return}}function d8(T){let f=K.legacy[T.network][T.type],L=Buffer.alloc(1+T.hash.length);return L[0]=f,L.set(T.hash,1),Af.encode(L)}function i8(T){let f=T.network==="mainnet"?"bitcoincash":"bchtest",L=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return $f.encode(f,L,y)}var B5,K;var Vf=v(()=>{((L)=>{L.Mainnet="mainnet";L.Testnet="testnet"})(B5||={});K={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as r8}from"@swapkit/helpers";import{opcodes as a8,script as s8}from"bitcoinjs-lib";function My(T){let f=Buffer.from(T,"utf8");return s8.compile([a8.OP_RETURN,f])}var e8=1000,B0=10,lf=10,yG=41,TG=107,M0,z0,$T,VT=(T)=>{if(T.startsWith("bc1")||T.startsWith("tb1")||T.startsWith("ltc1")||T.startsWith("tltc1"))return"P2WPKH";if(T.startsWith("1")||T.startsWith("m")||T.startsWith("n")||T.startsWith("bitcoincash:q")||T.startsWith("bitcoincash:p")||T.startsWith("q")||T.startsWith("p")||T.startsWith("L")||T.startsWith("M")||T.startsWith("3")||T.startsWith("D")||T.startsWith("A")||T.startsWith("9")||T.startsWith("X")||T.startsWith("7")||T.startsWith("y")||T.startsWith("t1")||T.startsWith("t3")||T.startsWith("tm"))return"P2PKH";throw new r8("toolbox_utxo_invalid_address",{address:T})},ZT=({inputs:T,outputs:f,feeRate:L})=>{let y=T[0]&&"address"in T[0]&&T[0].address?VT(T[0].address):"P2PKH",G=T.filter((Z)=>Z.value>=z0["type"in Z?Z.type:"P2PKH"]*Math.ceil(L)).reduce((Z,J)=>Z+$y(J),0),X=f?.reduce((Z,J)=>Z+lT(J),0)||$T[y];return B0+G+X},$y=(T)=>{if("type"in T)return z0[T.type];if("address"in T&&T.address)return z0[VT(T.address)];return yG+TG},lT=(T,f)=>{if(T?.script)return lf+T.script.length+(T.script.length>=74?2:1);if(f)return $T[f];return $T.P2PKH};var H5=v(()=>{((L)=>{L.P2PKH="P2PKH";L.P2WPKH="P2WPKH"})(M0||={});z0={["P2PKH"]:148,["P2WPKH"]:68},$T={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as hy,SwapKitError as fG}from"@swapkit/helpers";function Y0(T){switch(T){case hy.Bitcoin:case hy.BitcoinCash:return 550;case hy.Dash:case hy.Litecoin:return 5500;case hy.Dogecoin:return 1e5;case hy.Zcash:return 546;default:throw new fG("toolbox_utxo_not_supported",{chain:T})}}function Yy({inputs:T,outputs:f,feeRate:L=1,chain:y=hy.Bitcoin,changeAddress:G=""}){let X=Math.ceil(L),Z=T[0]&&"address"in T[0]&&T[0].address?VT(T[0].address):"P2PKH",J=T.filter((M)=>$y(M)*X<=M.value),Q=B0+f.reduce((M,B)=>M+lT(B,Z),0),x=f.reduce((M,B)=>M+B.value,0),q=Q*X,_=0,z=[];for(let M of J){let B=$y(M),U=X*B;q+=U,_+=M.value,z.push(M);let O=q+x;if(_<O)continue;let P=_-O,A=X*lT({address:"",value:0},Z);if(P>A){let n=A+q,S=_-(x+n);if(S>Math.max($y({})*X,Y0(y)))return{fee:n,inputs:z,outputs:f.concat({address:G,value:S})}}return{fee:q,inputs:z,outputs:f}}return{fee:X*ZT({feeRate:X,inputs:T,outputs:f})}}var Kf=v(()=>{H5()});var JT=v(()=>{vf();Vf();Kf();H5()});import{networks as XG,address as GG}from"@bitgo/utxo-lib";import LG from"bs58check";function ny(T){return T.replace(/(bchtest:|bitcoincash:)/,"")}function Vy(T){let f=ny(T);return M5(f)&&Y5(f)==="mainnet"}function QT(T){try{if(T.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let f=XG.zcash;try{return GG.toOutputScript(T,f),!0}catch{let L=LG.decode(T);if(L.length<21)return!1;let y=L[0];return y===f.pubKeyHash||y===f.scriptHash}}catch{return!1}}var KT=v(()=>{JT()});import U5 from"@bitcoinerlab/secp256k1";import{ECPair as ZG,HDNode as JG}from"@psf/bitcoincashjs-lib";import{HDKey as QG}from"@scure/bip32";import{mnemonicToSeedSync as Sf}from"@scure/bip39";import{AssetValue as W5,applyFeeMultiplier as uf,Chain as Ty,DerivationPath as xG,derivationPathToString as qG,FeeOption as Oy,NetworkDerivationPath as _G,SwapKitError as Iy,SwapKitNumber as zG,updateDerivationPath as BG}from"@swapkit/helpers";import{address as MG,initEccLib as jf,Psbt as YG,payments as bf}from"bitcoinjs-lib";import{ECPairFactory as HG}from"ecpair";function hf({inputs:T,outputs:f,chain:L,psbt:y,sender:G,compiledMemo:X}){for(let Z of T){let J=!!Z.witnessUtxo&&!ST.includes(L)&&{witnessUtxo:Z.witnessUtxo},Q=ST.includes(L)&&{nonWitnessUtxo:Z.txHex?Buffer.from(Z.txHex,"hex"):void 0};y.addInput({hash:Z.hash,index:Z.index,...J,...Q})}for(let Z of f){let J="address"in Z&&Z.address?Z.address:G,Q=Z.script;if(Q&&!X)continue;let x=Q?{script:X,value:0}:{address:J,value:Z.value};jf(U5),y.addOutput(x)}return{inputs:T,psbt:y}}async function nf({assetValue:T,recipient:f,memo:L,feeRate:y,sender:G,fetchTxHex:X=!1}){let Z=T.chain,J=L?await My(L):null,Q=await of({assetValue:T,fetchTxHex:X,memo:L,recipient:f,sender:G}),{inputs:x,outputs:q}=Yy({...Q,chain:Z,feeRate:y});if(!(x&&q))throw new Iy("toolbox_utxo_insufficient_balance",{assetValue:T,sender:G});let _=await By(),z=new YG({network:_(Z)});if(Z===Ty.Dogecoin)z.setMaximumFeeRate(650000000);let{psbt:M,inputs:B}=await hf({chain:Z,compiledMemo:J,inputs:x,outputs:q,psbt:z,sender:G});return{inputs:B,psbt:M,utxos:Q.inputs}}async function pf(){let T=await By();return function({address:L,chain:y}){if(y===Ty.BitcoinCash)return Vy(L);if(y===Ty.Zcash)return QT(L);try{return jf(U5),MG.toOutputScript(L,T(y)),!0}catch(G){return!1}}}async function WG({chain:T,phrase:f,derivationPath:L}){let y=(await uT(T))({derivationPath:L,phrase:f});async function G(Z){return await Z.signAllInputs(y),Z}async function X(){return(await N5(T))(y)}return{getAddress:X,signTransaction:G}}async function py({chain:T,...f}){let L="phrase"in f?f.phrase:void 0,y="index"in f?f.index||0:0,G=qG("derivationPath"in f&&f.derivationPath?f.derivationPath:BG(_G[T],{index:y})),X=L?await WG({chain:T,derivationPath:G,phrase:L}):("signer"in f)?f.signer:void 0;function Z(){return Promise.resolve(X?.getAddress())}let J=await N5(T),Q=await pf(),x=await uT(T);return{accumulative:Yy,broadcastTx:(q)=>yy(T).broadcastTx(q),calculateTxSize:ZT,createKeysForPath:x,createTransaction:nf,estimateMaxSendableAmount:UG(T),estimateTransactionFee:NG(T),getAddress:Z,getAddressFromKeys:J,getBalance:iy(T),getFeeRates:()=>bT(T),getInputsOutputsFee:mf,getPrivateKeyFromMnemonic:(q)=>{return x(q).toWIF()},transfer:CG(X),validateAddress:(q)=>Q({address:q,chain:T})}}async function mf({assetValue:T,feeOptionKey:f=Oy.Fast,feeRate:L,memo:y,sender:G,recipient:X}){let Z=T.chain,J=await of({assetValue:T,memo:y,recipient:X,sender:G}),Q=L?Math.floor(L):(await bT(Z))[f];return Yy({...J,chain:Z,feeRate:Q})}function UG(T){return async function({from:L,memo:y,feeRate:G,feeOptionKey:X=Oy.Fast,recipients:Z=1}){let J=await yy(T).getAddressData(L),Q=G?Math.ceil(G):(await bT(T))[X],x=J?.utxo.map((B)=>({...B,hash:"",type:"P2PKH"})).filter((B)=>B.value>Math.max(Y0(T),$y(B)*Q));if(!x?.length)return W5.from({chain:T});let q=W5.from({chain:T,value:x.reduce((B,U)=>B+U.value,0)}),_=typeof Z==="number"?Array.from({length:Z},()=>({address:L,value:0})):Z;if(y){let B=await My(y);_.push({address:L,script:B,value:0})}let M=ZT({feeRate:Q,inputs:x,outputs:_})*Q;return q.sub(M)}}function NG(T){return async(f)=>{let L=await mf(f);return W5.from({chain:T,value:zG.fromBigInt(BigInt(L.fee),8).getValue("string")})}}async function uT(T){let f=await By();switch(T){case Ty.BitcoinCash:return function({phrase:y,derivationPath:G=`${xG.BCH}/0`,wif:X}){let Z=f(T);if(X)return ZG.fromWIF(X,Z);if(!y)throw new Iy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return JG.fromSeedBuffer(Buffer.from(Sf(y)),Z).derivePath(G).keyPair};case Ty.Bitcoin:case Ty.Dogecoin:case Ty.Litecoin:case Ty.Zcash:case Ty.Dash:return function({phrase:y,wif:G,derivationPath:X}){if(!(G||y))throw new Iy("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let Z=HG(U5),J=f(T);if(G)return Z.fromWIF(G,J);let Q=Sf(y),x=QG.fromMasterSeed(Q,J).derive(X);if(!x.privateKey)throw new Iy("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return Z.fromPrivateKey(Buffer.from(x.privateKey),{network:J})};default:throw new Iy("toolbox_utxo_not_supported",{chain:T})}}async function N5(T){let f=await By();return function(y){if(!y)throw new Iy("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let G=ST.includes(T)?bf.p2pkh:bf.p2wpkh,{address:X}=G({network:f(T),pubkey:y.publicKey});if(!X)throw new Iy("toolbox_utxo_invalid_address",{error:"Address not defined"});return X}}function CG(T){return async function({memo:L,recipient:y,feeOptionKey:G,feeRate:X,assetValue:Z}){let J=await T?.getAddress(),Q=Z.chain;if(!(T&&J))throw new Iy("toolbox_utxo_no_signer");if(!y)throw new Iy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let x=X||(await bT(Q))[G||Oy.Fast],{psbt:q}=await nf({assetValue:Z,feeRate:x,memo:L,recipient:y,sender:J}),_=await T.signTransaction(q);return _.finalizeAllInputs(),yy(Q).broadcastTx(_.extractTransaction().toHex())}}async function bT(T){let f=await yy(T).getSuggestedTxFee();return{[Oy.Average]:f,[Oy.Fast]:uf(f,Oy.Fast),[Oy.Fastest]:uf(f,Oy.Fastest)}}async function of({assetValue:T,recipient:f,memo:L,sender:y,fetchTxHex:G=!1}){let X=T.chain,Z=(await bT(X))[Oy.Fastest],J=G||ST.includes(X),Q=T.getBaseValue("number"),x=Math.ceil(Q+Z*5000);return{inputs:await yy(X).getUtxos({address:y,fetchTxHex:J,targetValue:x}),outputs:[{address:f,value:Q},...L?[{address:"",script:await My(L),value:0}]:[]]}}var ST;var jT=v(()=>{IT();JT();KT();ST=[Ty.Dash,Ty.Dogecoin,Ty.Zcash,Ty.BitcoinCash]});import{address as RG,Transaction as OG,TransactionBuilder as IG}from"@psf/bitcoincashjs-lib";import{Chain as DG,derivationPathToString as kG,FeeOption as EG,NetworkDerivationPath as wG,SwapKitError as xT,updateDerivationPath as vG}from"@swapkit/helpers";import{Psbt as FG}from"bitcoinjs-lib";function my(T){return ny(AT(T))}function PG(T){function f({builder:y,utxos:G}){return G.forEach((X,Z)=>{y.sign(Z,T,void 0,65,X.witnessUtxo?.value)}),y.build()}return{getAddress:()=>{let y=T.getAddress(0);return Promise.resolve(my(y))},signTransaction:f}}async function C5(T){let f="phrase"in T?T.phrase:void 0,L="index"in T?T.index||0:0,y=kG("derivationPath"in T&&T.derivationPath?T.derivationPath:vG(wG[Zy],{index:L})),G=f?(await uT(Zy))({derivationPath:y,phrase:f}):void 0,X=G?PG(G):("signer"in T)?T.signer:void 0;function Z(){return Promise.resolve(X?.getAddress())}let{getBalance:J,getFeeRates:Q,broadcastTx:x,...q}=await py({chain:Zy});function _(z,M=!0){return J(ny(AT(z)))}return{...q,broadcastTx:x,buildTx:$G,createTransaction:cf,getAddress:Z,getAddressFromKeys:VG,getBalance:_,getFeeRates:Q,stripPrefix:ny,stripToCashAddress:my,transfer:AG({broadcastTx:x,getFeeRates:Q,signer:X}),validateAddress:Vy}}async function cf({assetValue:T,recipient:f,memo:L,feeRate:y,sender:G}){if(!Vy(f))throw new xT("toolbox_utxo_invalid_address",{address:f});let X=Math.ceil(T.getBaseValue("number")+y*7500),Z=await yy(Zy).getUtxos({address:my(G),fetchTxHex:!0,targetValue:X}),J=L?await My(L):null,Q=[];Q.push({address:f,value:T.getBaseValue("number")});let{inputs:x,outputs:q}=Yy({chain:Zy,feeRate:y,inputs:Z,outputs:Q});if(!(x&&q))throw new xT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:G});let _=await By(),z=new IG(_(Zy));await Promise.all(x.map(async(M)=>{let B=await yy(Zy).getRawTx(M.hash);z.addInput(OG.fromBuffer(Buffer.from(B,"hex")),M.index)}));for(let M of q){let B="address"in M&&M.address?M.address:LT(G),U=await By(),O=RG.toOutputScript(LT(B),U(Zy));z.addOutput(O,M.value)}if(J)z.addOutput(J,0);return{builder:z,utxos:x}}function AG({broadcastTx:T,getFeeRates:f,signer:L}){return async function({recipient:G,assetValue:X,feeOptionKey:Z=EG.Fast,...J}){let Q=await L?.getAddress();if(!(L&&Q))throw new xT("toolbox_utxo_no_signer");if(!G)throw new xT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let x=J.feeRate||(await f())[Z],{builder:q,utxos:_}=await cf({...J,assetValue:X,feeRate:x,recipient:G,sender:Q}),M=(await L.signTransaction({builder:q,utxos:_})).toHex();return T(M)}}async function $G({assetValue:T,recipient:f,memo:L,feeRate:y,sender:G,setSigHashType:X}){let Z=AT(f);if(!Vy(Z))throw new xT("toolbox_utxo_invalid_address",{address:Z});let J=Math.ceil(T.getBaseValue("number")+y*7500),Q=await yy(Zy).getUtxos({address:my(G),fetchTxHex:!1,targetValue:J}),x=Number(y.toFixed(0)),q=L?await My(L):null,_=[];if(_.push({address:LT(f),value:T.getBaseValue("number")}),q)_.push({script:q,value:0});let{inputs:z,outputs:M}=Yy({chain:Zy,feeRate:x,inputs:Q,outputs:_});if(!(z&&M))throw new xT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:G});let B=await By(),U=new FG({network:B(Zy)});for(let{hash:O,index:P,witnessUtxo:A}of z)U.addInput({hash:O,index:P,sighashType:X?65:void 0,witnessUtxo:A});for(let O of M){let P="address"in O&&O.address?O.address:LT(G),A=O.script?q?{script:q,value:0}:void 0:{address:P,value:O.value};if(A)U.addOutput(A)}return{inputs:z,psbt:U,utxos:Q}}function VG(T){let f=T.getAddress(0);return my(f)}var Zy;var H0=v(()=>{JT();jT();KT();Zy=DG.BitcoinCash});import{bitgo as lG,crypto as KG,ECPair as tf,networks as SG,address as uG}from"@bitgo/utxo-lib";import{HDKey as df}from"@scure/bip32";import{mnemonicToSeedSync as rf}from"@scure/bip39";import{Chain as W0,derivationPathToString as bG,FeeOption as jG,NetworkDerivationPath as hG,SKConfig as nG,SwapKitError as U0,updateDerivationPath as pG}from"@swapkit/helpers";import mG from"bs58check";import{match as oG,P as R5}from"ts-pattern";function af(){return SG.zcash}function sf(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
- `,pubKeyHash:28,scriptHash:28,wif:128}}function cG({phrase:T,derivationPath:f}){let L=rf(T),G=df.fromMasterSeed(L).derive(f);if(!G.privateKey)throw new U0("toolbox_utxo_invalid_params");let X=sf(),Z=tf.fromPrivateKey(Buffer.from(G.privateKey),{network:X}),J=KG.hash160(Z.publicKey),{isStagenet:Q}=nG.get("envs"),x=Q?Buffer.from([29,37]):Buffer.from([28,184]),q=Buffer.concat([x,J]),_=mG.encode(q);return{getAddress:()=>Promise.resolve(_),signTransaction:(z)=>{let M=z.signAllInputs(Z);return Promise.resolve(M)}}}function gG({inputs:T,outputs:f,psbt:L,sender:y,compiledMemo:G}){for(let X of T){let Z=!!X.witnessUtxo&&{witnessUtxo:{...X.witnessUtxo,value:BigInt(X.value)}},J=!X.witnessUtxo&&{nonWitnessUtxo:X.txHex?Buffer.from(X.txHex,"hex"):void 0};L.addInput({hash:X.hash,index:X.index,...Z,...J})}for(let X of f){let Z="address"in X&&X.address?X.address:y,J=X.script;if(J&&!G)continue;let Q=J?{script:G,value:0n}:{script:uG.toOutputScript(Z,af()),value:BigInt(X.value)};L.addOutput(Q)}return{inputs:T,psbt:L}}async function gf(T){let{assetValue:f,recipient:L,memo:y,feeRate:G,sender:X,fetchTxHex:Z}=T,J=y?My(y):null,Q=await yy(W0.Zcash).getUtxos({address:X,fetchTxHex:Z!==!1}),x=[{address:L,value:Number(f.getBaseValue("string"))},...J?[{script:J,value:0}]:[]],{inputs:q,outputs:_}=Yy({chain:W0.Zcash,changeAddress:X,feeRate:G,inputs:Q,outputs:x});if(!(q&&_))throw new U0("toolbox_utxo_insufficient_balance",{assetValue:f,sender:X});let z=lG.createPsbtForNetwork({network:af()},{version:455}),B=3268858036,U=Buffer.concat([Buffer.of(252),Buffer.of(5),Buffer.from("BITGO"),Buffer.of(0)]),O=Buffer.allocUnsafe(4);O.writeUInt32LE(B>>>0,0),z.addUnknownKeyValToGlobal({key:U,value:O});let{psbt:P,inputs:A}=await gG({compiledMemo:J,inputs:q,outputs:_,psbt:z,sender:X});return{inputs:A,outputs:_,psbt:P}}async function O5(T){let f=await oG(T).with({signer:R5.not(R5.nullish)},({signer:Z})=>Promise.resolve(Z)).with({phrase:R5.string},({phrase:Z,derivationPath:J,index:Q=0})=>{let x=J||hG[W0.Zcash]||[44,133,0,0,0],q=pG(x,{index:Q}),_=bG(q);return cG({derivationPath:_,phrase:Z})}).otherwise(()=>Promise.resolve(void 0)),L=await py({chain:W0.Zcash,signer:f});async function y({recipient:Z,assetValue:J,feeOptionKey:Q=jG.Fast,...x}){let q=await f?.getAddress();if(!(f&&q))throw new U0("toolbox_utxo_no_signer");let _=x.feeRate||(await L.getFeeRates())[Q],{psbt:z}=await gf({...x,assetValue:J,feeRate:_,recipient:Z,sender:q}),M=await f.signTransaction(z);return M.finalizeAllInputs(),L.broadcastTx(M.extractTransaction().toHex())}function G({phrase:Z,derivationPath:J="m/44'/133'/0'/0/0"}){let Q=rf(Z),q=df.fromMasterSeed(Q).derive(J);if(!q.privateKey)throw new U0("toolbox_utxo_invalid_params");let _=sf();return tf.fromPrivateKey(Buffer.from(q.privateKey),{network:_})}function X({phrase:Z,derivationPath:J="m/44'/133'/0'/0/0"}){return G({derivationPath:J,phrase:Z}).toWIF()}return{...L,createKeysForPath:G,createTransaction:gf,getPrivateKeyFromMnemonic:X,transfer:y,validateAddress:QT}}var I5=v(()=>{JT();jT();KT()});import{Chain as qT,SwapKitError as tG}from"@swapkit/helpers";async function dG(T,f){switch(T){case qT.BitcoinCash:return await C5(f||{});case qT.Zcash:return await O5(f);case qT.Bitcoin:case qT.Dogecoin:case qT.Litecoin:case qT.Dash:return await py({chain:T,...f});default:throw new tG("toolbox_utxo_not_supported",{chain:T})}}var ef=v(()=>{H0();jT();I5();H0();KT()});var D5={};Gy(D5,{validateZcashAddress:()=>QT,toLegacyAddress:()=>LT,toCashAddress:()=>AT,stripToCashAddress:()=>my,stripPrefix:()=>ny,nonSegwitChains:()=>ST,isValidAddress:()=>M5,getUtxoToolbox:()=>dG,getUtxoNetwork:()=>By,getUtxoApi:()=>yy,getUTXOAddressValidator:()=>pf,getScriptTypeForAddress:()=>VT,getOutputSize:()=>lT,getInputSize:()=>$y,getDustThreshold:()=>Y0,getCreateKeysForPath:()=>uT,detectAddressNetwork:()=>Y5,createZcashToolbox:()=>O5,createUTXOToolbox:()=>py,createCustomUtxoApi:()=>c8,createBCHToolbox:()=>C5,compileMemo:()=>My,calculateTxSize:()=>ZT,bchValidateAddress:()=>Vy,addressFromKeysGetter:()=>N5,addInputsAndOutputs:()=>hf,accumulative:()=>Yy,UtxoNetwork:()=>B5,UTXOScriptType:()=>M0,TX_OVERHEAD:()=>B0,OutputSizes:()=>$T,OP_RETURN_OVERHEAD:()=>lf,MIN_TX_FEE:()=>e8,InputSizes:()=>z0});var k5=v(()=>{JT();ef();H0();jT();I5()});import{AssetValue as E5,BaseDecimal as f2,Chain as cy,DerivationPath as iG,derivationPathToString as rG,getRPCUrl as aG,NetworkDerivationPath as sG,SwapKitError as gy,updateDerivationPath as eG}from"@swapkit/helpers";import{match as yL,P as y2}from"ts-pattern";async function TL(T){try{let f=await fetch(`https://lite-api.jup.ag/tokens/v1/token/${T}`);if(!f.ok)return null;return await f.json()}catch{return null}}async function fL(T){let f=await oy(),{PublicKey:L}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),G=new L(T),X=[],Z=await f.getBalance(G);if(Z>0)X.push(E5.from({chain:cy.Solana,fromBaseDecimal:f2[cy.Solana],value:Z}));let J=await f.getParsedTokenAccountsByOwner(G,{programId:y});for(let{account:Q}of J.value){let x=Q.data.parsed.info,q=x.mint,_=x.tokenAmount.amount;if(Number(_)===0)continue;let z=await TL(q),M=z?.symbol||"UNKNOWN",B=z?.decimals||x.tokenAmount.decimals;X.push(E5.from({asset:`${cy.Solana}.${M}-${q}`,fromBaseDecimal:B,value:_}))}return X}async function F5(){let{PublicKey:T}=await import("@solana/web3.js");return(f)=>{try{let L=new T(f);return T.isOnCurve(L.toBytes())}catch(L){return!1}}}async function XL(T){let f=T&&"index"in T?T.index||0:0,L=rG(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:eG(sG[cy.Solana],{index:f})),y=await yL(T).with({phrase:y2.string},({phrase:X})=>v5({derivationPath:L,phrase:X})).with({signer:y2.any},({signer:X})=>X).otherwise(()=>{return});function G(){return y?.publicKey?T2(y.publicKey):""}return{broadcastTransaction:w5(oy),createKeysForPath:v5,createTransaction:P5(oy),createTransactionFromInstructions:JL,estimateTransactionFee:GL(oy),getAddress:G,getAddressFromPubKey:T2,getAddressValidator:F5,getBalance:(X)=>{let Z=X||G();if(!Z)throw new gy("core_wallet_connection_not_found");return fL(Z)},getConnection:oy,getPubkeyFromAddress:A5,signTransaction:xL(oy,y),transfer:QL(oy,y)}}function GL(T){return async({recipient:f,assetValue:L,memo:y,isProgramDerivedAddress:G,sender:X})=>{let Z=await T(),Q=(await P5(T)({assetValue:L,isProgramDerivedAddress:G,memo:y,recipient:f,sender:X})).compileMessage(),x=await Z.getFeeForMessage(Q);if(x.value===null)throw new gy("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");return E5.from({chain:cy.Solana,fromBaseDecimal:f2[cy.Solana],value:x.value})}}async function oy(){let{Connection:T}=await import("@solana/web3.js"),f=await aG(cy.Solana);return new T(f,"confirmed")}function LL(T){return async({assetValue:f,recipient:L,sender:y,isProgramDerivedAddress:G})=>{let X=await T(),Z=await A5(y);if(f.isGasAsset){let{Transaction:J,SystemProgram:Q,PublicKey:x}=await import("@solana/web3.js");return new J().add(Q.transfer({fromPubkey:Z,lamports:f.getBaseValue("number"),toPubkey:new x(L)}))}if(f.address)return ZL({amount:f.getBaseValue("number"),connection:X,decimals:f.decimal,from:Z,isProgramDerivedAddress:G,recipient:L,tokenAddress:f.address});return}}async function ZL({tokenAddress:T,recipient:f,from:L,connection:y,amount:G,decimals:X,isProgramDerivedAddress:Z}){let{getAssociatedTokenAddress:J,getAccount:Q,createAssociatedTokenAccountInstruction:x,createTransferCheckedInstruction:q}=await import("@solana/spl-token"),{Transaction:_,PublicKey:z}=await import("@solana/web3.js"),M=new _,B=new z(T),U=await J(B,L),O=new z(f),P=await J(B,O,Z),A=!1;try{await Q(y,P),A=!0}catch(n){}if(!A)M.add(x(L,P,O,B));return M.add(q(U,B,P,L,G,X)),M}function P5(T){return async({recipient:f,assetValue:L,memo:y,isProgramDerivedAddress:G,sender:X})=>{let{createMemoInstruction:Z}=await import("@solana/spl-memo"),J=await A5(X),Q=await F5();if(!(G||Q(f)))throw new gy("core_transaction_invalid_recipient_address");let x=await T(),q=await LL(T)({assetValue:L,isProgramDerivedAddress:G,recipient:f,sender:X});if(!q)throw new gy("core_transaction_invalid_sender_address");if(y)q.add(Z(y));let _=await x.getLatestBlockhash();return q.recentBlockhash=_.blockhash,q.feePayer=J,q}}async function JL({instructions:T}){let{Transaction:f}=await import("@solana/web3.js"),L=new f().add(...T);if(!L)throw new gy("core_transaction_invalid_sender_address");return L}function QL(T,f){return async({recipient:L,assetValue:y,memo:G,isProgramDerivedAddress:X})=>{if(!f)throw new gy("core_transaction_invalid_sender_address");let Z=f.publicKey?.toString()??(await f.connect()).publicKey.toString(),J=await P5(T)({assetValue:y,isProgramDerivedAddress:X,memo:G,recipient:L,sender:Z});if("signTransaction"in f){let Q=await f.signTransaction(J);return w5(T)(Q)}return J.sign(f),w5(T)(J)}}function w5(T){return async(f)=>{return(await T()).sendRawTransaction(f.serialize())}}function xL(T,f){return async(L)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!f)throw new gy("toolbox_solana_no_signer");if(!(L instanceof y)){let X=await(await T()).getLatestBlockhash();L.recentBlockhash=X.blockhash,L.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(L);return await L.sign([f]),L}}async function v5({phrase:T,derivationPath:f=iG.SOL}){let{HDKey:L}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:y}=await import("@scure/bip39"),{Keypair:G}=await import("@solana/web3.js"),X=y(T),Z=L.fromMasterSeed(X);return G.fromSeed(Z.derive(f,!0).privateKey)}function T2(T){return T.toString()}async function A5(T){let{PublicKey:f}=await import("@solana/web3.js");return new f(T)}var X2=()=>{};var $5={};Gy($5,{getSolanaToolbox:()=>XL,getSolanaAddressValidator:()=>F5,createKeysForPath:()=>v5});var V5=v(()=>{X2()});import{derivationPathToString as qL,SwapKitError as _L}from"@swapkit/helpers";import{KeyPairSigner as zL}from"near-api-js";async function hT(){let{validateAccountId:T}=await import("near-sdk-js");return(f)=>{try{return T(f)}catch{let L=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return f.length>=2&&f.length<=64&&L.test(f)}}}async function N0(T){let{parseSeedPhrase:f}=await import("near-seed-phrase"),{KeyPair:L}=await import("near-api-js"),y=T.index||0,G=T.derivationPath?qL(T.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:X}=f(T.phrase,G),Z=L.fromString(X);return L2(Z)}async function l5(T){let{KeyPair:f}=await import("near-api-js/lib/utils"),L=f.fromString(T);return L2(L)}function L2(T){return new G2(T)}async function C0(T,f){let y=(await T.query({account_id:f,finality:"final",request_type:"view_access_key_list"})).keys.find((J)=>J.access_key.permission==="FullAccess");if(!y)throw new _L("toolbox_near_invalid_address");let{utils:G}=await import("near-api-js"),X=G.PublicKey.fromString(y.public_key);return{nonce:y.access_key.nonce||0,publicKey:X}}var G2;var K5=v(()=>{G2=class G2 extends zL{#y;constructor(T){super(T);this.#y=T}getAddress(){let T=this.#y.getPublicKey(),f=Buffer.from(T.data).toString("hex");return Promise.resolve(f)}}});function S5(T){return"recipient"in T&&"amount"in T&&!("contractId"in T)}function u5(T){return"contractId"in T&&"methodName"in T}function b5(T){return"actions"in T}function j5(T){return"newAccountId"in T}function h5(T){return"contractCode"in T}function n5(T){return"customEstimator"in T}function p5(T){let f=0;for(let L of T)switch(L.enum){case"transfer":f+=Number(r.SIMPLE_TRANSFER);break;case"functionCall":f+=Number(r.CONTRACT_CALL);break;case"createAccount":f+=Number(r.ACCOUNT_CREATION);break;case"deployContract":f+=Number(r.CONTRACT_DEPLOYMENT);break;case"addKey":f+=Number(r.ACCESS_KEY_ADDITION);break;case"deleteKey":f+=Number(r.ACCESS_KEY_DELETION);break;case"stake":f+=Number(r.STAKE);break;default:f+=Number(r.CONTRACT_CALL)}return f.toString()}function m5(T){if(T==="ft_transfer"||T==="ft_transfer_call")return r.TOKEN_TRANSFER;if(T==="storage_deposit")return r.STORAGE_DEPOSIT;return r.CONTRACT_CALL}function BL(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function ML(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var r;var o5=v(()=>{r={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function R0({account:T,contractId:f,viewMethods:L,changeMethods:y}){let{Contract:G}=await import("near-api-js");return new G(T,f,{changeMethods:y,useLocalViewExecution:!0,viewMethods:L})}async function c5({contractId:T,account:f}){let L=(await import("bn.js")).default,y=await R0({account:f,changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"],contractId:T,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"]}),G=async(X)=>{if(!await y.storage_balance_of({account_id:X})){let Q=(await y.storage_balance_bounds())?.min||"1250000000000000000000";await y.storage_deposit({account_id:X},new L("100000000000000"),new L(Q))}};return{balanceOf:(X)=>y.ft_balance_of({account_id:X}),contract:y,ensureStorage:G,metadata:()=>y.ft_metadata(),storageBalanceOf:(X)=>y.storage_balance_of({account_id:X}),storageDeposit:(X,Z)=>y.storage_deposit({account_id:X},new L("100000000000000"),new L(Z||"1250000000000000000000")),totalSupply:()=>y.ft_total_supply(),transfer:async(X,Z,J)=>{return await G(X),y.ft_transfer({amount:Z,memo:J,receiver_id:X},new L("100000000000000"),new L("1"))},transferCall:async(X,Z,J,Q)=>{return await G(X),y.ft_transfer_call({amount:Z,memo:Q,msg:J,receiver_id:X},new L("100000000000000"),new L("1"))}}}import{AssetValue as Z2,BaseDecimal as J2,Chain as _T,getRPCUrl as YL,SwapKitError as a}from"@swapkit/helpers";async function HL(T){let{P:f,match:L}=await import("ts-pattern"),{providers:y}=await import("near-api-js"),G=await L(T).with({phrase:f.string},async(I)=>{return await N0(I)}).with({signer:f.any},({signer:I})=>I).otherwise(()=>{return}),X=await YL(_T.Near),Z=new y.JsonRpcProvider({url:X});async function J(I){let{Account:$}=await import("near-api-js"),C=I||await Q();return new $(C,Z,G)}async function Q(){if(!G)throw new a("toolbox_near_no_signer");return await G.getAddress()}async function x(I){if(!G)throw new a("toolbox_near_no_signer");let{recipient:$,assetValue:C}=I;if(!(await hT())($))throw new a("toolbox_near_invalid_address");let k=await J();if(C.isGasAsset===!1){let R=C.address;if(!R)throw new a("toolbox_near_missing_contract_address");let w=C.getBaseValue("string");return P({args:{amount:w,memo:I.memo,receiver_id:$},contractId:R,methodName:"ft_transfer"})}try{let R=C.getBaseValue("string");return(await k.transfer({amount:R,receiverId:$})).transaction_outcome.id}catch(R){throw new a("toolbox_near_transfer_failed",{error:R})}}async function q(I){let{recipient:$,assetValue:C,memo:E,feeRate:k,attachedDeposit:R,sender:w}=I,l=await hT();if(!l($))throw new a("toolbox_near_invalid_address",{address:$});if(!l(w))throw new a("toolbox_near_invalid_address",{address:w});if(!C.isGasAsset){let MT=C.address;if(!MT)throw new a("toolbox_near_missing_contract_address");return _({args:{amount:C.getBaseValue("string"),memo:E||null,receiver_id:$},attachedDeposit:"1",contractId:MT,gas:k.toString()||"100000000000000",methodName:"ft_transfer",sender:w})}let{publicKey:b,nonce:u}=await C0(Z,w),j=C.getBaseValue("bigint"),{SCHEMA:fy}=await import("near-api-js/lib/transaction"),{transactions:c,utils:Jy}=await import("near-api-js"),Qy=[c.transfer(j)];if(E&&R)Qy.push(c.functionCall("memo",{memo:E},BigInt(k),BigInt(R)));let ty=await Z.block({finality:"final"}),BT=Jy.serialize.base_decode(ty.header.hash),O0=c.createTransaction(w,b,$,u,Qy,BT),dy=Jy.serialize.serialize(fy.Transaction,O0),nT=Buffer.from(dy).toString("base64");return{details:{blockHash:Jy.serialize.base_encode(BT),nonce:u,signerId:w},publicKey:b.toString(),serialized:nT}}async function _(I){let{sender:$}=I,{publicKey:C,nonce:E}=await C0(Z,$),{SCHEMA:k}=await import("near-api-js/lib/transaction"),{transactions:R,utils:w}=await import("near-api-js"),l=await Z.block({finality:"final"}),b=w.serialize.base_decode(l.header.hash),u=[R.functionCall(I.methodName,Buffer.from(JSON.stringify(I.args)),BigInt(I.gas),BigInt(I.attachedDeposit))],j=R.createTransaction($,C,I.contractId,E,u,b),fy=w.serialize.serialize(k.Transaction,j),c=Buffer.from(fy).toString("base64");return{details:{blockHash:w.serialize.base_encode(b),methodName:I.methodName,nonce:E,receiverId:I.contractId,signerId:$},publicKey:C.toString(),serialized:c}}async function z(I){if(!G)throw new a("toolbox_near_no_signer");let[$,C]=await G.signTransaction(I);return C}async function M(I){return(await Z.sendTransaction(I)).transaction.hash}async function B(I){if("assetValue"in I){let k=BigInt("115123062500")+BigInt("108059500000"),R=await U(),w=k*BigInt(R.toString());return Z2.from({chain:_T.Near,fromBaseDecimal:J2[_T.Near],value:w.toString()})}let $=G?await J():void 0;return o(I,$)}async function U(){try{return await Z.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function O(I,$,C){if(!G)throw new a("toolbox_near_no_signer");let E=await J(),{utils:k}=await import("near-api-js"),R=k.format.parseNearAmount(C)||"0";return(await E.createAccount(I,k.PublicKey.fromString($),BigInt(R))).transaction.hash}async function P(I){try{if(!G)throw new a("toolbox_near_no_signer");let{transactions:$}=await import("near-api-js"),{contractId:C,methodName:E,args:k,deposit:R}=I,w=await J(),l=await o({args:k||{},contractId:C,methodName:E}),b=$.functionCall(E,k||{},l.getBaseValue("bigint"),BigInt(R||"1"));return(await w.signAndSendTransaction({actions:[b],receiverId:C})).transaction_outcome.id}catch($){throw new a("toolbox_near_transfer_failed",{error:$})}}async function A(I){let $=await J();return R0({account:$,changeMethods:I.changeMethods,contractId:I.contractId,viewMethods:I.viewMethods})}async function n(I){if(!G)throw new a("toolbox_near_no_signer");if(I.actions.length===0)throw new a("toolbox_near_empty_batch");return(await(await J()).signAndSendTransaction({actions:I.actions,receiverId:I.receiverId})).transaction.hash}async function S(I){let $=await J();return c5({account:$,contractId:I})}async function o(I,$){let C=await L(I).when(S5,()=>r.SIMPLE_TRANSFER).when(u5,(R)=>m5(R.methodName)).when(b5,(R)=>p5(R.actions)).when(j5,()=>r.ACCOUNT_CREATION).when(h5,()=>r.CONTRACT_DEPLOYMENT).when(n5,(R)=>{if(!$)throw new a("toolbox_near_no_account");return R.customEstimator($)}).otherwise(()=>{throw new a("toolbox_near_invalid_gas_params")}),k=BigInt(C)*BigInt(1000000000000);return Z2.from({chain:_T.Near,fromBaseDecimal:J2[_T.Near],value:k})}async function d(){try{return(await Z.gasPrice(null)).gas_price||"100000000"}catch(I){return"100000000"}}return{broadcastTransaction:M,callFunction:P,createContract:A,createContractFunctionCall:_,createSubAccount:O,createTransaction:q,estimateGas:o,estimateTransactionFee:B,executeBatchTransaction:n,getAddress:Q,getBalance:iy(_T.Near),getGasPrice:d,getPublicKey:async()=>G?(await G.getPublicKey()).toString():"",getSignerFromPhrase:(I)=>N0(I),getSignerFromPrivateKey:l5,nep141:S,provider:Z,signTransaction:z,transfer:x,validateAddress:await hT()}}var g5=v(()=>{IT();K5();o5()});var Q2=v(()=>{g5()});var t5={};Gy(t5,{tgasToGas:()=>BL,isSimpleTransfer:()=>S5,isCustomEstimator:()=>n5,isContractDeployment:()=>h5,isContractCall:()=>u5,isBatchTransaction:()=>b5,isAccountCreation:()=>j5,getValidateNearAddress:()=>hT,getNearToolbox:()=>HL,getNearSignerFromPrivateKey:()=>l5,getNearSignerFromPhrase:()=>N0,getFullAccessPublicKey:()=>C0,getContractMethodGas:()=>m5,gasToTGas:()=>ML,estimateBatchGas:()=>p5,createNearContract:()=>R0,createNEP141Token:()=>c5,GAS_COSTS:()=>r});var d5=v(()=>{K5();o5();g5();Q2()});var a5={};Gy(a5,{rippleValidateAddress:()=>r5,hashes:()=>kL,getRippleToolbox:()=>DL});import{AssetValue as i5,BaseDecimal as x2,Chain as Dy,getRPCUrl as WL,SwapKitError as ly,SwapKitNumber as UL}from"@swapkit/helpers";import{Client as NL,isValidAddress as CL,Wallet as RL,xrpToDrops as OL}from"xrpl";import{hashes as kL}from"xrpl";function q2(T){let f=RL.fromMnemonic(T);return{getAddress:()=>Promise.resolve(f.address),signTransaction:(L)=>Promise.resolve(f.sign(L))}}function r5(T){return CL(T)}var IL,DL=async(T={})=>{let f="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?q2(T.phrase):void 0,L=await WL(Dy.Ripple);if(!L)throw new ly({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:Dy.Ripple}});let y=new NL(L);await y.connect();let G=()=>{if(!f)throw new ly({errorKey:"toolbox_ripple_signer_not_found"});return f.getAddress()},X=async(z)=>{let M=z||await G();try{let U=(await y.request({account:M,command:"account_info"})).result.account_data.Balance;return[i5.from({chain:Dy.Ripple,fromBaseDecimal:x2[Dy.Ripple],value:U})]}catch(B){if(B.data.error_code===IL.ACCOUNT_NOT_FOUND)return[i5.from({chain:Dy.Ripple,value:0})];throw new ly("toolbox_ripple_get_balance_error",{info:{address:M,error:B}})}},Z=async()=>{let M=(await y.request({command:"fee"})).result.drops.open_ledger_fee;return i5.from({chain:Dy.Ripple,value:UL.fromBigInt(BigInt(M),x2[Dy.Ripple])})},J=async({assetValue:z,recipient:M,memo:B,sender:U})=>{if(!r5(M))throw new ly({errorKey:"core_transaction_invalid_recipient_address"});let O=U||await G();if(!z.isGasAsset||z.chain!==Dy.Ripple)throw new ly({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:z.toString()}});let P={Account:O,Amount:OL(z.getValue("string")),Destination:M,TransactionType:"Payment"};if(B)P.Memos=[{Memo:{MemoData:Buffer.from(B).toString("hex")}}];return await y.autofill(P)},Q=(z)=>{if(!f)throw new ly({errorKey:"toolbox_ripple_signer_not_found"});return f.signTransaction(z)},x=async(z)=>{let B=(await y.submitAndWait(z)).result;if(B.validated)return B.hash;throw new ly({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Dy.Ripple}})};return{broadcastTransaction:x,createSigner:q2,createTransaction:J,disconnect:()=>y.disconnect(),estimateTransactionFee:Z,getAddress:G,getBalance:X,signer:f,signTransaction:Q,transfer:async(z)=>{if(!f)throw new ly({errorKey:"toolbox_ripple_signer_not_found"});let M=await f.getAddress(),B=await J({...z,sender:M}),U=await Q(B);return x(U.tx_blob)},validateAddress:r5}};var s5=v(()=>{IL={ACCOUNT_NOT_FOUND:19}});var e5={};Gy(e5,{radixValidateAddress:()=>z2,RadixToolbox:()=>VL});import{AssetValue as EL,Chain as _2,SKConfig as wL,SwapKitError as vL}from"@swapkit/helpers";function z2(T){return T.startsWith("account_rdx1")&&T.length===66}function FL({networkApi:T}){return async function(L){let y=await PL({address:L,networkApi:T});return AL({networkApi:T,resources:y})}}async function PL({address:T,networkApi:f}){let L=!0,y,G=[],X=await $L(f);while(L){let Z={address:T,at_ledger_state:{state_version:X},cursor:y,limit_per_page:100},J=await f.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:Z});if(G=G.concat(J.items),J.next_cursor)y=J.next_cursor;else L=!1}return G}async function AL({resources:T,networkApi:f}){let L=[],y=50,G=[];for(let X=0;X<T.length;X+=50)G.push(T.slice(X,X+50));for(let X of G){let Z=X.map((x)=>x.resource_address),J=await f.state.getEntityDetailsVaultAggregated(Z),Q=new Map;for(let x of J)if(x.details!==void 0){let q=x.metadata?.items.find((z)=>z.key==="symbol"),_=q?.value.typed.type==="String"?q.value.typed.value:"?";if(x.details.type==="FungibleResource")Q.set(x.address,{decimals:x.details.divisibility,symbol:_})}for(let x of X)if(x.aggregation_level==="Global"){let q=Q.get(x.resource_address)||{decimals:0,symbol:"?"},_=EL.from({asset:q.symbol!==_2.Radix?`${_2.Radix}.${q.symbol}-${x.resource_address}`:"XRD.XRD",value:x.amount});L.push(_)}}return L}function $L(T){return T.status.getCurrent().then((f)=>f.ledger_state.state_version)}var VL=async({dappConfig:T}={})=>{let{RadixDappToolkit:f}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:L}=await import("@radixdlt/babylon-gateway-api-sdk"),y=T||wL.get("integrations").radix,G=f({...y,networkId:y.network?.networkId||1}),X=L.initialize(G.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:FL({networkApi:X}),networkApi:X,signAndBroadcast:()=>{throw new vL("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:z2}};var y1=()=>{};var zT;var T1=v(()=>{zT=[{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}]});import{SwapKitError as lL}from"@swapkit/helpers";async function B2(T){let f=await import("tronweb"),L=f.TronWeb??f.default?.TronWeb;try{let y=await fetch(`${KL}/v1/accounts/${T}`);if(!y.ok)throw Error(`TronGrid API error: ${y.status} ${y.statusText}`);let G=await y.json();if(!(G.success&&G.data)||G.data.length===0)throw Error("Invalid response from TronGrid API");let X;try{X=L.address.toHex(T).toLowerCase()}catch{X=T.toLowerCase()}let Z=G.data.find((J)=>{return J.address.toLowerCase()===X});if(!Z)return;return{balance:Z.balance,trc20:Z.trc20||[]}}catch(y){throw new lL("toolbox_tron_trongrid_api_error",{address:T,message:y instanceof Error?y.message:"Unknown error"})}}var KL="https://api.trongrid.io";var M2=()=>{};import{AssetValue as ky,Chain as Hy,derivationPathToString as W2,getRPCUrl as SL,NetworkDerivationPath as U2,SwapKitError as e,updateDerivationPath as N2,warnOnce as f1}from"@swapkit/helpers";import{match as uL,P as Y2}from"ts-pattern";async function X1(){let T=await import("tronweb"),f=T.TronWeb??T.default?.TronWeb;return(L)=>{return f.isAddress(L)}}async function C2({phrase:T,derivationPath:f,index:L}){let y=f||W2(N2(U2[Hy.Tron],{index:L||0})),{HDKey:G}=await import("@scure/bip32"),{mnemonicToSeedSync:X}=await import("@scure/bip39"),Z=X(T),Q=G.fromMasterSeed(Z).derive(y);if(!Q.privateKey)throw new e("toolbox_tron_no_signer");return Buffer.from(Q.privateKey).toString("hex")}async function pL({phrase:T,derivationPath:f,tronWeb:L}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:G}=await import("@scure/bip39"),X=G(T),J=y.fromMasterSeed(X).derive(f);if(!J.privateKey)throw new e("toolbox_tron_no_signer");let Q=Buffer.from(J.privateKey).toString("hex");L.setPrivateKey(Q);let x=L?.address.fromPrivateKey(Q);return{getAddress:()=>Promise.resolve(typeof x==="string"?x:""),signTransaction:async(q)=>{return await L.trx.sign(q,Q)}}}var bL=268,jL=13000,hL=345,H2="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",nL="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",R2=async(T={})=>{let f=await import("tronweb"),L=f.TronWeb??f.default?.TronWeb,y=await SL(Hy.Tron),G=void 0,X=new L({fullHost:y,headers:void 0}),Z="index"in T?T.index||0:0,J=W2("derivationPath"in T&&T.derivationPath?T.derivationPath:N2(U2[Hy.Tron],{index:Z})),Q=await uL(T).with({phrase:Y2.string},async({phrase:C})=>pL({derivationPath:J,phrase:C,tronWeb:X})).with({signer:Y2.any},({signer:C})=>Promise.resolve(C)).otherwise(()=>Promise.resolve(void 0)),x=async()=>{if(!Q)throw new e("toolbox_tron_no_signer");return await Q.getAddress()},q=()=>{return 1e8},_=async()=>{try{let C=await X.trx.getChainParameters(),E={};for(let k of C)E[k.key]=k.value;return{bandwidthFee:E.getTransactionFee||1000,createAccountFee:E.getCreateAccountFee||1e5,energyFee:E.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},z=async(C)=>{try{let E=await X.trx.getAccount(C);return E&&Object.keys(E).length>0}catch{return!1}},M=async(C)=>{try{let E=await X.trx.getAccountResources(C);return{bandwidth:{free:E.freeNetLimit-E.freeNetUsed,total:E.NetLimit||0,used:E.NetUsed||0},energy:{total:E.EnergyLimit||0,used:E.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},B=async(C,E)=>{try{let k=X.contract(zT,E);if(!k.methods?.balanceOf)return 0n;let[R]=await k.methods.balanceOf(C).call();return R?typeof R==="bigint"?R:BigInt(R):0n}catch(k){return console.warn(`balanceOf() failed for ${E}:`,k),0n}},U=async(C,E)=>{try{X.setAddress(E);let k=X.contract(zT,C),[R,w]=await Promise.all([k.symbol().call().catch(()=>"UNKNOWN"),k.decimals().call().catch(()=>"18")]);return{decimals:Number(w??18),symbol:R??"UNKNOWN"}}catch(k){return f1({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${C}: ${k instanceof Error?k.message:k}`}),null}},O=async(C,E=!0)=>{let k=[ky.from({chain:Hy.Tron})];try{let R=await B2(C);if(R){let w=[];w.push(ky.from({chain:Hy.Tron,fromBaseDecimal:6,value:R.balance}));for(let l of R.trc20){let[b,u]=Object.entries(l)[0]||[];if(!(b&&u))continue;let j=await U(b,C);if(!j)continue;w.push(ky.from({asset:`TRON.${j.symbol}-${b}`,fromBaseDecimal:j.decimals,value:BigInt(u||0)}))}return w}return k}catch(R){f1({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${R instanceof Error?R.message:R}`});let w=[],l=await X.trx.getBalance(C);if(l&&Number(l)>0)w.push(ky.from({chain:Hy.Tron,fromBaseDecimal:6,value:l}));let b=await B(C,H2);if(b)w.push(ky.from({asset:`TRON.USDT-${H2}`,fromBaseDecimal:6,value:b}));return w}},P=async({recipient:C,assetValue:E,memo:k})=>{if(!Q)throw new e("toolbox_tron_no_signer");let R=await x();if(X.setAddress(R),E.isGasAsset){let j=await X.transactionBuilder.sendTrx(C,E.getBaseValue("number"),R);if(k){let Jy=await X.transactionBuilder.addUpdateData(j,k,"utf8"),Qy=await Q.signTransaction(Jy),{txid:ty}=await X.trx.sendRawTransaction(Qy);return ty}let fy=await Q.signTransaction(j),{txid:c}=await X.trx.sendRawTransaction(fy);return c}let l=await n({assetValue:E,memo:k,recipient:C,sender:R}),b=await Q.signTransaction(l),{txid:u}=await X.trx.sendRawTransaction(b);if(!u)throw new e("toolbox_tron_token_transfer_failed");return u},A=async({assetValue:C,recipient:E,sender:k})=>{let R=C.isGasAsset;try{let w=k?k:Q?await x():void 0;if(!w)return R?ky.from({chain:Hy.Tron,fromBaseDecimal:0,value:0.1}):ky.from({chain:Hy.Tron,fromBaseDecimal:0,value:15});let l=await _(),u=await z(E)?0:l.createAccountFee,j=await M(w);if(R){let dy=bL,nT=j.bandwidth.free+(j.bandwidth.total-j.bandwidth.used),MT=0;if(dy>nT)MT=(dy-nT)*l.bandwidthFee;let D2=u+MT;return ky.from({chain:Hy.Tron,fromBaseDecimal:6,value:D2})}let fy=hL,c=jL,Jy=j.bandwidth.free+(j.bandwidth.total-j.bandwidth.used),Qy=j.energy.total-j.energy.used,ty=0;if(fy>Jy)ty=(fy-Jy)*l.bandwidthFee;let BT=0;if(c>Qy)BT=(c-Qy)*l.energyFee;let O0=u+ty+BT;return ky.from({chain:Hy.Tron,fromBaseDecimal:6,value:O0})}catch(w){throw f1({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${w instanceof Error?w.message:w}`}),new e("toolbox_tron_fee_estimation_failed",{error:w})}},n=async(C)=>{let{recipient:E,assetValue:k,memo:R,sender:w}=C;if(k.isGasAsset){let u=await X.transactionBuilder.sendTrx(E,k.getBaseValue("number"),w);if(R)return X.transactionBuilder.addUpdateData(u,R,"utf8");return u}X.setAddress(w);let b=k.address;if(!b)throw new e("toolbox_tron_invalid_token_identifier",{identifier:k.toString()});try{let j=[{type:"address",value:E},{type:"uint256",value:k.getBaseValue("string")}],fy={callValue:0,feeLimit:q()},c=await X.transactionBuilder.triggerSmartContract(b,"transfer(address,uint256)",fy,j,w);if(R)return X.transactionBuilder.addUpdateData(c.transaction,R,"utf8");return c.transaction}catch(u){throw new e("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction. This might be due to TronWeb 6.0.3 bug. Use the transfer method directly instead.",originalError:u instanceof Error?u.message:String(u)})}},S=async(C)=>{if(!Q)throw new e("toolbox_tron_no_signer");return await Q.signTransaction(C)},o=async(C)=>{let{txid:E}=await X.trx.sendRawTransaction(C);return E},d=async({assetAddress:C,spenderAddress:E,from:k})=>{try{let R=X.contract(zT,C);if(!R.methods?.allowance)throw new e("toolbox_tron_invalid_token_contract");let[w]=await R.methods.allowance(k,E).call();return w?typeof w==="bigint"?w:BigInt(w):0n}catch(R){throw new e("toolbox_tron_allowance_check_failed",{error:R})}};return{approve:async({assetAddress:C,spenderAddress:E,amount:k,from:R})=>{if(!Q)throw new e("toolbox_tron_no_signer");let w=R||await x(),l=k!==void 0?BigInt(k).toString():nL,b="approve(address,uint256)",u=[{type:"address",value:E},{type:"uint256",value:l}],fy={callValue:0,feeLimit:q()};try{let{transaction:c}=await X.transactionBuilder.triggerSmartContract(C,b,fy,u,w),Jy=await Q.signTransaction(c),{txid:Qy}=await X.trx.sendRawTransaction(Jy);if(!Qy)throw new e("toolbox_tron_approve_failed");return Qy}catch(c){throw new e("toolbox_tron_approve_failed",{error:c})}},broadcastTransaction:o,createTransaction:n,estimateTransactionFee:A,getAddress:x,getApprovedAmount:d,getBalance:O,isApproved:async({assetAddress:C,spenderAddress:E,from:k,amount:R})=>{let w=await d({assetAddress:C,from:k,spenderAddress:E});if(!R)return w>0n;let l=BigInt(R);return w>=l},signTransaction:S,transfer:P,tronWeb:X,validateAddress:await X1()}};var O2=v(()=>{T1();M2()});var G1={};Gy(G1,{trc20ABI:()=>zT,getTronPrivateKeyFromMnemonic:()=>C2,getTronAddressValidator:()=>X1,createTronToolbox:()=>R2});var L1=v(()=>{T1();O2()});import{AssetValue as mL,Chain as N,EVMChains as oL,FeeOption as cL,SwapKitError as gL,UTXOChains as tL}from"@swapkit/helpers";async function b4(){let{match:T}=await import("ts-pattern"),{cosmosValidateAddress:f}=await Promise.resolve().then(() => (dT(),tT)),{evmValidateAddress:L}=await Promise.resolve().then(() => (Qf(),Jf)),{substrateValidateAddress:y}=await Promise.resolve().then(() => (_5(),q5)),{getUTXOAddressValidator:G}=await Promise.resolve().then(() => (k5(),D5)),{getSolanaAddressValidator:X}=await Promise.resolve().then(() => (V5(),$5)),{getValidateNearAddress:Z}=await Promise.resolve().then(() => (d5(),t5)),{rippleValidateAddress:J}=await Promise.resolve().then(() => (s5(),a5)),{radixValidateAddress:Q}=await Promise.resolve().then(() => (y1(),e5)),{getTronAddressValidator:x}=await Promise.resolve().then(() => (L1(),G1)),q=await X(),_=await G(),z=await x(),M=await Z();return function({address:U,chain:O}){return T(O).with(...oL,()=>L({address:U})).with(...tL,()=>_({address:U,chain:O})).with(N.Cosmos,N.Kujira,N.Noble,N.Maya,N.THORChain,()=>f({address:U,chain:O})).with(N.Chainflip,N.Polkadot,()=>y({address:U,chain:O})).with(N.Radix,()=>Q(U)).with(N.Near,()=>M(U)).with(N.Ripple,()=>J(U)).with(N.Solana,()=>q(U)).with(N.Tron,()=>z(U)).otherwise(()=>!1)}}function j4(T){return async function(L){let{match:y}=await import("ts-pattern");return y(T).returnType().with(N.Arbitrum,N.Aurora,N.Avalanche,N.Base,N.Berachain,N.BinanceSmartChain,N.Ethereum,N.Gnosis,N.Optimism,N.Polygon,async(G)=>{let X=await I2(G),Z=await X.createTransaction(L);return X.estimateTransactionFee({...Z,chain:G,feeOption:L.feeOptionKey||cL.Fast})}).with(N.Bitcoin,N.BitcoinCash,N.Dogecoin,N.Dash,N.Litecoin,N.Polkadot,N.Solana,N.Ripple,N.Tron,N.Near,async(G)=>{return(await I2(G)).estimateTransactionFee(L)}).with(N.THORChain,N.Maya,N.Kujira,N.Noble,N.Cosmos,async()=>{let{estimateTransactionFee:G}=await Promise.resolve().then(() => (dT(),tT));return G(L)}).otherwise(async()=>mL.from({chain:T}))}}async function I2(T,f){let{match:L}=await import("ts-pattern");return L(T).returnType().with(N.Arbitrum,N.Aurora,N.Avalanche,N.Base,N.Berachain,N.BinanceSmartChain,N.Ethereum,N.Gnosis,N.Optimism,N.Polygon,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (X5(),Gf));return await y(T,f)}).with(N.Litecoin,N.Dash,N.Dogecoin,N.BitcoinCash,N.Bitcoin,N.Zcash,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (k5(),D5));return await y(T,f)}).with(N.Cosmos,N.Kujira,N.Noble,N.Maya,N.THORChain,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (dT(),tT));return await y(T,f)}).with(N.Chainflip,N.Polkadot,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (_5(),q5));return await y(T,f)}).with(N.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (y1(),e5));return await y(f)}).with(N.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (s5(),a5));return await y(f)}).with(N.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (V5(),$5));return await y(f)}).with(N.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (L1(),G1));return await y(f)}).with(N.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (d5(),t5));return await y(f)}).otherwise(()=>{throw new gL("toolbox_not_supported",{chain:T})})}export{I2 as getToolbox,j4 as getFeeEstimator,b4 as getAddressValidator};
1
+ var EG=Object.create;var{getPrototypeOf:PG,defineProperty:Rf,getOwnPropertyNames:wG}=Object;var lG=Object.prototype.hasOwnProperty;var U=(T,f,X)=>{X=T!=null?EG(PG(T)):{};let y=f||!T||!T.__esModule?Rf(X,"default",{value:T,enumerable:!0}):X;for(let L of wG(T))if(!lG.call(y,L))Rf(y,L,{get:()=>T[L],enumerable:!0});return y};var Ly=(T,f)=>{for(var X in f)Rf(T,X,{get:f[X],enumerable:!0,configurable:!0,set:(y)=>f[X]=()=>y})};var P=(T,f)=>()=>(T&&(f=T(T=0)),f);var H=((T)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(T,{get:(f,X)=>(typeof require<"u"?require:f)[X]}):T)(function(T){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+T+'" is not supported')});import{base64 as x1,bech32 as nT}from"@scure/base";import{SwapKitError as vG}from"@swapkit/helpers";import{fromByteArray as FG,toByteArray as AG}from"base64-js";function zT(T){return x1.encode(Uint8Array.from(nT.fromWords(nT.decode(T).words)))}function _T(T,f="thor"){return nT.encode(f,nT.toWords(x1.decode(T)))}function SG(T){return FG(T)}function VG(T){if(!T.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new vG("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return AG(T)}var Df=()=>{};import{AssetValue as kf,Chain as A,getChainConfig as Zy,getRPCUrl as $G,SwapKitError as Z1}from"@swapkit/helpers";function Yy(T){switch(T){case A.Maya:return{amount:[],gas:"10000000000"};case A.THORChain:return{amount:[],gas:"500000000"};case A.Kujira:return Q1;case A.Noble:return q1;default:return J1}}async function Uy(T){let f=await import("@cosmjs/stargate"),X=f.StargateClient??f.default?.StargateClient,y=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return X.connect({headers:y,url:T})}async function NT(T,f,X={}){let y=await import("@cosmjs/stargate"),L=y.SigningStargateClient??y.default?.SigningStargateClient,G=y.GasPrice??y.default?.GasPrice,x=typeof X==="string"?X:"0.0003uatom",Z=typeof X==="string"?{}:X;return L.connectWithSigner(T,f,{gasPrice:G.fromString(x),...Z})}async function Of(T,f){let X=await import("@cosmjs/stargate");return(X.SigningStargateClient??X.default?.SigningStargateClient).offline(T,f)}async function Ef({sender:T,recipient:f,assetValue:X,memo:y="",feeRate:L,sequence:G,accountNumber:x}){let{chain:Z,chainId:B}=X,J=await $G(Z),q=await(await Uy(J)).getAccount(T);if(!q)throw new Z1("toolbox_cosmos_account_not_found",{sender:T});let z=kf.from({chain:Z}),M=Oy(z.symbol),_=Yy(Z),W=M&&L?{amount:[{amount:L.toString(),denom:M}],gas:_.gas}:_,k={amount:[{amount:X.getBaseValue("string"),denom:Oy(X.symbol)}],fromAddress:T,toAddress:f};return{accountNumber:x??q.accountNumber,chainId:B,fee:W,memo:y,msgs:[{typeUrl:KG(Z),value:k}],sequence:G??q.sequence}}var If="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",B1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",J1,Q1,q1,Oy=(T,f=!1)=>{if(f)return T.toLowerCase();switch(T){case"uUSK":case"USK":return If;case"uYUM":case"YUM":return B1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return T}},MT=({symbol:T,chain:f})=>{if(f===A.Maya)return(T.toUpperCase()!=="CACAO"?T:`${A.Maya}.${T}`).toUpperCase();if(f===A.THORChain)return(["RUNE","TCY","RUJI"].includes(T.toUpperCase())?`${A.THORChain}.${T}`:T).toUpperCase();return Oy(T,!1)},KG=(T)=>{switch(T){case A.Maya:case A.THORChain:return"/types.MsgSend";case A.Cosmos:case A.Kujira:case A.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new Z1("toolbox_cosmos_not_supported",{chain:T})}},uG,Pf=(T,f)=>{let X=uG[T.toLowerCase()];if(!X)return kf.from({asset:T,fromBaseDecimal:8,value:f});let{chain:y,asset:L,decimals:G}=X,x=y?{chain:y}:{asset:L};return kf.from({...x,fromBaseDecimal:G,value:f})};var YT=P(()=>{J1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},Q1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},q1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};uG={atom:{chain:A.Cosmos,decimals:Zy(A.Cosmos).baseDecimal},cacao:{chain:A.Maya,decimals:10},kuji:{chain:A.Kujira,decimals:Zy(A.Kujira).baseDecimal},maya:{asset:`${A.Maya}.${A.Maya}`,decimals:4},rune:{chain:A.THORChain,decimals:Zy(A.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Zy(A.THORChain).baseDecimal},uatom:{chain:A.Cosmos,decimals:Zy(A.Cosmos).baseDecimal},ukuji:{chain:A.Kujira,decimals:Zy(A.Kujira).baseDecimal},usdc:{chain:A.Noble,decimals:Zy(A.Noble).baseDecimal},uusdc:{chain:A.Noble,decimals:Zy(A.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Zy(A.THORChain).baseDecimal},[If.toLowerCase()]:{asset:`${A.Kujira}.USK`,decimals:Zy(A.Kujira).baseDecimal}}});var z1={};Ly(z1,{$root:()=>C});import p from"protobufjs/minimal.js";var w,Gy,I,C;var _1=P(()=>{w=p.Reader,Gy=p.Writer,I=p.util,C=p.roots.default||(p.roots.default={});C.common=(()=>{let T={};return T.Asset=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.chain="",f.prototype.symbol="",f.prototype.ticker="",f.prototype.synth=!1,f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))L.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))L.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))L.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))L.uint32(32).bool(y.synth);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.Asset;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.chain=y.string();break;case 2:x.symbol=y.string();break;case 3:x.ticker=y.string();break;case 4:x.synth=y.bool();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.chain!=null&&y.hasOwnProperty("chain")){if(!I.isString(y.chain))return"chain: string expected"}if(y.symbol!=null&&y.hasOwnProperty("symbol")){if(!I.isString(y.symbol))return"symbol: string expected"}if(y.ticker!=null&&y.hasOwnProperty("ticker")){if(!I.isString(y.ticker))return"ticker: string expected"}if(y.synth!=null&&y.hasOwnProperty("synth")){if(typeof y.synth!=="boolean")return"synth: boolean expected"}return null},f.fromObject=function(y){if(y instanceof C.common.Asset)return y;let L=new C.common.Asset;if(y.chain!=null)L.chain=String(y.chain);if(y.symbol!=null)L.symbol=String(y.symbol);if(y.ticker!=null)L.ticker=String(y.ticker);if(y.synth!=null)L.synth=Boolean(y.synth);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)G.chain="",G.symbol="",G.ticker="",G.synth=!1;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.symbol!=null&&y.hasOwnProperty("symbol"))G.symbol=y.symbol;if(y.ticker!=null&&y.hasOwnProperty("ticker"))G.ticker=y.ticker;if(y.synth!=null&&y.hasOwnProperty("synth"))G.synth=y.synth;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.Coin=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.asset=null,f.prototype.amount="",f.prototype.decimals=I.Long?I.Long.fromBits(0,0,!1):0,f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))C.common.Asset.encode(y.asset,L.uint32(10).fork()).ldelim();if(y.amount!=null&&Object.hasOwnProperty.call(y,"amount"))L.uint32(18).string(y.amount);if(y.decimals!=null&&Object.hasOwnProperty.call(y,"decimals"))L.uint32(24).int64(y.decimals);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.Coin;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.asset=C.common.Asset.decode(y,y.uint32());break;case 2:x.amount=y.string();break;case 3:x.decimals=y.int64();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.asset!=null&&y.hasOwnProperty("asset")){let L=C.common.Asset.verify(y.asset);if(L)return"asset."+L}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!I.isString(y.amount))return"amount: string expected"}if(y.decimals!=null&&y.hasOwnProperty("decimals")){if(!I.isInteger(y.decimals)&&!(y.decimals&&I.isInteger(y.decimals.low)&&I.isInteger(y.decimals.high)))return"decimals: integer|Long expected"}return null},f.fromObject=function(y){if(y instanceof C.common.Coin)return y;let L=new C.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");L.asset=C.common.Asset.fromObject(y.asset)}if(y.amount!=null)L.amount=String(y.amount);if(y.decimals!=null){if(I.Long)(L.decimals=I.Long.fromValue(y.decimals)).unsigned=!1;else if(typeof y.decimals==="string")L.decimals=Number.parseInt(y.decimals,10);else if(typeof y.decimals==="number")L.decimals=y.decimals;else if(typeof y.decimals==="object")L.decimals=new I.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber()}return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)if(G.asset=null,G.amount="",I.Long){let x=new I.Long(0,0,!1);G.decimals=L.longs===String?x.toString():L.longs===Number?x.toNumber():x}else G.decimals=L.longs===String?"0":0;if(y.asset!=null&&y.hasOwnProperty("asset"))G.asset=C.common.Asset.toObject(y.asset,L);if(y.amount!=null&&y.hasOwnProperty("amount"))G.amount=y.amount;if(y.decimals!=null&&y.hasOwnProperty("decimals"))if(typeof y.decimals==="number")G.decimals=L.longs===String?String(y.decimals):y.decimals;else G.decimals=L.longs===String?I.Long.prototype.toString.call(y.decimals):L.longs===Number?new I.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber():y.decimals;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.PubKeySet=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.secp256k1="",f.prototype.ed25519="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))L.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))L.uint32(18).string(y.ed25519);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.PubKeySet;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.secp256k1=y.string();break;case 2:x.ed25519=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1")){if(!I.isString(y.secp256k1))return"secp256k1: string expected"}if(y.ed25519!=null&&y.hasOwnProperty("ed25519")){if(!I.isString(y.ed25519))return"ed25519: string expected"}return null},f.fromObject=function(y){if(y instanceof C.common.PubKeySet)return y;let L=new C.common.PubKeySet;if(y.secp256k1!=null)L.secp256k1=String(y.secp256k1);if(y.ed25519!=null)L.ed25519=String(y.ed25519);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)G.secp256k1="",G.ed25519="";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1"))G.secp256k1=y.secp256k1;if(y.ed25519!=null&&y.hasOwnProperty("ed25519"))G.ed25519=y.ed25519;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.Tx=(()=>{function f(X){if(this.coins=[],this.gas=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.id="",f.prototype.chain="",f.prototype.fromAddress="",f.prototype.toAddress="",f.prototype.coins=I.emptyArray,f.prototype.gas=I.emptyArray,f.prototype.memo="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))L.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))L.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))L.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))L.uint32(34).string(y.toAddress);if(y.coins?.length)for(let G=0;G<y.coins.length;++G)C.common.Coin.encode(y.coins[G],L.uint32(42).fork()).ldelim();if(y.gas?.length)for(let G=0;G<y.gas.length;++G)C.common.Coin.encode(y.gas[G],L.uint32(50).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))L.uint32(58).string(y.memo);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.Tx;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.id=y.string();break;case 2:x.chain=y.string();break;case 3:x.fromAddress=y.string();break;case 4:x.toAddress=y.string();break;case 5:if(!x.coins?.length)x.coins=[];x.coins.push(C.common.Coin.decode(y,y.uint32()));break;case 6:if(!x.gas?.length)x.gas=[];x.gas.push(C.common.Coin.decode(y,y.uint32()));break;case 7:x.memo=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.id!=null&&y.hasOwnProperty("id")){if(!I.isString(y.id))return"id: string expected"}if(y.chain!=null&&y.hasOwnProperty("chain")){if(!I.isString(y.chain))return"chain: string expected"}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!I.isString(y.fromAddress))return"fromAddress: string expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!I.isString(y.toAddress))return"toAddress: string expected"}if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let G=C.common.Coin.verify(y.coins[L]);if(G)return"coins."+G}}if(y.gas!=null&&y.hasOwnProperty("gas")){if(!Array.isArray(y.gas))return"gas: array expected";for(let L=0;L<y.gas.length;++L){let G=C.common.Coin.verify(y.gas[L]);if(G)return"gas."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!I.isString(y.memo))return"memo: string expected"}return null},f.fromObject=function(y){if(y instanceof C.common.Tx)return y;let L=new C.common.Tx;if(y.id!=null)L.id=String(y.id);if(y.chain!=null)L.chain=String(y.chain);if(y.fromAddress!=null)L.fromAddress=String(y.fromAddress);if(y.toAddress!=null)L.toAddress=String(y.toAddress);if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Tx.coins: array expected");L.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Tx.coins: object expected");L.coins[G]=C.common.Coin.fromObject(y.coins[G])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");L.gas=[];for(let G=0;G<y.gas.length;++G){if(typeof y.gas[G]!=="object")throw TypeError(".common.Tx.gas: object expected");L.gas[G]=C.common.Coin.fromObject(y.gas[G])}}if(y.memo!=null)L.memo=String(y.memo);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.coins=[],G.gas=[];if(L.defaults)G.id="",G.chain="",G.fromAddress="",G.toAddress="",G.memo="";if(y.id!=null&&y.hasOwnProperty("id"))G.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=y.toAddress;if(y.coins?.length){G.coins=[];for(let x=0;x<y.coins.length;++x)G.coins[x]=C.common.Coin.toObject(y.coins[x],L)}if(y.gas?.length){G.gas=[];for(let x=0;x<y.gas.length;++x)G.gas[x]=C.common.Coin.toObject(y.gas[x],L)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.Fee=(()=>{function f(X){if(this.coins=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.coins=I.emptyArray,f.prototype.poolDeduct="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)C.common.Coin.encode(y.coins[G],L.uint32(10).fork()).ldelim();if(y.poolDeduct!=null&&Object.hasOwnProperty.call(y,"poolDeduct"))L.uint32(18).string(y.poolDeduct);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.Fee;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:if(!x.coins?.length)x.coins=[];x.coins.push(C.common.Coin.decode(y,y.uint32()));break;case 2:x.poolDeduct=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let G=C.common.Coin.verify(y.coins[L]);if(G)return"coins."+G}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!I.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},f.fromObject=function(y){if(y instanceof C.common.Fee)return y;let L=new C.common.Fee;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Fee.coins: array expected");L.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Fee.coins: object expected");L.coins[G]=C.common.Coin.fromObject(y.coins[G])}}if(y.poolDeduct!=null)L.poolDeduct=String(y.poolDeduct);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.coins=[];if(L.defaults)G.poolDeduct="";if(y.coins?.length){G.coins=[];for(let x=0;x<y.coins.length;++x)G.coins[x]=C.common.Coin.toObject(y.coins[x],L)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))G.poolDeduct=y.poolDeduct;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.ProtoUint=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.value="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))L.uint32(10).string(y.value);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.ProtoUint;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.value=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.value!=null&&y.hasOwnProperty("value")){if(!I.isString(y.value))return"value: string expected"}return null},f.fromObject=function(y){if(y instanceof C.common.ProtoUint)return y;let L=new C.common.ProtoUint;if(y.value!=null)L.value=String(y.value);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)G.value="";if(y.value!=null&&y.hasOwnProperty("value"))G.value=y.value;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T})();C.types=(()=>{let T={};return T.MsgDeposit=(()=>{function f(X){if(this.coins=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.coins=I.emptyArray,f.prototype.memo="",f.prototype.signer=I.newBuffer([]),f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)C.common.Coin.encode(y.coins[G],L.uint32(10).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))L.uint32(18).string(y.memo);if(y.signer!=null&&Object.hasOwnProperty.call(y,"signer"))L.uint32(26).bytes(y.signer);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.types.MsgDeposit;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:if(!x.coins?.length)x.coins=[];x.coins.push(C.common.Coin.decode(y,y.uint32()));break;case 2:x.memo=y.string();break;case 3:x.signer=y.bytes();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let G=C.common.Coin.verify(y.coins[L]);if(G)return"coins."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!I.isString(y.memo))return"memo: string expected"}if(y.signer!=null&&y.hasOwnProperty("signer")){if(!(y.signer&&typeof y.signer.length==="number"||I.isString(y.signer)))return"signer: buffer expected"}return null},f.fromObject=function(y){if(y instanceof C.types.MsgDeposit)return y;let L=new C.types.MsgDeposit;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".types.MsgDeposit.coins: array expected");L.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");L.coins[G]=C.common.Coin.fromObject(y.coins[G])}}if(y.memo!=null)L.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")I.base64.decode(y.signer,L.signer=I.newBuffer(I.base64.length(y.signer)),0);else if(y.signer.length)L.signer=y.signer}return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.coins=[];if(L.defaults){if(G.memo="",L.bytes===String)G.signer="";else if(G.signer=[],L.bytes!==Array)G.signer=I.newBuffer(G.signer)}if(y.coins?.length){G.coins=[];for(let x=0;x<y.coins.length;++x)G.coins[x]=C.common.Coin.toObject(y.coins[x],L)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))G.signer=L.bytes===String?I.base64.encode(y.signer,0,y.signer.length):L.bytes===Array?Array.prototype.slice.call(y.signer):y.signer;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.MsgSend=(()=>{function f(X){if(this.amount=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.fromAddress=I.newBuffer([]),f.prototype.toAddress=I.newBuffer([]),f.prototype.amount=I.emptyArray,f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))L.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))L.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let G=0;G<y.amount.length;++G)C.cosmos.base.v1beta1.Coin.encode(y.amount[G],L.uint32(26).fork()).ldelim();return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.types.MsgSend;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.fromAddress=y.bytes();break;case 2:x.toAddress=y.bytes();break;case 3:if(!x.amount?.length)x.amount=[];x.amount.push(C.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!(y.fromAddress&&typeof y.fromAddress.length==="number"||I.isString(y.fromAddress)))return"fromAddress: buffer expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!(y.toAddress&&typeof y.toAddress.length==="number"||I.isString(y.toAddress)))return"toAddress: buffer expected"}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!Array.isArray(y.amount))return"amount: array expected";for(let L=0;L<y.amount.length;++L){let G=C.cosmos.base.v1beta1.Coin.verify(y.amount[L]);if(G)return"amount."+G}}return null},f.fromObject=function(y){if(y instanceof C.types.MsgSend)return y;let L=new C.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")I.base64.decode(y.fromAddress,L.fromAddress=I.newBuffer(I.base64.length(y.fromAddress)),0);else if(y.fromAddress.length)L.fromAddress=y.fromAddress}if(y.toAddress!=null){if(typeof y.toAddress==="string")I.base64.decode(y.toAddress,L.toAddress=I.newBuffer(I.base64.length(y.toAddress)),0);else if(y.toAddress.length)L.toAddress=y.toAddress}if(y.amount){if(!Array.isArray(y.amount))throw TypeError(".types.MsgSend.amount: array expected");L.amount=[];for(let G=0;G<y.amount.length;++G){if(typeof y.amount[G]!=="object")throw TypeError(".types.MsgSend.amount: object expected");L.amount[G]=C.cosmos.base.v1beta1.Coin.fromObject(y.amount[G])}}return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.amount=[];if(L.defaults){if(L.bytes===String)G.fromAddress="";else if(G.fromAddress=[],L.bytes!==Array)G.fromAddress=I.newBuffer(G.fromAddress);if(L.bytes===String)G.toAddress="";else if(G.toAddress=[],L.bytes!==Array)G.toAddress=I.newBuffer(G.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=L.bytes===String?I.base64.encode(y.fromAddress,0,y.fromAddress.length):L.bytes===Array?Array.prototype.slice.call(y.fromAddress):y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=L.bytes===String?I.base64.encode(y.toAddress,0,y.toAddress.length):L.bytes===Array?Array.prototype.slice.call(y.toAddress):y.toAddress;if(y.amount?.length){G.amount=[];for(let x=0;x<y.amount.length;++x)G.amount[x]=C.cosmos.base.v1beta1.Coin.toObject(y.amount[x],L)}return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T})();C.cosmos=(()=>{let T={};return T.base=(()=>{let f={};return f.v1beta1=(()=>{let X={};return X.Coin=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))x.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))x.uint32(18).string(G.amount);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof w))G=w.create(G);let Z=x===void 0?G.len:G.pos+x,B=new C.cosmos.base.v1beta1.Coin;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.denom=G.string();break;case 2:B.amount=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof w))G=new w(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!I.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!I.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.Coin)return G;let x=new C.cosmos.base.v1beta1.Coin;if(G.denom!=null)x.denom=String(G.denom);if(G.amount!=null)x.amount=String(G.amount);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.denom="",Z.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))Z.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))Z.amount=G.amount;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X.DecCoin=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))x.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))x.uint32(18).string(G.amount);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof w))G=w.create(G);let Z=x===void 0?G.len:G.pos+x,B=new C.cosmos.base.v1beta1.DecCoin;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.denom=G.string();break;case 2:B.amount=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof w))G=new w(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!I.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!I.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.DecCoin)return G;let x=new C.cosmos.base.v1beta1.DecCoin;if(G.denom!=null)x.denom=String(G.denom);if(G.amount!=null)x.amount=String(G.amount);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.denom="",Z.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))Z.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))Z.amount=G.amount;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X.IntProto=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.int="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.int!=null&&Object.hasOwnProperty.call(G,"int"))x.uint32(10).string(G.int);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof w))G=w.create(G);let Z=x===void 0?G.len:G.pos+x,B=new C.cosmos.base.v1beta1.IntProto;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.int=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof w))G=new w(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.int!=null&&G.hasOwnProperty("int")){if(!I.isString(G.int))return"int: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.IntProto)return G;let x=new C.cosmos.base.v1beta1.IntProto;if(G.int!=null)x.int=String(G.int);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.int="";if(G.int!=null&&G.hasOwnProperty("int"))Z.int=G.int;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X.DecProto=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.dec="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.dec!=null&&Object.hasOwnProperty.call(G,"dec"))x.uint32(10).string(G.dec);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof w))G=w.create(G);let Z=x===void 0?G.len:G.pos+x,B=new C.cosmos.base.v1beta1.DecProto;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.dec=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof w))G=new w(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.dec!=null&&G.hasOwnProperty("dec")){if(!I.isString(G.dec))return"dec: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.DecProto)return G;let x=new C.cosmos.base.v1beta1.DecProto;if(G.dec!=null)x.dec=String(G.dec);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.dec="";if(G.dec!=null&&G.hasOwnProperty("dec"))Z.dec=G.dec;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X})(),f})(),T})()});import{Chain as bG}from"@swapkit/helpers";async function Ky(){let{$root:T}=await Promise.resolve().then(() => (_1(),z1)),f=await import("@cosmjs/proto-signing"),X=f.Registry??f.default?.Registry,y=await import("@cosmjs/stargate"),L=y.defaultRegistryTypes??y.default?.defaultRegistryTypes;return new X([...L,["/types.MsgSend",T.types.MsgSend],["/types.MsgDeposit",T.types.MsgDeposit]])}async function Ey(T){let f=await import("@cosmjs/stargate"),X=f.AminoTypes??f.default?.AminoTypes,y=T===bG.THORChain?"thorchain":"mayachain";return new X({"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,fromAmino:({signer:L,...G})=>({...G,signer:zT(L)}),toAmino:({signer:L,...G})=>({...G,signer:_T(L)})},"/types.MsgSend":{aminoType:`${y}/MsgSend`,fromAmino:({from_address:L,to_address:G,...x})=>({...x,fromAddress:zT(L),toAddress:zT(G)}),toAmino:({fromAddress:L,toAddress:G,...x})=>({...x,from_address:_T(L),to_address:_T(G)})}})}var wf=P(()=>{Df()});import{AssetValue as nG,Chain as jT,getChainConfig as M1,SwapKitError as jG}from"@swapkit/helpers";function Ff(T){return function(X){let{assetValue:y,recipient:L,memo:G,sender:x,asSignable:Z,asAminoMessage:B}=X;if(L)return Y1(T)({asAminoMessage:B,asSignable:Z,assetValue:y,memo:G,recipient:L,sender:x});return U1(T)({asAminoMessage:B,asSignable:Z,assetValue:y,memo:G,sender:x})}}function wy(T){if(T.type==="thorchain/MsgSend"||T.type==="mayachain/MsgSend")return T;return{...T,value:{...T.value,coins:T.value.coins.map((f)=>{let X=nG.from({asset:f.asset}),y=(X.isSynthetic?X.symbol.split("/")?.[1]:X.symbol)?.toUpperCase(),L=(X.isSynthetic?X.symbol.split("/")?.[0]:X.chain)?.toUpperCase();return{...f,asset:{chain:L,symbol:y,synth:X.isSynthetic,ticker:X.ticker}}})}}}async function UT({chain:T,memo:f,msgs:X}){let y=await Ky(),L=await Ey(T),G={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:f,messages:X.map((x)=>L.fromAmino(x))}};return y.encode(G)}var hG,pG,lf=({sender:T,recipient:f,assetValue:X})=>{return{type:`${X.chain===jT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:X.getBaseValue("string"),denom:Oy(X.symbol,!0)}],from_address:T,to_address:f}}},vf=({sender:T,assetValue:f,memo:X=""})=>{return{type:`${f.chain===jT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:f.getBaseValue("string"),asset:MT(f)}],memo:X,signer:T}}},hT=({sender:T,recipient:f,assetValue:X,memo:y})=>{return!f?vf({assetValue:X,memo:y,sender:T}):lf({assetValue:X,recipient:f,sender:T})},Py=async(T,f)=>{return(await Ey(f)).fromAmino(T)},N1=async({rpcUrl:T,sender:f})=>{let y=await(await Uy(T)).getAccount(f);if(!y)throw new jG("toolbox_cosmos_account_not_found",{sender:f});return y},Y1=(T)=>async({sender:f,recipient:X,assetValue:y,memo:L="",asSignable:G=!0,asAminoMessage:x=!1,sequence:Z,accountNumber:B})=>{let J=await N1({rpcUrl:T,sender:f}),Q=y.chain,{chainId:q}=M1(Q),z=lf({assetValue:y,recipient:X,sender:f}),M=G?await Py(x?z:wy(z),Q):z;return{accountNumber:B||J.accountNumber,chainId:q,fee:Yy(Q),memo:L,msgs:[M],sequence:Z||J.sequence}},U1=(T)=>async({sender:f,assetValue:X,memo:y="",asSignable:L=!0,asAminoMessage:G=!1,sequence:x,accountNumber:Z})=>{let B=await N1({rpcUrl:T,sender:f}),J=X.chain,{chainId:Q}=M1(J),q=vf({assetValue:X,memo:y,sender:f}),z=L?await Py(G?q:wy(q),J):q;return{accountNumber:Z||B.accountNumber,chainId:Q,fee:Yy(J),memo:y,msgs:[z],sequence:x||B.sequence}};var H1=P(()=>{YT();wf();hG=Yy(jT.THORChain).gas,pG=Yy(jT.Maya).gas});var W1=()=>{};var C1=P(()=>{W1()});var Af=P(()=>{Df();H1();wf();C1()});import{base64 as $f,bech32 as Sf}from"@scure/base";import{AssetValue as P1,applyFeeMultiplier as R1,Chain as r,CosmosChainPrefixes as w1,DerivationPath as oG,derivationPathToString as D1,FeeOption as Kf,getChainConfig as mG,getRPCUrl as cG,NetworkDerivationPath as tG,SKConfig as gG,SwapKitError as pT,SwapKitNumber as Vf,updateDerivationPath as iG}from"@swapkit/helpers";import{SwapKitApi as l1}from"@swapkit/helpers/api";import{match as dG,P as k1}from"ts-pattern";async function bf(T,f){try{let y=(await l1.getGasRate()).find((L)=>L.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(X){return f}}async function uf({phrase:T,prefix:f,...X}){let y=await import("@cosmjs/proto-signing"),L=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,G=await import("@cosmjs/crypto"),x=G.stringToPath??G.default?.stringToPath,Z="derivationPath"in X?X.derivationPath:`${oG[X.chain]}/${X.index}`;return L.fromMnemonic(T,{hdPaths:[x(Z)],prefix:f})}async function rG({privateKey:T,prefix:f}){let X=await import("@cosmjs/proto-signing");return(X.DirectSecp256k1Wallet??X.default?.DirectSecp256k1Wallet).fromKey(T,f)}function v1(T){return async function({signature:X,message:y,address:L}){let G=await T(L);if(!G?.pubkey)throw new pT("toolbox_cosmos_verify_signature_no_pubkey");let x=await import("@cosmjs/crypto"),Z=x.Secp256k1Signature??x.default?.Secp256k1Signature,B=x.Secp256k1??x.default?.Secp256k1,J=Z.fromFixedLength($f.decode(X));return B.verifySignature(J,$f.decode(y),G.pubkey.value)}}async function HT({chain:T,...f}){let X=await cG(T),y=w1[T],L="index"in f?f.index||0:0,G=D1("derivationPath"in f&&f.derivationPath?f.derivationPath:iG(tG[T],{index:L})),x=await dG(f).with({phrase:k1.string},({phrase:q})=>uf({derivationPath:G,phrase:q,prefix:y})).with({signer:k1.any},({signer:q})=>q).otherwise(()=>{return});async function Z(q){return(await Uy(X)).getAccount(q)}async function B(){let[q]=await x?.getAccounts()||[];return q?.address}async function J(){let[q]=await x?.getAccounts()||[];if(!q?.pubkey)throw new pT("toolbox_cosmos_signer_not_defined");return $f.encode(q?.pubkey)}async function Q({recipient:q,assetValue:z,memo:M="",feeRate:_,feeOptionKey:W=Kf.Fast}){let k=await B();if(!(x&&k))throw new pT("toolbox_cosmos_signer_not_defined");let v=P1.from({chain:T}),F=MT(v),b=_||T2((await O1(T,I1[T]))[W],F),K=await NT(X,x),i=[{amount:z.getBaseValue("string"),denom:Oy(`u${z.symbol}`).toLowerCase()}],{transactionHash:m}=await K.sendTokens(k,q,i,b,M);return m}return{createPrivateKeyFromPhrase:G2(G),createTransaction:Ef,fetchFeeRateFromSwapKit:bf,getAccount:Z,getAddress:B,getBalance:async(q,z)=>{let M=await E1(X)(q);return await Promise.all(M.filter(({denom:_})=>_&&!_.includes("IBC/")).map(({denom:_,amount:W})=>{let k=[r.THORChain,r.Maya].includes(T)&&(_.includes("/")||_.includes("˜"))?`${T}.${_}`:_;return Pf(k,W)}))},getBalanceAsDenoms:E1(X),getFees:()=>O1(T,I1[T]),getPubKey:J,getSignerFromPhrase:async({phrase:q,derivationPath:z})=>uf({derivationPath:D1(z),index:L,phrase:q,prefix:y}),getSignerFromPrivateKey:async(q)=>{let z=await import("@cosmjs/proto-signing");return(z.DirectSecp256k1Wallet??z.default?.DirectSecp256k1Wallet).fromKey(q,y)},transfer:Q,validateAddress:A1(y),verifySignature:v1(Z)}}async function F1(T,f){try{let y=(await l1.getGasRate()).find((L)=>L.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(X){return f}}function sG({address:T,chain:f,prefix:X}){let y=X||y2(f);if(!(y&&T))throw new pT("toolbox_cosmos_validate_address_prefix_not_found");return A1(y)(T)}function eG({assetValue:{chain:T}}){return P1.from({chain:T,value:f2(T)})}function y2(T){let{isStagenet:f}=gG.get("envs"),X=T?[r.THORChain,r.Maya].includes(T)&&f:!1,y=T?w1[T]:void 0;return X?`s${y}`:y}async function O1(T,f){let{chainId:X,baseDecimal:y}=mG(T),L=await bf(X,f);return{average:Vf.fromBigInt(BigInt(L),y),fast:Vf.fromBigInt(BigInt(R1(L,Kf.Fast,!0)),y),fastest:Vf.fromBigInt(BigInt(R1(L,Kf.Fastest,!0)),y)}}function T2(T,f){return{amount:[{amount:T.getBaseValue("string"),denom:f}],gas:"200000"}}function f2(T){return{[r.Cosmos]:0.007,[r.Kujira]:0.02,[r.Noble]:0.01,[r.THORChain]:0.02,[r.Maya]:0.02}[T]||0}function A1(T){return function(X){if(!X.startsWith(T))return!1;try{let{prefix:y,words:L}=Sf.decode(X);return Sf.encode(y,L)===X.toLocaleLowerCase()}catch(y){return!1}}}function E1(T){return async function(X){return(await(await Uy(T)).getAllBalances(X)).map((x)=>({...x,denom:x.denom.includes("/")?x.denom.toUpperCase():x.denom}))}}function G2(T){return async function(X){let y=await import("@cosmjs/crypto"),L=y.stringToPath??y.default?.stringToPath,G=y.Slip10Curve??y.default?.Slip10Curve,x=y.Slip10??y.default?.Slip10,Z=y.EnglishMnemonic??y.default?.EnglishMnemonic,B=y.Bip39??y.default?.Bip39,J=new Z(X),Q=await B.mnemonicToSeed(J),{privkey:q}=x.derivePath(G.Secp256k1,Q,L(T));return q}}var I1,aG;var oT=P(()=>{YT();I1={[r.Cosmos]:500,[r.Kujira]:1000,[r.Noble]:1000,[r.THORChain]:5000000,[r.Maya]:5000000};aG=F1});import{base64 as uy}from"@scure/base";import{Chain as L2,CosmosChainPrefixes as X2,derivationPathToString as x2,FeeOption as nf,getChainConfig as Z2,getRPCUrl as B2,NetworkDerivationPath as J2,RequestClient as Q2,SKConfig as S1,SwapKitError as V1,SwapKitNumber as $1,updateDerivationPath as q2}from"@swapkit/helpers";import{match as z2,P as K1}from"ts-pattern";function _2({prefix:T,derivationPath:f}){return async function(y,L=0){let G=await import("@cosmjs/amino"),x=G.Secp256k1HdWallet??G.default?.Secp256k1HdWallet,Z=await import("@cosmjs/crypto"),B=Z.stringToPath??Z.default?.stringToPath;return x.fromMnemonic(y,{hdPaths:[B(`${f}/${L}`)],prefix:T})}}function M2(T){return uy.encode(T)}function N2(T){return async function({wallet:X,tx:y}){let{msgs:L,accountNumber:G,sequence:x,chainId:Z,fee:B,memo:J}=typeof y==="string"?JSON.parse(y):y,Q=(await X.getAccounts())?.[0]?.address||"",q=await Ey(T),z=await Ky(),M=await Of(X,{aminoTypes:q,registry:z}),_=[];for(let v of L){let F=await Py(v,T);_.push(F)}let{signatures:[W]}=await M.sign(Q,_,B,J,{accountNumber:G,chainId:Z,sequence:x});return{bodyBytes:await UT({chain:T,memo:J,msgs:L.map(wy)}),signature:M2(W)}}}function Y2({prefix:T,rpcUrl:f}){return async function(y,L,G,x,Z){let{encodeSecp256k1Pubkey:B,pubkeyToAddress:J}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:Q}=(await import("@cosmjs/stargate")).default,{sequence:q,fee:z}=JSON.parse(y),M=await u1(G,x),_=L.map((v)=>[J(B(uy.decode(v.pubKey)),T),uy.decode(v.signature)]),W=await Uy(f),{transactionHash:k}=await W.broadcastTx(Q(M,q,z,Z,new Map(_)));return k}}async function u1(T,f,X=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:L}=(await import("@cosmjs/amino")).default;return y(T.map((G)=>L(uy.decode(G))),f,X)}function U2(T){return uy.decode(T)}async function H2({privateKey:T,message:f}){let{Secp256k1:X}=(await import("@cosmjs/crypto")).default,y=await X.createSignature(uy.decode(f),T);return uy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function jf({chain:T,...f}){let X=S1.get("nodeUrls")[T],y=await B2(T),{isStagenet:L}=S1.get("envs"),G=T===L2.THORChain,x=`${L?"s":""}${X2[T]}`,Z="index"in f?f.index||0:0,B="derivationPath"in f&&f.derivationPath?f.derivationPath:q2(J2[T],{index:Z}),J=await HT({chain:T,...f}),Q=await z2(f).with({phrase:K1.string},({phrase:_})=>J.getSignerFromPhrase({derivationPath:B,phrase:_})).with({signer:K1.any},({signer:_})=>_).otherwise(()=>{return}),q=Yy(T);async function z(){let _,W=`${X}/${G?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:k}}=await Q2.get(W);if(!k||Number.isNaN(k)||k<0)throw new V1("toolbox_cosmos_invalid_fee",{nativeFee:k.toString()});_=new $1(k)}catch{_=new $1({decimal:Z2(T).baseDecimal,value:G?0.02:1})}return{[nf.Average]:_,[nf.Fast]:_,[nf.Fastest]:_}}async function M({assetValue:_,memo:W="",recipient:k}){let{TxRaw:v}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),F=(await Q?.getAccounts())?.[0]?.address;if(!(F&&Q))throw new V1("toolbox_cosmos_no_signer");let b="signAmino"in Q,K=await Ky(),i=await Ey(T),m=await NT(y,Q,{aminoTypes:i,registry:K}),s=hT({assetValue:_,memo:W,recipient:k,sender:F});if(b){let R=await Py(s,T),{signatures:O,authInfoBytes:E}=await m.sign(F,[R],q,W),l=v.encode({authInfoBytes:E,bodyBytes:await UT({chain:T,memo:W,msgs:[s].map(wy)}),signatures:O}).finish();return(await m.broadcastTx(l)).transactionHash}let uT=wy(s),N=await Py(uT,T);return(await m.signAndBroadcast(F,[N],q,W)).transactionHash}return{...J,broadcastMultisigTx:Y2({prefix:x,rpcUrl:y}),buildAminoMsg:hT,buildEncodedTxBody:UT,convertToSignable:Py,createDefaultAminoTypes:()=>Ey(T),createDefaultRegistry:Ky,createMultisig:u1,createTransaction:Ff(y),deposit:M,getFees:z,importSignature:U2,parseAminoMessageForDirectSigning:wy,pubkeyToAddress:async(_)=>{let{pubkeyToAddress:W}=(await import("@cosmjs/amino")).default;return W(_,x)},secp256k1HdWalletFromMnemonic:_2({derivationPath:x2(B),prefix:x}),signMultisigTx:N2(T),signWithPrivateKey:H2,transfer:M}}var hf=P(()=>{Af();YT();oT()});import{Chain as WT,SwapKitError as W2}from"@swapkit/helpers";var C2=(T,f)=>{switch(T){case WT.Cosmos:case WT.Kujira:case WT.Noble:return HT({chain:T,...f});case WT.Maya:case WT.THORChain:return jf({chain:T,...f});default:throw new W2("toolbox_cosmos_not_supported",{chain:T})}};var b1=P(()=>{oT();hf();oT();hf()});var mT={};Ly(mT,{verifySignature:()=>v1,transferMsgAmino:()=>lf,toBase64:()=>SG,parseAminoMessageForDirectSigning:()=>wy,getSignerFromPrivateKey:()=>rG,getSignerFromPhrase:()=>uf,getMsgSendDenom:()=>Oy,getFeeRateFromThorswap:()=>aG,getFeeRateFromSwapKit:()=>F1,getDenomWithChain:()=>MT,getDefaultChainFee:()=>Yy,getCreateTransaction:()=>Ff,getCosmosToolbox:()=>C2,getAssetFromDenom:()=>Pf,fromBase64:()=>VG,fetchFeeRateFromSwapKit:()=>bf,estimateTransactionFee:()=>eG,depositMsgAmino:()=>vf,createThorchainToolbox:()=>jf,createStargateClient:()=>Uy,createSigningStargateClient:()=>NT,createOfflineStargateClient:()=>Of,createDefaultRegistry:()=>Ky,createDefaultAminoTypes:()=>Ey,createCosmosToolbox:()=>HT,cosmosValidateAddress:()=>sG,cosmosCreateTransaction:()=>Ef,convertToSignable:()=>Py,buildTransferTx:()=>Y1,buildEncodedTxBody:()=>UT,buildDepositTx:()=>U1,buildAminoMsg:()=>hT,bech32ToBase64:()=>zT,base64ToBech32:()=>_T,YUM_KUJIRA_FACTORY_DENOM:()=>B1,USK_KUJIRA_FACTORY_DENOM:()=>If,THORCHAIN_GAS_VALUE:()=>hG,MAYA_GAS_VALUE:()=>pG,DEFAULT_NOBLE_FEE_MAINNET:()=>q1,DEFAULT_KUJI_FEE_MAINNET:()=>Q1,DEFAULT_COSMOS_FEE_MAINNET:()=>J1});var cT=P(()=>{Af();b1();YT()});import{AssetValue as R2,getChainConfig as D2}from"@swapkit/helpers";import{SwapKitApi as k2}from"@swapkit/helpers/api";function n1(){function T(){let f=Date.now(),X=pf||f;return pf=X,f>pf?f:X+1}return I2+T().toString(36)}function iy(T){return async function(X,y=!0){let L=await k2.getChainBalance({address:X,chain:T,scamFilter:y}),{baseDecimal:G}=D2(T);return L.map(({identifier:x,value:Z,decimal:B})=>{return new R2({decimal:B||G,identifier:x,value:Z})})}}var I2,pf=0;var CT=P(()=>{I2=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{SKConfig as O2,warnOnce as E2}from"@swapkit/helpers";function RT(T){let f=O2.get("apis")[T];if(f)return E2({condition:!0,id:"custom_evm_api_warning",warning:"Using custom EVM API. Be sure to implement all methods to avoid issues."}),f;return w2(T)}function P2(T){return T}function w2(T){return{getBalance:iy(T)}}var tT=P(()=>{CT()});import{Chain as h,getChainConfig as j1,getRPCUrl as l2,SwapKitError as v2}from"@swapkit/helpers";async function by(T,f){let{JsonRpcProvider:X}=await import("ethers");return new X(f||await l2(T))}function DT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function of(T){let{blockExplorerUrl:f,chainId:X,rpcUrl:y}=j1(T);return()=>T===h.Ethereum?void 0:{...F2({chain:T}),blockExplorerUrls:[f],chainId:X,rpcUrls:[y]}}function mf(T){return![h.Arbitrum,h.BinanceSmartChain].includes(T)}function F2({chain:T}){let{baseDecimal:f}=j1(T);switch(T){case h.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Aurora:return{chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:T}};case h.Base:return{chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Berachain:return{chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}};case h.BinanceSmartChain:return{chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}};case h.Gnosis:return{chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}};case h.Optimism:return{chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:h.Polygon}};default:throw new v2("toolbox_evm_not_supported",{chain:T})}}var dy=()=>{};var h1;var p1=P(()=>{h1=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as A2,applyFeeMultiplierToBigInt as ry,Chain as o,ContractAddress as By,FeeOption as j,isGasAsset as S2,SwapKitError as n,SwapKitNumber as gT}from"@swapkit/helpers";import{erc20ABI as kT}from"@swapkit/helpers/contracts";import{BrowserProvider as V2,Contract as o1,getAddress as iT,Interface as m1}from"ethers";function ay({chain:T=o.Ethereum,provider:f,signer:X,isEIP1559Compatible:y=!0}){return{approve:n2({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),approvedAmount:g1({chain:T,provider:f}),broadcastTransaction:f.broadcastTransaction,call:rf({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),createApprovalTx:o2({chain:T,provider:f,signer:X}),createContract:gf({chain:T,provider:f}),createContractTxObject:ny({chain:T,provider:f}),createTransaction:cf({chain:T,provider:f,signer:X}),createTransferTx:cf({chain:T,provider:f,signer:X}),EIP1193SendTransaction:ey(f),estimateCall:i1({provider:f,signer:X}),estimateGasLimit:h2({chain:T,provider:f,signer:X}),estimateGasPrices:jy({chain:T,isEIP1559Compatible:y,provider:f}),estimateTransactionFee:m2({chain:T,isEIP1559Compatible:y,provider:f}),getAddress:()=>{return X?X.getAddress():void 0},isApproved:b2({chain:T,provider:f}),sendTransaction:d1({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),signMessage:X?.signMessage,transfer:j2({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),validateAddress:(L)=>tf({address:L})}}function tf({address:T}){try{return iT(T),!0}catch(f){return!1}}function sy(T){return T instanceof V2}function OT(T,f,X){return new o1(T,m1.from(f),X)}function gf({provider:T}){return function(X,y){return new o1(X,m1.from(y),T)}}function df({abi:T,funcName:f}){let X=T.find((y)=>y.name===f);if(!X)throw new n("toolbox_evm_no_abi_fragment",{funcName:f});return X.stateMutability&&$2.includes(X.stateMutability)}function c1(T){return iT(T)}function ey(T){return function({value:X,...y}){if(!sy(T))throw new n("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:L,gasPrice:G,maxFeePerGas:x,maxPriorityFeePerGas:Z,...B}=y;return T.send("eth_sendTransaction",[{...B,value:DT(BigInt(X||0))}])}}function t1(T,f){let X=yT(T,f);if(X)return iT(X.toLowerCase());throw new n("toolbox_evm_invalid_gas_asset_address")}function yT({chain:T,symbol:f,ticker:X},y){try{let L=T===o.BinanceSmartChain&&f==="BNB"&&X==="BNB",G=T===y&&f===y&&X===y,x=u2.includes(T)&&f==="ETH"&&X==="ETH";if(G||L||x)return K2[y];return iT(f.slice(X.length+1).replace(/^0X/,""))}catch(L){return null}}function ny({provider:T}){return async({contractAddress:f,abi:X,funcName:y,funcParams:L=[],txOverrides:G})=>OT(f,X,T).getFunction(y).populateTransaction(...L.concat(G).filter((x)=>typeof x<"u"))}function jy({chain:T,provider:f,isEIP1559Compatible:X=!0}){if(T===o.Arbitrum)return async function(){try{let{gasPrice:L}=await f.getFeeData();if(!L)throw new n("toolbox_evm_no_fee_data");return{[j.Average]:{gasPrice:L},[j.Fast]:{gasPrice:L},[j.Fastest]:{gasPrice:L}}}catch(L){throw new n("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}};return async function(){try{let{maxFeePerGas:L,maxPriorityFeePerGas:G,gasPrice:x}=await f.getFeeData();if(X){if(L===null||G===null)throw new n("toolbox_evm_no_fee_data");return{[j.Average]:{maxFeePerGas:L,maxPriorityFeePerGas:G},[j.Fast]:{maxFeePerGas:ry(L,j.Fast),maxPriorityFeePerGas:ry(G,j.Fast)},[j.Fastest]:{maxFeePerGas:ry(L,j.Fastest),maxPriorityFeePerGas:ry(G,j.Fastest)}}}if(!x)throw new n("toolbox_evm_no_gas_price");return{[j.Average]:{gasPrice:x},[j.Fast]:{gasPrice:ry(x,j.Fast)},[j.Fastest]:{gasPrice:ry(x,j.Fastest)}}}catch(L){throw new n("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}}}function rf({provider:T,isEIP1559Compatible:f,signer:X,chain:y}){return async function({callProvider:G,contractAddress:x,abi:Z,funcName:B,funcParams:J=[],txOverrides:Q={},feeOption:q=j.Fast}){let z=G||T;if(!x)throw new n("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let M=df({abi:Z,funcName:B});if(M&&sy(z)&&X){let k=ny({chain:y,provider:z}),v=Q?.from||await X?.getAddress(),F=await k({abi:Z,contractAddress:x,funcName:B,funcParams:J,txOverrides:{...Q,from:v}});return ey(z)(F)}let _=OT(x,Z,z);if(M){if(!X)throw new n("toolbox_evm_no_signer");let k=Q?.from||await X.getAddress();if(!k)throw new n("toolbox_evm_no_signer_address");let v=_.connect(X),F=jy({chain:y,isEIP1559Compatible:f,provider:T}),{maxFeePerGas:b,maxPriorityFeePerGas:K,gasPrice:i}=(await F())[q],m=await _.getFunction(B).estimateGas(...J,Q),s=await v[B](...J,{...Q,gasLimit:m,gasPrice:i,maxFeePerGas:b,maxPriorityFeePerGas:K,nonce:Q?.nonce||await z.getTransactionCount(k)});return typeof s?.hash==="string"?s?.hash:s}let W=await _[B]?.(...J);return typeof W?.hash==="string"?W?.hash:W}}function g1({provider:T,chain:f}){return function({assetAddress:y,spenderAddress:L,from:G}){return rf({chain:f,isEIP1559Compatible:!0,provider:T})({abi:kT,contractAddress:y,funcName:"allowance",funcParams:[G,L]})}}function b2({provider:T,chain:f}){return async function({assetAddress:y,spenderAddress:L,from:G,amount:x=IT}){let Z=await g1({chain:f,provider:T})({assetAddress:y,from:G,spenderAddress:L});return gT.fromBigInt(Z).gte(gT.fromBigInt(BigInt(x)))}}function n2({signer:T,isEIP1559Compatible:f=!0,provider:X,chain:y}){return async function({assetAddress:G,spenderAddress:x,feeOptionKey:Z=j.Fast,amount:B,gasLimitFallback:J,from:Q,nonce:q}){let z=[x,BigInt(B||IT)],M=await T?.getAddress()||Q,_={abi:kT,contractAddress:G,funcName:"approve",funcParams:z,signer:T,txOverrides:{from:M}};if(sy(X)){let k=ny({chain:y,provider:X}),v=ey(X),F=await k(_);return v(F)}return rf({chain:y,isEIP1559Compatible:f,provider:X,signer:T})({..._,feeOption:Z,funcParams:z,txOverrides:{from:M,gasLimit:J?BigInt(J.toString()):void 0,nonce:q}})}}function j2({signer:T,isEIP1559Compatible:f=!0,provider:X}){return async function({assetValue:L,memo:G,recipient:x,feeOptionKey:Z=j.Fast,sender:B,...J}){let{hexlify:Q,toUtf8Bytes:q}=await import("ethers"),z=L.getBaseValue("bigint"),M=L.chain,_=B||await T?.getAddress(),W=d1({chain:M,isEIP1559Compatible:f,provider:X,signer:T});if(!_)throw new n("toolbox_evm_no_from_address");if(L.isGasAsset){let i={...J,data:Q(q(G||"")),feeOptionKey:Z,from:_,to:x,value:z};return W(i)}if(!yT(L,M))throw new n("toolbox_evm_no_contract_address");let{maxFeePerGas:v,maxPriorityFeePerGas:F,gasPrice:b}=(await jy({chain:M,isEIP1559Compatible:f,provider:X})())[Z],K=await cf({chain:M,provider:X,signer:T})({assetValue:L,data:Q(q(G||"")),gasPrice:b,maxFeePerGas:v,maxPriorityFeePerGas:F,memo:G,recipient:x,sender:_});return W(K)}}function i1({provider:T,signer:f}){return function({contractAddress:y,abi:L,funcName:G,funcParams:x=[],txOverrides:Z}){if(!y)throw new n("toolbox_evm_no_contract_address");let B=OT(y,L,T);return f?B.connect(f).getFunction(G).estimateGas(...x,Z):B.getFunction(G).estimateGas(...x,Z)}}function h2({provider:T,signer:f}){return async function({assetValue:y,recipient:L,memo:G,data:x,sender:Z,funcName:B,funcParams:J,txOverrides:Q}){let q=y.bigIntValue,z=y.isGasAsset?null:yT(y,y.chain);if(z&&B)return i1({provider:T,signer:f})({abi:kT,contractAddress:z,funcName:B,funcParams:J,txOverrides:Q});let{hexlify:M,toUtf8Bytes:_}=await import("ethers");return T.estimateGas({data:x?x:G?M(_(G)):void 0,from:Z,to:L,value:q})}}function d1({provider:T,signer:f,isEIP1559Compatible:X=!0,chain:y}){return async function({feeOptionKey:G=j.Fast,...x}){let{from:Z,to:B,data:J,value:Q,...q}=x;if(!f)throw new n("toolbox_evm_no_signer");if(!B)throw new n("toolbox_evm_no_to_address");let z={...q,data:J||"0x",from:Z,to:B,value:BigInt(Q||0)};if(sy(T))return ey(T)(z);let M=Z||await f.getAddress(),_=x.nonce||await T.getTransactionCount(M),W=(await T.getNetwork()).chainId,k=p2(z)||X,v=jy({chain:y,isEIP1559Compatible:X,provider:T}),F=k&&!(z.maxFeePerGas&&z.maxPriorityFeePerGas)||!z.gasPrice?Object.entries((await v())[G]).reduce((K,[i,m])=>({...K,[i]:DT(BigInt(m))}),{}):{},b;try{b=DT(z.gasLimit||await T.estimateGas(z)*11n/10n)}catch(K){throw new n("toolbox_evm_error_estimating_gas_limit",{error:K})}try{let K={...z,chainId:W,gasLimit:b,nonce:_,type:k?2:0,...F};try{return(await f.sendTransaction(K)).hash}catch(i){let m=await f.signTransaction({...K,from:M});return(await T.broadcastTransaction(m)).hash}}catch(K){throw new n("toolbox_evm_error_sending_transaction",{error:K})}}}function cf({provider:T,signer:f}){return async function({assetValue:y,memo:L,recipient:G,data:x,sender:Z,maxFeePerGas:B,maxPriorityFeePerGas:J,gasPrice:Q,...q}){let z=y.getBaseValue("bigint"),M=y.chain,_=Z||await f?.getAddress();if(!_)throw new n("toolbox_evm_no_from_address");if(S2(y)){let{hexlify:v,toUtf8Bytes:F}=await import("ethers");return{...q,data:x||v(F(L||"")),from:_,to:G,value:z}}let W=yT(y,M);if(!W)throw new n("toolbox_evm_no_contract_address");return ny({chain:y.chain,provider:T})({abi:kT,contractAddress:W,funcName:"transfer",funcParams:[G,z],txOverrides:{from:_,gasPrice:Q,maxFeePerGas:B,maxPriorityFeePerGas:J}})}}function o2({provider:T,signer:f,chain:X}){return async function({assetAddress:L,spenderAddress:G,amount:x,from:Z}){let B=await f?.getAddress()||Z,J=ny({chain:X,provider:T}),Q=["bigint","number"].includes(typeof x)?x:x||IT;return await J({abi:kT,contractAddress:L,funcName:"approve",funcParams:[G,BigInt(Q)],txOverrides:{from:B}})}}function m2({provider:T,isEIP1559Compatible:f=!0}){return async function({feeOption:y=j.Fast,chain:L,...G}){let Z=await jy({chain:L,isEIP1559Compatible:f,provider:T})(),B=await T.estimateGas(G),J=A2.from({chain:L}),{gasPrice:Q,maxFeePerGas:q,maxPriorityFeePerGas:z}=Z[y];if(!f&&Q)return J.set(gT.fromBigInt(Q*B,J.decimal));if(q&&z){let M=(q+z)*B;return J.set(gT.fromBigInt(M,J.decimal))}throw new n("toolbox_evm_no_gas_price")}}var IT,$2,K2,u2,p2=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var dT=P(()=>{dy();IT=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");$2=["payable","nonpayable"];K2={[o.Arbitrum]:By.ARB,[o.Aurora]:By.AURORA,[o.Avalanche]:By.AVAX,[o.Base]:By.BASE,[o.Berachain]:By.BERA,[o.BinanceSmartChain]:By.BSC,[o.Ethereum]:By.ETH,[o.Gnosis]:By.GNO,[o.Optimism]:By.OP,[o.Polygon]:By.MATIC},u2=[o.Arbitrum,o.Aurora,o.Base,o.Optimism]});import{Chain as Hy,FeeOption as c2,getRPCUrl as t2}from"@swapkit/helpers";import{HDNodeWallet as g2}from"ethers";import{match as i2,P as r1}from"ts-pattern";async function rT({provider:T,...f}){let X=await Wy(Hy.Ethereum)({provider:T,...f});async function y(L,G="0x5ba1e12693dc8f9c48aad8770482f4739beed696",x="aggregate",Z=c2.Fast){let B=await X.createContractTxObject({abi:h1,contractAddress:G,funcName:x,funcParams:[L]});return X.sendTransaction({...B,feeOptionKey:Z})}return{...X,multicall:y}}function Wy(T){return async function({provider:X,...y}){let L=await t2(T),G=X||await by(T,L),x=mf(T),Z=i2(y).with({phrase:r1.string},({phrase:J})=>g2.fromPhrase(J).connect(G)).with({signer:r1.any},({signer:J})=>J).otherwise(()=>{return});return{...ay({chain:T,isEIP1559Compatible:x,provider:G,signer:Z}),getBalance:RT(T).getBalance,getNetworkParams:of(T)}}}var aT,sT,eT,yf,Tf,ff,Gf,Lf;var af=P(()=>{tT();p1();dy();dT();aT=Wy(Hy.Arbitrum),sT=Wy(Hy.Aurora),eT=Wy(Hy.Avalanche),yf=Wy(Hy.Base),Tf=Wy(Hy.Berachain),ff=Wy(Hy.BinanceSmartChain),Gf=Wy(Hy.Gnosis),Lf=Wy(Hy.Polygon)});var a1;var s1=P(()=>{a1=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as TT,Chain as Xf,FeeOption as Cy,getChainConfig as d2,getRPCUrl as r2,SwapKitError as sf}from"@swapkit/helpers";import{Contract as a2,HDNodeWallet as s2}from"ethers";import{match as e2,P as e1}from"ts-pattern";function ef(T){return new a2(yL,a1,T)}function y5(T){return function(){let X=ef(T);if(X&&"l1BaseFee"in X)return X?.l1BaseFee();return}}function T5(T){return async function({from:X,to:y,nonce:L,...G}){let{Transaction:x}=await import("ethers");if(!y)throw new sf("toolbox_evm_invalid_transaction",{error:"Missing to address"});return x.from({...G,authorizationList:G.authorizationList,nonce:L?L:X?await T.getTransactionCount(X):0,to:y}).serialized}}function f5(T){return async function(X){let y=ef(T),L=await T5(T)(X);if(y&&"getL1Fee"in y)return y.getL1Fee(L)}}function G5(T){return async function(X){let y=await T.send("eth_gasPrice",[]),L=await T.estimateGas(X);return y.mul(L)}}function TL(T){return async function(X){let y=await f5(T)(X),L=await G5(T)(X);return y.add(L)}}function fL(T){return async function(X){let y=ef(T),L=await T5(T)(X);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(L)}}function GL(){let{baseDecimal:T,chainId:f,blockExplorerUrl:X,name:y,rpcUrl:L}=d2(Xf.Optimism);return{blockExplorerUrls:[X],chainId:f,chainName:y,nativeCurrency:{decimals:T,name:"Ethereum",symbol:Xf.Ethereum},rpcUrls:[L]}}async function LL(T){try{let{maxFeePerGas:f,maxPriorityFeePerGas:X,gasPrice:y}=await T.getFeeData(),L=y5(T)(),G=y;if(!(f&&X))throw new sf("toolbox_evm_no_fee_data");return{[Cy.Average]:{gasPrice:G,l1GasPrice:L,maxFeePerGas:f,maxPriorityFeePerGas:X},[Cy.Fast]:{gasPrice:TT(G,Cy.Fast),l1GasPrice:TT(L||0n,Cy.Fast),maxFeePerGas:f,maxPriorityFeePerGas:TT(X,Cy.Fast)},[Cy.Fastest]:{gasPrice:TT(G,Cy.Fastest),l1GasPrice:TT(L||0n,Cy.Fastest),maxFeePerGas:f,maxPriorityFeePerGas:TT(X,Cy.Fastest)}}}catch(f){throw new sf("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}async function xf({provider:T,...f}){let X=Xf.Optimism,y=await r2(X),L=T||await by(X,y),G=e2(f).with({phrase:e1.string},({phrase:B})=>s2.fromPhrase(B).connect(L)).with({signer:e1.any},({signer:B})=>B).otherwise(()=>{return}),x=ay({provider:L,signer:G}),Z=y5(L);return{...x,estimateGasPrices:LL(L),estimateL1Gas:fL(L),estimateL1GasCost:f5(L),estimateL2GasCost:G5(L),estimateTotalGasCost:TL(L),getBalance:RT(Xf.Optimism).getBalance,getL1GasPrice:Z,getNetworkParams:GL}}var yL="0x420000000000000000000000000000000000000f";var y0=P(()=>{tT();s1();dy();dT()});var X5={};Ly(X5,{toChecksumAddress:()=>c1,isStateChangingCall:()=>df,isBrowserProvider:()=>sy,getTokenAddress:()=>yT,getEvmToolbox:()=>L5,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>ey,getCreateContractTxObject:()=>ny,getCreateContract:()=>gf,getChecksumAddressFromAsset:()=>t1,evmValidateAddress:()=>tf,createContract:()=>OT,OPToolbox:()=>xf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>Lf,GNOToolbox:()=>Gf,ETHToolbox:()=>rT,BaseEVMToolbox:()=>ay,BSCToolbox:()=>ff,BERAToolbox:()=>Tf,BASEToolbox:()=>yf,AVAXToolbox:()=>eT,AURORAToolbox:()=>sT,ARBToolbox:()=>aT});import{Chain as Jy,SwapKitError as XL}from"@swapkit/helpers";async function L5(T,f){let X={...f,provider:f?.provider||await by(T)};switch(T){case Jy.Arbitrum:return aT(X);case Jy.Aurora:return sT(X);case Jy.Avalanche:return eT(X);case Jy.Base:return yf(X);case Jy.Berachain:return Tf(X);case Jy.BinanceSmartChain:return ff(X);case Jy.Gnosis:return Gf(X);case Jy.Optimism:return xf(X);case Jy.Polygon:return Lf(X);case Jy.Ethereum:return rT(X);default:throw new XL("toolbox_evm_not_supported",{chain:T})}}var T0=P(()=>{dy();af();y0();dT();af();y0()});var x5;var Z5=P(()=>{((X)=>{X.Test="goerli";X.Main="homestead"})(x5||={})});var B5={};Ly(B5,{toHexString:()=>DT,toChecksumAddress:()=>c1,isStateChangingCall:()=>df,isBrowserProvider:()=>sy,getTokenAddress:()=>yT,getProvider:()=>by,getNetworkParams:()=>of,getIsEIP1559Compatible:()=>mf,getEvmToolbox:()=>L5,getEvmApi:()=>RT,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>ey,getCreateContractTxObject:()=>ny,getCreateContract:()=>gf,getChecksumAddressFromAsset:()=>t1,evmValidateAddress:()=>tf,createCustomEvmApi:()=>P2,createContract:()=>OT,OPToolbox:()=>xf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>Lf,GNOToolbox:()=>Gf,EthNetwork:()=>x5,ETHToolbox:()=>rT,BaseEVMToolbox:()=>ay,BSCToolbox:()=>ff,BERAToolbox:()=>Tf,BASEToolbox:()=>yf,AVAXToolbox:()=>eT,AURORAToolbox:()=>sT,ARBToolbox:()=>aT});var J5=P(()=>{tT();dy();T0();Z5()});import{AssetValue as xL,Chain as ZL,SwapKitNumber as Q5}from"@swapkit/helpers";async function BL(T,f,X){try{let y=await T.query.system?.account?.(X);if(!y)return[f.set(0)];let{data:{free:L}}=y,G=Q5.fromBigInt(BigInt(L.toString()),f.decimal).getValue("string");return[f.set(G)]}catch(y){return console.error("Error fetching substrate balance:",y),[f.set(0)]}}async function JL(T,f,X){try{let y=await T.query.flip?.account?.(X);if(!y)return[f.set(0)];let L=y.balance||y.data?.balance;if(!L||L.isEmpty)return[f.set(0)];let G=Q5.fromBigInt(BigInt(L.toString()),f.decimal).getValue("string");return[f.set(G)]}catch(y){return console.error("Error fetching chainflip balance:",y),[f.set(0)]}}function q5(T,f){return function(y){let L=xL.from({chain:T});switch(T){case ZL.Chainflip:return JL(f,L,y);default:return BL(f,L,y)}}}var z5=()=>{};var QL,qL,zL,ly;var f0=P(()=>{QL={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},qL={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},zL={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},ly={DOT:QL,FLIP:qL,GENERIC:zL}});import{hexToU8a as _L,isHex as ML,u8aToHex as NL}from"@polkadot/util";import{decodeAddress as M5,encodeAddress as N5}from"@polkadot/util-crypto";import{AssetValue as YL,Chain as GT,getRPCUrl as UL,SwapKitError as Qy,SwapKitNumber as HL}from"@swapkit/helpers";import{match as WL,P as _5}from"ts-pattern";function CL(T,f){switch(T){case GT.Chainflip:return U5(f);case GT.Polkadot:return Y5(f);default:throw new Qy("toolbox_substrate_not_supported",{chain:T})}}function fT(T){return"address"in T}async function L0(T,f){let{Keyring:X}=await import("@polkadot/api"),{cryptoWaitReady:y}=await import("@polkadot/util-crypto");return await y(),new X({ss58Format:f,type:"sr25519"}).addFromUri(T)}function PL(T,f){let X=M5(T);return N5(X,f)}function H5(T,f){return ML(T)?_L(T):M5(T,void 0,f)}function W5(T,f="ss58",X){if(f==="hex")return NL(T);return N5(T,X)}async function Z0({generic:T,chain:f,...X}){let{ApiPromise:y,WsProvider:L}=await import("@polkadot/api"),G=await UL(f),x=new L(G),Z=await y.create({provider:x}),B=YL.from({chain:f}),J=T?ly.GENERIC:ly[f],Q=await WL(X).with({phrase:_5.string},({phrase:q})=>L0(q,ly[f].prefix)).with({signer:_5.any},({signer:q})=>q).otherwise(()=>{return});return C5({api:Z,chain:f,gasAsset:B,network:J,signer:Q})}var Y5=({generic:T=!1,...f}={})=>{return Z0({chain:GT.Polkadot,generic:T,...f})},U5=async({generic:T=!1,...f}={})=>{return{...await Z0({chain:GT.Chainflip,generic:T,...f})}},X0=(T,f)=>T.rpc.system.accountNextIndex(f),G0=(T,f)=>{try{let X=H5(T,f);return W5(X,"ss58",f),!0}catch(X){return!1}},x0=(T,{recipient:f,assetValue:X})=>T.tx.balances?.transferAllowDeath?.(f,X.getBaseValue("number")),RL=async(T,f,{recipient:X,assetValue:y,sender:L})=>{let G=x0(T,{assetValue:y,recipient:X});if(!G)throw new Qy("toolbox_substrate_transfer_error");let x=fT(f),Z=x?f.address:L;if(!Z)throw new Qy("core_transaction_invalid_sender_address");let B=await X0(T,Z);return(await G.signAndSend(x?f:Z,{nonce:B,signer:x?void 0:f})).toString()},DL=async(T,f,X,{recipient:y,assetValue:L,sender:G})=>{let x=x0(T,{assetValue:L,recipient:y}),Z=fT(f)?f.address:G;if(!Z)return;let B=await x?.paymentInfo(Z,{nonce:await X0(T,Z)})||{partialFee:0};return X.set(HL.fromBigInt(BigInt(B.partialFee.toString()),X.decimal).getValue("string"))},kL=async(T,f)=>{if(f)return T.send(f);return(await T.send()).toString()},IL=async(T,f)=>{return await f.signAsync(T)},OL=(T,f,X)=>{if(X)return f.signAndSend(T,X);return f.signAndSend(T).toString()},EL=async({signer:T,address:f,tx:X,callback:y,api:L})=>{let G=await X0(L,f);if(y)X.signAndSend(f,{nonce:G,signer:T},y);return X.signAndSend(f,{nonce:G,signer:T}).toString()},C5=({api:T,network:f,gasAsset:X,signer:y,chain:L})=>({api:T,broadcast:kL,convertAddress:PL,createKeyring:(G)=>L0(G,f.prefix),createTransaction:(G)=>x0(T,G),decodeAddress:H5,encodeAddress:W5,estimateTransactionFee:(G)=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");return DL(T,y,X,G)},gasAsset:X,getAddress:(G)=>{let x=G||y;if(!x)throw new Qy("core_wallet_not_keypair_wallet");return fT(x)?x.address:void 0},getBalance:q5(L||GT.Polkadot,T),network:f,sign:(G)=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");if(fT(y))return IL(y,G);throw new Qy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:G,callback:x,address:Z})=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");if(fT(y))return OL(y,G,x);if(Z)return EL({address:Z,api:T,callback:x,signer:y,tx:G});throw new Qy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(G)=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");return RL(T,y,G)},validateAddress:(G)=>G0(G,f.prefix)}),wL=({address:T,chain:f})=>{let{prefix:X}=f===GT.Polkadot?ly.DOT:ly.FLIP;return G0(T,X)||G0(T,ly.GENERIC.prefix)};var R5=P(()=>{z5();f0()});var B0={};Ly(B0,{substrateValidateAddress:()=>wL,isKeyringPair:()=>fT,getSubstrateToolbox:()=>CL,createSubstrateToolbox:()=>Z0,createKeyring:()=>L0,SubstrateNetwork:()=>ly,PolkadotToolbox:()=>Y5,ChainflipToolbox:()=>U5,BaseSubstrateToolbox:()=>C5});var J0=P(()=>{R5();f0()});import{networks as lL}from"@bitgo/utxo-lib";import{Chain as c,getRPCUrl as vL,RequestClient as Zf,SKConfig as I5,SwapKitError as vy,warnOnce as O5}from"@swapkit/helpers";import{networks as FL}from"bitcoinjs-lib";import ET from"coininfo";async function AL({chain:T,txHash:f}){let X=`${Bf(T)}/push/transaction`,y=JSON.stringify({data:f});try{let L=await Zf.post(X,{body:y,headers:{"Content-Type":"application/json"}});if(L.context.code!==200)throw new vy("toolbox_utxo_broadcast_failed",{error:L.context.error||"Transaction broadcast failed"});return L.data?.transaction_hash||f}catch(L){let G=await vL(T);if(G){let x=JSON.stringify({id:n1(),jsonrpc:"2.0",method:"sendrawtransaction",params:[f]}),Z=await Zf.post(G,{body:x,headers:{"Content-Type":"application/json"}});if(Z.error)throw new vy("toolbox_utxo_broadcast_failed",{error:Z.error?.message});if(Z.result.includes('"code":-26'))throw new vy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return Z.result}throw L}}function Bf(T){return`https://api.blockchair.com/${SL(T)}`}function D5(T){switch(T){case c.Bitcoin:return 5;case c.Dogecoin:return 1e4;case c.Litecoin:return 1;case c.Zcash:return 1;default:return 2}}function SL(T){switch(T){case c.BitcoinCash:return"bitcoin-cash";case c.Litecoin:return"litecoin";case c.Dash:return"dash";case c.Dogecoin:return"dogecoin";case c.Zcash:return"zcash";case c.Polkadot:return"polkadot";default:return"bitcoin"}}async function VL(T){try{let{feePerKb:f}=await Zf.get(`https://app.bitgo.com/api/v2/${T.toLowerCase()}/tx/fee`),X=f/1000;return Math.max(X,D5(T))}catch(f){return D5(T)}}async function Q0(T,f){let X=await Zf.get(`${T}${f?`${T.includes("?")?"&":"?"}key=${f}`:""}`);if(!X||X.context.code!==200)throw new vy("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return X.data}async function E5({address:T,chain:f,apiKey:X}){if(!T)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Q0(`${Bf(f)}/dashboards/address/${T}?transaction_details=true`,X))[T]}catch(y){return{address:{balance:0,transaction_count:0},utxo:[]}}}async function $L({address:T,chain:f,apiKey:X}){return(await E5({address:T,apiKey:X,chain:f}))?.address.balance||0}async function P5({chain:T,apiKey:f,txHash:X}){if(!X)throw new vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Q0(`${Bf(T)}/raw/transaction/${X}`,f))?.[X]?.raw_transaction||""}catch(y){return console.error("Failed to fetch raw transaction:",y),""}}async function KL({chain:T,address:f,apiKey:X,offset:y=0,limit:L=30}){return(await Q0(`${Bf(T)}/outputs?q=recipient(${f}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${L}&offset=${y}`,X)).map(({is_spent:B,script_hex:J,block_id:Q,transaction_hash:q,index:z,value:M,spending_signature_hex:_})=>({hash:q,index:z,is_confirmed:Q!==-1,is_spent:B,script_hex:J,txHex:_,value:M}))}function uL(T){return T.reduce((f,X)=>f+X.value,0)}function k5(T,f){let X=[...T].sort((y,L)=>L.value-y.value);if(f){let y=[],L=0;for(let G of X)if(y.push(G),L+=G.value,L>=f)break;return y}return X}async function w5({chain:T,address:f,apiKey:X,targetValue:y,accumulativeValue:L=0,offset:G=0,limit:x=30}){if(!f)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let Z=await KL({address:f,apiKey:X,chain:T,limit:x,offset:G,targetValue:y}),J=Z.length<x,Q=Z.filter(({is_spent:k})=>!k),q=uL(Q),z=L+q,M=y&&z>=y;if(J||M)return k5(Q,y);let _=await w5({accumulativeValue:z,address:f,apiKey:X,chain:T,limit:x,offset:G+x,targetValue:y}),W=[...Q,..._];return k5(W,y)}catch(Z){return console.error("Failed to fetch unspent UTXOs:",Z),[]}}async function bL({address:T,chain:f,apiKey:X,fetchTxHex:y=!0,targetValue:L}){let G=await w5({address:T,apiKey:X,chain:f,targetValue:L}),x=[];for(let{hash:Z,index:B,script_hex:J,value:Q}of G){let q;if(y)q=await P5({apiKey:X,chain:f,txHash:Z});x.push({address:T,hash:Z,index:B,txHex:q,value:Q,witnessUtxo:{script:Buffer.from(J,"hex"),value:Q}})}return x}function nL(T){let f=I5.get("apiKeys").blockchair||"";return O5({condition:!f,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(X)=>AL({chain:T,txHash:X}),getAddressData:(X)=>E5({address:X,apiKey:f,chain:T}),getBalance:(X)=>$L({address:X,apiKey:f,chain:T}),getRawTx:(X)=>P5({apiKey:f,chain:T,txHash:X}),getSuggestedTxFee:()=>VL(T),getUtxos:(X)=>bL({...X,apiKey:f,chain:T})}}function jL(T){return T}function e(T){let f=I5.get("apis")[T];if(f)return O5({condition:!0,id:"custom_utxo_api_warning",warning:"Using custom UTXO API. Be sure to implement all methods to avoid issues."}),f;return nL(T)}function qy(){return function(f){switch(f){case c.Bitcoin:return FL.bitcoin;case c.BitcoinCash:return ET.bitcoincash.main.toBitcoinJS();case c.Dash:return ET.dash.main.toBitcoinJS();case c.Litecoin:return ET.litecoin.main.toBitcoinJS();case c.Dogecoin:{let X={private:70615956,public:70617039},y=ET.dogecoin.test;return y.versions.bip32=X,ET.dogecoin.main.toBitcoinJS()}case c.Zcash:return lL.zcash;default:throw new vy("toolbox_utxo_not_supported",{chain:f})}}}var l5=P(()=>{CT()});import{SwapKitError as F5}from"@swapkit/helpers";import A5 from"bs58check";import S5 from"cashaddrjs";function z0(T){try{return Jf(T),!0}catch(f){return!1}}function _0(T){return Jf(T)?.network}function LT(T){let f=Jf(T);if(f?.format==="legacy")return T;return oL(f)}function PT(T){let f=Jf(T);return mL(f)}function Jf(T){try{let f=hL(T);if(f)return f}catch(f){}try{let f=pL(T);if(f)return f}catch(f){}throw new F5("toolbox_utxo_invalid_address",{address:T})}function hL(T){try{let f=A5.decode(T);if(f.length!==21)throw new F5("toolbox_utxo_invalid_address",{address:T});let X=f[0],y=Array.prototype.slice.call(f,1);switch(X){case $.legacy.mainnet.p2pkh:return{format:"legacy",hash:y,network:"mainnet",type:"p2pkh"};case $.legacy.mainnet.p2sh:return{format:"legacy",hash:y,network:"mainnet",type:"p2sh"};case $.legacy.testnet.p2pkh:return{format:"legacy",hash:y,network:"testnet",type:"p2pkh"};case $.legacy.testnet.p2sh:return{format:"legacy",hash:y,network:"testnet",type:"p2sh"};case $.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2pkh"};case $.bitpay.mainnet.p2sh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2sh"};default:return}}catch(f){return}}function pL(T){if(T.indexOf(":")!==-1)try{return v5(T)}catch(f){}else{let f=["bitcoincash","bchtest","bchreg"];for(let X of f)try{return v5(`${X}:${T}`)}catch(y){}}return}function v5(T){try{let{hash:f,prefix:X,type:y}=S5.decode(T);return{format:"cashaddr",hash:Array.prototype.slice.call(f,0),network:X==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch(f){return}}function oL(T){let f=$.legacy[T.network][T.type],X=Buffer.alloc(1+T.hash.length);return X[0]=f,X.set(T.hash,1),A5.encode(X)}function mL(T){let f=T.network==="mainnet"?"bitcoincash":"bchtest",X=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return S5.encode(f,X,y)}var q0,$;var V5=P(()=>{((X)=>{X.Mainnet="mainnet";X.Testnet="testnet"})(q0||={});$={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as cL}from"@swapkit/helpers";import{opcodes as tL,script as gL}from"bitcoinjs-lib";function zy(T){let f=Buffer.from(T,"utf8");return gL.compile([tL.OP_RETURN,f])}var iL=1000,qf=10,$5=10,dL=41,rL=107,zf,Qf,wT,lT=(T)=>{if(T.startsWith("bc1")||T.startsWith("tb1")||T.startsWith("ltc1")||T.startsWith("tltc1"))return"P2WPKH";if(T.startsWith("1")||T.startsWith("m")||T.startsWith("n")||T.startsWith("bitcoincash:q")||T.startsWith("bitcoincash:p")||T.startsWith("q")||T.startsWith("p")||T.startsWith("L")||T.startsWith("M")||T.startsWith("3")||T.startsWith("D")||T.startsWith("A")||T.startsWith("9")||T.startsWith("X")||T.startsWith("7")||T.startsWith("y")||T.startsWith("t1")||T.startsWith("t3")||T.startsWith("tm"))return"P2PKH";throw new cL("toolbox_utxo_invalid_address",{address:T})},XT=({inputs:T,outputs:f,feeRate:X})=>{let y=T[0]&&"address"in T[0]&&T[0].address?lT(T[0].address):"P2PKH",L=T.filter((x)=>x.value>=Qf["type"in x?x.type:"P2PKH"]*Math.ceil(X)).reduce((x,Z)=>x+Fy(Z),0),G=f?.reduce((x,Z)=>x+vT(Z),0)||wT[y];return qf+L+G},Fy=(T)=>{if("type"in T)return Qf[T.type];if("address"in T&&T.address)return Qf[lT(T.address)];return dL+rL},vT=(T,f)=>{if(T?.script)return $5+T.script.length+(T.script.length>=74?2:1);if(f)return wT[f];return wT.P2PKH};var M0=P(()=>{((X)=>{X.P2PKH="P2PKH";X.P2WPKH="P2WPKH"})(zf||={});Qf={["P2PKH"]:148,["P2WPKH"]:68},wT={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as hy,SwapKitError as aL}from"@swapkit/helpers";function _f(T){switch(T){case hy.Bitcoin:case hy.BitcoinCash:return 550;case hy.Dash:case hy.Litecoin:return 5500;case hy.Dogecoin:return 1e5;case hy.Zcash:return 546;default:throw new aL("toolbox_utxo_not_supported",{chain:T})}}function _y({inputs:T,outputs:f,feeRate:X=1,chain:y=hy.Bitcoin,changeAddress:L=""}){let G=Math.ceil(X),x=T[0]&&"address"in T[0]&&T[0].address?lT(T[0].address):"P2PKH",Z=T.filter((M)=>Fy(M)*G<=M.value),B=qf+f.reduce((M,_)=>M+vT(_,x),0),J=f.reduce((M,_)=>M+_.value,0),Q=B*G,q=0,z=[];for(let M of Z){let _=Fy(M),W=G*_;Q+=W,q+=M.value,z.push(M);let k=Q+J;if(q<k)continue;let v=q-k,F=G*vT({address:"",value:0},x);if(v>F){let b=F+Q,K=q-(J+b);if(K>Math.max(Fy({})*G,_f(y)))return{fee:b,inputs:z,outputs:f.concat({address:L,value:K})}}return{fee:Q,inputs:z,outputs:f}}return{fee:G*XT({feeRate:G,inputs:T,outputs:f})}}var K5=P(()=>{M0()});var xT=P(()=>{l5();V5();K5();M0()});import{networks as sL,address as eL}from"@bitgo/utxo-lib";import y8 from"bs58check";function py(T){return T.replace(/(bchtest:|bitcoincash:)/,"")}function Ay(T){let f=py(T);return z0(f)&&_0(f)==="mainnet"}function ZT(T){try{if(T.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let f=sL.zcash;try{return eL.toOutputScript(T,f),!0}catch{let X=y8.decode(T);if(X.length<21)return!1;let y=X[0];return y===f.pubKeyHash||y===f.scriptHash}}catch{return!1}}var FT=P(()=>{xT()});import Y0 from"@bitcoinerlab/secp256k1";import{ECPair as T8,HDNode as f8}from"@psf/bitcoincashjs-lib";import{HDKey as G8}from"@scure/bip32";import{mnemonicToSeedSync as u5}from"@scure/bip39";import{AssetValue as N0,applyFeeMultiplier as b5,Chain as yy,DerivationPath as L8,derivationPathToString as X8,FeeOption as Ry,NetworkDerivationPath as x8,SwapKitError as Dy,SwapKitNumber as Z8,updateDerivationPath as B8}from"@swapkit/helpers";import{address as J8,initEccLib as j5,Psbt as Q8,payments as n5}from"bitcoinjs-lib";import{ECPairFactory as q8}from"ecpair";function h5({inputs:T,outputs:f,chain:X,psbt:y,sender:L,compiledMemo:G}){for(let x of T){let Z=!!x.witnessUtxo&&!AT.includes(X)&&{witnessUtxo:x.witnessUtxo},B=AT.includes(X)&&{nonWitnessUtxo:x.txHex?Buffer.from(x.txHex,"hex"):void 0};y.addInput({hash:x.hash,index:x.index,...Z,...B})}for(let x of f){let Z="address"in x&&x.address?x.address:L,B=x.script;if(B&&!G)continue;let J=B?{script:G,value:0}:{address:Z,value:x.value};j5(Y0),y.addOutput(J)}return{inputs:T,psbt:y}}async function p5({assetValue:T,recipient:f,memo:X,feeRate:y,sender:L,fetchTxHex:G=!1}){let x=T.chain,Z=X?await zy(X):null,B=await c5({assetValue:T,fetchTxHex:G,memo:X,recipient:f,sender:L}),{inputs:J,outputs:Q}=_y({...B,chain:x,feeRate:y});if(!(J&&Q))throw new Dy("toolbox_utxo_insufficient_balance",{assetValue:T,sender:L});let q=await qy(),z=new Q8({network:q(x)});if(x===yy.Dogecoin)z.setMaximumFeeRate(650000000);let{psbt:M,inputs:_}=await h5({chain:x,compiledMemo:Z,inputs:J,outputs:Q,psbt:z,sender:L});return{inputs:_,psbt:M,utxos:B.inputs}}async function o5(){let T=await qy();return function({address:X,chain:y}){if(y===yy.BitcoinCash)return Ay(X);if(y===yy.Zcash)return ZT(X);try{return j5(Y0),J8.toOutputScript(X,T(y)),!0}catch(L){return!1}}}async function z8({chain:T,phrase:f,derivationPath:X}){let y=(await ST(T))({derivationPath:X,phrase:f});async function L(x){return await x.signAllInputs(y),x}function G(){return U0(T)(y)}return{getAddress:G,signTransaction:L}}async function oy({chain:T,...f}){let X="phrase"in f?f.phrase:void 0,y="index"in f?f.index||0:0,L=X8("derivationPath"in f&&f.derivationPath?f.derivationPath:B8(x8[T],{index:y})),G=X?await z8({chain:T,derivationPath:L,phrase:X}):("signer"in f)?f.signer:void 0;function x(){return Promise.resolve(G?.getAddress())}let Z=await o5(),B=await ST(T);return{accumulative:_y,broadcastTx:(J)=>e(T).broadcastTx(J),calculateTxSize:XT,createKeysForPath:B,createTransaction:p5,estimateMaxSendableAmount:_8(T),estimateTransactionFee:M8(T),getAddress:x,getAddressFromKeys:U0(T),getBalance:iy(T),getFeeRates:()=>VT(T),getInputsOutputsFee:m5,getPrivateKeyFromMnemonic:(J)=>{return B(J).toWIF()},transfer:N8(G),validateAddress:(J)=>Z({address:J,chain:T})}}async function m5({assetValue:T,feeOptionKey:f=Ry.Fast,feeRate:X,memo:y,sender:L,recipient:G}){let x=T.chain,Z=await c5({assetValue:T,memo:y,recipient:G,sender:L}),B=X?Math.floor(X):(await VT(x))[f];return _y({...Z,chain:x,feeRate:B})}function _8(T){return async function({from:X,memo:y,feeRate:L,feeOptionKey:G=Ry.Fast,recipients:x=1}){let Z=await e(T).getAddressData(X),B=L?Math.ceil(L):(await VT(T))[G],J=Z?.utxo.map((_)=>({..._,hash:"",type:"P2PKH"})).filter((_)=>_.value>Math.max(_f(T),Fy(_)*B));if(!J?.length)return N0.from({chain:T});let Q=N0.from({chain:T,value:J.reduce((_,W)=>_+W.value,0)}),q=typeof x==="number"?Array.from({length:x},()=>({address:X,value:0})):x;if(y){let _=await zy(y);q.push({address:X,script:_,value:0})}let M=XT({feeRate:B,inputs:J,outputs:q})*B;return Q.sub(M)}}function M8(T){return async(f)=>{let X=await m5(f);return N0.from({chain:T,value:Z8.fromBigInt(BigInt(X.fee),8).getValue("string")})}}async function ST(T){let f=await qy();switch(T){case yy.BitcoinCash:return function({phrase:y,derivationPath:L=`${L8.BCH}/0`,wif:G}){let x=f(T);if(G)return T8.fromWIF(G,x);if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return f8.fromSeedBuffer(Buffer.from(u5(y)),x).derivePath(L).keyPair};case yy.Bitcoin:case yy.Dogecoin:case yy.Litecoin:case yy.Zcash:case yy.Dash:return function({phrase:y,wif:L,derivationPath:G}){if(!(L||y))throw new Dy("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let x=q8(Y0),Z=f(T);if(L)return x.fromWIF(L,Z);let B=u5(y),J=G8.fromMasterSeed(B,Z).derive(G);if(!J.privateKey)throw new Dy("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return x.fromPrivateKey(Buffer.from(J.privateKey),{network:Z})};default:throw new Dy("toolbox_utxo_not_supported",{chain:T})}}function U0(T){let f=qy();return function(y){if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let L=AT.includes(T)?n5.p2pkh:n5.p2wpkh,{address:G}=L({network:f(T),pubkey:y.publicKey});if(!G)throw new Dy("toolbox_utxo_invalid_address",{error:"Address not defined"});return G}}function N8(T){return async function({memo:X,recipient:y,feeOptionKey:L,feeRate:G,assetValue:x}){let Z=await T?.getAddress(),B=x.chain;if(!(T&&Z))throw new Dy("toolbox_utxo_no_signer");if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let J=G||(await VT(B))[L||Ry.Fast],{psbt:Q}=await p5({assetValue:x,feeRate:J,memo:X,recipient:y,sender:Z}),q=await T.signTransaction(Q);return q.finalizeAllInputs(),e(B).broadcastTx(q.extractTransaction().toHex())}}async function VT(T){let f=await e(T).getSuggestedTxFee();return{[Ry.Average]:f,[Ry.Fast]:b5(f,Ry.Fast),[Ry.Fastest]:b5(f,Ry.Fastest)}}async function c5({assetValue:T,recipient:f,memo:X,sender:y,fetchTxHex:L=!1}){let G=T.chain,x=(await VT(G))[Ry.Fastest],Z=L||AT.includes(G),B=T.getBaseValue("number"),J=Math.ceil(B+x*5000);return{inputs:await e(G).getUtxos({address:y,fetchTxHex:Z,targetValue:J}),outputs:[{address:f,value:B},...X?[{address:"",script:await zy(X),value:0}]:[]]}}var AT;var $T=P(()=>{CT();xT();FT();AT=[yy.Dash,yy.Dogecoin,yy.Zcash,yy.BitcoinCash]});import{address as Y8,Transaction as U8,TransactionBuilder as H8}from"@psf/bitcoincashjs-lib";import{Chain as W8,derivationPathToString as C8,FeeOption as R8,NetworkDerivationPath as D8,SwapKitError as BT,updateDerivationPath as k8}from"@swapkit/helpers";import{Psbt as I8}from"bitcoinjs-lib";function my(T){return py(PT(T))}function O8(T){function f({builder:y,utxos:L}){return L.forEach((G,x)=>{y.sign(x,T,void 0,65,G.witnessUtxo?.value)}),y.build()}return{getAddress:()=>{let y=T.getAddress(0);return Promise.resolve(my(y))},signTransaction:f}}async function H0(T){let f="phrase"in T?T.phrase:void 0,X="index"in T?T.index||0:0,y=C8("derivationPath"in T&&T.derivationPath?T.derivationPath:k8(D8[xy],{index:X})),L=f?(await ST(xy))({derivationPath:y,phrase:f}):void 0,G=L?O8(L):("signer"in T)?T.signer:void 0;function x(){return Promise.resolve(G?.getAddress())}let{getBalance:Z,getFeeRates:B,broadcastTx:J,...Q}=await oy({chain:xy});function q(z,M=!0){return Z(py(PT(z)))}return{...Q,broadcastTx:J,buildTx:P8,createTransaction:t5,getAddress:x,getAddressFromKeys:w8,getBalance:q,getFeeRates:B,stripPrefix:py,stripToCashAddress:my,transfer:E8({broadcastTx:J,getFeeRates:B,signer:G}),validateAddress:Ay}}async function t5({assetValue:T,recipient:f,memo:X,feeRate:y,sender:L}){if(!Ay(f))throw new BT("toolbox_utxo_invalid_address",{address:f});let G=Math.ceil(T.getBaseValue("number")+y*7500),x=await e(xy).getUtxos({address:my(L),fetchTxHex:!0,targetValue:G}),Z=X?await zy(X):null,B=[];B.push({address:f,value:T.getBaseValue("number")});let{inputs:J,outputs:Q}=_y({chain:xy,feeRate:y,inputs:x,outputs:B});if(!(J&&Q))throw new BT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:L});let q=await qy(),z=new H8(q(xy));await Promise.all(J.map(async(M)=>{let _=await e(xy).getRawTx(M.hash);z.addInput(U8.fromBuffer(Buffer.from(_,"hex")),M.index)}));for(let M of Q){let _="address"in M&&M.address?M.address:LT(L),W=await qy(),k=Y8.toOutputScript(LT(_),W(xy));z.addOutput(k,M.value)}if(Z)z.addOutput(Z,0);return{builder:z,utxos:J}}function E8({broadcastTx:T,getFeeRates:f,signer:X}){return async function({recipient:L,assetValue:G,feeOptionKey:x=R8.Fast,...Z}){let B=await X?.getAddress();if(!(X&&B))throw new BT("toolbox_utxo_no_signer");if(!L)throw new BT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let J=Z.feeRate||(await f())[x],{builder:Q,utxos:q}=await t5({...Z,assetValue:G,feeRate:J,recipient:L,sender:B}),M=(await X.signTransaction({builder:Q,utxos:q})).toHex();return T(M)}}async function P8({assetValue:T,recipient:f,memo:X,feeRate:y,sender:L,setSigHashType:G}){let x=PT(f);if(!Ay(x))throw new BT("toolbox_utxo_invalid_address",{address:x});let Z=Math.ceil(T.getBaseValue("number")+y*7500),B=await e(xy).getUtxos({address:my(L),fetchTxHex:!1,targetValue:Z}),J=Number(y.toFixed(0)),Q=X?await zy(X):null,q=[];if(q.push({address:LT(f),value:T.getBaseValue("number")}),Q)q.push({script:Q,value:0});let{inputs:z,outputs:M}=_y({chain:xy,feeRate:J,inputs:B,outputs:q});if(!(z&&M))throw new BT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:L});let _=await qy(),W=new I8({network:_(xy)});for(let{hash:k,index:v,witnessUtxo:F}of z)W.addInput({hash:k,index:v,sighashType:G?65:void 0,witnessUtxo:F});for(let k of M){let v="address"in k&&k.address?k.address:LT(L),F=k.script?Q?{script:Q,value:0}:void 0:{address:v,value:k.value};if(F)W.addOutput(F)}return{inputs:z,psbt:W,utxos:B}}function w8(T){let f=T.getAddress(0);return my(f)}var xy;var Mf=P(()=>{xT();$T();FT();xy=W8.BitcoinCash});import{bitgo as l8,crypto as v8,ECPair as i5,networks as F8,address as A8}from"@bitgo/utxo-lib";import{HDKey as d5}from"@scure/bip32";import{mnemonicToSeedSync as r5}from"@scure/bip39";import{Chain as Nf,derivationPathToString as S8,FeeOption as V8,NetworkDerivationPath as $8,SKConfig as K8,SwapKitError as Yf,updateDerivationPath as u8}from"@swapkit/helpers";import b8 from"bs58check";import{match as n8,P as W0}from"ts-pattern";function a5(){return F8.zcash}function s5(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
+ `,pubKeyHash:28,scriptHash:28,wif:128}}function j8({phrase:T,derivationPath:f}){let X=r5(T),L=d5.fromMasterSeed(X).derive(f);if(!L.privateKey)throw new Yf("toolbox_utxo_invalid_params");let G=s5(),x=i5.fromPrivateKey(Buffer.from(L.privateKey),{network:G}),Z=v8.hash160(x.publicKey),{isStagenet:B}=K8.get("envs"),J=B?Buffer.from([29,37]):Buffer.from([28,184]),Q=Buffer.concat([J,Z]),q=b8.encode(Q);return{getAddress:()=>Promise.resolve(q),signTransaction:(z)=>{let M=z.signAllInputs(x);return Promise.resolve(M)}}}function h8({inputs:T,outputs:f,psbt:X,sender:y,compiledMemo:L}){for(let G of T){let x=!!G.witnessUtxo&&{witnessUtxo:{...G.witnessUtxo,value:BigInt(G.value)}},Z=!G.witnessUtxo&&{nonWitnessUtxo:G.txHex?Buffer.from(G.txHex,"hex"):void 0};X.addInput({hash:G.hash,index:G.index,...x,...Z})}for(let G of f){let x="address"in G&&G.address?G.address:y,Z=G.script;if(Z&&!L)continue;let B=Z?{script:L,value:0n}:{script:A8.toOutputScript(x,a5()),value:BigInt(G.value)};X.addOutput(B)}return{inputs:T,psbt:X}}async function g5(T){let{assetValue:f,recipient:X,memo:y,feeRate:L,sender:G,fetchTxHex:x}=T,Z=y?zy(y):null,B=await e(Nf.Zcash).getUtxos({address:G,fetchTxHex:x!==!1}),J=[{address:X,value:Number(f.getBaseValue("string"))},...Z?[{script:Z,value:0}]:[]],{inputs:Q,outputs:q}=_y({chain:Nf.Zcash,changeAddress:G,feeRate:L,inputs:B,outputs:J});if(!(Q&&q))throw new Yf("toolbox_utxo_insufficient_balance",{assetValue:f,sender:G});let z=l8.createPsbtForNetwork({network:a5()},{version:455}),_=3268858036,W=Buffer.concat([Buffer.of(252),Buffer.of(5),Buffer.from("BITGO"),Buffer.of(0)]),k=Buffer.allocUnsafe(4);k.writeUInt32LE(_>>>0,0),z.addUnknownKeyValToGlobal({key:W,value:k});let{psbt:v,inputs:F}=await h8({compiledMemo:Z,inputs:Q,outputs:q,psbt:z,sender:G});return{inputs:F,outputs:q,psbt:v}}async function C0(T){let f=await n8(T).with({signer:W0.not(W0.nullish)},({signer:x})=>Promise.resolve(x)).with({phrase:W0.string},({phrase:x,derivationPath:Z,index:B=0})=>{let J=Z||$8[Nf.Zcash]||[44,133,0,0,0],Q=u8(J,{index:B}),q=S8(Q);return j8({derivationPath:q,phrase:x})}).otherwise(()=>Promise.resolve(void 0)),X=await oy({chain:Nf.Zcash,signer:f});async function y({recipient:x,assetValue:Z,feeOptionKey:B=V8.Fast,...J}){let Q=await f?.getAddress();if(!(f&&Q))throw new Yf("toolbox_utxo_no_signer");let q=J.feeRate||(await X.getFeeRates())[B],{psbt:z}=await g5({...J,assetValue:Z,feeRate:q,recipient:x,sender:Q}),M=await f.signTransaction(z);return M.finalizeAllInputs(),X.broadcastTx(M.extractTransaction().toHex())}function L({phrase:x,derivationPath:Z="m/44'/133'/0'/0/0"}){let B=r5(x),Q=d5.fromMasterSeed(B).derive(Z);if(!Q.privateKey)throw new Yf("toolbox_utxo_invalid_params");let q=s5();return i5.fromPrivateKey(Buffer.from(Q.privateKey),{network:q})}function G({phrase:x,derivationPath:Z="m/44'/133'/0'/0/0"}){return L({derivationPath:Z,phrase:x}).toWIF()}return{...X,createKeysForPath:L,createTransaction:g5,getPrivateKeyFromMnemonic:G,transfer:y,validateAddress:ZT}}var R0=P(()=>{xT();$T();FT()});import{Chain as JT,SwapKitError as p8}from"@swapkit/helpers";async function o8(T,f){switch(T){case JT.BitcoinCash:return await H0(f||{});case JT.Zcash:return await C0(f);case JT.Bitcoin:case JT.Dogecoin:case JT.Litecoin:case JT.Dash:return await oy({chain:T,...f});default:throw new p8("toolbox_utxo_not_supported",{chain:T})}}var e5=P(()=>{Mf();$T();R0();Mf();FT()});var D0={};Ly(D0,{validateZcashAddress:()=>ZT,toLegacyAddress:()=>LT,toCashAddress:()=>PT,stripToCashAddress:()=>my,stripPrefix:()=>py,nonSegwitChains:()=>AT,isValidAddress:()=>z0,getUtxoToolbox:()=>o8,getUtxoNetwork:()=>qy,getUtxoApi:()=>e,getUTXOAddressValidator:()=>o5,getScriptTypeForAddress:()=>lT,getOutputSize:()=>vT,getInputSize:()=>Fy,getDustThreshold:()=>_f,getCreateKeysForPath:()=>ST,detectAddressNetwork:()=>_0,createZcashToolbox:()=>C0,createUTXOToolbox:()=>oy,createCustomUtxoApi:()=>jL,createBCHToolbox:()=>H0,compileMemo:()=>zy,calculateTxSize:()=>XT,bchValidateAddress:()=>Ay,addressFromKeysGetter:()=>U0,addInputsAndOutputs:()=>h5,accumulative:()=>_y,UtxoNetwork:()=>q0,UTXOScriptType:()=>zf,TX_OVERHEAD:()=>qf,OutputSizes:()=>wT,OP_RETURN_OVERHEAD:()=>$5,MIN_TX_FEE:()=>iL,InputSizes:()=>Qf});var k0=P(()=>{xT();e5();Mf();$T();R0()});import{AssetValue as I0,Chain as ty,DerivationPath as m8,derivationPathToString as c8,getChainConfig as fG,getRPCUrl as t8,NetworkDerivationPath as g8,SwapKitError as gy,updateDerivationPath as i8}from"@swapkit/helpers";import{match as d8,P as yG}from"ts-pattern";async function r8(T){try{let f=await fetch(`https://lite-api.jup.ag/tokens/v1/token/${T}`);if(!f.ok)return null;return await f.json()}catch{return null}}async function a8(T){let f=await cy(),{PublicKey:X}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),L=new X(T),G=[],x=await f.getBalance(L);if(x>0){let{baseDecimal:B}=fG(ty.Solana);G.push(I0.from({chain:ty.Solana,fromBaseDecimal:B,value:x}))}let Z=await f.getParsedTokenAccountsByOwner(L,{programId:y});for(let{account:B}of Z.value){let J=B.data.parsed.info,Q=J.mint,q=J.tokenAmount.amount;if(Number(q)===0)continue;let z=await r8(Q),M=z?.symbol||"UNKNOWN",_=z?.decimals||J.tokenAmount.decimals;G.push(I0.from({asset:`${ty.Solana}.${M}-${Q}`,fromBaseDecimal:_,value:q}))}return G}async function P0(){let{PublicKey:T}=await import("@solana/web3.js");return(f)=>{try{let X=new T(f);return T.isOnCurve(X.toBytes())}catch(X){return!1}}}async function s8(T){let f=T&&"index"in T?T.index||0:0,X=c8(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:i8(g8[ty.Solana],{index:f})),y=await d8(T).with({phrase:yG.string},({phrase:G})=>E0({derivationPath:X,phrase:G})).with({signer:yG.any},({signer:G})=>G).otherwise(()=>{return});function L(){return y?.publicKey?TG(y.publicKey):""}return{broadcastTransaction:O0(cy),createKeysForPath:E0,createTransaction:w0(cy),createTransactionFromInstructions:fX,estimateTransactionFee:e8(cy),getAddress:L,getAddressFromPubKey:TG,getAddressValidator:P0,getBalance:(G)=>{let x=G||L();if(!x)throw new gy("core_wallet_connection_not_found");return a8(x)},getConnection:cy,getPubkeyFromAddress:l0,signTransaction:LX(cy,y),transfer:GX(cy,y)}}function e8(T){return async({recipient:f,assetValue:X,memo:y,isProgramDerivedAddress:L,sender:G})=>{let x=await T(),B=(await w0(T)({assetValue:X,isProgramDerivedAddress:L,memo:y,recipient:f,sender:G})).compileMessage(),J=await x.getFeeForMessage(B);if(J.value===null)throw new gy("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:Q}=fG(ty.Solana);return I0.from({chain:ty.Solana,fromBaseDecimal:Q,value:J.value})}}async function cy(){let{Connection:T}=await import("@solana/web3.js"),f=await t8(ty.Solana);return new T(f,"confirmed")}function yX(T){return async({assetValue:f,recipient:X,sender:y,isProgramDerivedAddress:L})=>{let G=await T(),x=await l0(y);if(f.isGasAsset){let{Transaction:Z,SystemProgram:B,PublicKey:J}=await import("@solana/web3.js");return new Z().add(B.transfer({fromPubkey:x,lamports:f.getBaseValue("number"),toPubkey:new J(X)}))}if(f.address)return TX({amount:f.getBaseValue("number"),connection:G,decimals:f.decimal,from:x,isProgramDerivedAddress:L,recipient:X,tokenAddress:f.address});return}}async function TX({tokenAddress:T,recipient:f,from:X,connection:y,amount:L,decimals:G,isProgramDerivedAddress:x}){let{getAssociatedTokenAddress:Z,getAccount:B,createAssociatedTokenAccountInstruction:J,createTransferCheckedInstruction:Q}=await import("@solana/spl-token"),{Transaction:q,PublicKey:z}=await import("@solana/web3.js"),M=new q,_=new z(T),W=await Z(_,X),k=new z(f),v=await Z(_,k,x),F=!1;try{await B(y,v),F=!0}catch(b){}if(!F)M.add(J(X,v,k,_));return M.add(Q(W,_,v,X,L,G)),M}function w0(T){return async({recipient:f,assetValue:X,memo:y,isProgramDerivedAddress:L,sender:G})=>{let{createMemoInstruction:x}=await import("@solana/spl-memo"),Z=await l0(G),B=await P0();if(!(L||B(f)))throw new gy("core_transaction_invalid_recipient_address");let J=await T(),Q=await yX(T)({assetValue:X,isProgramDerivedAddress:L,recipient:f,sender:G});if(!Q)throw new gy("core_transaction_invalid_sender_address");if(y)Q.add(x(y));let q=await J.getLatestBlockhash();return Q.recentBlockhash=q.blockhash,Q.feePayer=Z,Q}}async function fX({instructions:T}){let{Transaction:f}=await import("@solana/web3.js"),X=new f().add(...T);if(!X)throw new gy("core_transaction_invalid_sender_address");return X}function GX(T,f){return async({recipient:X,assetValue:y,memo:L,isProgramDerivedAddress:G})=>{if(!f)throw new gy("core_transaction_invalid_sender_address");let x=f.publicKey?.toString()??(await f.connect()).publicKey.toString(),Z=await w0(T)({assetValue:y,isProgramDerivedAddress:G,memo:L,recipient:X,sender:x});if("signTransaction"in f){let B=await f.signTransaction(Z);return O0(T)(B)}return Z.sign(f),O0(T)(Z)}}function O0(T){return async(f)=>{return(await T()).sendRawTransaction(f.serialize())}}function LX(T,f){return async(X)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!f)throw new gy("toolbox_solana_no_signer");if(!(X instanceof y)){let G=await(await T()).getLatestBlockhash();X.recentBlockhash=G.blockhash,X.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(X);return await X.sign([f]),X}}async function E0({phrase:T,derivationPath:f=m8.SOL}){let{HDKey:X}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:y}=await import("@scure/bip39"),{Keypair:L}=await import("@solana/web3.js"),G=y(T),x=X.fromMasterSeed(G);return L.fromSeed(x.derive(f,!0).privateKey)}function TG(T){return T.toString()}async function l0(T){let{PublicKey:f}=await import("@solana/web3.js");return new f(T)}var GG=()=>{};var v0={};Ly(v0,{getSolanaToolbox:()=>s8,getSolanaAddressValidator:()=>P0,createKeysForPath:()=>E0});var F0=P(()=>{GG()});import{derivationPathToString as XX,SwapKitError as xX}from"@swapkit/helpers";import{KeyPairSigner as ZX}from"near-api-js";async function KT(){let{validateAccountId:T}=await import("near-sdk-js");return(f)=>{try{return T(f)}catch{let X=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return f.length>=2&&f.length<=64&&X.test(f)}}}async function Uf(T){let{parseSeedPhrase:f}=await import("near-seed-phrase"),{KeyPair:X}=await import("near-api-js"),y=T.index||0,L=T.derivationPath?XX(T.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:G}=f(T.phrase,L),x=X.fromString(G);return XG(x)}async function A0(T){let{KeyPair:f}=await import("near-api-js/lib/utils"),X=f.fromString(T);return XG(X)}function XG(T){return new LG(T)}async function Hf(T,f){let y=(await T.query({account_id:f,finality:"final",request_type:"view_access_key_list"})).keys.find((Z)=>Z.access_key.permission==="FullAccess");if(!y)throw new xX("toolbox_near_invalid_address");let{utils:L}=await import("near-api-js"),G=L.PublicKey.fromString(y.public_key);return{nonce:y.access_key.nonce||0,publicKey:G}}var LG;var S0=P(()=>{LG=class LG extends ZX{#y;constructor(T){super(T);this.#y=T}getAddress(){let T=this.#y.getPublicKey(),f=Buffer.from(T.data).toString("hex");return Promise.resolve(f)}}});function V0(T){return"recipient"in T&&"amount"in T&&!("contractId"in T)}function $0(T){return"contractId"in T&&"methodName"in T}function K0(T){return"actions"in T}function u0(T){return"newAccountId"in T}function b0(T){return"contractCode"in T}function n0(T){return"customEstimator"in T}function j0(T){let f=0;for(let X of T)switch(X.enum){case"transfer":f+=Number(t.SIMPLE_TRANSFER);break;case"functionCall":f+=Number(t.CONTRACT_CALL);break;case"createAccount":f+=Number(t.ACCOUNT_CREATION);break;case"deployContract":f+=Number(t.CONTRACT_DEPLOYMENT);break;case"addKey":f+=Number(t.ACCESS_KEY_ADDITION);break;case"deleteKey":f+=Number(t.ACCESS_KEY_DELETION);break;case"stake":f+=Number(t.STAKE);break;default:f+=Number(t.CONTRACT_CALL)}return f.toString()}function h0(T){if(T==="ft_transfer"||T==="ft_transfer_call")return t.TOKEN_TRANSFER;if(T==="storage_deposit")return t.STORAGE_DEPOSIT;return t.CONTRACT_CALL}function BX(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function JX(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var t;var p0=P(()=>{t={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function Wf({account:T,contractId:f,viewMethods:X,changeMethods:y}){let{Contract:L}=await import("near-api-js");return new L(T,f,{changeMethods:y,useLocalViewExecution:!0,viewMethods:X})}async function o0({contractId:T,account:f}){let X=(await import("bn.js")).default,y=await Wf({account:f,changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"],contractId:T,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"]}),L=async(G)=>{if(!await y.storage_balance_of({account_id:G})){let B=(await y.storage_balance_bounds())?.min||"1250000000000000000000";await y.storage_deposit({account_id:G},new X("100000000000000"),new X(B))}};return{balanceOf:(G)=>y.ft_balance_of({account_id:G}),contract:y,ensureStorage:L,metadata:()=>y.ft_metadata(),storageBalanceOf:(G)=>y.storage_balance_of({account_id:G}),storageDeposit:(G,x)=>y.storage_deposit({account_id:G},new X("100000000000000"),new X(x||"1250000000000000000000")),totalSupply:()=>y.ft_total_supply(),transfer:async(G,x,Z)=>{return await L(G),y.ft_transfer({amount:x,memo:Z,receiver_id:G},new X("100000000000000"),new X("1"))},transferCall:async(G,x,Z,B)=>{return await L(G),y.ft_transfer_call({amount:x,memo:B,msg:Z,receiver_id:G},new X("100000000000000"),new X("1"))}}}import{AssetValue as xG,Chain as QT,getChainConfig as ZG,getRPCUrl as QX,SwapKitError as g}from"@swapkit/helpers";async function qX(T){let{P:f,match:X}=await import("ts-pattern"),{providers:y}=await import("near-api-js"),L=await X(T).with({phrase:f.string},async(N)=>{return await Uf(N)}).with({signer:f.any},({signer:N})=>N).otherwise(()=>{return}),G=await QX(QT.Near),x=new y.JsonRpcProvider({url:G});async function Z(N){let{Account:Y}=await import("near-api-js"),R=N||await B();return new Y(R,x,L)}async function B(){if(!L)throw new g("toolbox_near_no_signer");return await L.getAddress()}async function J(N){if(!L)throw new g("toolbox_near_no_signer");let{recipient:Y,assetValue:R}=N;if(!(await KT())(Y))throw new g("toolbox_near_invalid_address");let E=await Z();if(R.isGasAsset===!1){let l=R.address;if(!l)throw new g("toolbox_near_missing_contract_address");let S=R.getBaseValue("string");return b({args:{amount:S,memo:N.memo,receiver_id:Y},contractId:l,methodName:"ft_transfer"})}try{let l=R.getBaseValue("string");return(await E.transfer({amount:l,receiverId:Y})).transaction_outcome.id}catch(l){throw new g("toolbox_near_transfer_failed",{error:l})}}async function Q(N){let{recipient:Y,assetValue:R,memo:O,attachedDeposit:E,sender:l,functionCall:S}=N,u=await KT();if(!u(Y))throw new g("toolbox_near_invalid_address",{recipient:Y});if(!u(l))throw new g("toolbox_near_invalid_address",{signerId:l});if(S)return z({...S,sender:l});if(!R.isGasAsset){let $y=R.address;if(!$y)throw new g("toolbox_near_missing_contract_address");return z({args:{amount:R.getBaseValue("string"),memo:O||null,receiver_id:Y},attachedDeposit:E||"1",contractId:$y,gas:"250000000000000",methodName:"ft_transfer",sender:l})}let{publicKey:V,nonce:Ty}=await Hf(x,l),fy=R.getBaseValue("bigint"),{transactions:d,utils:Ny}=await import("near-api-js"),Vy=[d.transfer(fy)];if(O&&E)Vy.push(d.functionCall("memo",{memo:O},BigInt("250000000000000"),BigInt(E)));let bT=await x.block({finality:"final"}),Cf=Ny.serialize.base_decode(bT.header.hash);return d.createTransaction(l,V,Y,Ty+1,Vy,Cf)}async function q(N){let{SCHEMA:Y}=await import("near-api-js/lib/transaction"),{utils:R}=await import("near-api-js"),O=R.serialize.serialize(Y.Transaction,N);return Buffer.from(O).toString("base64")}async function z(N){let{sender:Y}=N,{publicKey:R,nonce:O}=await Hf(x,Y),{transactions:E,utils:l}=await import("near-api-js"),S=await x.block({finality:"final"}),u=l.serialize.base_decode(S.header.hash),V=[E.functionCall(N.methodName,Buffer.from(JSON.stringify(N.args)),BigInt(N.gas),BigInt(N.attachedDeposit))];return E.createTransaction(Y,R,N.contractId,O+1,V,u)}async function M(N){let{transactions:Y}=await import("near-api-js");return Y.functionCall(N.methodName,Buffer.from(JSON.stringify(N.args)),BigInt(N.gas),BigInt(N.attachedDeposit))}async function _(N){if(!L)throw new g("toolbox_near_no_signer");let[Y,R]=await L.signTransaction(N);return R}async function W(N){return(await x.sendTransaction(N)).transaction.hash}async function k(N){if("assetValue"in N){let E=BigInt("115123062500")+BigInt("108059500000"),l=await v(),S=E*BigInt(l.toString()),{baseDecimal:u}=ZG(QT.Near);return xG.from({chain:QT.Near,fromBaseDecimal:u,value:S.toString()})}let Y=L?await Z():void 0;return s(N,Y)}async function v(){try{return await x.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function F(N,Y,R){if(!L)throw new g("toolbox_near_no_signer");let O=await Z(),{utils:E}=await import("near-api-js"),l=E.format.parseNearAmount(R)||"0";return(await O.createAccount(N,E.PublicKey.fromString(Y),BigInt(l))).transaction.hash}async function b(N){try{if(!L)throw new g("toolbox_near_no_signer");let{transactions:Y}=await import("near-api-js"),{contractId:R,methodName:O,args:E,deposit:l}=N,S=await Z(),u=await s({args:E||{},contractId:R,methodName:O}),V=Y.functionCall(O,E||{},u.getBaseValue("bigint"),BigInt(l||"1"));return(await S.signAndSendTransaction({actions:[V],receiverId:R})).transaction_outcome.id}catch(Y){throw new g("toolbox_near_transfer_failed",{error:Y})}}async function K(N){let Y=await Z();return Wf({account:Y,changeMethods:N.changeMethods,contractId:N.contractId,viewMethods:N.viewMethods})}async function i(N){if(!L)throw new g("toolbox_near_no_signer");if(N.actions.length===0)throw new g("toolbox_near_empty_batch");return(await(await Z()).signAndSendTransaction({actions:N.actions,receiverId:N.receiverId})).transaction.hash}async function m(N){let Y=await Z();return o0({account:Y,contractId:N})}async function s(N,Y){let{baseDecimal:R}=ZG(QT.Near),O=await X(N).when(V0,()=>t.SIMPLE_TRANSFER).when($0,(S)=>h0(S.methodName)).when(K0,(S)=>j0(S.actions)).when(u0,()=>t.ACCOUNT_CREATION).when(b0,()=>t.CONTRACT_DEPLOYMENT).when(n0,(S)=>{if(!Y)throw new g("toolbox_near_no_account");return S.customEstimator(Y)}).otherwise(()=>{throw new g("toolbox_near_invalid_gas_params")}),l=BigInt(O)*BigInt(1000000000000);return xG.from({chain:QT.Near,fromBaseDecimal:R,value:l})}async function uT(){try{return(await x.gasPrice(null)).gas_price||"100000000"}catch(N){return"100000000"}}return{broadcastTransaction:W,callFunction:b,createAction:M,createContract:K,createContractFunctionCall:z,createSubAccount:F,createTransaction:Q,estimateGas:s,estimateTransactionFee:k,executeBatchTransaction:i,getAddress:B,getBalance:iy(QT.Near),getGasPrice:uT,getPublicKey:async()=>L?(await L.getPublicKey()).toString():"",getSignerFromPhrase:(N)=>Uf(N),getSignerFromPrivateKey:A0,nep141:m,provider:x,serializeTransaction:q,signTransaction:_,transfer:J,validateAddress:await KT()}}var m0=P(()=>{CT();S0();p0()});var BG=P(()=>{m0()});var c0={};Ly(c0,{tgasToGas:()=>BX,isSimpleTransfer:()=>V0,isCustomEstimator:()=>n0,isContractDeployment:()=>b0,isContractCall:()=>$0,isBatchTransaction:()=>K0,isAccountCreation:()=>u0,getValidateNearAddress:()=>KT,getNearToolbox:()=>qX,getNearSignerFromPrivateKey:()=>A0,getNearSignerFromPhrase:()=>Uf,getFullAccessPublicKey:()=>Hf,getContractMethodGas:()=>h0,gasToTGas:()=>JX,estimateBatchGas:()=>j0,createNearContract:()=>Wf,createNEP141Token:()=>o0,GAS_COSTS:()=>t});var t0=P(()=>{S0();p0();m0();BG()});var d0={};Ly(d0,{rippleValidateAddress:()=>i0,hashes:()=>CX,getRippleToolbox:()=>WX});import{AssetValue as g0,Chain as ky,getChainConfig as JG,getRPCUrl as zX,SwapKitError as Sy,SwapKitNumber as _X}from"@swapkit/helpers";import{Client as MX,isValidAddress as NX,Wallet as YX,xrpToDrops as UX}from"xrpl";import{hashes as CX}from"xrpl";function QG(T){let f=YX.fromMnemonic(T);return{getAddress:()=>Promise.resolve(f.address),signTransaction:(X)=>Promise.resolve(f.sign(X))}}function i0(T){return NX(T)}var HX,WX=async(T={})=>{let f="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?QG(T.phrase):void 0,X=await zX(ky.Ripple);if(!X)throw new Sy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:ky.Ripple}});let y=new MX(X);await y.connect();let L=()=>{if(!f)throw new Sy({errorKey:"toolbox_ripple_signer_not_found"});return f.getAddress()},G=async(z)=>{let M=z||await L(),{baseDecimal:_}=JG(ky.Ripple);try{let k=(await y.request({account:M,command:"account_info"})).result.account_data.Balance;return[g0.from({chain:ky.Ripple,fromBaseDecimal:_,value:k})]}catch(W){if(W.data.error_code===HX.ACCOUNT_NOT_FOUND)return[g0.from({chain:ky.Ripple,value:0})];throw new Sy("toolbox_ripple_get_balance_error",{info:{address:M,error:W}})}},x=async()=>{let M=(await y.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:_}=JG(ky.Ripple);return g0.from({chain:ky.Ripple,fromBaseDecimal:_,value:_X.fromBigInt(BigInt(M),_)})},Z=async({assetValue:z,recipient:M,memo:_,sender:W})=>{if(!i0(M))throw new Sy({errorKey:"core_transaction_invalid_recipient_address"});let k=W||await L();if(!z.isGasAsset||z.chain!==ky.Ripple)throw new Sy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:z.toString()}});let v={Account:k,Amount:UX(z.getValue("string")),Destination:M,TransactionType:"Payment"};if(_)v.Memos=[{Memo:{MemoData:Buffer.from(_).toString("hex")}}];return await y.autofill(v)},B=(z)=>{if(!f)throw new Sy({errorKey:"toolbox_ripple_signer_not_found"});return f.signTransaction(z)},J=async(z)=>{let _=(await y.submitAndWait(z)).result;if(_.validated)return _.hash;throw new Sy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:ky.Ripple}})};return{broadcastTransaction:J,createSigner:QG,createTransaction:Z,disconnect:()=>y.disconnect(),estimateTransactionFee:x,getAddress:L,getBalance:G,signer:f,signTransaction:B,transfer:async(z)=>{if(!f)throw new Sy({errorKey:"toolbox_ripple_signer_not_found"});let M=await f.getAddress(),_=await Z({...z,sender:M}),W=await B(_);return J(W.tx_blob)},validateAddress:i0}};var r0=P(()=>{HX={ACCOUNT_NOT_FOUND:19}});var a0={};Ly(a0,{radixValidateAddress:()=>zG,RadixToolbox:()=>wX});import{AssetValue as RX,Chain as qG,SKConfig as DX,SwapKitError as kX}from"@swapkit/helpers";function zG(T){return T.startsWith("account_rdx1")&&T.length===66}function IX({networkApi:T}){return async function(X){let y=await OX({address:X,networkApi:T});return EX({networkApi:T,resources:y})}}async function OX({address:T,networkApi:f}){let X=!0,y,L=[],G=await PX(f);while(X){let x={address:T,at_ledger_state:{state_version:G},cursor:y,limit_per_page:100},Z=await f.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:x});if(L=L.concat(Z.items),Z.next_cursor)y=Z.next_cursor;else X=!1}return L}async function EX({resources:T,networkApi:f}){let X=[],y=50,L=[];for(let G=0;G<T.length;G+=50)L.push(T.slice(G,G+50));for(let G of L){let x=G.map((J)=>J.resource_address),Z=await f.state.getEntityDetailsVaultAggregated(x),B=new Map;for(let J of Z)if(J.details!==void 0){let Q=J.metadata?.items.find((z)=>z.key==="symbol"),q=Q?.value.typed.type==="String"?Q.value.typed.value:"?";if(J.details.type==="FungibleResource")B.set(J.address,{decimals:J.details.divisibility,symbol:q})}for(let J of G)if(J.aggregation_level==="Global"){let Q=B.get(J.resource_address)||{decimals:0,symbol:"?"},q=RX.from({asset:Q.symbol!==qG.Radix?`${qG.Radix}.${Q.symbol}-${J.resource_address}`:"XRD.XRD",value:J.amount});X.push(q)}}return X}function PX(T){return T.status.getCurrent().then((f)=>f.ledger_state.state_version)}var wX=async({dappConfig:T}={})=>{let{RadixDappToolkit:f}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:X}=await import("@radixdlt/babylon-gateway-api-sdk"),y=T||DX.get("integrations").radix,L=f({...y,networkId:y.network?.networkId||1}),G=X.initialize(L.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:IX({networkApi:G}),networkApi:G,signAndBroadcast:()=>{throw new kX("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:zG}};var s0=()=>{};var qT;var e0=P(()=>{qT=[{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}]});import{SwapKitError as lX}from"@swapkit/helpers";async function _G(T){let f=await import("tronweb"),X=f.TronWeb??f.default?.TronWeb;try{let y=await fetch(`${vX}/v1/accounts/${T}`);if(!y.ok)throw Error(`TronGrid API error: ${y.status} ${y.statusText}`);let L=await y.json();if(!(L.success&&L.data)||L.data.length===0)throw Error("Invalid response from TronGrid API");let G;try{G=X.address.toHex(T).toLowerCase()}catch{G=T.toLowerCase()}let x=L.data.find((Z)=>{return Z.address.toLowerCase()===G});if(!x)return;return{balance:x.balance,trc20:x.trc20||[]}}catch(y){throw new lX("toolbox_tron_trongrid_api_error",{address:T,message:y instanceof Error?y.message:"Unknown error"})}}var vX="https://api.trongrid.io";var MG=()=>{};import{AssetValue as Iy,BaseDecimal as NG,Chain as My,derivationPathToString as HG,getRPCUrl as FX,NetworkDerivationPath as WG,SwapKitError as a,updateDerivationPath as CG,warnOnce as y1}from"@swapkit/helpers";import{match as AX,P as YG}from"ts-pattern";async function T1(){let T=await import("tronweb"),f=T.TronWeb??T.default?.TronWeb;return(X)=>{return f.isAddress(X)}}async function RG({phrase:T,derivationPath:f,index:X}){let y=f||HG(CG(WG[My.Tron],{index:X||0})),{HDKey:L}=await import("@scure/bip32"),{mnemonicToSeedSync:G}=await import("@scure/bip39"),x=G(T),B=L.fromMasterSeed(x).derive(y);if(!B.privateKey)throw new a("toolbox_tron_no_signer");return Buffer.from(B.privateKey).toString("hex")}async function uX({phrase:T,derivationPath:f,tronWeb:X}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),G=L(T),Z=y.fromMasterSeed(G).derive(f);if(!Z.privateKey)throw new a("toolbox_tron_no_signer");let B=Buffer.from(Z.privateKey).toString("hex");X.setPrivateKey(B);let J=X?.address.fromPrivateKey(B);return{getAddress:()=>Promise.resolve(typeof J==="string"?J:""),signTransaction:async(Q)=>{return await X.trx.sign(Q,B)}}}var SX=268,VX=13000,$X=345,UG="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",KX="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",DG=async(T={})=>{let f=await import("tronweb"),X=f.TronWeb??f.default?.TronWeb,y=await FX(My.Tron),L=void 0,G=new X({fullHost:y,headers:void 0}),x="index"in T?T.index||0:0,Z=HG("derivationPath"in T&&T.derivationPath?T.derivationPath:CG(WG[My.Tron],{index:x})),B=await AX(T).with({phrase:YG.string},async({phrase:N})=>uX({derivationPath:Z,phrase:N,tronWeb:G})).with({signer:YG.any},({signer:N})=>Promise.resolve(N)).otherwise(()=>Promise.resolve(void 0)),J=async()=>{if(!B)throw new a("toolbox_tron_no_signer");return await B.getAddress()},Q=()=>{return 1e8},q=async()=>{try{let N=await G.trx.getChainParameters(),Y={};for(let R of N)Y[R.key]=R.value;return{bandwidthFee:Y.getTransactionFee||1000,createAccountFee:Y.getCreateAccountFee||1e5,energyFee:Y.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},z=async(N)=>{try{let Y=await G.trx.getAccount(N);return Y&&Object.keys(Y).length>0}catch{return!1}},M=async(N)=>{try{let Y=await G.trx.getAccountResources(N);return{bandwidth:{free:Y.freeNetLimit-Y.freeNetUsed,total:Y.NetLimit||0,used:Y.NetUsed||0},energy:{total:Y.EnergyLimit||0,used:Y.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},_=async(N,Y)=>{try{let R=G.contract(qT,Y);if(!R.methods?.balanceOf)return 0n;let[O]=await R.methods.balanceOf(N).call();return O?typeof O==="bigint"?O:BigInt(O):0n}catch(R){return console.warn(`balanceOf() failed for ${Y}:`,R),0n}},W=async(N,Y)=>{try{G.setAddress(Y);let R=G.contract(qT,N),[O,E]=await Promise.all([R.symbol().call().catch(()=>"UNKNOWN"),R.decimals().call().catch(()=>"18")]);return{decimals:Number(E??18),symbol:O??"UNKNOWN"}}catch(R){return y1({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${N}: ${R instanceof Error?R.message:R}`}),null}},k=async(N,Y=!0)=>{let R=[Iy.from({chain:My.Tron})];try{let O=await _G(N);if(O){let E=[];E.push(Iy.from({chain:My.Tron,fromBaseDecimal:6,value:O.balance}));for(let l of O.trc20){let[S,u]=Object.entries(l)[0]||[];if(!(S&&u))continue;let V=await W(S,N);if(!V)continue;E.push(Iy.from({asset:`TRON.${V.symbol}-${S}`,fromBaseDecimal:V.decimals,value:BigInt(u||0)}))}return E}return R}catch(O){y1({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${O instanceof Error?O.message:O}`});let E=[],l=await G.trx.getBalance(N);if(l&&Number(l)>0)E.push(Iy.from({chain:My.Tron,fromBaseDecimal:6,value:l}));let S=await _(N,UG);if(S)E.push(Iy.from({asset:`TRON.USDT-${UG}`,fromBaseDecimal:6,value:S}));return E}},v=async({recipient:N,assetValue:Y,memo:R})=>{if(!B)throw new a("toolbox_tron_no_signer");let O=await J();if(G.setAddress(O),Y.isGasAsset){let V=await G.transactionBuilder.sendTrx(N,Y.getBaseValue("number"),O);if(R){let d=await G.transactionBuilder.addUpdateData(V,R,"utf8"),Ny=await B.signTransaction(d),{txid:Vy}=await G.trx.sendRawTransaction(Ny);return Vy}let Ty=await B.signTransaction(V),{txid:fy}=await G.trx.sendRawTransaction(Ty);return fy}let l=await b({assetValue:Y,memo:R,recipient:N,sender:O}),S=await B.signTransaction(l),{txid:u}=await G.trx.sendRawTransaction(S);if(!u)throw new a("toolbox_tron_token_transfer_failed");return u},F=async({assetValue:N,recipient:Y,sender:R})=>{let O=N.isGasAsset;try{let E=R?R:B?await J():void 0;if(!E)return O?Iy.from({chain:My.Tron,fromBaseDecimal:0,value:0.1}):Iy.from({chain:My.Tron,fromBaseDecimal:0,value:15});let l=await q(),u=await z(Y)?0:l.createAccountFee,V=await M(E);if(O){let $y=SX,L1=V.bandwidth.free+(V.bandwidth.total-V.bandwidth.used),X1=0;if($y>L1)X1=($y-L1)*l.bandwidthFee;let OG=u+X1;return Iy.from({chain:My.Tron,fromBaseDecimal:NG.TRON,value:OG})}let Ty=$X,fy=VX,d=V.bandwidth.free+(V.bandwidth.total-V.bandwidth.used),Ny=V.energy.total-V.energy.used,Vy=0;if(Ty>d)Vy=(Ty-d)*l.bandwidthFee;let bT=0;if(fy>Ny)bT=(fy-Ny)*l.energyFee;let Cf=u+Vy+bT;return Iy.from({chain:My.Tron,fromBaseDecimal:NG.TRON,value:Cf})}catch(E){throw y1({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${E instanceof Error?E.message:E}`}),new a("toolbox_tron_fee_estimation_failed",{error:E})}},b=async(N)=>{let{recipient:Y,assetValue:R,memo:O,sender:E,expiration:l}=N;if(R.isGasAsset){let V=await G.transactionBuilder.sendTrx(Y,R.getBaseValue("number"),E);if(O)return G.transactionBuilder.addUpdateData(V,O,"utf8");if(l)G.transactionBuilder.extendExpiration(V,l);return V}G.setAddress(E);let u=R.address;if(!u)throw new a("toolbox_tron_invalid_token_identifier",{identifier:R.toString()});try{let Ty=[{type:"address",value:Y},{type:"uint256",value:R.getBaseValue("string")}],fy={callValue:0,feeLimit:Q()},d=await G.transactionBuilder.triggerSmartContract(u,"transfer(address,uint256)",fy,Ty,E);if(O)return G.transactionBuilder.addUpdateData(d.transaction,O,"utf8");if(l)G.transactionBuilder.extendExpiration(d.transaction,l);return d.transaction}catch(V){throw new a("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction. This might be due to TronWeb 6.0.3 bug. Use the transfer method directly instead.",originalError:V instanceof Error?V.message:String(V)})}},K=async(N)=>{if(!B)throw new a("toolbox_tron_no_signer");return await B.signTransaction(N)},i=async(N)=>{let{txid:Y}=await G.trx.sendRawTransaction(N);return Y},m=async({assetAddress:N,spenderAddress:Y,from:R})=>{try{let O=G.contract(qT,N);if(!O.methods?.allowance)throw new a("toolbox_tron_invalid_token_contract");let[E]=await O.methods.allowance(R,Y).call();return E?typeof E==="bigint"?E:BigInt(E):0n}catch(O){throw new a("toolbox_tron_allowance_check_failed",{error:O})}};return{approve:async({assetAddress:N,spenderAddress:Y,amount:R,from:O})=>{if(!B)throw new a("toolbox_tron_no_signer");let E=O||await J(),l=R!==void 0?BigInt(R).toString():KX,S="approve(address,uint256)",u=[{type:"address",value:Y},{type:"uint256",value:l}],Ty={callValue:0,feeLimit:Q()};try{let{transaction:fy}=await G.transactionBuilder.triggerSmartContract(N,S,Ty,u,E),d=await B.signTransaction(fy),{txid:Ny}=await G.trx.sendRawTransaction(d);if(!Ny)throw new a("toolbox_tron_approve_failed");return Ny}catch(fy){throw new a("toolbox_tron_approve_failed",{error:fy})}},broadcastTransaction:i,createTransaction:b,estimateTransactionFee:F,getAddress:J,getApprovedAmount:m,getBalance:k,isApproved:async({assetAddress:N,spenderAddress:Y,from:R,amount:O})=>{let E=await m({assetAddress:N,from:R,spenderAddress:Y});if(!O)return E>0n;let l=BigInt(O);return E>=l},signTransaction:K,transfer:v,tronWeb:G,validateAddress:await T1()}};var kG=P(()=>{e0();MG()});var f1={};Ly(f1,{trc20ABI:()=>qT,getTronPrivateKeyFromMnemonic:()=>RG,getTronAddressValidator:()=>T1,createTronToolbox:()=>DG});var G1=P(()=>{e0();kG()});import{AssetValue as bX,Chain as D,EVMChains as nX,FeeOption as jX,SwapKitError as hX,UTXOChains as pX}from"@swapkit/helpers";async function S4(){let{match:T}=await import("ts-pattern"),{cosmosValidateAddress:f}=await Promise.resolve().then(() => (cT(),mT)),{evmValidateAddress:X}=await Promise.resolve().then(() => (J5(),B5)),{substrateValidateAddress:y}=await Promise.resolve().then(() => (J0(),B0)),{getUTXOAddressValidator:L}=await Promise.resolve().then(() => (k0(),D0)),{getSolanaAddressValidator:G}=await Promise.resolve().then(() => (F0(),v0)),{getValidateNearAddress:x}=await Promise.resolve().then(() => (t0(),c0)),{rippleValidateAddress:Z}=await Promise.resolve().then(() => (r0(),d0)),{radixValidateAddress:B}=await Promise.resolve().then(() => (s0(),a0)),{getTronAddressValidator:J}=await Promise.resolve().then(() => (G1(),f1)),Q=await G(),q=await L(),z=await J(),M=await x();return function({address:W,chain:k}){return T(k).with(...nX,()=>X({address:W})).with(...pX,()=>q({address:W,chain:k})).with(D.Cosmos,D.Kujira,D.Noble,D.Maya,D.THORChain,()=>f({address:W,chain:k})).with(D.Chainflip,D.Polkadot,()=>y({address:W,chain:k})).with(D.Radix,()=>B(W)).with(D.Near,()=>M(W)).with(D.Ripple,()=>Z(W)).with(D.Solana,()=>Q(W)).with(D.Tron,()=>z(W)).otherwise(()=>!1)}}function V4(T){return async function(X){let{match:y}=await import("ts-pattern");return y(T).returnType().with(D.Arbitrum,D.Aurora,D.Avalanche,D.Base,D.Berachain,D.BinanceSmartChain,D.Ethereum,D.Gnosis,D.Optimism,D.Polygon,async(L)=>{let G=await IG(L),x=await G.createTransaction(X);return G.estimateTransactionFee({...x,chain:L,feeOption:X.feeOptionKey||jX.Fast})}).with(D.Bitcoin,D.BitcoinCash,D.Dogecoin,D.Dash,D.Litecoin,D.Polkadot,D.Solana,D.Ripple,D.Tron,D.Near,async(L)=>{return(await IG(L)).estimateTransactionFee(X)}).with(D.THORChain,D.Maya,D.Kujira,D.Noble,D.Cosmos,async()=>{let{estimateTransactionFee:L}=await Promise.resolve().then(() => (cT(),mT));return L(X)}).otherwise(async()=>bX.from({chain:T}))}}async function IG(T,f){let{match:X}=await import("ts-pattern");return X(T).returnType().with(D.Arbitrum,D.Aurora,D.Avalanche,D.Base,D.Berachain,D.BinanceSmartChain,D.Ethereum,D.Gnosis,D.Optimism,D.Polygon,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (T0(),X5));return await y(T,f)}).with(D.Litecoin,D.Dash,D.Dogecoin,D.BitcoinCash,D.Bitcoin,D.Zcash,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (k0(),D0));return await y(T,f)}).with(D.Cosmos,D.Kujira,D.Noble,D.Maya,D.THORChain,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (cT(),mT));return await y(T,f)}).with(D.Chainflip,D.Polkadot,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (J0(),B0));return await y(T,f)}).with(D.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (s0(),a0));return await y(f)}).with(D.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (r0(),d0));return await y(f)}).with(D.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (F0(),v0));return await y(f)}).with(D.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (G1(),f1));return await y(f)}).with(D.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (t0(),c0));return await y(f)}).otherwise(()=>{throw new hX("toolbox_not_supported",{chain:T})})}export{IG as getToolbox,V4 as getFeeEstimator,S4 as getAddressValidator};
3
3
 
4
- //# debugId=48A00A4EF1B48FA264756E2164756E21
4
+ //# debugId=E3E62FA07A482B1A64756E2164756E21
5
5
  //# sourceMappingURL=index.js.map