@swapkit/toolboxes 4.0.27 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/src/cardano/index.cjs +4 -0
  2. package/dist/src/cardano/index.cjs.map +11 -0
  3. package/dist/src/cardano/index.js +4 -0
  4. package/dist/src/cardano/index.js.map +11 -0
  5. package/dist/src/cosmos/index.cjs +2 -2
  6. package/dist/src/cosmos/index.cjs.map +5 -5
  7. package/dist/src/cosmos/index.js +2 -2
  8. package/dist/src/cosmos/index.js.map +5 -5
  9. package/dist/src/evm/index.cjs +2 -2
  10. package/dist/src/evm/index.cjs.map +6 -6
  11. package/dist/src/evm/index.js +2 -2
  12. package/dist/src/evm/index.js.map +6 -6
  13. package/dist/src/index.cjs +3 -3
  14. package/dist/src/index.cjs.map +40 -34
  15. package/dist/src/index.js +3 -3
  16. package/dist/src/index.js.map +40 -34
  17. package/dist/src/near/index.cjs +2 -2
  18. package/dist/src/near/index.cjs.map +4 -4
  19. package/dist/src/near/index.js +2 -2
  20. package/dist/src/near/index.js.map +4 -4
  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/sui/index.cjs +4 -0
  30. package/dist/src/sui/index.cjs.map +11 -0
  31. package/dist/src/sui/index.js +4 -0
  32. package/dist/src/sui/index.js.map +11 -0
  33. package/dist/src/ton/index.cjs +4 -0
  34. package/dist/src/ton/index.cjs.map +11 -0
  35. package/dist/src/ton/index.js +4 -0
  36. package/dist/src/ton/index.js.map +11 -0
  37. package/dist/src/tron/index.cjs +2 -2
  38. package/dist/src/tron/index.cjs.map +3 -3
  39. package/dist/src/tron/index.js +2 -2
  40. package/dist/src/tron/index.js.map +3 -3
  41. package/dist/src/utxo/index.cjs +2 -2
  42. package/dist/src/utxo/index.cjs.map +5 -5
  43. package/dist/src/utxo/index.js +2 -2
  44. package/dist/src/utxo/index.js.map +5 -5
  45. package/dist/types/cardano/index.d.ts +3 -0
  46. package/dist/types/cardano/index.d.ts.map +1 -0
  47. package/dist/types/cardano/toolbox.d.ts +34 -0
  48. package/dist/types/cardano/toolbox.d.ts.map +1 -0
  49. package/dist/types/cardano/types.d.ts +11 -0
  50. package/dist/types/cardano/types.d.ts.map +1 -0
  51. package/dist/types/cosmos/toolbox/cosmos.d.ts +2 -14
  52. package/dist/types/cosmos/toolbox/cosmos.d.ts.map +1 -1
  53. package/dist/types/evm/toolbox/baseEVMToolbox.d.ts +1 -0
  54. package/dist/types/evm/toolbox/baseEVMToolbox.d.ts.map +1 -1
  55. package/dist/types/evm/toolbox/evm.d.ts.map +1 -1
  56. package/dist/types/evm/toolbox/index.d.ts +2 -2
  57. package/dist/types/evm/toolbox/index.d.ts.map +1 -1
  58. package/dist/types/evm/toolbox/op.d.ts +2 -2
  59. package/dist/types/evm/toolbox/op.d.ts.map +1 -1
  60. package/dist/types/index.d.ts +12 -0
  61. package/dist/types/index.d.ts.map +1 -1
  62. package/dist/types/solana/toolbox.d.ts.map +1 -1
  63. package/dist/types/sui/index.d.ts +3 -0
  64. package/dist/types/sui/index.d.ts.map +1 -0
  65. package/dist/types/sui/toolbox.d.ts +19 -0
  66. package/dist/types/sui/toolbox.d.ts.map +1 -0
  67. package/dist/types/sui/types.d.ts +16 -0
  68. package/dist/types/sui/types.d.ts.map +1 -0
  69. package/dist/types/ton/index.d.ts +3 -0
  70. package/dist/types/ton/index.d.ts.map +1 -0
  71. package/dist/types/ton/toolbox.d.ts +14 -0
  72. package/dist/types/ton/toolbox.d.ts.map +1 -0
  73. package/dist/types/ton/types.d.ts +22 -0
  74. package/dist/types/ton/types.d.ts.map +1 -0
  75. package/dist/types/tron/toolbox.d.ts.map +1 -1
  76. package/dist/types/types.d.ts +10 -2
  77. package/dist/types/types.d.ts.map +1 -1
  78. package/dist/types/utxo/toolbox/bitcoinCash.d.ts.map +1 -1
  79. package/dist/types/utxo/toolbox/zcash.d.ts.map +1 -1
  80. package/package.json +31 -4
package/dist/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
- var EG=Object.create;var{getPrototypeOf:wG,defineProperty:Cf,getOwnPropertyNames:PG}=Object;var lG=Object.prototype.hasOwnProperty;var H=(T,f,x)=>{x=T!=null?EG(wG(T)):{};let y=f||!T||!T.__esModule?Cf(x,"default",{value:T,enumerable:!0}):x;for(let L of PG(T))if(!lG.call(y,L))Cf(y,L,{get:()=>T[L],enumerable:!0});return y};var Ly=(T,f)=>{for(var x in f)Cf(T,x,{get:f[x],enumerable:!0,configurable:!0,set:(y)=>f[x]=()=>y})};var E=(T,f)=>()=>(T&&(f=T(T=0)),f);var W=((T)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(T,{get:(f,x)=>(typeof require<"u"?require:f)[x]}):T)(function(T){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+T+'" is not supported')});import{base64 as X1,bech32 as bT}from"@scure/base";import{SwapKitError as vG}from"@swapkit/helpers";import{fromByteArray as FG,toByteArray as AG}from"base64-js";function zT(T){return X1.encode(Uint8Array.from(bT.fromWords(bT.decode(T).words)))}function _T(T,f="thor"){return bT.encode(f,bT.toWords(X1.decode(T)))}function SG(T){return FG(T)}function VG(T){if(!T.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new vG("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return AG(T)}var Df=()=>{};import{AssetValue as If,Chain as A,getChainConfig as Zy,getRPCUrl as $G,SwapKitError as Z1}from"@swapkit/helpers";function Yy(T){switch(T){case A.Maya:return{amount:[],gas:"10000000000"};case A.THORChain:return{amount:[],gas:"500000000"};case A.Kujira:return Q1;case A.Noble:return q1;default:return J1}}async function Uy(T){let f=await import("@cosmjs/stargate"),x=f.StargateClient??f.default?.StargateClient,y=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return x.connect({headers:y,url:T})}async function NT(T,f,x={}){let y=await import("@cosmjs/stargate"),L=y.SigningStargateClient??y.default?.SigningStargateClient,G=y.GasPrice??y.default?.GasPrice,X=typeof x==="string"?x:"0.0003uatom",Z=typeof x==="string"?{}:x;return L.connectWithSigner(T,f,{gasPrice:G.fromString(X),...Z})}async function Of(T,f){let x=await import("@cosmjs/stargate");return(x.SigningStargateClient??x.default?.SigningStargateClient).offline(T,f)}async function Ef({sender:T,recipient:f,assetValue:x,memo:y="",feeRate:L,sequence:G,accountNumber:X}){let{chain:Z,chainId:B}=x,J=await $G(Z),q=await(await Uy(J)).getAccount(T);if(!q)throw new Z1("toolbox_cosmos_account_not_found",{sender:T});let z=If.from({chain:Z}),M=Oy(z.symbol),_=Yy(Z),U=M&&L?{amount:[{amount:L.toString(),denom:M}],gas:_.gas}:_,D={amount:[{amount:x.getBaseValue("string"),denom:Oy(x.symbol)}],fromAddress:T,toAddress:f};return{accountNumber:X??q.accountNumber,chainId:B,fee:U,memo:y,msgs:[{typeUrl:KG(Z),value:D}],sequence:G??q.sequence}}var kf="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",B1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",J1,Q1,q1,Oy=(T,f=!1)=>{if(f)return T.toLowerCase();switch(T){case"uUSK":case"USK":return kf;case"uYUM":case"YUM":return B1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return T}},MT=({symbol:T,chain:f})=>{if(f===A.Maya)return(T.toUpperCase()!=="CACAO"?T:`${A.Maya}.${T}`).toUpperCase();if(f===A.THORChain)return(["RUNE","TCY","RUJI"].includes(T.toUpperCase())?`${A.THORChain}.${T}`:T).toUpperCase();return Oy(T,!1)},KG=(T)=>{switch(T){case A.Maya:case A.THORChain:return"/types.MsgSend";case A.Cosmos:case A.Kujira:case A.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new Z1("toolbox_cosmos_not_supported",{chain:T})}},uG,wf=(T,f)=>{let x=uG[T.toLowerCase()];if(!x)return If.from({asset:T,fromBaseDecimal:8,value:f});let{chain:y,asset:L,decimals:G}=x,X=y?{chain:y}:{asset:L};return If.from({...X,fromBaseDecimal:G,value:f})};var YT=E(()=>{J1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},Q1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},q1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};uG={atom:{chain:A.Cosmos,decimals:Zy(A.Cosmos).baseDecimal},cacao:{chain:A.Maya,decimals:10},kuji:{chain:A.Kujira,decimals:Zy(A.Kujira).baseDecimal},maya:{asset:`${A.Maya}.${A.Maya}`,decimals:4},rune:{chain:A.THORChain,decimals:Zy(A.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Zy(A.THORChain).baseDecimal},uatom:{chain:A.Cosmos,decimals:Zy(A.Cosmos).baseDecimal},ukuji:{chain:A.Kujira,decimals:Zy(A.Kujira).baseDecimal},usdc:{chain:A.Noble,decimals:Zy(A.Noble).baseDecimal},uusdc:{chain:A.Noble,decimals:Zy(A.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Zy(A.THORChain).baseDecimal},[kf.toLowerCase()]:{asset:`${A.Kujira}.USK`,decimals:Zy(A.Kujira).baseDecimal}}});var z1={};Ly(z1,{$root:()=>R});import p from"protobufjs/minimal.js";var P,Gy,k,R;var _1=E(()=>{P=p.Reader,Gy=p.Writer,k=p.util,R=p.roots.default||(p.roots.default={});R.common=(()=>{let T={};return T.Asset=(()=>{function f(x){if(x){for(let y=Object.keys(x),L=0;L<y.length;++L)if(x[y[L]]!=null)this[y[L]]=x[y[L]]}}return f.prototype.chain="",f.prototype.symbol="",f.prototype.ticker="",f.prototype.synth=!1,f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))L.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))L.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))L.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))L.uint32(32).bool(y.synth);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,X=new R.common.Asset;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:X.chain=y.string();break;case 2:X.symbol=y.string();break;case 3:X.ticker=y.string();break;case 4:X.synth=y.bool();break;default:y.skipType(Z&7);break}}return X},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.chain!=null&&y.hasOwnProperty("chain")){if(!k.isString(y.chain))return"chain: string expected"}if(y.symbol!=null&&y.hasOwnProperty("symbol")){if(!k.isString(y.symbol))return"symbol: string expected"}if(y.ticker!=null&&y.hasOwnProperty("ticker")){if(!k.isString(y.ticker))return"ticker: string expected"}if(y.synth!=null&&y.hasOwnProperty("synth")){if(typeof y.synth!=="boolean")return"synth: boolean expected"}return null},f.fromObject=function(y){if(y instanceof R.common.Asset)return y;let L=new R.common.Asset;if(y.chain!=null)L.chain=String(y.chain);if(y.symbol!=null)L.symbol=String(y.symbol);if(y.ticker!=null)L.ticker=String(y.ticker);if(y.synth!=null)L.synth=Boolean(y.synth);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)G.chain="",G.symbol="",G.ticker="",G.synth=!1;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.symbol!=null&&y.hasOwnProperty("symbol"))G.symbol=y.symbol;if(y.ticker!=null&&y.hasOwnProperty("ticker"))G.ticker=y.ticker;if(y.synth!=null&&y.hasOwnProperty("synth"))G.synth=y.synth;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.Coin=(()=>{function f(x){if(x){for(let y=Object.keys(x),L=0;L<y.length;++L)if(x[y[L]]!=null)this[y[L]]=x[y[L]]}}return f.prototype.asset=null,f.prototype.amount="",f.prototype.decimals=k.Long?k.Long.fromBits(0,0,!1):0,f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))R.common.Asset.encode(y.asset,L.uint32(10).fork()).ldelim();if(y.amount!=null&&Object.hasOwnProperty.call(y,"amount"))L.uint32(18).string(y.amount);if(y.decimals!=null&&Object.hasOwnProperty.call(y,"decimals"))L.uint32(24).int64(y.decimals);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,X=new R.common.Coin;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:X.asset=R.common.Asset.decode(y,y.uint32());break;case 2:X.amount=y.string();break;case 3:X.decimals=y.int64();break;default:y.skipType(Z&7);break}}return X},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.asset!=null&&y.hasOwnProperty("asset")){let L=R.common.Asset.verify(y.asset);if(L)return"asset."+L}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!k.isString(y.amount))return"amount: string expected"}if(y.decimals!=null&&y.hasOwnProperty("decimals")){if(!k.isInteger(y.decimals)&&!(y.decimals&&k.isInteger(y.decimals.low)&&k.isInteger(y.decimals.high)))return"decimals: integer|Long expected"}return null},f.fromObject=function(y){if(y instanceof R.common.Coin)return y;let L=new R.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");L.asset=R.common.Asset.fromObject(y.asset)}if(y.amount!=null)L.amount=String(y.amount);if(y.decimals!=null){if(k.Long)(L.decimals=k.Long.fromValue(y.decimals)).unsigned=!1;else if(typeof y.decimals==="string")L.decimals=Number.parseInt(y.decimals,10);else if(typeof y.decimals==="number")L.decimals=y.decimals;else if(typeof y.decimals==="object")L.decimals=new k.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber()}return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)if(G.asset=null,G.amount="",k.Long){let X=new k.Long(0,0,!1);G.decimals=L.longs===String?X.toString():L.longs===Number?X.toNumber():X}else G.decimals=L.longs===String?"0":0;if(y.asset!=null&&y.hasOwnProperty("asset"))G.asset=R.common.Asset.toObject(y.asset,L);if(y.amount!=null&&y.hasOwnProperty("amount"))G.amount=y.amount;if(y.decimals!=null&&y.hasOwnProperty("decimals"))if(typeof y.decimals==="number")G.decimals=L.longs===String?String(y.decimals):y.decimals;else G.decimals=L.longs===String?k.Long.prototype.toString.call(y.decimals):L.longs===Number?new k.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber():y.decimals;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.PubKeySet=(()=>{function f(x){if(x){for(let y=Object.keys(x),L=0;L<y.length;++L)if(x[y[L]]!=null)this[y[L]]=x[y[L]]}}return f.prototype.secp256k1="",f.prototype.ed25519="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))L.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))L.uint32(18).string(y.ed25519);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,X=new R.common.PubKeySet;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:X.secp256k1=y.string();break;case 2:X.ed25519=y.string();break;default:y.skipType(Z&7);break}}return X},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1")){if(!k.isString(y.secp256k1))return"secp256k1: string expected"}if(y.ed25519!=null&&y.hasOwnProperty("ed25519")){if(!k.isString(y.ed25519))return"ed25519: string expected"}return null},f.fromObject=function(y){if(y instanceof R.common.PubKeySet)return y;let L=new R.common.PubKeySet;if(y.secp256k1!=null)L.secp256k1=String(y.secp256k1);if(y.ed25519!=null)L.ed25519=String(y.ed25519);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)G.secp256k1="",G.ed25519="";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1"))G.secp256k1=y.secp256k1;if(y.ed25519!=null&&y.hasOwnProperty("ed25519"))G.ed25519=y.ed25519;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.Tx=(()=>{function f(x){if(this.coins=[],this.gas=[],x){for(let y=Object.keys(x),L=0;L<y.length;++L)if(x[y[L]]!=null)this[y[L]]=x[y[L]]}}return f.prototype.id="",f.prototype.chain="",f.prototype.fromAddress="",f.prototype.toAddress="",f.prototype.coins=k.emptyArray,f.prototype.gas=k.emptyArray,f.prototype.memo="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))L.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))L.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))L.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))L.uint32(34).string(y.toAddress);if(y.coins?.length)for(let G=0;G<y.coins.length;++G)R.common.Coin.encode(y.coins[G],L.uint32(42).fork()).ldelim();if(y.gas?.length)for(let G=0;G<y.gas.length;++G)R.common.Coin.encode(y.gas[G],L.uint32(50).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))L.uint32(58).string(y.memo);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,X=new R.common.Tx;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:X.id=y.string();break;case 2:X.chain=y.string();break;case 3:X.fromAddress=y.string();break;case 4:X.toAddress=y.string();break;case 5:if(!X.coins?.length)X.coins=[];X.coins.push(R.common.Coin.decode(y,y.uint32()));break;case 6:if(!X.gas?.length)X.gas=[];X.gas.push(R.common.Coin.decode(y,y.uint32()));break;case 7:X.memo=y.string();break;default:y.skipType(Z&7);break}}return X},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.id!=null&&y.hasOwnProperty("id")){if(!k.isString(y.id))return"id: string expected"}if(y.chain!=null&&y.hasOwnProperty("chain")){if(!k.isString(y.chain))return"chain: string expected"}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!k.isString(y.fromAddress))return"fromAddress: string expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!k.isString(y.toAddress))return"toAddress: string expected"}if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let G=R.common.Coin.verify(y.coins[L]);if(G)return"coins."+G}}if(y.gas!=null&&y.hasOwnProperty("gas")){if(!Array.isArray(y.gas))return"gas: array expected";for(let L=0;L<y.gas.length;++L){let G=R.common.Coin.verify(y.gas[L]);if(G)return"gas."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!k.isString(y.memo))return"memo: string expected"}return null},f.fromObject=function(y){if(y instanceof R.common.Tx)return y;let L=new R.common.Tx;if(y.id!=null)L.id=String(y.id);if(y.chain!=null)L.chain=String(y.chain);if(y.fromAddress!=null)L.fromAddress=String(y.fromAddress);if(y.toAddress!=null)L.toAddress=String(y.toAddress);if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Tx.coins: array expected");L.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Tx.coins: object expected");L.coins[G]=R.common.Coin.fromObject(y.coins[G])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");L.gas=[];for(let G=0;G<y.gas.length;++G){if(typeof y.gas[G]!=="object")throw TypeError(".common.Tx.gas: object expected");L.gas[G]=R.common.Coin.fromObject(y.gas[G])}}if(y.memo!=null)L.memo=String(y.memo);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.coins=[],G.gas=[];if(L.defaults)G.id="",G.chain="",G.fromAddress="",G.toAddress="",G.memo="";if(y.id!=null&&y.hasOwnProperty("id"))G.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=y.toAddress;if(y.coins?.length){G.coins=[];for(let X=0;X<y.coins.length;++X)G.coins[X]=R.common.Coin.toObject(y.coins[X],L)}if(y.gas?.length){G.gas=[];for(let X=0;X<y.gas.length;++X)G.gas[X]=R.common.Coin.toObject(y.gas[X],L)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.Fee=(()=>{function f(x){if(this.coins=[],x){for(let y=Object.keys(x),L=0;L<y.length;++L)if(x[y[L]]!=null)this[y[L]]=x[y[L]]}}return f.prototype.coins=k.emptyArray,f.prototype.poolDeduct="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)R.common.Coin.encode(y.coins[G],L.uint32(10).fork()).ldelim();if(y.poolDeduct!=null&&Object.hasOwnProperty.call(y,"poolDeduct"))L.uint32(18).string(y.poolDeduct);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,X=new R.common.Fee;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:if(!X.coins?.length)X.coins=[];X.coins.push(R.common.Coin.decode(y,y.uint32()));break;case 2:X.poolDeduct=y.string();break;default:y.skipType(Z&7);break}}return X},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let G=R.common.Coin.verify(y.coins[L]);if(G)return"coins."+G}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!k.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},f.fromObject=function(y){if(y instanceof R.common.Fee)return y;let L=new R.common.Fee;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Fee.coins: array expected");L.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Fee.coins: object expected");L.coins[G]=R.common.Coin.fromObject(y.coins[G])}}if(y.poolDeduct!=null)L.poolDeduct=String(y.poolDeduct);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.coins=[];if(L.defaults)G.poolDeduct="";if(y.coins?.length){G.coins=[];for(let X=0;X<y.coins.length;++X)G.coins[X]=R.common.Coin.toObject(y.coins[X],L)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))G.poolDeduct=y.poolDeduct;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.ProtoUint=(()=>{function f(x){if(x){for(let y=Object.keys(x),L=0;L<y.length;++L)if(x[y[L]]!=null)this[y[L]]=x[y[L]]}}return f.prototype.value="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))L.uint32(10).string(y.value);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,X=new R.common.ProtoUint;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:X.value=y.string();break;default:y.skipType(Z&7);break}}return X},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.value!=null&&y.hasOwnProperty("value")){if(!k.isString(y.value))return"value: string expected"}return null},f.fromObject=function(y){if(y instanceof R.common.ProtoUint)return y;let L=new R.common.ProtoUint;if(y.value!=null)L.value=String(y.value);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)G.value="";if(y.value!=null&&y.hasOwnProperty("value"))G.value=y.value;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T})();R.types=(()=>{let T={};return T.MsgDeposit=(()=>{function f(x){if(this.coins=[],x){for(let y=Object.keys(x),L=0;L<y.length;++L)if(x[y[L]]!=null)this[y[L]]=x[y[L]]}}return f.prototype.coins=k.emptyArray,f.prototype.memo="",f.prototype.signer=k.newBuffer([]),f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)R.common.Coin.encode(y.coins[G],L.uint32(10).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))L.uint32(18).string(y.memo);if(y.signer!=null&&Object.hasOwnProperty.call(y,"signer"))L.uint32(26).bytes(y.signer);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,X=new R.types.MsgDeposit;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:if(!X.coins?.length)X.coins=[];X.coins.push(R.common.Coin.decode(y,y.uint32()));break;case 2:X.memo=y.string();break;case 3:X.signer=y.bytes();break;default:y.skipType(Z&7);break}}return X},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let G=R.common.Coin.verify(y.coins[L]);if(G)return"coins."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!k.isString(y.memo))return"memo: string expected"}if(y.signer!=null&&y.hasOwnProperty("signer")){if(!(y.signer&&typeof y.signer.length==="number"||k.isString(y.signer)))return"signer: buffer expected"}return null},f.fromObject=function(y){if(y instanceof R.types.MsgDeposit)return y;let L=new R.types.MsgDeposit;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".types.MsgDeposit.coins: array expected");L.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");L.coins[G]=R.common.Coin.fromObject(y.coins[G])}}if(y.memo!=null)L.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")k.base64.decode(y.signer,L.signer=k.newBuffer(k.base64.length(y.signer)),0);else if(y.signer.length)L.signer=y.signer}return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.coins=[];if(L.defaults){if(G.memo="",L.bytes===String)G.signer="";else if(G.signer=[],L.bytes!==Array)G.signer=k.newBuffer(G.signer)}if(y.coins?.length){G.coins=[];for(let X=0;X<y.coins.length;++X)G.coins[X]=R.common.Coin.toObject(y.coins[X],L)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))G.signer=L.bytes===String?k.base64.encode(y.signer,0,y.signer.length):L.bytes===Array?Array.prototype.slice.call(y.signer):y.signer;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.MsgSend=(()=>{function f(x){if(this.amount=[],x){for(let y=Object.keys(x),L=0;L<y.length;++L)if(x[y[L]]!=null)this[y[L]]=x[y[L]]}}return f.prototype.fromAddress=k.newBuffer([]),f.prototype.toAddress=k.newBuffer([]),f.prototype.amount=k.emptyArray,f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))L.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))L.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let G=0;G<y.amount.length;++G)R.cosmos.base.v1beta1.Coin.encode(y.amount[G],L.uint32(26).fork()).ldelim();return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof P))y=P.create(y);let G=L===void 0?y.len:y.pos+L,X=new R.types.MsgSend;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:X.fromAddress=y.bytes();break;case 2:X.toAddress=y.bytes();break;case 3:if(!X.amount?.length)X.amount=[];X.amount.push(R.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(Z&7);break}}return X},f.decodeDelimited=function(y){if(!(y instanceof P))y=new P(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!(y.fromAddress&&typeof y.fromAddress.length==="number"||k.isString(y.fromAddress)))return"fromAddress: buffer expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!(y.toAddress&&typeof y.toAddress.length==="number"||k.isString(y.toAddress)))return"toAddress: buffer expected"}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!Array.isArray(y.amount))return"amount: array expected";for(let L=0;L<y.amount.length;++L){let G=R.cosmos.base.v1beta1.Coin.verify(y.amount[L]);if(G)return"amount."+G}}return null},f.fromObject=function(y){if(y instanceof R.types.MsgSend)return y;let L=new R.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")k.base64.decode(y.fromAddress,L.fromAddress=k.newBuffer(k.base64.length(y.fromAddress)),0);else if(y.fromAddress.length)L.fromAddress=y.fromAddress}if(y.toAddress!=null){if(typeof y.toAddress==="string")k.base64.decode(y.toAddress,L.toAddress=k.newBuffer(k.base64.length(y.toAddress)),0);else if(y.toAddress.length)L.toAddress=y.toAddress}if(y.amount){if(!Array.isArray(y.amount))throw TypeError(".types.MsgSend.amount: array expected");L.amount=[];for(let G=0;G<y.amount.length;++G){if(typeof y.amount[G]!=="object")throw TypeError(".types.MsgSend.amount: object expected");L.amount[G]=R.cosmos.base.v1beta1.Coin.fromObject(y.amount[G])}}return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.amount=[];if(L.defaults){if(L.bytes===String)G.fromAddress="";else if(G.fromAddress=[],L.bytes!==Array)G.fromAddress=k.newBuffer(G.fromAddress);if(L.bytes===String)G.toAddress="";else if(G.toAddress=[],L.bytes!==Array)G.toAddress=k.newBuffer(G.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=L.bytes===String?k.base64.encode(y.fromAddress,0,y.fromAddress.length):L.bytes===Array?Array.prototype.slice.call(y.fromAddress):y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=L.bytes===String?k.base64.encode(y.toAddress,0,y.toAddress.length):L.bytes===Array?Array.prototype.slice.call(y.toAddress):y.toAddress;if(y.amount?.length){G.amount=[];for(let X=0;X<y.amount.length;++X)G.amount[X]=R.cosmos.base.v1beta1.Coin.toObject(y.amount[X],L)}return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T})();R.cosmos=(()=>{let T={};return T.base=(()=>{let f={};return f.v1beta1=(()=>{let x={};return x.Coin=(()=>{function y(L){if(L){for(let G=Object.keys(L),X=0;X<G.length;++X)if(L[G[X]]!=null)this[G[X]]=L[G[X]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,X){if(!X)X=Gy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))X.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))X.uint32(18).string(G.amount);return X},y.encodeDelimited=function(G,X){return this.encode(G,X).ldelim()},y.decode=function(G,X){if(!(G instanceof P))G=P.create(G);let Z=X===void 0?G.len:G.pos+X,B=new R.cosmos.base.v1beta1.Coin;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.denom=G.string();break;case 2:B.amount=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!k.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!k.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof R.cosmos.base.v1beta1.Coin)return G;let X=new R.cosmos.base.v1beta1.Coin;if(G.denom!=null)X.denom=String(G.denom);if(G.amount!=null)X.amount=String(G.amount);return X},y.toObject=function(G,X){if(!X)X={};let Z={};if(X.defaults)Z.denom="",Z.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))Z.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))Z.amount=G.amount;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),x.DecCoin=(()=>{function y(L){if(L){for(let G=Object.keys(L),X=0;X<G.length;++X)if(L[G[X]]!=null)this[G[X]]=L[G[X]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,X){if(!X)X=Gy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))X.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))X.uint32(18).string(G.amount);return X},y.encodeDelimited=function(G,X){return this.encode(G,X).ldelim()},y.decode=function(G,X){if(!(G instanceof P))G=P.create(G);let Z=X===void 0?G.len:G.pos+X,B=new R.cosmos.base.v1beta1.DecCoin;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.denom=G.string();break;case 2:B.amount=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!k.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!k.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof R.cosmos.base.v1beta1.DecCoin)return G;let X=new R.cosmos.base.v1beta1.DecCoin;if(G.denom!=null)X.denom=String(G.denom);if(G.amount!=null)X.amount=String(G.amount);return X},y.toObject=function(G,X){if(!X)X={};let Z={};if(X.defaults)Z.denom="",Z.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))Z.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))Z.amount=G.amount;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),x.IntProto=(()=>{function y(L){if(L){for(let G=Object.keys(L),X=0;X<G.length;++X)if(L[G[X]]!=null)this[G[X]]=L[G[X]]}}return y.prototype.int="",y.create=function(G){return new y(G)},y.encode=function(G,X){if(!X)X=Gy.create();if(G.int!=null&&Object.hasOwnProperty.call(G,"int"))X.uint32(10).string(G.int);return X},y.encodeDelimited=function(G,X){return this.encode(G,X).ldelim()},y.decode=function(G,X){if(!(G instanceof P))G=P.create(G);let Z=X===void 0?G.len:G.pos+X,B=new R.cosmos.base.v1beta1.IntProto;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.int=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.int!=null&&G.hasOwnProperty("int")){if(!k.isString(G.int))return"int: string expected"}return null},y.fromObject=function(G){if(G instanceof R.cosmos.base.v1beta1.IntProto)return G;let X=new R.cosmos.base.v1beta1.IntProto;if(G.int!=null)X.int=String(G.int);return X},y.toObject=function(G,X){if(!X)X={};let Z={};if(X.defaults)Z.int="";if(G.int!=null&&G.hasOwnProperty("int"))Z.int=G.int;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),x.DecProto=(()=>{function y(L){if(L){for(let G=Object.keys(L),X=0;X<G.length;++X)if(L[G[X]]!=null)this[G[X]]=L[G[X]]}}return y.prototype.dec="",y.create=function(G){return new y(G)},y.encode=function(G,X){if(!X)X=Gy.create();if(G.dec!=null&&Object.hasOwnProperty.call(G,"dec"))X.uint32(10).string(G.dec);return X},y.encodeDelimited=function(G,X){return this.encode(G,X).ldelim()},y.decode=function(G,X){if(!(G instanceof P))G=P.create(G);let Z=X===void 0?G.len:G.pos+X,B=new R.cosmos.base.v1beta1.DecProto;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.dec=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof P))G=new P(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.dec!=null&&G.hasOwnProperty("dec")){if(!k.isString(G.dec))return"dec: string expected"}return null},y.fromObject=function(G){if(G instanceof R.cosmos.base.v1beta1.DecProto)return G;let X=new R.cosmos.base.v1beta1.DecProto;if(G.dec!=null)X.dec=String(G.dec);return X},y.toObject=function(G,X){if(!X)X={};let Z={};if(X.defaults)Z.dec="";if(G.dec!=null&&G.hasOwnProperty("dec"))Z.dec=G.dec;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),x})(),f})(),T})()});import{Chain as bG}from"@swapkit/helpers";async function Ky(){let{$root:T}=await Promise.resolve().then(() => (_1(),z1)),f=await import("@cosmjs/proto-signing"),x=f.Registry??f.default?.Registry,y=await import("@cosmjs/stargate"),L=y.defaultRegistryTypes??y.default?.defaultRegistryTypes;return new x([...L,["/types.MsgSend",T.types.MsgSend],["/types.MsgDeposit",T.types.MsgDeposit]])}async function Ey(T){let f=await import("@cosmjs/stargate"),x=f.AminoTypes??f.default?.AminoTypes,y=T===bG.THORChain?"thorchain":"mayachain";return new x({"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,fromAmino:({signer:L,...G})=>({...G,signer:zT(L)}),toAmino:({signer:L,...G})=>({...G,signer:_T(L)})},"/types.MsgSend":{aminoType:`${y}/MsgSend`,fromAmino:({from_address:L,to_address:G,...X})=>({...X,fromAddress:zT(L),toAddress:zT(G)}),toAmino:({fromAddress:L,toAddress:G,...X})=>({...X,from_address:_T(L),to_address:_T(G)})}})}var Pf=E(()=>{Df()});import{AssetValue as nG,Chain as nT,getChainConfig as M1,SwapKitError as jG}from"@swapkit/helpers";function Ff(T){return function(x){let{assetValue:y,recipient:L,memo:G,sender:X,asSignable:Z,asAminoMessage:B}=x;if(L)return Y1(T)({asAminoMessage:B,asSignable:Z,assetValue:y,memo:G,recipient:L,sender:X});return U1(T)({asAminoMessage:B,asSignable:Z,assetValue:y,memo:G,sender:X})}}function Py(T){if(T.type==="thorchain/MsgSend"||T.type==="mayachain/MsgSend")return T;return{...T,value:{...T.value,coins:T.value.coins.map((f)=>{let x=nG.from({asset:f.asset}),y=(x.isSynthetic?x.symbol.split("/")?.[1]:x.symbol)?.toUpperCase(),L=(x.isSynthetic?x.symbol.split("/")?.[0]:x.chain)?.toUpperCase();return{...f,asset:{chain:L,symbol:y,synth:x.isSynthetic,ticker:x.ticker}}})}}}async function UT({chain:T,memo:f,msgs:x}){let y=await Ky(),L=await Ey(T),G={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:f,messages:x.map((X)=>L.fromAmino(X))}};return y.encode(G)}var hG,pG,lf=({sender:T,recipient:f,assetValue:x})=>{return{type:`${x.chain===nT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:x.getBaseValue("string"),denom:Oy(x.symbol,!0)}],from_address:T,to_address:f}}},vf=({sender:T,assetValue:f,memo:x=""})=>{return{type:`${f.chain===nT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:f.getBaseValue("string"),asset:MT(f)}],memo:x,signer:T}}},jT=({sender:T,recipient:f,assetValue:x,memo:y})=>{return!f?vf({assetValue:x,memo:y,sender:T}):lf({assetValue:x,recipient:f,sender:T})},wy=async(T,f)=>{return(await Ey(f)).fromAmino(T)},N1=async({rpcUrl:T,sender:f})=>{let y=await(await Uy(T)).getAccount(f);if(!y)throw new jG("toolbox_cosmos_account_not_found",{sender:f});return y},Y1=(T)=>async({sender:f,recipient:x,assetValue:y,memo:L="",asSignable:G=!0,asAminoMessage:X=!1,sequence:Z,accountNumber:B})=>{let J=await N1({rpcUrl:T,sender:f}),Q=y.chain,{chainId:q}=M1(Q),z=lf({assetValue:y,recipient:x,sender:f}),M=G?await wy(X?z:Py(z),Q):z;return{accountNumber:B||J.accountNumber,chainId:q,fee:Yy(Q),memo:L,msgs:[M],sequence:Z||J.sequence}},U1=(T)=>async({sender:f,assetValue:x,memo:y="",asSignable:L=!0,asAminoMessage:G=!1,sequence:X,accountNumber:Z})=>{let B=await N1({rpcUrl:T,sender:f}),J=x.chain,{chainId:Q}=M1(J),q=vf({assetValue:x,memo:y,sender:f}),z=L?await wy(G?q:Py(q),J):q;return{accountNumber:Z||B.accountNumber,chainId:Q,fee:Yy(J),memo:y,msgs:[z],sequence:X||B.sequence}};var H1=E(()=>{YT();Pf();hG=Yy(nT.THORChain).gas,pG=Yy(nT.Maya).gas});var W1=()=>{};var R1=E(()=>{W1()});var Af=E(()=>{Df();H1();Pf();R1()});import{base64 as $f,bech32 as Sf}from"@scure/base";import{AssetValue as w1,applyFeeMultiplier as C1,Chain as c,CosmosChainPrefixes as P1,DerivationPath as oG,derivationPathToString as D1,FeeOption as Kf,getChainConfig as mG,getRPCUrl as cG,NetworkDerivationPath as tG,SKConfig as gG,SwapKitError as hT,SwapKitNumber as Vf,updateDerivationPath as iG}from"@swapkit/helpers";import{SwapKitApi as l1}from"@swapkit/helpers/api";import{match as dG,P as I1}from"ts-pattern";async function bf(T,f){try{let y=(await l1.getGasRate()).find((L)=>L.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(x){return f}}async function uf({phrase:T,prefix:f,...x}){let y=await import("@cosmjs/proto-signing"),L=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,G=await import("@cosmjs/crypto"),X=G.stringToPath??G.default?.stringToPath,Z="derivationPath"in x?x.derivationPath:`${oG[x.chain]}/${x.index}`;return L.fromMnemonic(T,{hdPaths:[X(Z)],prefix:f})}async function rG({privateKey:T,prefix:f}){let x=await import("@cosmjs/proto-signing");return(x.DirectSecp256k1Wallet??x.default?.DirectSecp256k1Wallet).fromKey(T,f)}function v1(T){return async function({signature:x,message:y,address:L}){let G=await T(L);if(!G?.pubkey)throw new hT("toolbox_cosmos_verify_signature_no_pubkey");let X=await import("@cosmjs/crypto"),Z=X.Secp256k1Signature??X.default?.Secp256k1Signature,B=X.Secp256k1??X.default?.Secp256k1,J=Z.fromFixedLength($f.decode(x));return B.verifySignature(J,$f.decode(y),G.pubkey.value)}}async function HT({chain:T,...f}){let x=await cG(T),y=P1[T],L="index"in f?f.index||0:0,G=D1("derivationPath"in f&&f.derivationPath?f.derivationPath:iG(tG[T],{index:L})),X=await dG(f).with({phrase:I1.string},({phrase:q})=>uf({derivationPath:G,phrase:q,prefix:y})).with({signer:I1.any},({signer:q})=>q).otherwise(()=>{return});async function Z(q){return(await Uy(x)).getAccount(q)}async function B(){let[q]=await X?.getAccounts()||[];return q?.address}async function J(){let[q]=await X?.getAccounts()||[];if(!q?.pubkey)throw new hT("toolbox_cosmos_signer_not_defined");return $f.encode(q?.pubkey)}async function Q({recipient:q,assetValue:z,memo:M="",feeRate:_,feeOptionKey:U=Kf.Fast}){let D=await B();if(!(X&&D))throw new hT("toolbox_cosmos_signer_not_defined");let l=w1.from({chain:T}),F=MT(l),n=_||T2((await O1(T,k1[T]))[U],F),K=await NT(x,X),i=[{amount:z.getBaseValue("string"),denom:Oy(`u${z.symbol}`).toLowerCase()}],{transactionHash:m}=await K.sendTokens(D,q,i,n,M);return m}return{createPrivateKeyFromPhrase:G2(G),createTransaction:Ef,fetchFeeRateFromSwapKit:bf,getAccount:Z,getAddress:B,getBalance:async(q,z)=>{let M=await E1(x)(q);return await Promise.all(M.filter(({denom:_})=>_&&!_.includes("IBC/")).map(({denom:_,amount:U})=>{let D=[c.THORChain,c.Maya].includes(T)&&(_.includes("/")||_.includes("˜"))?`${T}.${_}`:_;return wf(D,U)}))},getBalanceAsDenoms:E1(x),getFees:()=>O1(T,k1[T]),getPubKey:J,getSignerFromPhrase:async({phrase:q,derivationPath:z})=>uf({derivationPath:D1(z),index:L,phrase:q,prefix:y}),getSignerFromPrivateKey:async(q)=>{let z=await import("@cosmjs/proto-signing");return(z.DirectSecp256k1Wallet??z.default?.DirectSecp256k1Wallet).fromKey(q,y)},transfer:Q,validateAddress:A1(y),verifySignature:v1(Z)}}async function F1(T,f){try{let y=(await l1.getGasRate()).find((L)=>L.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(x){return f}}function sG({address:T,chain:f,prefix:x}){let y=x||y2(f);if(!(y&&T))throw new hT("toolbox_cosmos_validate_address_prefix_not_found");return A1(y)(T)}function eG({assetValue:{chain:T}}){return w1.from({chain:T,value:f2(T)})}function y2(T){let{isStagenet:f}=gG.get("envs"),x=T?[c.THORChain,c.Maya].includes(T)&&f:!1,y=T?P1[T]:void 0;return x?`s${y}`:y}async function O1(T,f){let{chainId:x,baseDecimal:y}=mG(T),L=await bf(x,f);return{average:Vf.fromBigInt(BigInt(L),y),fast:Vf.fromBigInt(BigInt(C1(L,Kf.Fast,!0)),y),fastest:Vf.fromBigInt(BigInt(C1(L,Kf.Fastest,!0)),y)}}function T2(T,f){return{amount:[{amount:T.getBaseValue("string"),denom:f}],gas:"200000"}}function f2(T){return{[c.Cosmos]:0.007,[c.Kujira]:0.02,[c.Noble]:0.01,[c.THORChain]:0.02,[c.Maya]:0.02,[c.Harbor]:0.02}[T]||0}function A1(T){return function(x){if(!x.startsWith(T))return!1;try{let{prefix:y,words:L}=Sf.decode(x);return Sf.encode(y,L)===x.toLocaleLowerCase()}catch(y){return!1}}}function E1(T){return async function(x){return(await(await Uy(T)).getAllBalances(x)).map((X)=>({...X,denom:X.denom.includes("/")?X.denom.toUpperCase():X.denom}))}}function G2(T){return async function(x){let y=await import("@cosmjs/crypto"),L=y.stringToPath??y.default?.stringToPath,G=y.Slip10Curve??y.default?.Slip10Curve,X=y.Slip10??y.default?.Slip10,Z=y.EnglishMnemonic??y.default?.EnglishMnemonic,B=y.Bip39??y.default?.Bip39,J=new Z(x),Q=await B.mnemonicToSeed(J),{privkey:q}=X.derivePath(G.Secp256k1,Q,L(T));return q}}var k1,aG;var pT=E(()=>{YT();k1={[c.Cosmos]:500,[c.Kujira]:1000,[c.Noble]:1000,[c.THORChain]:5000000,[c.Maya]:5000000,[c.Harbor]:5000000};aG=F1});import{base64 as uy}from"@scure/base";import{Chain as L2,CosmosChainPrefixes as x2,derivationPathToString as X2,FeeOption as nf,getChainConfig as Z2,getRPCUrl as B2,NetworkDerivationPath as J2,RequestClient as Q2,SKConfig as S1,SwapKitError as V1,SwapKitNumber as $1,updateDerivationPath as q2}from"@swapkit/helpers";import{match as z2,P as K1}from"ts-pattern";function _2({prefix:T,derivationPath:f}){return async function(y,L=0){let G=await import("@cosmjs/amino"),X=G.Secp256k1HdWallet??G.default?.Secp256k1HdWallet,Z=await import("@cosmjs/crypto"),B=Z.stringToPath??Z.default?.stringToPath;return X.fromMnemonic(y,{hdPaths:[B(`${f}/${L}`)],prefix:T})}}function M2(T){return uy.encode(T)}function N2(T){return async function({wallet:x,tx:y}){let{msgs:L,accountNumber:G,sequence:X,chainId:Z,fee:B,memo:J}=typeof y==="string"?JSON.parse(y):y,Q=(await x.getAccounts())?.[0]?.address||"",q=await Ey(T),z=await Ky(),M=await Of(x,{aminoTypes:q,registry:z}),_=[];for(let l of L){let F=await wy(l,T);_.push(F)}let{signatures:[U]}=await M.sign(Q,_,B,J,{accountNumber:G,chainId:Z,sequence:X});return{bodyBytes:await UT({chain:T,memo:J,msgs:L.map(Py)}),signature:M2(U)}}}function Y2({prefix:T,rpcUrl:f}){return async function(y,L,G,X,Z){let{encodeSecp256k1Pubkey:B,pubkeyToAddress:J}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:Q}=(await import("@cosmjs/stargate")).default,{sequence:q,fee:z}=JSON.parse(y),M=await u1(G,X),_=L.map((l)=>[J(B(uy.decode(l.pubKey)),T),uy.decode(l.signature)]),U=await Uy(f),{transactionHash:D}=await U.broadcastTx(Q(M,q,z,Z,new Map(_)));return D}}async function u1(T,f,x=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:L}=(await import("@cosmjs/amino")).default;return y(T.map((G)=>L(uy.decode(G))),f,x)}function U2(T){return uy.decode(T)}async function H2({privateKey:T,message:f}){let{Secp256k1:x}=(await import("@cosmjs/crypto")).default,y=await x.createSignature(uy.decode(f),T);return uy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function jf({chain:T,...f}){let x=S1.get("nodeUrls")[T],y=await B2(T),{isStagenet:L}=S1.get("envs"),G=T===L2.THORChain,X=`${L?"s":""}${x2[T]}`,Z="index"in f?f.index||0:0,B="derivationPath"in f&&f.derivationPath?f.derivationPath:q2(J2[T],{index:Z}),J=await HT({chain:T,...f}),Q=await z2(f).with({phrase:K1.string},({phrase:_})=>J.getSignerFromPhrase({derivationPath:B,phrase:_})).with({signer:K1.any},({signer:_})=>_).otherwise(()=>{return}),q=Yy(T);async function z(){let _,U=`${x}/${G?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:D}}=await Q2.get(U);if(!D||Number.isNaN(D)||D<0)throw new V1("toolbox_cosmos_invalid_fee",{nativeFee:D.toString()});_=new $1(D)}catch{_=new $1({decimal:Z2(T).baseDecimal,value:G?0.02:1})}return{[nf.Average]:_,[nf.Fast]:_,[nf.Fastest]:_}}async function M({assetValue:_,memo:U="",recipient:D}){let{TxRaw:l}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),F=(await Q?.getAccounts())?.[0]?.address;if(!(F&&Q))throw new V1("toolbox_cosmos_no_signer");let n="signAmino"in Q,K=await Ky(),i=await Ey(T),m=await NT(y,Q,{aminoTypes:i,registry:K}),a=jT({assetValue:_,memo:U,recipient:D,sender:F});if(n){let I=await wy(a,T),{signatures:O,authInfoBytes:w}=await m.sign(F,[I],q,U),v=l.encode({authInfoBytes:w,bodyBytes:await UT({chain:T,memo:U,msgs:[a].map(Py)}),signatures:O}).finish();return(await m.broadcastTx(v)).transactionHash}let KT=Py(a),N=await wy(KT,T);return(await m.signAndBroadcast(F,[N],q,U)).transactionHash}return{...J,broadcastMultisigTx:Y2({prefix:X,rpcUrl:y}),buildAminoMsg:jT,buildEncodedTxBody:UT,convertToSignable:wy,createDefaultAminoTypes:()=>Ey(T),createDefaultRegistry:Ky,createMultisig:u1,createTransaction:Ff(y),deposit:M,getFees:z,importSignature:U2,parseAminoMessageForDirectSigning:Py,pubkeyToAddress:async(_)=>{let{pubkeyToAddress:U}=(await import("@cosmjs/amino")).default;return U(_,X)},secp256k1HdWalletFromMnemonic:_2({derivationPath:X2(B),prefix:X}),signMultisigTx:N2(T),signWithPrivateKey:H2,transfer:M}}var hf=E(()=>{Af();YT();pT()});import{Chain as WT,SwapKitError as W2}from"@swapkit/helpers";var R2=(T,f)=>{switch(T){case WT.Cosmos:case WT.Kujira:case WT.Noble:return HT({chain:T,...f});case WT.Maya:case WT.THORChain:return jf({chain:T,...f});default:throw new W2("toolbox_cosmos_not_supported",{chain:T})}};var b1=E(()=>{pT();hf();pT();hf()});var oT={};Ly(oT,{verifySignature:()=>v1,transferMsgAmino:()=>lf,toBase64:()=>SG,parseAminoMessageForDirectSigning:()=>Py,getSignerFromPrivateKey:()=>rG,getSignerFromPhrase:()=>uf,getMsgSendDenom:()=>Oy,getFeeRateFromThorswap:()=>aG,getFeeRateFromSwapKit:()=>F1,getDenomWithChain:()=>MT,getDefaultChainFee:()=>Yy,getCreateTransaction:()=>Ff,getCosmosToolbox:()=>R2,getAssetFromDenom:()=>wf,fromBase64:()=>VG,fetchFeeRateFromSwapKit:()=>bf,estimateTransactionFee:()=>eG,depositMsgAmino:()=>vf,createThorchainToolbox:()=>jf,createStargateClient:()=>Uy,createSigningStargateClient:()=>NT,createOfflineStargateClient:()=>Of,createDefaultRegistry:()=>Ky,createDefaultAminoTypes:()=>Ey,createCosmosToolbox:()=>HT,cosmosValidateAddress:()=>sG,cosmosCreateTransaction:()=>Ef,convertToSignable:()=>wy,buildTransferTx:()=>Y1,buildEncodedTxBody:()=>UT,buildDepositTx:()=>U1,buildAminoMsg:()=>jT,bech32ToBase64:()=>zT,base64ToBech32:()=>_T,YUM_KUJIRA_FACTORY_DENOM:()=>B1,USK_KUJIRA_FACTORY_DENOM:()=>kf,THORCHAIN_GAS_VALUE:()=>hG,MAYA_GAS_VALUE:()=>pG,DEFAULT_NOBLE_FEE_MAINNET:()=>q1,DEFAULT_KUJI_FEE_MAINNET:()=>Q1,DEFAULT_COSMOS_FEE_MAINNET:()=>J1});var mT=E(()=>{Af();b1();YT()});import{AssetValue as C2,getChainConfig as D2}from"@swapkit/helpers";import{SwapKitApi as I2}from"@swapkit/helpers/api";function n1(){function T(){let f=Date.now(),x=pf||f;return pf=x,f>pf?f:x+1}return k2+T().toString(36)}function iy(T){return async function(x,y=!0){let L=await I2.getChainBalance({address:x,chain:T,scamFilter:y}),{baseDecimal:G}=D2(T);return L.map(({identifier:X,value:Z,decimal:B})=>{return new C2({decimal:B||G,identifier:X,value:Z})})}}var k2,pf=0;var RT=E(()=>{k2=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{SKConfig as O2,warnOnce as E2}from"@swapkit/helpers";function CT(T){let f=O2.get("apis")[T];if(f)return E2({condition:!0,id:"custom_evm_api_warning",warning:"Using custom EVM API. Be sure to implement all methods to avoid issues."}),f;return P2(T)}function w2(T){return T}function P2(T){return{getBalance:iy(T)}}var cT=E(()=>{RT()});import{Chain as h,getChainConfig as j1,getRPCUrl as l2,SwapKitError as v2}from"@swapkit/helpers";async function by(T,f){let{JsonRpcProvider:x}=await import("ethers");return new x(f||await l2(T))}function DT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function of(T){let{blockExplorerUrl:f,chainId:x,rpcUrl:y}=j1(T);return()=>T===h.Ethereum?void 0:{...F2({chain:T}),blockExplorerUrls:[f],chainId:x,rpcUrls:[y]}}function mf(T){return![h.Arbitrum,h.BinanceSmartChain].includes(T)}function F2({chain:T}){let{baseDecimal:f}=j1(T);switch(T){case h.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Aurora:return{chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:T}};case h.Base:return{chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Berachain:return{chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}};case h.BinanceSmartChain:return{chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}};case h.Gnosis:return{chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}};case h.Optimism:return{chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:h.Polygon}};default:throw new v2("toolbox_evm_not_supported",{chain:T})}}var dy=()=>{};var h1;var p1=E(()=>{h1=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as A2,applyFeeMultiplierToBigInt as ry,Chain as o,ContractAddress as By,FeeOption as j,isGasAsset as S2,SwapKitError as b,SwapKitNumber as tT}from"@swapkit/helpers";import{erc20ABI as IT}from"@swapkit/helpers/contracts";import{BrowserProvider as V2,Contract as o1,getAddress as gT,Interface as m1}from"ethers";function ay({chain:T=o.Ethereum,provider:f,signer:x,isEIP1559Compatible:y=!0}){return{approve:n2({chain:T,isEIP1559Compatible:y,provider:f,signer:x}),approvedAmount:g1({chain:T,provider:f}),broadcastTransaction:f.broadcastTransaction,call:rf({chain:T,isEIP1559Compatible:y,provider:f,signer:x}),createApprovalTx:o2({chain:T,provider:f,signer:x}),createContract:gf({chain:T,provider:f}),createContractTxObject:ny({chain:T,provider:f}),createTransaction:cf({chain:T,provider:f,signer:x}),createTransferTx:cf({chain:T,provider:f,signer:x}),EIP1193SendTransaction:ey(f),estimateCall:i1({provider:f,signer:x}),estimateGasLimit:h2({chain:T,provider:f,signer:x}),estimateGasPrices:jy({chain:T,isEIP1559Compatible:y,provider:f}),estimateTransactionFee:m2({chain:T,isEIP1559Compatible:y,provider:f}),getAddress:()=>{return x?x.getAddress():void 0},isApproved:b2({chain:T,provider:f}),sendTransaction:d1({chain:T,isEIP1559Compatible:y,provider:f,signer:x}),signMessage:x?.signMessage,transfer:j2({chain:T,isEIP1559Compatible:y,provider:f,signer:x}),validateAddress:(L)=>tf({address:L})}}function tf({address:T}){try{return gT(T),!0}catch(f){return!1}}function sy(T){return T instanceof V2}function OT(T,f,x){return new o1(T,m1.from(f),x)}function gf({provider:T}){return function(x,y){return new o1(x,m1.from(y),T)}}function df({abi:T,funcName:f}){let x=T.find((y)=>y.name===f);if(!x)throw new b("toolbox_evm_no_abi_fragment",{funcName:f});return x.stateMutability&&$2.includes(x.stateMutability)}function c1(T){return gT(T)}function ey(T){return function({value:x,...y}){if(!sy(T))throw new b("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:L,gasPrice:G,maxFeePerGas:X,maxPriorityFeePerGas:Z,...B}=y;return T.send("eth_sendTransaction",[{...B,value:DT(BigInt(x||0))}])}}function t1(T,f){let x=yT(T,f);if(x)return gT(x.toLowerCase());throw new b("toolbox_evm_invalid_gas_asset_address")}function yT({chain:T,symbol:f,ticker:x},y){try{let L=T===o.BinanceSmartChain&&f==="BNB"&&x==="BNB",G=T===y&&f===y&&x===y,X=u2.includes(T)&&f==="ETH"&&x==="ETH";if(G||L||X)return K2[y];return gT(f.slice(x.length+1).replace(/^0X/,""))}catch(L){return null}}function ny({provider:T}){return async({contractAddress:f,abi:x,funcName:y,funcParams:L=[],txOverrides:G})=>OT(f,x,T).getFunction(y).populateTransaction(...L.concat(G).filter((X)=>typeof X<"u"))}function jy({chain:T,provider:f,isEIP1559Compatible:x=!0}){if(T===o.Arbitrum)return async function(){try{let{gasPrice:L}=await f.getFeeData();if(!L)throw new b("toolbox_evm_no_fee_data");return{[j.Average]:{gasPrice:L},[j.Fast]:{gasPrice:L},[j.Fastest]:{gasPrice:L}}}catch(L){throw new b("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}};return async function(){try{let{maxFeePerGas:L,maxPriorityFeePerGas:G,gasPrice:X}=await f.getFeeData();if(x){if(L===null||G===null)throw new b("toolbox_evm_no_fee_data");return{[j.Average]:{maxFeePerGas:L,maxPriorityFeePerGas:G},[j.Fast]:{maxFeePerGas:ry(L,j.Fast),maxPriorityFeePerGas:ry(G,j.Fast)},[j.Fastest]:{maxFeePerGas:ry(L,j.Fastest),maxPriorityFeePerGas:ry(G,j.Fastest)}}}if(!X)throw new b("toolbox_evm_no_gas_price");return{[j.Average]:{gasPrice:X},[j.Fast]:{gasPrice:ry(X,j.Fast)},[j.Fastest]:{gasPrice:ry(X,j.Fastest)}}}catch(L){throw new b("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}}}function rf({provider:T,isEIP1559Compatible:f,signer:x,chain:y}){return async function({callProvider:G,contractAddress:X,abi:Z,funcName:B,funcParams:J=[],txOverrides:Q={},feeOption:q=j.Fast}){let z=G||T;if(!X)throw new b("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let M=df({abi:Z,funcName:B});if(M&&sy(z)&&x){let D=ny({chain:y,provider:z}),l=Q?.from||await x?.getAddress(),F=await D({abi:Z,contractAddress:X,funcName:B,funcParams:J,txOverrides:{...Q,from:l}});return ey(z)(F)}let _=OT(X,Z,z);if(M){if(!x)throw new b("toolbox_evm_no_signer");let D=Q?.from||await x.getAddress();if(!D)throw new b("toolbox_evm_no_signer_address");let l=_.connect(x),F=jy({chain:y,isEIP1559Compatible:f,provider:T}),{maxFeePerGas:n,maxPriorityFeePerGas:K,gasPrice:i}=(await F())[q],m=await _.getFunction(B).estimateGas(...J,Q),a=await l[B](...J,{...Q,gasLimit:m,gasPrice:i,maxFeePerGas:n,maxPriorityFeePerGas:K,nonce:Q?.nonce||await z.getTransactionCount(D)});return typeof a?.hash==="string"?a?.hash:a}let U=await _[B]?.(...J);return typeof U?.hash==="string"?U?.hash:U}}function g1({provider:T,chain:f}){return function({assetAddress:y,spenderAddress:L,from:G}){return rf({chain:f,isEIP1559Compatible:!0,provider:T})({abi:IT,contractAddress:y,funcName:"allowance",funcParams:[G,L]})}}function b2({provider:T,chain:f}){return async function({assetAddress:y,spenderAddress:L,from:G,amount:X=kT}){let Z=await g1({chain:f,provider:T})({assetAddress:y,from:G,spenderAddress:L});return tT.fromBigInt(Z).gte(tT.fromBigInt(BigInt(X)))}}function n2({signer:T,isEIP1559Compatible:f=!0,provider:x,chain:y}){return async function({assetAddress:G,spenderAddress:X,feeOptionKey:Z=j.Fast,amount:B,gasLimitFallback:J,from:Q,nonce:q}){let z=[X,BigInt(B||kT)],M=await T?.getAddress()||Q,_={abi:IT,contractAddress:G,funcName:"approve",funcParams:z,signer:T,txOverrides:{from:M}};if(sy(x)){let D=ny({chain:y,provider:x}),l=ey(x),F=await D(_);return l(F)}return rf({chain:y,isEIP1559Compatible:f,provider:x,signer:T})({..._,feeOption:Z,funcParams:z,txOverrides:{from:M,gasLimit:J?BigInt(J.toString()):void 0,nonce:q}})}}function j2({signer:T,isEIP1559Compatible:f=!0,provider:x}){return async function({assetValue:L,memo:G,recipient:X,feeOptionKey:Z=j.Fast,sender:B,...J}){let{hexlify:Q,toUtf8Bytes:q}=await import("ethers"),z=L.getBaseValue("bigint"),M=L.chain,_=B||await T?.getAddress(),U=d1({chain:M,isEIP1559Compatible:f,provider:x,signer:T});if(!_)throw new b("toolbox_evm_no_from_address");if(L.isGasAsset){let i={...J,data:Q(q(G||"")),feeOptionKey:Z,from:_,to:X,value:z};return U(i)}if(!yT(L,M))throw new b("toolbox_evm_no_contract_address");let{maxFeePerGas:l,maxPriorityFeePerGas:F,gasPrice:n}=(await jy({chain:M,isEIP1559Compatible:f,provider:x})())[Z],K=await cf({chain:M,provider:x,signer:T})({assetValue:L,data:Q(q(G||"")),gasPrice:n,maxFeePerGas:l,maxPriorityFeePerGas:F,memo:G,recipient:X,sender:_});return U(K)}}function i1({provider:T,signer:f}){return function({contractAddress:y,abi:L,funcName:G,funcParams:X=[],txOverrides:Z}){if(!y)throw new b("toolbox_evm_no_contract_address");let B=OT(y,L,T);return f?B.connect(f).getFunction(G).estimateGas(...X,Z):B.getFunction(G).estimateGas(...X,Z)}}function h2({provider:T,signer:f}){return async function({assetValue:y,recipient:L,memo:G,data:X,sender:Z,funcName:B,funcParams:J,txOverrides:Q}){let q=y.bigIntValue,z=y.isGasAsset?null:yT(y,y.chain);if(z&&B)return i1({provider:T,signer:f})({abi:IT,contractAddress:z,funcName:B,funcParams:J,txOverrides:Q});let{hexlify:M,toUtf8Bytes:_}=await import("ethers");return T.estimateGas({data:X?X:G?M(_(G)):void 0,from:Z,to:L,value:q})}}function d1({provider:T,signer:f,isEIP1559Compatible:x=!0,chain:y}){return async function({feeOptionKey:G=j.Fast,...X}){let{from:Z,to:B,data:J,value:Q,...q}=X;if(!f)throw new b("toolbox_evm_no_signer");if(!B)throw new b("toolbox_evm_no_to_address");let z={...q,data:J||"0x",from:Z,to:B,value:BigInt(Q||0)};if(sy(T))return ey(T)(z);let M=Z||await f.getAddress(),_=X.nonce||await T.getTransactionCount(M),U=(await T.getNetwork()).chainId,D=p2(z)||x,l=jy({chain:y,isEIP1559Compatible:x,provider:T}),F=D&&!(z.maxFeePerGas&&z.maxPriorityFeePerGas)||!z.gasPrice?Object.entries((await l())[G]).reduce((K,[i,m])=>({...K,[i]:DT(BigInt(m))}),{}):{},n;try{n=DT(z.gasLimit||await T.estimateGas(z)*11n/10n)}catch(K){throw new b("toolbox_evm_error_estimating_gas_limit",{error:K})}try{let K={...z,chainId:U,gasLimit:n,nonce:_,type:D?2:0,...F};try{return(await f.sendTransaction(K)).hash}catch(i){let m=await f.signTransaction({...K,from:M});return(await T.broadcastTransaction(m)).hash}}catch(K){throw new b("toolbox_evm_error_sending_transaction",{error:K})}}}function cf({provider:T,signer:f}){return async function({assetValue:y,memo:L,recipient:G,data:X,sender:Z,maxFeePerGas:B,maxPriorityFeePerGas:J,gasPrice:Q,...q}){let z=y.getBaseValue("bigint"),M=y.chain,_=Z||await f?.getAddress();if(!_)throw new b("toolbox_evm_no_from_address");if(S2(y)){let{hexlify:l,toUtf8Bytes:F}=await import("ethers");return{...q,data:X||l(F(L||"")),from:_,to:G,value:z}}let U=yT(y,M);if(!U)throw new b("toolbox_evm_no_contract_address");return ny({chain:y.chain,provider:T})({abi:IT,contractAddress:U,funcName:"transfer",funcParams:[G,z],txOverrides:{from:_,gasPrice:Q,maxFeePerGas:B,maxPriorityFeePerGas:J}})}}function o2({provider:T,signer:f,chain:x}){return async function({assetAddress:L,spenderAddress:G,amount:X,from:Z}){let B=await f?.getAddress()||Z,J=ny({chain:x,provider:T}),Q=["bigint","number"].includes(typeof X)?X:X||kT;return await J({abi:IT,contractAddress:L,funcName:"approve",funcParams:[G,BigInt(Q)],txOverrides:{from:B}})}}function m2({provider:T,isEIP1559Compatible:f=!0}){return async function({feeOption:y=j.Fast,chain:L,...G}){let Z=await jy({chain:L,isEIP1559Compatible:f,provider:T})(),B=await T.estimateGas(G),J=A2.from({chain:L}),{gasPrice:Q,maxFeePerGas:q,maxPriorityFeePerGas:z}=Z[y];if(!f&&Q)return J.set(tT.fromBigInt(Q*B,J.decimal));if(q&&z){let M=(q+z)*B;return J.set(tT.fromBigInt(M,J.decimal))}throw new b("toolbox_evm_no_gas_price")}}var kT,$2,K2,u2,p2=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var iT=E(()=>{dy();kT=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");$2=["payable","nonpayable"];K2={[o.Arbitrum]:By.ARB,[o.Aurora]:By.AURORA,[o.Avalanche]:By.AVAX,[o.Base]:By.BASE,[o.Berachain]:By.BERA,[o.BinanceSmartChain]:By.BSC,[o.Ethereum]:By.ETH,[o.Gnosis]:By.GNO,[o.Optimism]:By.OP,[o.Polygon]:By.MATIC},u2=[o.Arbitrum,o.Aurora,o.Base,o.Optimism]});import{Chain as Hy,FeeOption as c2,getRPCUrl as t2}from"@swapkit/helpers";import{HDNodeWallet as g2}from"ethers";import{match as i2,P as r1}from"ts-pattern";async function dT({provider:T,...f}){let x=await Wy(Hy.Ethereum)({provider:T,...f});async function y(L,G="0x5ba1e12693dc8f9c48aad8770482f4739beed696",X="aggregate",Z=c2.Fast){let B=await x.createContractTxObject({abi:h1,contractAddress:G,funcName:X,funcParams:[L]});return x.sendTransaction({...B,feeOptionKey:Z})}return{...x,multicall:y}}function Wy(T){return async function({provider:x,...y}){let L=await t2(T),G=x||await by(T,L),X=mf(T),Z=i2(y).with({phrase:r1.string},({phrase:J})=>g2.fromPhrase(J).connect(G)).with({signer:r1.any},({signer:J})=>J).otherwise(()=>{return});return{...ay({chain:T,isEIP1559Compatible:X,provider:G,signer:Z}),getBalance:CT(T).getBalance,getNetworkParams:of(T)}}}var rT,aT,sT,eT,yf,Tf,ff,Gf;var af=E(()=>{cT();p1();dy();iT();rT=Wy(Hy.Arbitrum),aT=Wy(Hy.Aurora),sT=Wy(Hy.Avalanche),eT=Wy(Hy.Base),yf=Wy(Hy.Berachain),Tf=Wy(Hy.BinanceSmartChain),ff=Wy(Hy.Gnosis),Gf=Wy(Hy.Polygon)});var a1;var s1=E(()=>{a1=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as TT,Chain as Lf,FeeOption as Ry,getChainConfig as d2,getRPCUrl as r2,SwapKitError as sf}from"@swapkit/helpers";import{Contract as a2,HDNodeWallet as s2}from"ethers";import{match as e2,P as e1}from"ts-pattern";function ef(T){return new a2(yL,a1,T)}function y5(T){return function(){let x=ef(T);if(x&&"l1BaseFee"in x)return x?.l1BaseFee();return}}function T5(T){return async function({from:x,to:y,nonce:L,...G}){let{Transaction:X}=await import("ethers");if(!y)throw new sf("toolbox_evm_invalid_transaction",{error:"Missing to address"});return X.from({...G,authorizationList:G.authorizationList,nonce:L?L:x?await T.getTransactionCount(x):0,to:y}).serialized}}function f5(T){return async function(x){let y=ef(T),L=await T5(T)(x);if(y&&"getL1Fee"in y)return y.getL1Fee(L)}}function G5(T){return async function(x){let y=await T.send("eth_gasPrice",[]),L=await T.estimateGas(x);return y.mul(L)}}function TL(T){return async function(x){let y=await f5(T)(x),L=await G5(T)(x);return y.add(L)}}function fL(T){return async function(x){let y=ef(T),L=await T5(T)(x);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(L)}}function GL(){let{baseDecimal:T,chainId:f,blockExplorerUrl:x,name:y,rpcUrl:L}=d2(Lf.Optimism);return{blockExplorerUrls:[x],chainId:f,chainName:y,nativeCurrency:{decimals:T,name:"Ethereum",symbol:Lf.Ethereum},rpcUrls:[L]}}async function LL(T){try{let{maxFeePerGas:f,maxPriorityFeePerGas:x,gasPrice:y}=await T.getFeeData(),L=y5(T)(),G=y;if(!(f&&x))throw new sf("toolbox_evm_no_fee_data");return{[Ry.Average]:{gasPrice:G,l1GasPrice:L,maxFeePerGas:f,maxPriorityFeePerGas:x},[Ry.Fast]:{gasPrice:TT(G,Ry.Fast),l1GasPrice:TT(L||0n,Ry.Fast),maxFeePerGas:f,maxPriorityFeePerGas:TT(x,Ry.Fast)},[Ry.Fastest]:{gasPrice:TT(G,Ry.Fastest),l1GasPrice:TT(L||0n,Ry.Fastest),maxFeePerGas:f,maxPriorityFeePerGas:TT(x,Ry.Fastest)}}}catch(f){throw new sf("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}async function xf({provider:T,...f}){let x=Lf.Optimism,y=await r2(x),L=T||await by(x,y),G=e2(f).with({phrase:e1.string},({phrase:B})=>s2.fromPhrase(B).connect(L)).with({signer:e1.any},({signer:B})=>B).otherwise(()=>{return}),X=ay({provider:L,signer:G}),Z=y5(L);return{...X,estimateGasPrices:LL(L),estimateL1Gas:fL(L),estimateL1GasCost:f5(L),estimateL2GasCost:G5(L),estimateTotalGasCost:TL(L),getBalance:CT(Lf.Optimism).getBalance,getL1GasPrice:Z,getNetworkParams:GL}}var yL="0x420000000000000000000000000000000000000f";var y0=E(()=>{cT();s1();dy();iT()});var x5={};Ly(x5,{toChecksumAddress:()=>c1,isStateChangingCall:()=>df,isBrowserProvider:()=>sy,getTokenAddress:()=>yT,getEvmToolbox:()=>L5,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>ey,getCreateContractTxObject:()=>ny,getCreateContract:()=>gf,getChecksumAddressFromAsset:()=>t1,evmValidateAddress:()=>tf,createContract:()=>OT,OPToolbox:()=>xf,MAX_APPROVAL:()=>kT,MATICToolbox:()=>Gf,GNOToolbox:()=>ff,ETHToolbox:()=>dT,BaseEVMToolbox:()=>ay,BSCToolbox:()=>Tf,BERAToolbox:()=>yf,BASEToolbox:()=>eT,AVAXToolbox:()=>sT,AURORAToolbox:()=>aT,ARBToolbox:()=>rT});import{Chain as Jy,SwapKitError as xL}from"@swapkit/helpers";async function L5(T,f){let x={...f,provider:f?.provider||await by(T)};switch(T){case Jy.Arbitrum:return rT(x);case Jy.Aurora:return aT(x);case Jy.Avalanche:return sT(x);case Jy.Base:return eT(x);case Jy.Berachain:return yf(x);case Jy.BinanceSmartChain:return Tf(x);case Jy.Gnosis:return ff(x);case Jy.Optimism:return xf(x);case Jy.Polygon:return Gf(x);case Jy.Ethereum:return dT(x);default:throw new xL("toolbox_evm_not_supported",{chain:T})}}var T0=E(()=>{dy();af();y0();iT();af();y0()});var X5;var Z5=E(()=>{((x)=>{x.Test="goerli";x.Main="homestead"})(X5||={})});var B5={};Ly(B5,{toHexString:()=>DT,toChecksumAddress:()=>c1,isStateChangingCall:()=>df,isBrowserProvider:()=>sy,getTokenAddress:()=>yT,getProvider:()=>by,getNetworkParams:()=>of,getIsEIP1559Compatible:()=>mf,getEvmToolbox:()=>L5,getEvmApi:()=>CT,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>ey,getCreateContractTxObject:()=>ny,getCreateContract:()=>gf,getChecksumAddressFromAsset:()=>t1,evmValidateAddress:()=>tf,createCustomEvmApi:()=>w2,createContract:()=>OT,OPToolbox:()=>xf,MAX_APPROVAL:()=>kT,MATICToolbox:()=>Gf,GNOToolbox:()=>ff,EthNetwork:()=>X5,ETHToolbox:()=>dT,BaseEVMToolbox:()=>ay,BSCToolbox:()=>Tf,BERAToolbox:()=>yf,BASEToolbox:()=>eT,AVAXToolbox:()=>sT,AURORAToolbox:()=>aT,ARBToolbox:()=>rT});var J5=E(()=>{cT();dy();T0();Z5()});import{AssetValue as XL,Chain as ZL,SwapKitNumber as Q5}from"@swapkit/helpers";async function BL(T,f,x){try{let y=await T.query.system?.account?.(x);if(!y)return[f.set(0)];let{data:{free:L}}=y,G=Q5.fromBigInt(BigInt(L.toString()),f.decimal).getValue("string");return[f.set(G)]}catch(y){return console.error("Error fetching substrate balance:",y),[f.set(0)]}}async function JL(T,f,x){try{let y=await T.query.flip?.account?.(x);if(!y)return[f.set(0)];let L=y.balance||y.data?.balance;if(!L||L.isEmpty)return[f.set(0)];let G=Q5.fromBigInt(BigInt(L.toString()),f.decimal).getValue("string");return[f.set(G)]}catch(y){return console.error("Error fetching chainflip balance:",y),[f.set(0)]}}function q5(T,f){return function(y){let L=XL.from({chain:T});switch(T){case ZL.Chainflip:return JL(f,L,y);default:return BL(f,L,y)}}}var z5=()=>{};var QL,qL,zL,ly;var f0=E(()=>{QL={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},qL={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},zL={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},ly={DOT:QL,FLIP:qL,GENERIC:zL}});import{hexToU8a as _L,isHex as ML,u8aToHex as NL}from"@polkadot/util";import{decodeAddress as M5,encodeAddress as N5}from"@polkadot/util-crypto";import{AssetValue as YL,Chain as GT,getRPCUrl as UL,SwapKitError as Qy,SwapKitNumber as HL}from"@swapkit/helpers";import{match as WL,P as _5}from"ts-pattern";function RL(T,f){switch(T){case GT.Chainflip:return U5(f);case GT.Polkadot:return Y5(f);default:throw new Qy("toolbox_substrate_not_supported",{chain:T})}}function fT(T){return"address"in T}async function L0(T,f){let{Keyring:x}=await import("@polkadot/api"),{cryptoWaitReady:y}=await import("@polkadot/util-crypto");return await y(),new x({ss58Format:f,type:"sr25519"}).addFromUri(T)}function wL(T,f){let x=M5(T);return N5(x,f)}function H5(T,f){return ML(T)?_L(T):M5(T,void 0,f)}function W5(T,f="ss58",x){if(f==="hex")return NL(T);return N5(T,x)}async function Z0({generic:T,chain:f,...x}){let{ApiPromise:y,WsProvider:L}=await import("@polkadot/api"),G=await UL(f),X=new L(G),Z=await y.create({provider:X}),B=YL.from({chain:f}),J=T?ly.GENERIC:ly[f],Q=await WL(x).with({phrase:_5.string},({phrase:q})=>L0(q,ly[f].prefix)).with({signer:_5.any},({signer:q})=>q).otherwise(()=>{return});return R5({api:Z,chain:f,gasAsset:B,network:J,signer:Q})}var Y5=({generic:T=!1,...f}={})=>{return Z0({chain:GT.Polkadot,generic:T,...f})},U5=async({generic:T=!1,...f}={})=>{return{...await Z0({chain:GT.Chainflip,generic:T,...f})}},x0=(T,f)=>T.rpc.system.accountNextIndex(f),G0=(T,f)=>{try{let x=H5(T,f);return W5(x,"ss58",f),!0}catch(x){return!1}},X0=(T,{recipient:f,assetValue:x})=>T.tx.balances?.transferAllowDeath?.(f,x.getBaseValue("number")),CL=async(T,f,{recipient:x,assetValue:y,sender:L})=>{let G=X0(T,{assetValue:y,recipient:x});if(!G)throw new Qy("toolbox_substrate_transfer_error");let X=fT(f),Z=X?f.address:L;if(!Z)throw new Qy("core_transaction_invalid_sender_address");let B=await x0(T,Z);return(await G.signAndSend(X?f:Z,{nonce:B,signer:X?void 0:f})).toString()},DL=async(T,f,x,{recipient:y,assetValue:L,sender:G})=>{let X=X0(T,{assetValue:L,recipient:y}),Z=fT(f)?f.address:G;if(!Z)return;let B=await X?.paymentInfo(Z,{nonce:await x0(T,Z)})||{partialFee:0};return x.set(HL.fromBigInt(BigInt(B.partialFee.toString()),x.decimal).getValue("string"))},IL=async(T,f)=>{if(f)return T.send(f);return(await T.send()).toString()},kL=async(T,f)=>{return await f.signAsync(T)},OL=(T,f,x)=>{if(x)return f.signAndSend(T,x);return f.signAndSend(T).toString()},EL=async({signer:T,address:f,tx:x,callback:y,api:L})=>{let G=await x0(L,f);if(y)x.signAndSend(f,{nonce:G,signer:T},y);return x.signAndSend(f,{nonce:G,signer:T}).toString()},R5=({api:T,network:f,gasAsset:x,signer:y,chain:L})=>({api:T,broadcast:IL,convertAddress:wL,createKeyring:(G)=>L0(G,f.prefix),createTransaction:(G)=>X0(T,G),decodeAddress:H5,encodeAddress:W5,estimateTransactionFee:(G)=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");return DL(T,y,x,G)},gasAsset:x,getAddress:(G)=>{let X=G||y;if(!X)throw new Qy("core_wallet_not_keypair_wallet");return fT(X)?X.address:void 0},getBalance:q5(L||GT.Polkadot,T),network:f,sign:(G)=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");if(fT(y))return kL(y,G);throw new Qy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:G,callback:X,address:Z})=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");if(fT(y))return OL(y,G,X);if(Z)return EL({address:Z,api:T,callback:X,signer:y,tx:G});throw new Qy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(G)=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");return CL(T,y,G)},validateAddress:(G)=>G0(G,f.prefix)}),PL=({address:T,chain:f})=>{let{prefix:x}=f===GT.Polkadot?ly.DOT:ly.FLIP;return G0(T,x)||G0(T,ly.GENERIC.prefix)};var C5=E(()=>{z5();f0()});var B0={};Ly(B0,{substrateValidateAddress:()=>PL,isKeyringPair:()=>fT,getSubstrateToolbox:()=>RL,createSubstrateToolbox:()=>Z0,createKeyring:()=>L0,SubstrateNetwork:()=>ly,PolkadotToolbox:()=>Y5,ChainflipToolbox:()=>U5,BaseSubstrateToolbox:()=>R5});var J0=E(()=>{C5();f0()});import{networks as lL}from"@bitgo/utxo-lib";import{Chain as t,getRPCUrl as vL,RequestClient as Xf,SKConfig as k5,SwapKitError as vy,warnOnce as O5}from"@swapkit/helpers";import{networks as FL}from"bitcoinjs-lib";import ET from"coininfo";async function AL({chain:T,txHash:f}){let x=`${Zf(T)}/push/transaction`,y=JSON.stringify({data:f});try{let L=await Xf.post(x,{body:y,headers:{"Content-Type":"application/json"}});if(L.context.code!==200)throw new vy("toolbox_utxo_broadcast_failed",{error:L.context.error||"Transaction broadcast failed"});return L.data?.transaction_hash||f}catch(L){let G=await vL(T);if(G){let X=JSON.stringify({id:n1(),jsonrpc:"2.0",method:"sendrawtransaction",params:[f]}),Z=await Xf.post(G,{body:X,headers:{"Content-Type":"application/json"}});if(Z.error)throw new vy("toolbox_utxo_broadcast_failed",{error:Z.error?.message});if(Z.result.includes('"code":-26'))throw new vy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return Z.result}throw L}}function Zf(T){return`https://api.blockchair.com/${SL(T)}`}function D5(T){switch(T){case t.Bitcoin:return 5;case t.Dogecoin:return 1e4;case t.Litecoin:return 1;case t.Zcash:return 1;default:return 2}}function SL(T){switch(T){case t.BitcoinCash:return"bitcoin-cash";case t.Litecoin:return"litecoin";case t.Dash:return"dash";case t.Dogecoin:return"dogecoin";case t.Zcash:return"zcash";case t.Polkadot:return"polkadot";default:return"bitcoin"}}async function VL(T){try{let{feePerKb:f}=await Xf.get(`https://app.bitgo.com/api/v2/${T.toLowerCase()}/tx/fee`),x=f/1000;return Math.max(x,D5(T))}catch(f){return D5(T)}}async function Q0(T,f){let x=await Xf.get(`${T}${f?`${T.includes("?")?"&":"?"}key=${f}`:""}`);if(!x||x.context.code!==200)throw new vy("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return x.data}async function E5({address:T,chain:f,apiKey:x}){if(!T)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Q0(`${Zf(f)}/dashboards/address/${T}?transaction_details=true`,x))[T]}catch(y){return{address:{balance:0,transaction_count:0},utxo:[]}}}async function $L({address:T,chain:f,apiKey:x}){return(await E5({address:T,apiKey:x,chain:f}))?.address.balance||0}async function w5({chain:T,apiKey:f,txHash:x}){if(!x)throw new vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Q0(`${Zf(T)}/raw/transaction/${x}`,f))?.[x]?.raw_transaction||""}catch(y){return console.error("Failed to fetch raw transaction:",y),""}}async function KL({chain:T,address:f,apiKey:x,offset:y=0,limit:L=30}){return(await Q0(`${Zf(T)}/outputs?q=recipient(${f}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${L}&offset=${y}`,x)).map(({is_spent:B,script_hex:J,block_id:Q,transaction_hash:q,index:z,value:M,spending_signature_hex:_})=>({hash:q,index:z,is_confirmed:Q!==-1,is_spent:B,script_hex:J,txHex:_,value:M}))}function uL(T){return T.reduce((f,x)=>f+x.value,0)}function I5(T,f){let x=[...T].sort((y,L)=>L.value-y.value);if(f){let y=[],L=0;for(let G of x)if(y.push(G),L+=G.value,L>=f)break;return y}return x}async function P5({chain:T,address:f,apiKey:x,targetValue:y,accumulativeValue:L=0,offset:G=0,limit:X=30}){if(!f)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let Z=await KL({address:f,apiKey:x,chain:T,limit:X,offset:G,targetValue:y}),J=Z.length<X,Q=Z.filter(({is_spent:D})=>!D),q=uL(Q),z=L+q,M=y&&z>=y;if(J||M)return I5(Q,y);let _=await P5({accumulativeValue:z,address:f,apiKey:x,chain:T,limit:X,offset:G+X,targetValue:y}),U=[...Q,..._];return I5(U,y)}catch(Z){return console.error("Failed to fetch unspent UTXOs:",Z),[]}}async function bL({address:T,chain:f,apiKey:x,fetchTxHex:y=!0,targetValue:L}){let G=await P5({address:T,apiKey:x,chain:f,targetValue:L}),X=[];for(let{hash:Z,index:B,script_hex:J,value:Q}of G){let q;if(y)q=await w5({apiKey:x,chain:f,txHash:Z});X.push({address:T,hash:Z,index:B,txHex:q,value:Q,witnessUtxo:{script:Buffer.from(J,"hex"),value:Q}})}return X}function nL(T){let f=k5.get("apiKeys").blockchair||"";return O5({condition:!f,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(x)=>AL({chain:T,txHash:x}),getAddressData:(x)=>E5({address:x,apiKey:f,chain:T}),getBalance:(x)=>$L({address:x,apiKey:f,chain:T}),getRawTx:(x)=>w5({apiKey:f,chain:T,txHash:x}),getSuggestedTxFee:()=>VL(T),getUtxos:(x)=>bL({...x,apiKey:f,chain:T})}}function jL(T){return T}function s(T){let f=k5.get("apis")[T];if(f)return O5({condition:!0,id:"custom_utxo_api_warning",warning:"Using custom UTXO API. Be sure to implement all methods to avoid issues."}),f;return nL(T)}function qy(){return function(f){switch(f){case t.Bitcoin:return FL.bitcoin;case t.BitcoinCash:return ET.bitcoincash.main.toBitcoinJS();case t.Dash:return ET.dash.main.toBitcoinJS();case t.Litecoin:return ET.litecoin.main.toBitcoinJS();case t.Dogecoin:{let x={private:70615956,public:70617039},y=ET.dogecoin.test;return y.versions.bip32=x,ET.dogecoin.main.toBitcoinJS()}case t.Zcash:return lL.zcash;default:throw new vy("toolbox_utxo_not_supported",{chain:f})}}}var l5=E(()=>{RT()});import{SwapKitError as F5}from"@swapkit/helpers";import A5 from"bs58check";import S5 from"cashaddrjs";function z0(T){try{return Bf(T),!0}catch(f){return!1}}function _0(T){return Bf(T)?.network}function LT(T){let f=Bf(T);if(f?.format==="legacy")return T;return oL(f)}function wT(T){let f=Bf(T);return mL(f)}function Bf(T){try{let f=hL(T);if(f)return f}catch(f){}try{let f=pL(T);if(f)return f}catch(f){}throw new F5("toolbox_utxo_invalid_address",{address:T})}function hL(T){try{let f=A5.decode(T);if(f.length!==21)throw new F5("toolbox_utxo_invalid_address",{address:T});let x=f[0],y=Array.prototype.slice.call(f,1);switch(x){case $.legacy.mainnet.p2pkh:return{format:"legacy",hash:y,network:"mainnet",type:"p2pkh"};case $.legacy.mainnet.p2sh:return{format:"legacy",hash:y,network:"mainnet",type:"p2sh"};case $.legacy.testnet.p2pkh:return{format:"legacy",hash:y,network:"testnet",type:"p2pkh"};case $.legacy.testnet.p2sh:return{format:"legacy",hash:y,network:"testnet",type:"p2sh"};case $.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2pkh"};case $.bitpay.mainnet.p2sh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2sh"};default:return}}catch(f){return}}function pL(T){if(T.indexOf(":")!==-1)try{return v5(T)}catch(f){}else{let f=["bitcoincash","bchtest","bchreg"];for(let x of f)try{return v5(`${x}:${T}`)}catch(y){}}return}function v5(T){try{let{hash:f,prefix:x,type:y}=S5.decode(T);return{format:"cashaddr",hash:Array.prototype.slice.call(f,0),network:x==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch(f){return}}function oL(T){let f=$.legacy[T.network][T.type],x=Buffer.alloc(1+T.hash.length);return x[0]=f,x.set(T.hash,1),A5.encode(x)}function mL(T){let f=T.network==="mainnet"?"bitcoincash":"bchtest",x=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return S5.encode(f,x,y)}var q0,$;var V5=E(()=>{((x)=>{x.Mainnet="mainnet";x.Testnet="testnet"})(q0||={});$={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as cL}from"@swapkit/helpers";import{opcodes as tL,script as gL}from"bitcoinjs-lib";function zy(T){let f=Buffer.from(T,"utf8");return gL.compile([tL.OP_RETURN,f])}var iL=1000,Qf=10,$5=10,dL=41,rL=107,qf,Jf,PT,lT=(T)=>{if(T.startsWith("bc1")||T.startsWith("tb1")||T.startsWith("ltc1")||T.startsWith("tltc1"))return"P2WPKH";if(T.startsWith("1")||T.startsWith("m")||T.startsWith("n")||T.startsWith("bitcoincash:q")||T.startsWith("bitcoincash:p")||T.startsWith("q")||T.startsWith("p")||T.startsWith("L")||T.startsWith("M")||T.startsWith("3")||T.startsWith("D")||T.startsWith("A")||T.startsWith("9")||T.startsWith("X")||T.startsWith("7")||T.startsWith("y")||T.startsWith("t1")||T.startsWith("t3")||T.startsWith("tm"))return"P2PKH";throw new cL("toolbox_utxo_invalid_address",{address:T})},xT=({inputs:T,outputs:f,feeRate:x})=>{let y=T[0]&&"address"in T[0]&&T[0].address?lT(T[0].address):"P2PKH",L=T.filter((X)=>X.value>=Jf["type"in X?X.type:"P2PKH"]*Math.ceil(x)).reduce((X,Z)=>X+Fy(Z),0),G=f?.reduce((X,Z)=>X+vT(Z),0)||PT[y];return Qf+L+G},Fy=(T)=>{if("type"in T)return Jf[T.type];if("address"in T&&T.address)return Jf[lT(T.address)];return dL+rL},vT=(T,f)=>{if(T?.script)return $5+T.script.length+(T.script.length>=74?2:1);if(f)return PT[f];return PT.P2PKH};var M0=E(()=>{((x)=>{x.P2PKH="P2PKH";x.P2WPKH="P2WPKH"})(qf||={});Jf={["P2PKH"]:148,["P2WPKH"]:68},PT={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as hy,SwapKitError as aL}from"@swapkit/helpers";function zf(T){switch(T){case hy.Bitcoin:case hy.BitcoinCash:return 550;case hy.Dash:case hy.Litecoin:return 5500;case hy.Dogecoin:return 1e5;case hy.Zcash:return 546;default:throw new aL("toolbox_utxo_not_supported",{chain:T})}}function _y({inputs:T,outputs:f,feeRate:x=1,chain:y=hy.Bitcoin,changeAddress:L=""}){let G=Math.ceil(x),X=T[0]&&"address"in T[0]&&T[0].address?lT(T[0].address):"P2PKH",Z=T.filter((M)=>Fy(M)*G<=M.value),B=Qf+f.reduce((M,_)=>M+vT(_,X),0),J=f.reduce((M,_)=>M+_.value,0),Q=B*G,q=0,z=[];for(let M of Z){let _=Fy(M),U=G*_;Q+=U,q+=M.value,z.push(M);let D=Q+J;if(q<D)continue;let l=q-D,F=G*vT({address:"",value:0},X);if(l>F){let n=F+Q,K=q-(J+n);if(K>Math.max(Fy({})*G,zf(y)))return{fee:n,inputs:z,outputs:f.concat({address:L,value:K})}}return{fee:Q,inputs:z,outputs:f}}return{fee:G*xT({feeRate:G,inputs:T,outputs:f})}}var K5=E(()=>{M0()});var XT=E(()=>{l5();V5();K5();M0()});import{networks as sL,address as eL}from"@bitgo/utxo-lib";import yx 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=yx.decode(T);if(x.length<21)return!1;let y=x[0];return y===f.pubKeyHash||y===f.scriptHash}}catch{return!1}}var FT=E(()=>{XT()});import Y0 from"@bitcoinerlab/secp256k1";import{ECPair as Tx,HDNode as fx}from"@psf/bitcoincashjs-lib";import{HDKey as Gx}from"@scure/bip32";import{mnemonicToSeedSync as u5}from"@scure/bip39";import{AssetValue as N0,applyFeeMultiplier as b5,Chain as e,DerivationPath as Lx,derivationPathToString as xx,FeeOption as Cy,NetworkDerivationPath as Xx,SwapKitError as Dy,SwapKitNumber as Zx,updateDerivationPath as Bx}from"@swapkit/helpers";import{address as Jx,initEccLib as j5,Psbt as Qx,payments as n5}from"bitcoinjs-lib";import{ECPairFactory as qx}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 Qx({network:q(X)});if(X===e.Dogecoin)z.setMaximumFeeRate(650000000);let{psbt:M,inputs:_}=await h5({chain:X,compiledMemo:Z,inputs:J,outputs:Q,psbt:z,sender:L});return{inputs:_,psbt:M,utxos:B.inputs}}async function o5(){let T=await qy();return function({address:x,chain:y}){if(y===e.BitcoinCash)return Ay(x);if(y===e.Zcash)return ZT(x);try{return j5(Y0),Jx.toOutputScript(x,T(y)),!0}catch(L){return!1}}}async function zx({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=xx("derivationPath"in f&&f.derivationPath?f.derivationPath:Bx(Xx[T],{index:y})),G=x?await zx({chain:T,derivationPath:L,phrase:x}):("signer"in f)?f.signer:void 0;function X(){return Promise.resolve(G?.getAddress())}let Z=await o5(),B=await ST(T);return{accumulative:_y,broadcastTx:(J)=>s(T).broadcastTx(J),calculateTxSize:xT,createKeysForPath:B,createTransaction:p5,estimateMaxSendableAmount:_x(T),estimateTransactionFee:Mx(T),getAddress:X,getAddressFromKeys:U0(T),getBalance:iy(T),getFeeRates:()=>VT(T),getInputsOutputsFee:m5,getPrivateKeyFromMnemonic:(J)=>{return B(J).toWIF()},transfer:Nx(G),validateAddress:(J)=>Z({address:J,chain:T})}}async function m5({assetValue:T,feeOptionKey:f=Cy.Fast,feeRate:x,memo:y,sender:L,recipient:G}){let X=T.chain,Z=await c5({assetValue:T,memo:y,recipient:G,sender:L}),B=x?Math.floor(x):(await VT(X))[f];return _y({...Z,chain:X,feeRate:B})}function _x(T){return async function({from:x,memo:y,feeRate:L,feeOptionKey:G=Cy.Fast,recipients:X=1}){let Z=await s(T).getAddressData(x),B=L?Math.ceil(L):(await VT(T))[G],J=Z?.utxo.map((_)=>({..._,hash:"",type:"P2PKH"})).filter((_)=>_.value>Math.max(zf(T),Fy(_)*B));if(!J?.length)return N0.from({chain:T});let Q=N0.from({chain:T,value:J.reduce((_,U)=>_+U.value,0)}),q=typeof X==="number"?Array.from({length:X},()=>({address:x,value:0})):X;if(y){let _=await zy(y);q.push({address:x,script:_,value:0})}let M=xT({feeRate:B,inputs:J,outputs:q})*B;return Q.sub(M)}}function Mx(T){return async(f)=>{let x=await m5(f);return N0.from({chain:T,value:Zx.fromBigInt(BigInt(x.fee),8).getValue("string")})}}async function ST(T){let f=await qy();switch(T){case e.BitcoinCash:return function({phrase:y,derivationPath:L=`${Lx.BCH}/0`,wif:G}){let X=f(T);if(G)return Tx.fromWIF(G,X);if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return fx.fromSeedBuffer(Buffer.from(u5(y)),X).derivePath(L).keyPair};case e.Bitcoin:case e.Dogecoin:case e.Litecoin:case e.Zcash:case e.Dash:return function({phrase:y,wif:L,derivationPath:G}){if(!(L||y))throw new Dy("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let X=qx(Y0),Z=f(T);if(L)return X.fromWIF(L,Z);let B=u5(y),J=Gx.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 Nx(T){return async function({memo:x,recipient:y,feeOptionKey:L,feeRate:G,assetValue:X}){let Z=await T?.getAddress(),B=X.chain;if(!(T&&Z))throw new Dy("toolbox_utxo_no_signer");if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let J=G||(await VT(B))[L||Cy.Fast],{psbt:Q}=await p5({assetValue:X,feeRate:J,memo:x,recipient:y,sender:Z}),q=await T.signTransaction(Q);return q.finalizeAllInputs(),s(B).broadcastTx(q.extractTransaction().toHex())}}async function VT(T){let f=await s(T).getSuggestedTxFee();return{[Cy.Average]:f,[Cy.Fast]:b5(f,Cy.Fast),[Cy.Fastest]:b5(f,Cy.Fastest)}}async function c5({assetValue:T,recipient:f,memo:x,sender:y,fetchTxHex:L=!1}){let G=T.chain,X=(await VT(G))[Cy.Fastest],Z=L||AT.includes(G),B=T.getBaseValue("number"),J=Math.ceil(B+X*5000);return{inputs:await s(G).getUtxos({address:y,fetchTxHex:Z,targetValue:J}),outputs:[{address:f,value:B},...x?[{address:"",script:await zy(x),value:0}]:[]]}}var AT;var $T=E(()=>{RT();XT();FT();AT=[e.Dash,e.Dogecoin,e.Zcash,e.BitcoinCash]});import{address as Yx,Transaction as Ux,TransactionBuilder as Hx}from"@psf/bitcoincashjs-lib";import{Chain as Wx,derivationPathToString as Rx,FeeOption as Cx,NetworkDerivationPath as Dx,SwapKitError as BT,updateDerivationPath as Ix}from"@swapkit/helpers";import{Psbt as kx}from"bitcoinjs-lib";function my(T){return py(wT(T))}function Ox(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=Rx("derivationPath"in T&&T.derivationPath?T.derivationPath:Ix(Dx[Xy],{index:x})),L=f?(await ST(Xy))({derivationPath:y,phrase:f}):void 0,G=L?Ox(L):("signer"in T)?T.signer:void 0;function X(){return Promise.resolve(G?.getAddress())}let{getBalance:Z,getFeeRates:B,broadcastTx:J,...Q}=await oy({chain:Xy});function q(z,M=!0){return Z(py(wT(z)))}return{...Q,broadcastTx:J,buildTx:wx,createTransaction:t5,getAddress:X,getAddressFromKeys:Px,getBalance:q,getFeeRates:B,stripPrefix:py,stripToCashAddress:my,transfer:Ex({broadcastTx:J,getFeeRates:B,signer:G}),validateAddress:Ay}}async function t5({assetValue:T,recipient:f,memo:x,feeRate:y,sender:L}){if(!Ay(f))throw new BT("toolbox_utxo_invalid_address",{address:f});let G=Math.ceil(T.getBaseValue("number")+y*7500),X=await s(Xy).getUtxos({address:my(L),fetchTxHex:!0,targetValue:G}),Z=x?await zy(x):null,B=[];B.push({address:f,value:T.getBaseValue("number")});let{inputs:J,outputs:Q}=_y({chain:Xy,feeRate:y,inputs:X,outputs:B});if(!(J&&Q))throw new BT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:L});let q=await qy(),z=new Hx(q(Xy));await Promise.all(J.map(async(M)=>{let _=await s(Xy).getRawTx(M.hash);z.addInput(Ux.fromBuffer(Buffer.from(_,"hex")),M.index)}));for(let M of Q){let _="address"in M&&M.address?M.address:LT(L),U=await qy(),D=Yx.toOutputScript(LT(_),U(Xy));z.addOutput(D,M.value)}if(Z)z.addOutput(Z,0);return{builder:z,utxos:J}}function Ex({broadcastTx:T,getFeeRates:f,signer:x}){return async function({recipient:L,assetValue:G,feeOptionKey:X=Cx.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 wx({assetValue:T,recipient:f,memo:x,feeRate:y,sender:L,setSigHashType:G}){let X=wT(f);if(!Ay(X))throw new BT("toolbox_utxo_invalid_address",{address:X});let Z=Math.ceil(T.getBaseValue("number")+y*7500),B=await s(Xy).getUtxos({address:my(L),fetchTxHex:!1,targetValue:Z}),J=Number(y.toFixed(0)),Q=x?await zy(x):null,q=[];if(q.push({address:LT(f),value:T.getBaseValue("number")}),Q)q.push({script:Q,value:0});let{inputs:z,outputs:M}=_y({chain:Xy,feeRate:J,inputs:B,outputs:q});if(!(z&&M))throw new BT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:L});let _=await qy(),U=new kx({network:_(Xy)});for(let{hash:D,index:l,witnessUtxo:F}of z)U.addInput({hash:D,index:l,sighashType:G?65:void 0,witnessUtxo:F});for(let D of M){let l="address"in D&&D.address?D.address:LT(L),F=D.script?Q?{script:Q,value:0}:void 0:{address:l,value:D.value};if(F)U.addOutput(F)}return{inputs:z,psbt:U,utxos:B}}function Px(T){let f=T.getAddress(0);return my(f)}var Xy;var _f=E(()=>{XT();$T();FT();Xy=Wx.BitcoinCash});import{bitgo as lx,crypto as vx,ECPair as i5,networks as Fx,address as Ax}from"@bitgo/utxo-lib";import{HDKey as d5}from"@scure/bip32";import{mnemonicToSeedSync as r5}from"@scure/bip39";import{Chain as Mf,derivationPathToString as Sx,FeeOption as Vx,NetworkDerivationPath as $x,SKConfig as Kx,SwapKitError as Nf,updateDerivationPath as ux}from"@swapkit/helpers";import bx from"bs58check";import{match as nx,P as W0}from"ts-pattern";function a5(){return Fx.zcash}function s5(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
- `,pubKeyHash:28,scriptHash:28,wif:128}}function jx({phrase:T,derivationPath:f}){let x=r5(T),L=d5.fromMasterSeed(x).derive(f);if(!L.privateKey)throw new Nf("toolbox_utxo_invalid_params");let G=s5(),X=i5.fromPrivateKey(Buffer.from(L.privateKey),{network:G}),Z=vx.hash160(X.publicKey),{isStagenet:B}=Kx.get("envs"),J=B?Buffer.from([29,37]):Buffer.from([28,184]),Q=Buffer.concat([J,Z]),q=bx.encode(Q);return{getAddress:()=>Promise.resolve(q),signTransaction:(z)=>{let M=z.signAllInputs(X);return Promise.resolve(M)}}}function hx({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:Ax.toOutputScript(X,a5()),value:BigInt(G.value)};x.addOutput(B)}return{inputs:T,psbt:x}}async function g5(T){let{assetValue:f,recipient:x,memo:y,feeRate:L,sender:G,fetchTxHex:X}=T,Z=y?zy(y):null,B=await s(Mf.Zcash).getUtxos({address:G,fetchTxHex:X!==!1}),J=[{address:x,value:Number(f.getBaseValue("string"))},...Z?[{script:Z,value:0}]:[]],{inputs:Q,outputs:q}=_y({chain:Mf.Zcash,changeAddress:G,feeRate:L,inputs:B,outputs:J});if(!(Q&&q))throw new Nf("toolbox_utxo_insufficient_balance",{assetValue:f,sender:G});let z=lx.createPsbtForNetwork({network:a5()},{version:455}),_=3268858036,U=Buffer.concat([Buffer.of(252),Buffer.of(5),Buffer.from("BITGO"),Buffer.of(0)]),D=Buffer.allocUnsafe(4);D.writeUInt32LE(_>>>0,0),z.addUnknownKeyValToGlobal({key:U,value:D});let{psbt:l,inputs:F}=await hx({compiledMemo:Z,inputs:Q,outputs:q,psbt:z,sender:G});return{inputs:F,outputs:q,psbt:l}}async function R0(T){let f=await nx(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||$x[Mf.Zcash]||[44,133,0,0,0],Q=ux(J,{index:B}),q=Sx(Q);return jx({derivationPath:q,phrase:X})}).otherwise(()=>Promise.resolve(void 0)),x=await oy({chain:Mf.Zcash,signer:f});async function y({recipient:X,assetValue:Z,feeOptionKey:B=Vx.Fast,...J}){let Q=await f?.getAddress();if(!(f&&Q))throw new Nf("toolbox_utxo_no_signer");let q=J.feeRate||(await x.getFeeRates())[B],{psbt:z}=await g5({...J,assetValue:Z,feeRate:q,recipient:X,sender:Q}),M=await f.signTransaction(z);return M.finalizeAllInputs(),x.broadcastTx(M.extractTransaction().toHex())}function L({phrase:X,derivationPath:Z="m/44'/133'/0'/0/0"}){let B=r5(X),Q=d5.fromMasterSeed(B).derive(Z);if(!Q.privateKey)throw new Nf("toolbox_utxo_invalid_params");let q=s5();return i5.fromPrivateKey(Buffer.from(Q.privateKey),{network:q})}function G({phrase:X,derivationPath:Z="m/44'/133'/0'/0/0"}){return L({derivationPath:Z,phrase:X}).toWIF()}return{...x,createKeysForPath:L,createTransaction:g5,getPrivateKeyFromMnemonic:G,transfer:y,validateAddress:ZT}}var C0=E(()=>{XT();$T();FT()});import{Chain as JT,SwapKitError as px}from"@swapkit/helpers";async function ox(T,f){switch(T){case JT.BitcoinCash:return await H0(f||{});case JT.Zcash:return await R0(f);case JT.Bitcoin:case JT.Dogecoin:case JT.Litecoin:case JT.Dash:return await oy({chain:T,...f});default:throw new px("toolbox_utxo_not_supported",{chain:T})}}var e5=E(()=>{_f();$T();C0();_f();FT()});var D0={};Ly(D0,{validateZcashAddress:()=>ZT,toLegacyAddress:()=>LT,toCashAddress:()=>wT,stripToCashAddress:()=>my,stripPrefix:()=>py,nonSegwitChains:()=>AT,isValidAddress:()=>z0,getUtxoToolbox:()=>ox,getUtxoNetwork:()=>qy,getUtxoApi:()=>s,getUTXOAddressValidator:()=>o5,getScriptTypeForAddress:()=>lT,getOutputSize:()=>vT,getInputSize:()=>Fy,getDustThreshold:()=>zf,getCreateKeysForPath:()=>ST,detectAddressNetwork:()=>_0,createZcashToolbox:()=>R0,createUTXOToolbox:()=>oy,createCustomUtxoApi:()=>jL,createBCHToolbox:()=>H0,compileMemo:()=>zy,calculateTxSize:()=>xT,bchValidateAddress:()=>Ay,addressFromKeysGetter:()=>U0,addInputsAndOutputs:()=>h5,accumulative:()=>_y,UtxoNetwork:()=>q0,UTXOScriptType:()=>qf,TX_OVERHEAD:()=>Qf,OutputSizes:()=>PT,OP_RETURN_OVERHEAD:()=>$5,MIN_TX_FEE:()=>iL,InputSizes:()=>Jf});var I0=E(()=>{XT();e5();_f();$T();C0()});import{AssetValue as k0,Chain as ty,DerivationPath as mx,derivationPathToString as cx,getChainConfig as fG,getRPCUrl as tx,NetworkDerivationPath as gx,SwapKitError as gy,updateDerivationPath as ix}from"@swapkit/helpers";import{match as dx,P as yG}from"ts-pattern";async function rx(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 ax(T){let f=await cy(),{PublicKey:x}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),L=new x(T),G=[],X=await f.getBalance(L);if(X>0){let{baseDecimal:B}=fG(ty.Solana);G.push(k0.from({chain:ty.Solana,fromBaseDecimal:B,value:X}))}let Z=await f.getParsedTokenAccountsByOwner(L,{programId:y});for(let{account:B}of Z.value){let J=B.data.parsed.info,Q=J.mint,q=J.tokenAmount.amount;if(Number(q)===0)continue;let z=await rx(Q),M=z?.symbol||"UNKNOWN",_=z?.decimals||J.tokenAmount.decimals;G.push(k0.from({asset:`${ty.Solana}.${M}-${Q}`,fromBaseDecimal:_,value:q}))}return G}async function w0(){let{PublicKey:T}=await import("@solana/web3.js");return(f)=>{try{let x=new T(f);return T.isOnCurve(x.toBytes())}catch(x){return!1}}}async function sx(T){let f=T&&"index"in T?T.index||0:0,x=cx(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:ix(gx[ty.Solana],{index:f})),y=await dx(T).with({phrase:yG.string},({phrase:G})=>E0({derivationPath:x,phrase:G})).with({signer:yG.any},({signer:G})=>G).otherwise(()=>{return});function L(){return y?.publicKey?TG(y.publicKey):""}return{broadcastTransaction:O0(cy),createKeysForPath:E0,createTransaction:P0(cy),createTransactionFromInstructions:f8,estimateTransactionFee:ex(cy),getAddress:L,getAddressFromPubKey:TG,getAddressValidator:w0,getBalance:(G)=>{let X=G||L();if(!X)throw new gy("core_wallet_connection_not_found");return ax(X)},getConnection:cy,getPubkeyFromAddress:l0,signTransaction:L8(cy,y),transfer:G8(cy,y)}}function ex(T){return async({recipient:f,assetValue:x,memo:y,isProgramDerivedAddress:L,sender:G})=>{let X=await T(),B=(await P0(T)({assetValue:x,isProgramDerivedAddress:L,memo:y,recipient:f,sender:G})).compileMessage(),J=await X.getFeeForMessage(B);if(J.value===null)throw new gy("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:Q}=fG(ty.Solana);return k0.from({chain:ty.Solana,fromBaseDecimal:Q,value:J.value})}}async function cy(){let{Connection:T}=await import("@solana/web3.js"),f=await tx(ty.Solana);return new T(f,"confirmed")}function y8(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 T8({amount:f.getBaseValue("number"),connection:G,decimals:f.decimal,from:X,isProgramDerivedAddress:L,recipient:x,tokenAddress:f.address});return}}async function T8({tokenAddress:T,recipient:f,from:x,connection:y,amount:L,decimals:G,isProgramDerivedAddress:X}){let{getAssociatedTokenAddress:Z,getAccount:B,createAssociatedTokenAccountInstruction:J,createTransferCheckedInstruction:Q}=await import("@solana/spl-token"),{Transaction:q,PublicKey:z}=await import("@solana/web3.js"),M=new q,_=new z(T),U=await Z(_,x),D=new z(f),l=await Z(_,D,X),F=!1;try{await B(y,l),F=!0}catch(n){}if(!F)M.add(J(x,l,D,_));return M.add(Q(U,_,l,x,L,G)),M}function P0(T){return async({recipient:f,assetValue:x,memo:y,isProgramDerivedAddress:L,sender:G})=>{let{createMemoInstruction:X}=await import("@solana/spl-memo"),Z=await l0(G),B=await w0();if(!(L||B(f)))throw new gy("core_transaction_invalid_recipient_address");let J=await T(),Q=await y8(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 f8({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 G8(T,f){return async({recipient:x,assetValue:y,memo:L,isProgramDerivedAddress:G})=>{if(!f)throw new gy("core_transaction_invalid_sender_address");let X=f.publicKey?.toString()??(await f.connect()).publicKey.toString(),Z=await P0(T)({assetValue:y,isProgramDerivedAddress:G,memo:L,recipient:x,sender:X});if("signTransaction"in f){let B=await f.signTransaction(Z);return O0(T)(B)}return Z.sign(f),O0(T)(Z)}}function O0(T){return async(f)=>{return(await T()).sendRawTransaction(f.serialize())}}function L8(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=mx.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:()=>sx,getSolanaAddressValidator:()=>w0,createKeysForPath:()=>E0});var F0=E(()=>{GG()});import{derivationPathToString as x8,SwapKitError as X8}from"@swapkit/helpers";import{KeyPairSigner as Z8}from"near-api-js";async function Yf(){let{validateAccountId:T}=await import("near-sdk-js");return(f)=>{try{return T(f)}catch{let x=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return f.length>=2&&f.length<=64&&x.test(f)}}}async function Uf(T){let{parseSeedPhrase:f}=await import("near-seed-phrase"),{KeyPair:x}=await import("near-api-js"),y=T.index||0,L=T.derivationPath?x8(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 X8("toolbox_near_invalid_address");let{utils:L}=await import("near-api-js"),G=L.PublicKey.fromString(y.public_key);return{nonce:y.access_key.nonce||0,publicKey:G}}var LG;var S0=E(()=>{LG=class LG extends Z8{#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(g.SIMPLE_TRANSFER);break;case"functionCall":f+=Number(g.CONTRACT_CALL);break;case"createAccount":f+=Number(g.ACCOUNT_CREATION);break;case"deployContract":f+=Number(g.CONTRACT_DEPLOYMENT);break;case"addKey":f+=Number(g.ACCESS_KEY_ADDITION);break;case"deleteKey":f+=Number(g.ACCESS_KEY_DELETION);break;case"stake":f+=Number(g.STAKE);break;default:f+=Number(g.CONTRACT_CALL)}return f.toString()}function h0(T){if(T==="ft_transfer"||T==="ft_transfer_call")return g.TOKEN_TRANSFER;if(T==="storage_deposit")return g.STORAGE_DEPOSIT;return g.CONTRACT_CALL}function B8(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function J8(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var g;var p0=E(()=>{g={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 Q8,SwapKitError as yy}from"@swapkit/helpers";async function q8(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 Q8(QT.Near),X=new y.JsonRpcProvider({url:G});async function Z(N){let{Account:Y}=await import("near-api-js"),I=N||await B();return new Y(I,X,L)}async function B(){if(!L)throw new yy("toolbox_near_no_signer");return await L.getAddress()}async function J(N){if(!L)throw new yy("toolbox_near_no_signer");let Y=await Q({...N,sender:await B()});return U(await _(Y))}async function Q(N){let{recipient:Y,assetValue:I,memo:O,attachedDeposit:w,sender:v,functionCall:V}=N,u=await Yf();if(!u(Y))throw new yy("toolbox_near_invalid_address",{recipient:Y});if(!u(v))throw new yy("toolbox_near_invalid_address",{signerId:v});if(V)return z({...V,sender:v});if(!I.isGasAsset){let $y=I.address;if(!$y)throw new yy("toolbox_near_missing_contract_address");return z({args:{amount:I.getBaseValue("string"),memo:O||null,receiver_id:Y},attachedDeposit:w||"1",contractId:$y,gas:"250000000000000",methodName:"ft_transfer",sender:v})}let{publicKey:S,nonce:Ty}=await Hf(X,v),fy=I.getBaseValue("bigint"),{transactions:d,utils:Ny}=await import("near-api-js"),Vy=[d.transfer(fy)];if(O&&w)Vy.push(d.functionCall("memo",{memo:O},BigInt("250000000000000"),BigInt(w)));let uT=await X.block({finality:"final"}),Rf=Ny.serialize.base_decode(uT.header.hash);return d.createTransaction(v,S,Y,Ty+1,Vy,Rf)}async function q(N){let{SCHEMA:Y}=await import("near-api-js/lib/transaction"),{utils:I}=await import("near-api-js"),O=I.serialize.serialize(Y.Transaction,N);return Buffer.from(O).toString("base64")}async function z(N){let{sender:Y}=N,{publicKey:I,nonce:O}=await Hf(X,Y),{transactions:w,utils:v}=await import("near-api-js"),V=await X.block({finality:"final"}),u=v.serialize.base_decode(V.header.hash),S=[w.functionCall(N.methodName,Buffer.from(JSON.stringify(N.args)),BigInt(N.gas),BigInt(N.attachedDeposit))];return w.createTransaction(Y,I,N.contractId,O+1,S,u)}async function M(N){let{transactions:Y}=await import("near-api-js");return Y.functionCall(N.methodName,Buffer.from(JSON.stringify(N.args)),BigInt(N.gas),BigInt(N.attachedDeposit))}async function _(N){if(!L)throw new yy("toolbox_near_no_signer");let[Y,I]=await L.signTransaction(N);return I}async function U(N){return(await X.sendTransaction(N)).transaction.hash}async function D(N){if("assetValue"in N){let w=BigInt("115123062500")+BigInt("108059500000"),v=await l(),V=w*BigInt(v.toString()),{baseDecimal:u}=ZG(QT.Near);return XG.from({chain:QT.Near,fromBaseDecimal:u,value:V.toString()})}let Y=L?await Z():void 0;return a(N,Y)}async function l(){try{return await X.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function F(N,Y,I){if(!L)throw new yy("toolbox_near_no_signer");let O=await Z(),{utils:w}=await import("near-api-js"),v=w.format.parseNearAmount(I)||"0";return(await O.createAccount(N,w.PublicKey.fromString(Y),BigInt(v))).transaction.hash}async function n(N){try{if(!L)throw new yy("toolbox_near_no_signer");let{transactions:Y}=await import("near-api-js"),{contractId:I,methodName:O,args:w,deposit:v}=N,V=await Z(),u=await a({args:w||{},contractId:I,methodName:O}),S=Y.functionCall(O,w||{},u.getBaseValue("bigint"),BigInt(v||"1"));return(await V.signAndSendTransaction({actions:[S],receiverId:I})).transaction_outcome.id}catch(Y){throw new yy("toolbox_near_transfer_failed",{error:Y})}}async function K(N){let Y=await Z();return Wf({account:Y,changeMethods:N.changeMethods,contractId:N.contractId,viewMethods:N.viewMethods})}async function i(N){if(!L)throw new yy("toolbox_near_no_signer");if(N.actions.length===0)throw new yy("toolbox_near_empty_batch");return(await(await Z()).signAndSendTransaction({actions:N.actions,receiverId:N.receiverId})).transaction.hash}async function m(N){let Y=await Z();return o0({account:Y,contractId:N})}async function a(N,Y){let{baseDecimal:I}=ZG(QT.Near),O=await x(N).when(V0,()=>g.SIMPLE_TRANSFER).when($0,(V)=>h0(V.methodName)).when(K0,(V)=>j0(V.actions)).when(u0,()=>g.ACCOUNT_CREATION).when(b0,()=>g.CONTRACT_DEPLOYMENT).when(n0,(V)=>{if(!Y)throw new yy("toolbox_near_no_account");return V.customEstimator(Y)}).otherwise(()=>{throw new yy("toolbox_near_invalid_gas_params")}),v=BigInt(O)*BigInt(1000000000000);return XG.from({chain:QT.Near,fromBaseDecimal:I,value:v})}async function KT(){try{return(await X.gasPrice(null)).gas_price||"100000000"}catch(N){return"100000000"}}return{broadcastTransaction:U,callFunction:n,createAction:M,createContract:K,createContractFunctionCall:z,createSubAccount:F,createTransaction:Q,estimateGas:a,estimateTransactionFee:D,executeBatchTransaction:i,getAddress:B,getBalance:iy(QT.Near),getGasPrice:KT,getPublicKey:async()=>L?(await L.getPublicKey()).toString():"",getSignerFromPhrase:(N)=>Uf(N),getSignerFromPrivateKey:A0,nep141:m,provider:X,serializeTransaction:q,signTransaction:_,transfer:J,validateAddress:await Yf()}}var m0=E(()=>{RT();S0();p0()});var BG=E(()=>{m0()});var c0={};Ly(c0,{tgasToGas:()=>B8,isSimpleTransfer:()=>V0,isCustomEstimator:()=>n0,isContractDeployment:()=>b0,isContractCall:()=>$0,isBatchTransaction:()=>K0,isAccountCreation:()=>u0,getValidateNearAddress:()=>Yf,getNearToolbox:()=>q8,getNearSignerFromPrivateKey:()=>A0,getNearSignerFromPhrase:()=>Uf,getFullAccessPublicKey:()=>Hf,getContractMethodGas:()=>h0,gasToTGas:()=>J8,estimateBatchGas:()=>j0,createNearContract:()=>Wf,createNEP141Token:()=>o0,GAS_COSTS:()=>g});var t0=E(()=>{S0();p0();m0();BG()});var d0={};Ly(d0,{rippleValidateAddress:()=>i0,hashes:()=>R8,getRippleToolbox:()=>W8});import{AssetValue as g0,Chain as Iy,getChainConfig as JG,getRPCUrl as z8,SwapKitError as Sy,SwapKitNumber as _8}from"@swapkit/helpers";import{Client as M8,isValidAddress as N8,Wallet as Y8,xrpToDrops as U8}from"xrpl";import{hashes as R8}from"xrpl";function QG(T){let f=Y8.fromMnemonic(T);return{getAddress:()=>Promise.resolve(f.address),signTransaction:(x)=>Promise.resolve(f.sign(x))}}function i0(T){return N8(T)}var H8,W8=async(T={})=>{let f="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?QG(T.phrase):void 0,x=await z8(Iy.Ripple);if(!x)throw new Sy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:Iy.Ripple}});let y=new M8(x);await y.connect();let L=()=>{if(!f)throw new Sy({errorKey:"toolbox_ripple_signer_not_found"});return f.getAddress()},G=async(z)=>{let M=z||await L(),{baseDecimal:_}=JG(Iy.Ripple);try{let D=(await y.request({account:M,command:"account_info"})).result.account_data.Balance;return[g0.from({chain:Iy.Ripple,fromBaseDecimal:_,value:D})]}catch(U){if(U.data.error_code===H8.ACCOUNT_NOT_FOUND)return[g0.from({chain:Iy.Ripple,value:0})];throw new Sy("toolbox_ripple_get_balance_error",{info:{address:M,error:U}})}},X=async()=>{let M=(await y.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:_}=JG(Iy.Ripple);return g0.from({chain:Iy.Ripple,fromBaseDecimal:_,value:_8.fromBigInt(BigInt(M),_)})},Z=async({assetValue:z,recipient:M,memo:_,sender:U})=>{if(!i0(M))throw new Sy({errorKey:"core_transaction_invalid_recipient_address"});let D=U||await L();if(!z.isGasAsset||z.chain!==Iy.Ripple)throw new Sy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:z.toString()}});let l={Account:D,Amount:U8(z.getValue("string")),Destination:M,TransactionType:"Payment"};if(_)l.Memos=[{Memo:{MemoData:Buffer.from(_).toString("hex")}}];return await y.autofill(l)},B=(z)=>{if(!f)throw new Sy({errorKey:"toolbox_ripple_signer_not_found"});return f.signTransaction(z)},J=async(z)=>{let _=(await y.submitAndWait(z)).result;if(_.validated)return _.hash;throw new Sy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Iy.Ripple}})};return{broadcastTransaction:J,createSigner:QG,createTransaction:Z,disconnect:()=>y.disconnect(),estimateTransactionFee:X,getAddress:L,getBalance:G,signer:f,signTransaction:B,transfer:async(z)=>{if(!f)throw new Sy({errorKey:"toolbox_ripple_signer_not_found"});let M=await f.getAddress(),_=await Z({...z,sender:M}),U=await B(_);return J(U.tx_blob)},validateAddress:i0}};var r0=E(()=>{H8={ACCOUNT_NOT_FOUND:19}});var a0={};Ly(a0,{radixValidateAddress:()=>zG,RadixToolbox:()=>P8});import{AssetValue as C8,Chain as qG,SKConfig as D8,SwapKitError as I8}from"@swapkit/helpers";function zG(T){return T.startsWith("account_rdx1")&&T.length===66}function k8({networkApi:T}){return async function(x){let y=await O8({address:x,networkApi:T});return E8({networkApi:T,resources:y})}}async function O8({address:T,networkApi:f}){let x=!0,y,L=[],G=await w8(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 E8({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=C8.from({asset:Q.symbol!==qG.Radix?`${qG.Radix}.${Q.symbol}-${J.resource_address}`:"XRD.XRD",value:J.amount});x.push(q)}}return x}function w8(T){return T.status.getCurrent().then((f)=>f.ledger_state.state_version)}var P8=async({dappConfig:T}={})=>{let{RadixDappToolkit:f}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:x}=await import("@radixdlt/babylon-gateway-api-sdk"),y=T||D8.get("integrations").radix,L=f({...y,networkId:y.network?.networkId||1}),G=x.initialize(L.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:k8({networkApi:G}),networkApi:G,signAndBroadcast:()=>{throw new I8("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:zG}};var s0=()=>{};var qT;var e0=E(()=>{qT=[{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}]});import{SwapKitError as l8}from"@swapkit/helpers";async function _G(T){let f=await import("tronweb"),x=f.TronWeb??f.default?.TronWeb;try{let y=await fetch(`${v8}/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 l8("toolbox_tron_trongrid_api_error",{address:T,message:y instanceof Error?y.message:"Unknown error"})}}var v8="https://api.trongrid.io";var MG=()=>{};import{AssetValue as ky,BaseDecimal as NG,Chain as My,derivationPathToString as HG,getRPCUrl as F8,NetworkDerivationPath as WG,SwapKitError as r,updateDerivationPath as RG,warnOnce as y1}from"@swapkit/helpers";import{match as A8,P as YG}from"ts-pattern";async function T1(){let T=await import("tronweb"),f=T.TronWeb??T.default?.TronWeb;return(x)=>{return f.isAddress(x)}}async function CG({phrase:T,derivationPath:f,index:x}){let y=f||HG(RG(WG[My.Tron],{index:x||0})),{HDKey:L}=await import("@scure/bip32"),{mnemonicToSeedSync:G}=await import("@scure/bip39"),X=G(T),B=L.fromMasterSeed(X).derive(y);if(!B.privateKey)throw new r("toolbox_tron_no_signer");return Buffer.from(B.privateKey).toString("hex")}async function u8({phrase:T,derivationPath:f,tronWeb:x}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),G=L(T),Z=y.fromMasterSeed(G).derive(f);if(!Z.privateKey)throw new r("toolbox_tron_no_signer");let B=Buffer.from(Z.privateKey).toString("hex");x.setPrivateKey(B);let J=x?.address.fromPrivateKey(B);return{getAddress:()=>Promise.resolve(typeof J==="string"?J:""),signTransaction:async(Q)=>{return await x.trx.sign(Q,B)}}}var S8=268,V8=13000,$8=345,UG="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",K8="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",DG=async(T={})=>{let f=await import("tronweb"),x=f.TronWeb??f.default?.TronWeb,y=await F8(My.Tron),L=void 0,G=new x({fullHost:y,headers:void 0}),X="index"in T?T.index||0:0,Z=HG("derivationPath"in T&&T.derivationPath?T.derivationPath:RG(WG[My.Tron],{index:X})),B=await A8(T).with({phrase:YG.string},async({phrase:N})=>u8({derivationPath:Z,phrase:N,tronWeb:G})).with({signer:YG.any},({signer:N})=>Promise.resolve(N)).otherwise(()=>Promise.resolve(void 0)),J=async()=>{if(!B)throw new r("toolbox_tron_no_signer");return await B.getAddress()},Q=()=>{return 1e8},q=async()=>{try{let N=await G.trx.getChainParameters(),Y={};for(let I of N)Y[I.key]=I.value;return{bandwidthFee:Y.getTransactionFee||1000,createAccountFee:Y.getCreateAccountFee||1e5,energyFee:Y.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},z=async(N)=>{try{let Y=await G.trx.getAccount(N);return Y&&Object.keys(Y).length>0}catch{return!1}},M=async(N)=>{try{let Y=await G.trx.getAccountResources(N);return{bandwidth:{free:Y.freeNetLimit-Y.freeNetUsed,total:Y.NetLimit||0,used:Y.NetUsed||0},energy:{total:Y.EnergyLimit||0,used:Y.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},_=async(N,Y)=>{try{let I=G.contract(qT,Y);if(!I.methods?.balanceOf)return 0n;let[O]=await I.methods.balanceOf(N).call();return O?typeof O==="bigint"?O:BigInt(O):0n}catch(I){return console.warn(`balanceOf() failed for ${Y}:`,I),0n}},U=async(N,Y)=>{try{G.setAddress(Y);let I=G.contract(qT,N),[O,w]=await Promise.all([I.symbol().call().catch(()=>"UNKNOWN"),I.decimals().call().catch(()=>"18")]);return{decimals:Number(w??18),symbol:O??"UNKNOWN"}}catch(I){return y1({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${N}: ${I instanceof Error?I.message:I}`}),null}},D=async(N,Y=!0)=>{let I=[ky.from({chain:My.Tron})];try{let O=await _G(N);if(O){let w=[];w.push(ky.from({chain:My.Tron,fromBaseDecimal:6,value:O.balance}));for(let v of O.trc20){let[V,u]=Object.entries(v)[0]||[];if(!(V&&u))continue;let S=await U(V,N);if(!S)continue;w.push(ky.from({asset:`TRON.${S.symbol}-${V}`,fromBaseDecimal:S.decimals,value:BigInt(u||0)}))}return w}return I}catch(O){y1({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${O instanceof Error?O.message:O}`});let w=[],v=await G.trx.getBalance(N);if(v&&Number(v)>0)w.push(ky.from({chain:My.Tron,fromBaseDecimal:6,value:v}));let V=await _(N,UG);if(V)w.push(ky.from({asset:`TRON.USDT-${UG}`,fromBaseDecimal:6,value:V}));return w}},l=async({recipient:N,assetValue:Y,memo:I})=>{if(!B)throw new r("toolbox_tron_no_signer");let O=await J();if(G.setAddress(O),Y.isGasAsset){let S=await G.transactionBuilder.sendTrx(N,Y.getBaseValue("number"),O);if(I){let d=await G.transactionBuilder.addUpdateData(S,I,"utf8"),Ny=await B.signTransaction(d),{txid:Vy}=await G.trx.sendRawTransaction(Ny);return Vy}let Ty=await B.signTransaction(S),{txid:fy}=await G.trx.sendRawTransaction(Ty);return fy}let v=await n({assetValue:Y,memo:I,recipient:N,sender:O}),V=await B.signTransaction(v),{txid:u}=await G.trx.sendRawTransaction(V);if(!u)throw new r("toolbox_tron_token_transfer_failed");return u},F=async({assetValue:N,recipient:Y,sender:I})=>{let O=N.isGasAsset;try{let w=I?I:B?await J():void 0;if(!w)return O?ky.from({chain:My.Tron,fromBaseDecimal:0,value:0.1}):ky.from({chain:My.Tron,fromBaseDecimal:0,value:15});let v=await q(),u=await z(Y)?0:v.createAccountFee,S=await M(w);if(O){let $y=S8,L1=S.bandwidth.free+(S.bandwidth.total-S.bandwidth.used),x1=0;if($y>L1)x1=($y-L1)*v.bandwidthFee;let OG=u+x1;return ky.from({chain:My.Tron,fromBaseDecimal:NG.TRON,value:OG})}let Ty=$8,fy=V8,d=S.bandwidth.free+(S.bandwidth.total-S.bandwidth.used),Ny=S.energy.total-S.energy.used,Vy=0;if(Ty>d)Vy=(Ty-d)*v.bandwidthFee;let uT=0;if(fy>Ny)uT=(fy-Ny)*v.energyFee;let Rf=u+Vy+uT;return ky.from({chain:My.Tron,fromBaseDecimal:NG.TRON,value:Rf})}catch(w){throw y1({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${w instanceof Error?w.message:w}`}),new r("toolbox_tron_fee_estimation_failed",{error:w})}},n=async(N)=>{let{recipient:Y,assetValue:I,memo:O,sender:w,expiration:v}=N;if(I.isGasAsset){let S=await G.transactionBuilder.sendTrx(Y,I.getBaseValue("number"),w);if(O)return G.transactionBuilder.addUpdateData(S,O,"utf8");if(v)G.transactionBuilder.extendExpiration(S,v);return S}G.setAddress(w);let u=I.address;if(!u)throw new r("toolbox_tron_invalid_token_identifier",{identifier:I.toString()});try{let Ty=[{type:"address",value:Y},{type:"uint256",value:I.getBaseValue("string")}],fy={callValue:0,feeLimit:Q()},d=await G.transactionBuilder.triggerSmartContract(u,"transfer(address,uint256)",fy,Ty,w);if(O)return G.transactionBuilder.addUpdateData(d.transaction,O,"utf8");if(v)G.transactionBuilder.extendExpiration(d.transaction,v);return d.transaction}catch(S){throw new r("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction. This might be due to TronWeb 6.0.3 bug. Use the transfer method directly instead.",originalError:S instanceof Error?S.message:String(S)})}},K=async(N)=>{if(!B)throw new r("toolbox_tron_no_signer");return await B.signTransaction(N)},i=async(N)=>{let{txid:Y}=await G.trx.sendRawTransaction(N);return Y},m=async({assetAddress:N,spenderAddress:Y,from:I})=>{try{let O=G.contract(qT,N);if(!O.methods?.allowance)throw new r("toolbox_tron_invalid_token_contract");let[w]=await O.methods.allowance(I,Y).call();return w?typeof w==="bigint"?w:BigInt(w):0n}catch(O){throw new r("toolbox_tron_allowance_check_failed",{error:O})}};return{approve:async({assetAddress:N,spenderAddress:Y,amount:I,from:O})=>{if(!B)throw new r("toolbox_tron_no_signer");let w=O||await J(),v=I!==void 0?BigInt(I).toString():K8,V="approve(address,uint256)",u=[{type:"address",value:Y},{type:"uint256",value:v}],Ty={callValue:0,feeLimit:Q()};try{let{transaction:fy}=await G.transactionBuilder.triggerSmartContract(N,V,Ty,u,w),d=await B.signTransaction(fy),{txid:Ny}=await G.trx.sendRawTransaction(d);if(!Ny)throw new r("toolbox_tron_approve_failed");return Ny}catch(fy){throw new r("toolbox_tron_approve_failed",{error:fy})}},broadcastTransaction:i,createTransaction:n,estimateTransactionFee:F,getAddress:J,getApprovedAmount:m,getBalance:D,isApproved:async({assetAddress:N,spenderAddress:Y,from:I,amount:O})=>{let w=await m({assetAddress:N,from:I,spenderAddress:Y});if(!O)return w>0n;let v=BigInt(O);return w>=v},signTransaction:K,transfer:l,tronWeb:G,validateAddress:await T1()}};var IG=E(()=>{e0();MG()});var f1={};Ly(f1,{trc20ABI:()=>qT,getTronPrivateKeyFromMnemonic:()=>CG,getTronAddressValidator:()=>T1,createTronToolbox:()=>DG});var G1=E(()=>{e0();IG()});import{AssetValue as b8,Chain as C,EVMChains as n8,FeeOption as j8,SwapKitError as h8,UTXOChains as p8}from"@swapkit/helpers";async function S4(){let{match:T}=await import("ts-pattern"),{cosmosValidateAddress:f}=await Promise.resolve().then(() => (mT(),oT)),{evmValidateAddress:x}=await Promise.resolve().then(() => (J5(),B5)),{substrateValidateAddress:y}=await Promise.resolve().then(() => (J0(),B0)),{getUTXOAddressValidator:L}=await Promise.resolve().then(() => (I0(),D0)),{getSolanaAddressValidator:G}=await Promise.resolve().then(() => (F0(),v0)),{getValidateNearAddress:X}=await Promise.resolve().then(() => (t0(),c0)),{rippleValidateAddress:Z}=await Promise.resolve().then(() => (r0(),d0)),{radixValidateAddress:B}=await Promise.resolve().then(() => (s0(),a0)),{getTronAddressValidator:J}=await Promise.resolve().then(() => (G1(),f1)),Q=await G(),q=await L(),z=await J(),M=await X();return function({address:U,chain:D}){return T(D).with(...n8,()=>x({address:U})).with(...p8,()=>q({address:U,chain:D})).with(C.Cosmos,C.Kujira,C.Noble,C.Maya,C.THORChain,()=>f({address:U,chain:D})).with(C.Chainflip,C.Polkadot,()=>y({address:U,chain:D})).with(C.Radix,()=>B(U)).with(C.Near,()=>M(U)).with(C.Ripple,()=>Z(U)).with(C.Solana,()=>Q(U)).with(C.Tron,()=>z(U)).otherwise(()=>!1)}}function V4(T){return async function(x){let{match:y}=await import("ts-pattern");return y(T).returnType().with(C.Arbitrum,C.Aurora,C.Avalanche,C.Base,C.Berachain,C.BinanceSmartChain,C.Ethereum,C.Gnosis,C.Optimism,C.Polygon,async(L)=>{let G=await kG(L),X=await G.createTransaction(x);return G.estimateTransactionFee({...X,chain:L,feeOption:x.feeOptionKey||j8.Fast})}).with(C.Bitcoin,C.BitcoinCash,C.Dogecoin,C.Dash,C.Litecoin,C.Polkadot,C.Solana,C.Ripple,C.Tron,C.Near,async(L)=>{return(await kG(L)).estimateTransactionFee(x)}).with(C.THORChain,C.Maya,C.Kujira,C.Noble,C.Cosmos,async()=>{let{estimateTransactionFee:L}=await Promise.resolve().then(() => (mT(),oT));return L(x)}).otherwise(async()=>b8.from({chain:T}))}}async function kG(T,f){let{match:x}=await import("ts-pattern");return x(T).returnType().with(C.Arbitrum,C.Aurora,C.Avalanche,C.Base,C.Berachain,C.BinanceSmartChain,C.Ethereum,C.Gnosis,C.Optimism,C.Polygon,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (T0(),x5));return await y(T,f)}).with(C.Litecoin,C.Dash,C.Dogecoin,C.BitcoinCash,C.Bitcoin,C.Zcash,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (I0(),D0));return await y(T,f)}).with(C.Cosmos,C.Kujira,C.Noble,C.Maya,C.THORChain,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (mT(),oT));return await y(T,f)}).with(C.Chainflip,C.Polkadot,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (J0(),B0));return await y(T,f)}).with(C.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (s0(),a0));return await y(f)}).with(C.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (r0(),d0));return await y(f)}).with(C.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (F0(),v0));return await y(f)}).with(C.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (G1(),f1));return await y(f)}).with(C.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (t0(),c0));return await y(f)}).otherwise(()=>{throw new h8("toolbox_not_supported",{chain:T})})}export{kG as getToolbox,V4 as getFeeEstimator,S4 as getAddressValidator};
1
+ var a1=Object.create;var{getPrototypeOf:s1,defineProperty:uT,getOwnPropertyNames:e1}=Object;var y5=Object.prototype.hasOwnProperty;var q=(n,T,l)=>{l=n!=null?a1(s1(n)):{};let y=T||!n||!n.__esModule?uT(l,"default",{value:n,enumerable:!0}):l;for(let x of e1(n))if(!y5.call(y,x))uT(y,x,{get:()=>n[x],enumerable:!0});return y};var a=(n,T)=>{for(var l in T)uT(n,l,{get:T[l],enumerable:!0,configurable:!0,set:(y)=>T[l]=()=>y})};var R=(n,T)=>()=>(n&&(T=n(n=0)),T);var Q=((n)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(T,l)=>(typeof require<"u"?require:T)[l]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});import{AssetValue as n5,getChainConfig as T5}from"@swapkit/helpers";import{SwapKitApi as f5}from"@swapkit/helpers/api";function H0(){function n(){let T=Date.now(),l=IT||T;return IT=l,T>IT?T:l+1}return x5+n().toString(36)}function dy(n){return async function(l,y=!0){let x=await f5.getChainBalance({address:l,chain:n,scamFilter:y}),{baseDecimal:f}=T5(n);return x.map(({identifier:G,value:o,decimal:C})=>{return new n5({decimal:C||f,identifier:G,value:o})})}}var x5,IT=0;var Jn=R(()=>{x5=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{SKConfig as l5,warnOnce as G5}from"@swapkit/helpers";function wn(n){let T=l5.get("apis")[n];if(T)return G5({condition:!0,id:"custom_evm_api_warning",warning:"Using custom EVM API. Be sure to implement all methods to avoid issues."}),T;return C5(n)}function o5(n){return n}function C5(n){return{getBalance:dy(n)}}var pn=R(()=>{Jn()});import{Chain as h,getChainConfig as U0,getRPCUrl as L5,SwapKitError as X5}from"@swapkit/helpers";async function ty(n,T){let{JsonRpcProvider:l}=await import("ethers");return new l(T||await L5(n))}function qn(n){return n>0n?`0x${n.toString(16)}`:"0x0"}function vT(n){let{explorerUrl:T,chainId:l,rpcUrls:y}=U0(n);return()=>n===h.Ethereum?void 0:{..._5({chain:n}),blockExplorerUrls:[T],chainId:l,rpcUrls:y}}function FT(n){return![h.Arbitrum,h.BinanceSmartChain].includes(n)}function _5({chain:n}){let{baseDecimal:T}=U0(n);switch(n){case h.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{decimals:T,name:"Ethereum",symbol:h.Ethereum}};case h.Aurora:return{chainName:"Aurora Mainnet",nativeCurrency:{decimals:T,name:"Ethereum",symbol:h.Ethereum}};case h.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{decimals:T,name:"Avalanche",symbol:n}};case h.Base:return{chainName:"Base Mainnet",nativeCurrency:{decimals:T,name:"Ethereum",symbol:h.Ethereum}};case h.Berachain:return{chainName:"Berachain",nativeCurrency:{decimals:T,name:"Berachain",symbol:"BERA"}};case h.BinanceSmartChain:return{chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:T,name:"Binance Coin",symbol:"BNB"}};case h.Gnosis:return{chainName:"Gnosis",nativeCurrency:{decimals:T,name:"xDAI",symbol:"XDAI"}};case h.Optimism:return{chainName:"OP Mainnet",nativeCurrency:{decimals:T,name:"Ethereum",symbol:h.Ethereum}};case h.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{decimals:T,name:"Polygon",symbol:h.Polygon}};default:throw new X5("toolbox_evm_not_supported",{chain:n})}}var ry=()=>{};var Y0;var D0=R(()=>{Y0=[{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 N5,applyFeeMultiplierToBigInt as ay,Chain as j,FeeOption as p,isGasAsset as Z5,SwapKitError as b,SwapKitNumber as hn}from"@swapkit/helpers";import{erc20ABI as Qn}from"@swapkit/helpers/contracts";import{BrowserProvider as B5,Contract as R0,getAddress as jn,Interface as k0}from"ethers";function sy({chain:n=j.Ethereum,provider:T,signer:l,isEIP1559Compatible:y=!0}){return{approve:Q5({chain:n,isEIP1559Compatible:y,provider:T,signer:l}),approvedAmount:u0({chain:n,provider:T}),broadcastTransaction:T.broadcastTransaction,call:$T({chain:n,isEIP1559Compatible:y,provider:T,signer:l}),createApprovalTx:z5({chain:n,provider:T,signer:l}),createContract:tT({chain:n,provider:T}),createContractTxObject:Ky({chain:n,provider:T}),createTransaction:ET({chain:n,provider:T,signer:l}),createTransferTx:ET({chain:n,provider:T,signer:l}),EIP1193SendTransaction:yn(T),estimateCall:I0({provider:T,signer:l}),estimateGasLimit:M5({chain:n,provider:T,signer:l}),estimateGasPrices:Vy({chain:n,isEIP1559Compatible:y,provider:T}),estimateTransactionFee:H5({chain:n,isEIP1559Compatible:y,provider:T}),getAddress:()=>{return l?l.getAddress():void 0},isApproved:q5({chain:n,provider:T}),sendTransaction:v0({chain:n,isEIP1559Compatible:y,provider:T,signer:l}),signMessage:l?.signMessage,transfer:W5({chain:n,isEIP1559Compatible:y,provider:T,signer:l}),validateAddress:(x)=>AT({address:x})}}function AT({address:n}){try{return jn(n),!0}catch{return!1}}function ey(n){return n instanceof B5}function Mn(n,T,l){return new R0(n,k0.from(T),l)}function tT({provider:n}){return function(l,y){return new R0(l,k0.from(y),n)}}function KT({abi:n,funcName:T}){let l=n.find((y)=>y.name===T);if(!l)throw new b("toolbox_evm_no_abi_fragment",{funcName:T});return l.stateMutability&&J5.includes(l.stateMutability)}function O0(n){return jn(n)}function yn(n){return function({value:l,...y}){if(!ey(n))throw new b("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:x,gasPrice:f,maxFeePerGas:G,maxPriorityFeePerGas:o,...C}=y;return n.send("eth_sendTransaction",[{...C,value:qn(BigInt(l||0))}])}}function S0(n,T){let l=nn(n,T);if(l)return jn(l.toLowerCase());throw new b("toolbox_evm_invalid_gas_asset_address")}function nn({chain:n,symbol:T,ticker:l},y){try{let x=n===j.BinanceSmartChain&&T==="BNB"&&l==="BNB",f=n===y&&T===y&&l===y,G=w5.includes(n)&&T==="ETH"&&l==="ETH";if(f||x||G)return VT[y];return jn(T.slice(l.length+1).replace(/^0X/,""))}catch{return null}}function Ky({provider:n}){return async({contractAddress:T,abi:l,funcName:y,funcParams:x=[],txOverrides:f})=>Mn(T,l,n).getFunction(y).populateTransaction(...x.concat(f).filter((G)=>typeof G<"u"))}function Vy({chain:n,provider:T,isEIP1559Compatible:l=!0}){if(n===j.Arbitrum)return async function(){try{let{gasPrice:x}=await T.getFeeData();if(!x)throw new b("toolbox_evm_no_fee_data");return{[p.Average]:{gasPrice:x},[p.Fast]:{gasPrice:x},[p.Fastest]:{gasPrice:x}}}catch(x){throw new b("toolbox_evm_gas_estimation_error",{error:x.msg??x.toString()})}};return async function(){try{let{maxFeePerGas:x,maxPriorityFeePerGas:f,gasPrice:G}=await T.getFeeData();if(l){if(x===null||f===null)throw new b("toolbox_evm_no_fee_data");return{[p.Average]:{maxFeePerGas:x,maxPriorityFeePerGas:f},[p.Fast]:{maxFeePerGas:ay(x,p.Fast),maxPriorityFeePerGas:ay(f,p.Fast)},[p.Fastest]:{maxFeePerGas:ay(x,p.Fastest),maxPriorityFeePerGas:ay(f,p.Fastest)}}}if(!G)throw new b("toolbox_evm_no_gas_price");return{[p.Average]:{gasPrice:G},[p.Fast]:{gasPrice:ay(G,p.Fast)},[p.Fastest]:{gasPrice:ay(G,p.Fastest)}}}catch(x){throw new b("toolbox_evm_gas_estimation_error",{error:x.msg??x.toString()})}}}function $T({provider:n,isEIP1559Compatible:T,signer:l,chain:y}){return async function({callProvider:f,contractAddress:G,abi:o,funcName:C,funcParams:L=[],txOverrides:N={},feeOption:X=p.Fast}){let _=f||n;if(!G)throw new b("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let Z=KT({abi:o,funcName:C});if(Z&&ey(_)&&l){let M=Ky({chain:y,provider:_}),W=N?.from||await l?.getAddress(),Y=await M({abi:o,contractAddress:G,funcName:C,funcParams:L,txOverrides:{...N,from:W}});return yn(_)(Y)}let B=Mn(G,o,_);if(Z){if(!l)throw new b("toolbox_evm_no_signer");let M=N?.from||await l.getAddress();if(!M)throw new b("toolbox_evm_no_signer_address");let W=B.connect(l),Y=Vy({chain:y,isEIP1559Compatible:T,provider:n}),{maxFeePerGas:v,maxPriorityFeePerGas:u,gasPrice:F}=(await Y())[X],V=await B.getFunction(C).estimateGas(...L,N),d=await W[C](...L,{...N,gasLimit:V,gasPrice:F,maxFeePerGas:v,maxPriorityFeePerGas:u,nonce:N?.nonce||await _.getTransactionCount(M)});return typeof d?.hash==="string"?d?.hash:d}let w=await B[C]?.(...L);return typeof w?.hash==="string"?w?.hash:w}}function u0({provider:n,chain:T}){return function({assetAddress:y,spenderAddress:x,from:f}){return $T({chain:T,isEIP1559Compatible:!0,provider:n})({abi:Qn,contractAddress:y,funcName:"allowance",funcParams:[f,x]})}}function q5({provider:n,chain:T}){return async function({assetAddress:y,spenderAddress:x,from:f,amount:G=Wn}){let o=await u0({chain:T,provider:n})({assetAddress:y,from:f,spenderAddress:x});return hn.fromBigInt(o).gte(hn.fromBigInt(BigInt(G)))}}function Q5({signer:n,isEIP1559Compatible:T=!0,provider:l,chain:y}){return async function({assetAddress:f,spenderAddress:G,feeOptionKey:o=p.Fast,amount:C,gasLimitFallback:L,from:N,nonce:X}){let _=[G,BigInt(C||Wn)],Z=await n?.getAddress()||N,B={abi:Qn,contractAddress:f,funcName:"approve",funcParams:_,signer:n,txOverrides:{from:Z}};if(ey(l)){let M=Ky({chain:y,provider:l}),W=yn(l),Y=await M(B);return W(Y)}return $T({chain:y,isEIP1559Compatible:T,provider:l,signer:n})({...B,feeOption:o,funcParams:_,txOverrides:{from:Z,gasLimit:L?BigInt(L.toString()):void 0,nonce:X}})}}function W5({signer:n,isEIP1559Compatible:T=!0,provider:l}){return async function({assetValue:x,memo:f,recipient:G,feeOptionKey:o=p.Fast,sender:C,...L}){let{hexlify:N,toUtf8Bytes:X}=await import("ethers"),_=x.getBaseValue("bigint"),Z=x.chain,B=C||await n?.getAddress(),w=v0({chain:Z,isEIP1559Compatible:T,provider:l,signer:n});if(!B)throw new b("toolbox_evm_no_from_address");if(x.isGasAsset){let F={...L,data:N(X(f||"")),feeOptionKey:o,from:B,to:G,value:_};return w(F)}if(!nn(x,Z))throw new b("toolbox_evm_no_contract_address");let{maxFeePerGas:W,maxPriorityFeePerGas:Y,gasPrice:v}=(await Vy({chain:Z,isEIP1559Compatible:T,provider:l})())[o],u=await ET({chain:Z,provider:l,signer:n})({assetValue:x,data:N(X(f||"")),gasPrice:v,maxFeePerGas:W,maxPriorityFeePerGas:Y,memo:f,recipient:G,sender:B});return w(u)}}function I0({provider:n,signer:T}){return function({contractAddress:y,abi:x,funcName:f,funcParams:G=[],txOverrides:o}){if(!y)throw new b("toolbox_evm_no_contract_address");let C=Mn(y,x,n);return T?C.connect(T).getFunction(f).estimateGas(...G,o):C.getFunction(f).estimateGas(...G,o)}}function M5({provider:n,signer:T}){return async function({assetValue:y,recipient:x,memo:f,data:G,sender:o,funcName:C,funcParams:L,txOverrides:N}){let X=y.bigIntValue,_=y.isGasAsset?null:nn(y,y.chain);if(_&&C)return I0({provider:n,signer:T})({abi:Qn,contractAddress:_,funcName:C,funcParams:L,txOverrides:N});let{hexlify:Z,toUtf8Bytes:B}=await import("ethers");return n.estimateGas({data:G?G:f?Z(B(f)):void 0,from:o,to:x,value:X})}}function v0({provider:n,signer:T,isEIP1559Compatible:l=!0,chain:y}){return async function({feeOptionKey:f=p.Fast,...G}){let{from:o,to:C,data:L,value:N,...X}=G;if(!T)throw new b("toolbox_evm_no_signer");if(!C)throw new b("toolbox_evm_no_to_address");let _={...X,data:L||"0x",from:o,to:C,value:BigInt(N||0)};if(ey(n))return yn(n)(_);let Z=o||await T.getAddress(),B=G.nonce||await n.getTransactionCount(Z),w=(await n.getNetwork()).chainId,M=P5(_)||l,W=Vy({chain:y,isEIP1559Compatible:l,provider:n}),Y=M&&!(_.maxFeePerGas&&_.maxPriorityFeePerGas)||!_.gasPrice?Object.entries((await W())[f]).reduce((u,[F,V])=>({...u,[F]:qn(BigInt(V))}),{}):{},v;try{v=qn(_.gasLimit||await n.estimateGas(_)*11n/10n)}catch(u){throw new b("toolbox_evm_error_estimating_gas_limit",{error:u})}try{let u={..._,chainId:w,gasLimit:v,nonce:B,type:M?2:0,...Y};try{return(await T.sendTransaction(u)).hash}catch{let F=await T.signTransaction({...u,from:Z});return(await n.broadcastTransaction(F)).hash}}catch(u){throw new b("toolbox_evm_error_sending_transaction",{error:u})}}}function ET({provider:n,signer:T}){return async function({assetValue:y,memo:x,recipient:f,data:G,sender:o,maxFeePerGas:C,maxPriorityFeePerGas:L,gasPrice:N,...X}){let _=y.getBaseValue("bigint"),Z=y.chain,B=o||await T?.getAddress();if(!B)throw new b("toolbox_evm_no_from_address");if(Z5(y)){let{hexlify:W,toUtf8Bytes:Y}=await import("ethers");return{...X,data:G||W(Y(x||"")),from:B,to:f,value:_}}let w=nn(y,Z);if(!w)throw new b("toolbox_evm_no_contract_address");return Ky({chain:y.chain,provider:n})({abi:Qn,contractAddress:w,funcName:"transfer",funcParams:[f,_],txOverrides:{from:B,gasPrice:N,maxFeePerGas:C,maxPriorityFeePerGas:L}})}}function z5({provider:n,signer:T,chain:l}){return async function({assetAddress:x,spenderAddress:f,amount:G,from:o}){let C=await T?.getAddress()||o,L=Ky({chain:l,provider:n}),N=["bigint","number"].includes(typeof G)?G:G||Wn;return await L({abi:Qn,contractAddress:x,funcName:"approve",funcParams:[f,BigInt(N)],txOverrides:{from:C}})}}function H5({provider:n,isEIP1559Compatible:T=!0}){return async function({feeOption:y=p.Fast,chain:x,...f}){let o=await Vy({chain:x,isEIP1559Compatible:T,provider:n})(),C=await n.estimateGas(f),L=N5.from({chain:x}),{gasPrice:N,maxFeePerGas:X,maxPriorityFeePerGas:_}=o[y];if(!T&&N)return L.set(hn.fromBigInt(N*C,L.decimal));if(X&&_){let Z=(X+_)*C;return L.set(hn.fromBigInt(Z,L.decimal))}throw new b("toolbox_evm_no_gas_price")}}var Wn,J5,VT,w5,P5=(n)=>n.type===2||!!n.maxFeePerGas||!!n.maxPriorityFeePerGas;var cn=R(()=>{ry();Wn=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");J5=["payable","nonpayable"];VT={[j.Arbitrum]:"0x0000000000000000000000000000000000000000",[j.Aurora]:"0x0000000000000000000000000000000000000000",[j.Avalanche]:"0x0000000000000000000000000000000000000000",[j.Base]:"0x0000000000000000000000000000000000000000",[j.Berachain]:"0x0000000000000000000000000000000000000000",[j.BinanceSmartChain]:"0x0000000000000000000000000000000000000000",[j.Ethereum]:"0x0000000000000000000000000000000000000000",[j.Gnosis]:"0x0000000000000000000000000000000000000000",[j.Optimism]:"0x4200000000000000000000000000000000000042",[j.Polygon]:"0x0000000000000000000000000000000000001010"},w5=[j.Arbitrum,j.Aurora,j.Base,j.Optimism]});import{Chain as Jy,FeeOption as U5,getRPCUrl as Y5}from"@swapkit/helpers";import{match as D5,P as F0}from"ts-pattern";async function mn({provider:n,...T}){let l=await wy(Jy.Ethereum)({provider:n,...T});async function y(x,f="0x5ba1e12693dc8f9c48aad8770482f4739beed696",G="aggregate",o=U5.Fast){let C=await l.createContractTxObject({abi:Y0,contractAddress:f,funcName:G,funcParams:[x]});return l.sendTransaction({...C,feeOptionKey:o})}return{...l,multicall:y}}function wy(n){return async function({provider:l,...y}){let{HDNodeWallet:x}=await import("ethers"),f=await Y5(n),G=l||await ty(n,f),o=FT(n),C=D5(y).with({phrase:F0.string},({phrase:N})=>x.fromPhrase(N).connect(G)).with({signer:F0.any},({signer:N})=>N).otherwise(()=>{return});return{...sy({chain:n,isEIP1559Compatible:o,provider:G,signer:C}),getBalance:wn(n).getBalance,getNetworkParams:vT(n)}}}var gn,dn,rn,an,sn,en,yT,nT;var bT=R(()=>{pn();D0();ry();cn();gn=wy(Jy.Arbitrum),dn=wy(Jy.Aurora),rn=wy(Jy.Avalanche),an=wy(Jy.Base),sn=wy(Jy.Berachain),en=wy(Jy.BinanceSmartChain),yT=wy(Jy.Gnosis),nT=wy(Jy.Polygon)});var E0;var A0=R(()=>{E0=[{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 Tn,Chain as TT,FeeOption as qy,getChainConfig as R5,getRPCUrl as k5,SwapKitError as pT}from"@swapkit/helpers";import{Contract as O5,HDNodeWallet as S5}from"ethers";import{match as u5,P as t0}from"ts-pattern";function hT(n){return new O5(I5,E0,n)}function K0(n){return async function(){let l=hT(n);if(l&&"l1BaseFee"in l)return await l?.l1BaseFee();return}}function V0(n){return async function({from:l,to:y,nonce:x,...f}){let{Transaction:G}=await import("ethers");if(!y)throw new pT("toolbox_evm_invalid_transaction",{error:"Missing to address"});return G.from({...f,authorizationList:f.authorizationList,nonce:x?x:l?await n.getTransactionCount(l):0,to:y}).serialized}}function $0(n){return async function(l){let y=hT(n),x=await V0(n)(l);if(y&&"getL1Fee"in y)return y.getL1Fee(x)}}function b0(n){return async function(l){let y=await n.send("eth_gasPrice",[]),x=await n.estimateGas(l);return y.mul(x)}}function v5(n){return async function(l){let y=await $0(n)(l),x=await b0(n)(l);return y.add(x)}}function F5(n){return async function(l){let y=hT(n),x=await V0(n)(l);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(x)}}function E5(){let{baseDecimal:n,chainId:T,explorerUrl:l,name:y,rpcUrls:x}=R5(TT.Optimism);return{blockExplorerUrls:[l],chainId:T,chainName:y,nativeCurrency:{decimals:n,name:"Ethereum",symbol:TT.Ethereum},rpcUrls:x}}async function A5(n){try{let{maxFeePerGas:T,maxPriorityFeePerGas:l,gasPrice:y}=await n.getFeeData(),x=await K0(n)(),f=y;if(!(T&&l))throw new pT("toolbox_evm_no_fee_data");return{[qy.Average]:{gasPrice:f,l1GasPrice:x,maxFeePerGas:T,maxPriorityFeePerGas:l},[qy.Fast]:{gasPrice:Tn(f,qy.Fast),l1GasPrice:Tn(x||0n,qy.Fast),maxFeePerGas:T,maxPriorityFeePerGas:Tn(l,qy.Fast)},[qy.Fastest]:{gasPrice:Tn(f,qy.Fastest),l1GasPrice:Tn(x||0n,qy.Fastest),maxFeePerGas:T,maxPriorityFeePerGas:Tn(l,qy.Fastest)}}}catch(T){throw new pT("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}async function fT({provider:n,...T}){let l=TT.Optimism,y=await k5(l),x=n||await ty(l,y),f=u5(T).with({phrase:t0.string},({phrase:C})=>S5.fromPhrase(C).connect(x)).with({signer:t0.any},({signer:C})=>C).otherwise(()=>{return}),G=sy({provider:x,signer:f}),o=K0(x);return{...G,estimateGasPrices:A5(x),estimateL1Gas:F5(x),estimateL1GasCost:$0(x),estimateL2GasCost:b0(x),estimateTotalGasCost:v5(x),getBalance:wn(TT.Optimism).getBalance,getL1GasPrice:o,getNetworkParams:E5}}var I5="0x420000000000000000000000000000000000000f";var jT=R(()=>{pn();A0();ry();cn()});var h0={};a(h0,{toChecksumAddress:()=>O0,isStateChangingCall:()=>KT,isBrowserProvider:()=>ey,getTokenAddress:()=>nn,getEvmToolbox:()=>p0,getEstimateGasPrices:()=>Vy,getEIP1193SendTransaction:()=>yn,getCreateContractTxObject:()=>Ky,getCreateContract:()=>tT,getChecksumAddressFromAsset:()=>S0,evmValidateAddress:()=>AT,createContract:()=>Mn,OPToolbox:()=>fT,MAX_APPROVAL:()=>Wn,MATICToolbox:()=>nT,GNOToolbox:()=>yT,ETHToolbox:()=>mn,ContractAddress:()=>VT,BaseEVMToolbox:()=>sy,BSCToolbox:()=>en,BERAToolbox:()=>sn,BASEToolbox:()=>an,AVAXToolbox:()=>rn,AURORAToolbox:()=>dn,ARBToolbox:()=>gn});import{Chain as oy,SwapKitError as t5}from"@swapkit/helpers";async function p0(n,T){let l={...T,provider:T?.provider||await ty(n)};switch(n){case oy.Arbitrum:return gn(l);case oy.Aurora:return dn(l);case oy.Avalanche:return rn(l);case oy.Base:return an(l);case oy.Berachain:return sn(l);case oy.BinanceSmartChain:return en(l);case oy.Gnosis:return yT(l);case oy.Optimism:return fT(l);case oy.Polygon:return nT(l);case oy.Ethereum:return mn(l);default:throw new t5("toolbox_evm_not_supported",{chain:n})}}var cT=R(()=>{ry();bT();jT();cn();bT();jT()});var j0;var c0=R(()=>{((l)=>{l.Test="goerli";l.Main="homestead"})(j0||={})});var m0={};a(m0,{toHexString:()=>qn,toChecksumAddress:()=>O0,isStateChangingCall:()=>KT,isBrowserProvider:()=>ey,getTokenAddress:()=>nn,getProvider:()=>ty,getNetworkParams:()=>vT,getIsEIP1559Compatible:()=>FT,getEvmToolbox:()=>p0,getEvmApi:()=>wn,getEstimateGasPrices:()=>Vy,getEIP1193SendTransaction:()=>yn,getCreateContractTxObject:()=>Ky,getCreateContract:()=>tT,getChecksumAddressFromAsset:()=>S0,evmValidateAddress:()=>AT,createCustomEvmApi:()=>o5,createContract:()=>Mn,OPToolbox:()=>fT,MAX_APPROVAL:()=>Wn,MATICToolbox:()=>nT,GNOToolbox:()=>yT,EthNetwork:()=>j0,ETHToolbox:()=>mn,ContractAddress:()=>VT,BaseEVMToolbox:()=>sy,BSCToolbox:()=>en,BERAToolbox:()=>sn,BASEToolbox:()=>an,AVAXToolbox:()=>rn,AURORAToolbox:()=>dn,ARBToolbox:()=>gn});var i0=R(()=>{pn();ry();cT();c0()});import{AssetValue as zn,Chain as fn,getChainConfig as K5,SwapKitError as Pn}from"@swapkit/helpers";import{match as V5,P as g0}from"ts-pattern";async function mT(){let{BlockfrostProvider:n}=await import("@meshsdk/core"),T="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS";return new n("mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS")}async function b5(n){try{let{MeshWallet:T}=await import("@meshsdk/core"),l=await mT(),y=new T({fetcher:l,key:{address:n,type:"address"},networkId:1});await y.init();let x=await y.getBalance(),f=[];for(let G of x)if(G.unit===$5){let{baseDecimal:o}=K5(fn.Cardano);f.push(zn.from({chain:fn.Cardano,fromBaseDecimal:o,value:G.quantity}))}else f.push(zn.from({asset:`${fn.Cardano}.${G.unit}`,value:G.quantity}));if(f.length===0)return[zn.from({chain:fn.Cardano})];return f}catch(T){return console.error("Cardano balance fetch error:",T),[zn.from({chain:fn.Cardano})]}}async function d0(){let{deserializeAddress:n}=await import("@meshsdk/core");return(T)=>{try{return n(T),!0}catch{return!1}}}async function p5(n){let T=await d0(),l=await V5(n).with({phrase:g0.string},async({phrase:N})=>{let{MeshWallet:X}=await import("@meshsdk/core"),_=await mT(),Z=new X({fetcher:_,key:{type:"mnemonic",words:N.split(" ")},networkId:1,submitter:_});return await Z.init(),Z}).with({signer:g0.any},({signer:N})=>N).otherwise(()=>{return}),y=l&&"getChangeAddress"in l?await l.getChangeAddress():"";function x(){return y||""}function f(N){let X=N||x();if(!X)throw new Pn("core_wallet_connection_not_found");return b5(X)}function G(){return Promise.resolve(zn.from({chain:fn.Cardano,value:"0.01"}))}async function o({recipient:N,assetValue:X,memo:_}){if(!l||!("getChangeAddress"in l))throw new Pn("core_wallet_connection_not_found");let{Transaction:Z}=await import("@meshsdk/core"),[,B]=X.symbol.split("-");if(!X.isGasAsset&&!B)throw new Pn("core_wallet_connection_not_found");let w=new Z({initiator:l});if(w.sendAssets({address:N},[{quantity:X.getBaseValue("string"),unit:X.isGasAsset?"lovelace":X.symbol}]),_)w.setMetadata(0,_);let M=await w.build();return{tx:w,unsignedTx:M}}function C(N){if(!l||!("getChangeAddress"in l))throw new Pn("core_wallet_connection_not_found");return l.signTx(N)}async function L({recipient:N,assetValue:X,memo:_}){if(!l||!("getChangeAddress"in l))throw new Pn("core_wallet_connection_not_found");let{unsignedTx:Z}=await o({assetValue:X,memo:_,recipient:N}),B=await C(Z);return await(await mT()).submitTx(B)}return{createTransaction:o,estimateTransactionFee:G,getAddress:x,getBalance:f,signTransaction:C,transfer:L,validateAddress:T}}var $5="lovelace";var r0=()=>{};var iT={};a(iT,{getCardanoToolbox:()=>p5,getCardanoAddressValidator:()=>d0});var gT=R(()=>{r0()});import{base64 as a0,bech32 as xT}from"@scure/base";import{SwapKitError as h5}from"@swapkit/helpers";import{fromByteArray as j5,toByteArray as c5}from"base64-js";function Hn(n){return a0.encode(Uint8Array.from(xT.fromWords(xT.decode(n).words)))}function Un(n,T="thor"){return xT.encode(T,xT.toWords(a0.decode(n)))}function m5(n){return j5(n)}function i5(n){if(!n.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new h5("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return c5(n)}var dT=()=>{};import{AssetValue as rT,Chain as E,getChainConfig as Cy,getRPCUrl as g5,SwapKitError as s0}from"@swapkit/helpers";function Qy(n){switch(n){case E.Maya:return{amount:[],gas:"10000000000"};case E.THORChain:return{amount:[],gas:"500000000"};case E.Kujira:return nx;case E.Noble:return Tx;default:return yx}}async function Wy(n){let T=await import("@cosmjs/stargate"),l=T.StargateClient??T.default?.StargateClient,y=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return l.connect({headers:y,url:n})}async function Dn(n,T,l={}){let y=await import("@cosmjs/stargate"),x=y.SigningStargateClient??y.default?.SigningStargateClient,f=y.GasPrice??y.default?.GasPrice,G=typeof l==="string"?l:"0.0003uatom",o=typeof l==="string"?{}:l;return x.connectWithSigner(n,T,{gasPrice:f.fromString(G),...o})}async function sT(n,T){let l=await import("@cosmjs/stargate");return(l.SigningStargateClient??l.default?.SigningStargateClient).offline(n,T)}async function eT({sender:n,recipient:T,assetValue:l,memo:y="",feeRate:x,sequence:f,accountNumber:G}){let{chain:o,chainId:C}=l,L=await g5(o),X=await(await Wy(L)).getAccount(n);if(!X)throw new s0("toolbox_cosmos_account_not_found",{sender:n});let _=rT.from({chain:o}),Z=Yy(_.symbol),B=Qy(o),w=Z&&x?{amount:[{amount:x.toString(),denom:Z}],gas:B.gas}:B,M={amount:[{amount:l.getBaseValue("string"),denom:Yy(l.symbol)}],fromAddress:n,toAddress:T};return{accountNumber:G??X.accountNumber,chainId:C,fee:w,memo:y,msgs:[{typeUrl:d5(o),value:M}],sequence:f??X.sequence}}var aT="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",e0="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",yx,nx,Tx,Yy=(n,T=!1)=>{if(T)return n.toLowerCase();switch(n){case"uUSK":case"USK":return aT;case"uYUM":case"YUM":return e0;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return n}},Yn=({symbol:n,chain:T})=>{if(T===E.Maya)return(n.toUpperCase()!=="CACAO"?n:`${E.Maya}.${n}`).toUpperCase();if(T===E.THORChain)return(["RUNE","TCY","RUJI"].includes(n.toUpperCase())?`${E.THORChain}.${n}`:n).toUpperCase();return Yy(n,!1)},d5=(n)=>{switch(n){case E.Maya:case E.THORChain:return"/types.MsgSend";case E.Cosmos:case E.Kujira:case E.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new s0("toolbox_cosmos_not_supported",{chain:n})}},r5,yf=(n,T)=>{let l=r5[n.toLowerCase()];if(!l)return rT.from({asset:n,fromBaseDecimal:8,value:T});let{chain:y,asset:x,decimals:f}=l,G=y?{chain:y}:{asset:x};return rT.from({...G,fromBaseDecimal:f,value:T})};var Rn=R(()=>{yx={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},nx={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},Tx={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};r5={atom:{chain:E.Cosmos,decimals:Cy(E.Cosmos).baseDecimal},cacao:{chain:E.Maya,decimals:10},kuji:{chain:E.Kujira,decimals:Cy(E.Kujira).baseDecimal},maya:{asset:`${E.Maya}.${E.Maya}`,decimals:4},rune:{chain:E.THORChain,decimals:Cy(E.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Cy(E.THORChain).baseDecimal},uatom:{chain:E.Cosmos,decimals:Cy(E.Cosmos).baseDecimal},ukuji:{chain:E.Kujira,decimals:Cy(E.Kujira).baseDecimal},usdc:{chain:E.Noble,decimals:Cy(E.Noble).baseDecimal},uusdc:{chain:E.Noble,decimals:Cy(E.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Cy(E.THORChain).baseDecimal},[aT.toLowerCase()]:{asset:`${E.Kujira}.USK`,decimals:Cy(E.Kujira).baseDecimal}}});var fx={};a(fx,{$root:()=>H});import m from"protobufjs/minimal.js";var S,ly,D,H;var xx=R(()=>{S=m.Reader,ly=m.Writer,D=m.util,H=m.roots.default||(m.roots.default={});H.common=(()=>{let n={};return n.Asset=(()=>{function T(l){if(l){for(let y=Object.keys(l),x=0;x<y.length;++x)if(l[y[x]]!=null)this[y[x]]=l[y[x]]}}return T.prototype.chain="",T.prototype.symbol="",T.prototype.ticker="",T.prototype.synth=!1,T.create=function(y){return new T(y)},T.encode=function(y,x){if(!x)x=ly.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))x.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))x.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))x.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))x.uint32(32).bool(y.synth);return x},T.encodeDelimited=function(y,x){return this.encode(y,x).ldelim()},T.decode=function(y,x){if(!(y instanceof S))y=S.create(y);let f=x===void 0?y.len:y.pos+x,G=new H.common.Asset;while(y.pos<f){let o=y.uint32();switch(o>>>3){case 1:G.chain=y.string();break;case 2:G.symbol=y.string();break;case 3:G.ticker=y.string();break;case 4:G.synth=y.bool();break;default:y.skipType(o&7);break}}return G},T.decodeDelimited=function(y){if(!(y instanceof S))y=new S(y);return this.decode(y,y.uint32())},T.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},T.fromObject=function(y){if(y instanceof H.common.Asset)return y;let x=new H.common.Asset;if(y.chain!=null)x.chain=String(y.chain);if(y.symbol!=null)x.symbol=String(y.symbol);if(y.ticker!=null)x.ticker=String(y.ticker);if(y.synth!=null)x.synth=Boolean(y.synth);return x},T.toObject=function(y,x){if(!x)x={};let f={};if(x.defaults)f.chain="",f.symbol="",f.ticker="",f.synth=!1;if(y.chain!=null&&y.hasOwnProperty("chain"))f.chain=y.chain;if(y.symbol!=null&&y.hasOwnProperty("symbol"))f.symbol=y.symbol;if(y.ticker!=null&&y.hasOwnProperty("ticker"))f.ticker=y.ticker;if(y.synth!=null&&y.hasOwnProperty("synth"))f.synth=y.synth;return f},T.prototype.toJSON=function(){return this.constructor.toObject(this,m.util.toJSONOptions)},T})(),n.Coin=(()=>{function T(l){if(l){for(let y=Object.keys(l),x=0;x<y.length;++x)if(l[y[x]]!=null)this[y[x]]=l[y[x]]}}return T.prototype.asset=null,T.prototype.amount="",T.prototype.decimals=D.Long?D.Long.fromBits(0,0,!1):0,T.create=function(y){return new T(y)},T.encode=function(y,x){if(!x)x=ly.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))H.common.Asset.encode(y.asset,x.uint32(10).fork()).ldelim();if(y.amount!=null&&Object.hasOwnProperty.call(y,"amount"))x.uint32(18).string(y.amount);if(y.decimals!=null&&Object.hasOwnProperty.call(y,"decimals"))x.uint32(24).int64(y.decimals);return x},T.encodeDelimited=function(y,x){return this.encode(y,x).ldelim()},T.decode=function(y,x){if(!(y instanceof S))y=S.create(y);let f=x===void 0?y.len:y.pos+x,G=new H.common.Coin;while(y.pos<f){let o=y.uint32();switch(o>>>3){case 1:G.asset=H.common.Asset.decode(y,y.uint32());break;case 2:G.amount=y.string();break;case 3:G.decimals=y.int64();break;default:y.skipType(o&7);break}}return G},T.decodeDelimited=function(y){if(!(y instanceof S))y=new S(y);return this.decode(y,y.uint32())},T.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.asset!=null&&y.hasOwnProperty("asset")){let x=H.common.Asset.verify(y.asset);if(x)return"asset."+x}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},T.fromObject=function(y){if(y instanceof H.common.Coin)return y;let x=new H.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");x.asset=H.common.Asset.fromObject(y.asset)}if(y.amount!=null)x.amount=String(y.amount);if(y.decimals!=null){if(D.Long)(x.decimals=D.Long.fromValue(y.decimals)).unsigned=!1;else if(typeof y.decimals==="string")x.decimals=Number.parseInt(y.decimals,10);else if(typeof y.decimals==="number")x.decimals=y.decimals;else if(typeof y.decimals==="object")x.decimals=new D.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber()}return x},T.toObject=function(y,x){if(!x)x={};let f={};if(x.defaults)if(f.asset=null,f.amount="",D.Long){let G=new D.Long(0,0,!1);f.decimals=x.longs===String?G.toString():x.longs===Number?G.toNumber():G}else f.decimals=x.longs===String?"0":0;if(y.asset!=null&&y.hasOwnProperty("asset"))f.asset=H.common.Asset.toObject(y.asset,x);if(y.amount!=null&&y.hasOwnProperty("amount"))f.amount=y.amount;if(y.decimals!=null&&y.hasOwnProperty("decimals"))if(typeof y.decimals==="number")f.decimals=x.longs===String?String(y.decimals):y.decimals;else f.decimals=x.longs===String?D.Long.prototype.toString.call(y.decimals):x.longs===Number?new D.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber():y.decimals;return f},T.prototype.toJSON=function(){return this.constructor.toObject(this,m.util.toJSONOptions)},T})(),n.PubKeySet=(()=>{function T(l){if(l){for(let y=Object.keys(l),x=0;x<y.length;++x)if(l[y[x]]!=null)this[y[x]]=l[y[x]]}}return T.prototype.secp256k1="",T.prototype.ed25519="",T.create=function(y){return new T(y)},T.encode=function(y,x){if(!x)x=ly.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))x.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))x.uint32(18).string(y.ed25519);return x},T.encodeDelimited=function(y,x){return this.encode(y,x).ldelim()},T.decode=function(y,x){if(!(y instanceof S))y=S.create(y);let f=x===void 0?y.len:y.pos+x,G=new H.common.PubKeySet;while(y.pos<f){let o=y.uint32();switch(o>>>3){case 1:G.secp256k1=y.string();break;case 2:G.ed25519=y.string();break;default:y.skipType(o&7);break}}return G},T.decodeDelimited=function(y){if(!(y instanceof S))y=new S(y);return this.decode(y,y.uint32())},T.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},T.fromObject=function(y){if(y instanceof H.common.PubKeySet)return y;let x=new H.common.PubKeySet;if(y.secp256k1!=null)x.secp256k1=String(y.secp256k1);if(y.ed25519!=null)x.ed25519=String(y.ed25519);return x},T.toObject=function(y,x){if(!x)x={};let f={};if(x.defaults)f.secp256k1="",f.ed25519="";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1"))f.secp256k1=y.secp256k1;if(y.ed25519!=null&&y.hasOwnProperty("ed25519"))f.ed25519=y.ed25519;return f},T.prototype.toJSON=function(){return this.constructor.toObject(this,m.util.toJSONOptions)},T})(),n.Tx=(()=>{function T(l){if(this.coins=[],this.gas=[],l){for(let y=Object.keys(l),x=0;x<y.length;++x)if(l[y[x]]!=null)this[y[x]]=l[y[x]]}}return T.prototype.id="",T.prototype.chain="",T.prototype.fromAddress="",T.prototype.toAddress="",T.prototype.coins=D.emptyArray,T.prototype.gas=D.emptyArray,T.prototype.memo="",T.create=function(y){return new T(y)},T.encode=function(y,x){if(!x)x=ly.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))x.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))x.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))x.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))x.uint32(34).string(y.toAddress);if(y.coins?.length)for(let f=0;f<y.coins.length;++f)H.common.Coin.encode(y.coins[f],x.uint32(42).fork()).ldelim();if(y.gas?.length)for(let f=0;f<y.gas.length;++f)H.common.Coin.encode(y.gas[f],x.uint32(50).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))x.uint32(58).string(y.memo);return x},T.encodeDelimited=function(y,x){return this.encode(y,x).ldelim()},T.decode=function(y,x){if(!(y instanceof S))y=S.create(y);let f=x===void 0?y.len:y.pos+x,G=new H.common.Tx;while(y.pos<f){let o=y.uint32();switch(o>>>3){case 1:G.id=y.string();break;case 2:G.chain=y.string();break;case 3:G.fromAddress=y.string();break;case 4:G.toAddress=y.string();break;case 5:if(!G.coins?.length)G.coins=[];G.coins.push(H.common.Coin.decode(y,y.uint32()));break;case 6:if(!G.gas?.length)G.gas=[];G.gas.push(H.common.Coin.decode(y,y.uint32()));break;case 7:G.memo=y.string();break;default:y.skipType(o&7);break}}return G},T.decodeDelimited=function(y){if(!(y instanceof S))y=new S(y);return this.decode(y,y.uint32())},T.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 x=0;x<y.coins.length;++x){let f=H.common.Coin.verify(y.coins[x]);if(f)return"coins."+f}}if(y.gas!=null&&y.hasOwnProperty("gas")){if(!Array.isArray(y.gas))return"gas: array expected";for(let x=0;x<y.gas.length;++x){let f=H.common.Coin.verify(y.gas[x]);if(f)return"gas."+f}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!D.isString(y.memo))return"memo: string expected"}return null},T.fromObject=function(y){if(y instanceof H.common.Tx)return y;let x=new H.common.Tx;if(y.id!=null)x.id=String(y.id);if(y.chain!=null)x.chain=String(y.chain);if(y.fromAddress!=null)x.fromAddress=String(y.fromAddress);if(y.toAddress!=null)x.toAddress=String(y.toAddress);if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Tx.coins: array expected");x.coins=[];for(let f=0;f<y.coins.length;++f){if(typeof y.coins[f]!=="object")throw TypeError(".common.Tx.coins: object expected");x.coins[f]=H.common.Coin.fromObject(y.coins[f])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");x.gas=[];for(let f=0;f<y.gas.length;++f){if(typeof y.gas[f]!=="object")throw TypeError(".common.Tx.gas: object expected");x.gas[f]=H.common.Coin.fromObject(y.gas[f])}}if(y.memo!=null)x.memo=String(y.memo);return x},T.toObject=function(y,x){if(!x)x={};let f={};if(x.arrays||x.defaults)f.coins=[],f.gas=[];if(x.defaults)f.id="",f.chain="",f.fromAddress="",f.toAddress="",f.memo="";if(y.id!=null&&y.hasOwnProperty("id"))f.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))f.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))f.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))f.toAddress=y.toAddress;if(y.coins?.length){f.coins=[];for(let G=0;G<y.coins.length;++G)f.coins[G]=H.common.Coin.toObject(y.coins[G],x)}if(y.gas?.length){f.gas=[];for(let G=0;G<y.gas.length;++G)f.gas[G]=H.common.Coin.toObject(y.gas[G],x)}if(y.memo!=null&&y.hasOwnProperty("memo"))f.memo=y.memo;return f},T.prototype.toJSON=function(){return this.constructor.toObject(this,m.util.toJSONOptions)},T})(),n.Fee=(()=>{function T(l){if(this.coins=[],l){for(let y=Object.keys(l),x=0;x<y.length;++x)if(l[y[x]]!=null)this[y[x]]=l[y[x]]}}return T.prototype.coins=D.emptyArray,T.prototype.poolDeduct="",T.create=function(y){return new T(y)},T.encode=function(y,x){if(!x)x=ly.create();if(y.coins?.length)for(let f=0;f<y.coins.length;++f)H.common.Coin.encode(y.coins[f],x.uint32(10).fork()).ldelim();if(y.poolDeduct!=null&&Object.hasOwnProperty.call(y,"poolDeduct"))x.uint32(18).string(y.poolDeduct);return x},T.encodeDelimited=function(y,x){return this.encode(y,x).ldelim()},T.decode=function(y,x){if(!(y instanceof S))y=S.create(y);let f=x===void 0?y.len:y.pos+x,G=new H.common.Fee;while(y.pos<f){let o=y.uint32();switch(o>>>3){case 1:if(!G.coins?.length)G.coins=[];G.coins.push(H.common.Coin.decode(y,y.uint32()));break;case 2:G.poolDeduct=y.string();break;default:y.skipType(o&7);break}}return G},T.decodeDelimited=function(y){if(!(y instanceof S))y=new S(y);return this.decode(y,y.uint32())},T.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 x=0;x<y.coins.length;++x){let f=H.common.Coin.verify(y.coins[x]);if(f)return"coins."+f}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!D.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},T.fromObject=function(y){if(y instanceof H.common.Fee)return y;let x=new H.common.Fee;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Fee.coins: array expected");x.coins=[];for(let f=0;f<y.coins.length;++f){if(typeof y.coins[f]!=="object")throw TypeError(".common.Fee.coins: object expected");x.coins[f]=H.common.Coin.fromObject(y.coins[f])}}if(y.poolDeduct!=null)x.poolDeduct=String(y.poolDeduct);return x},T.toObject=function(y,x){if(!x)x={};let f={};if(x.arrays||x.defaults)f.coins=[];if(x.defaults)f.poolDeduct="";if(y.coins?.length){f.coins=[];for(let G=0;G<y.coins.length;++G)f.coins[G]=H.common.Coin.toObject(y.coins[G],x)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))f.poolDeduct=y.poolDeduct;return f},T.prototype.toJSON=function(){return this.constructor.toObject(this,m.util.toJSONOptions)},T})(),n.ProtoUint=(()=>{function T(l){if(l){for(let y=Object.keys(l),x=0;x<y.length;++x)if(l[y[x]]!=null)this[y[x]]=l[y[x]]}}return T.prototype.value="",T.create=function(y){return new T(y)},T.encode=function(y,x){if(!x)x=ly.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))x.uint32(10).string(y.value);return x},T.encodeDelimited=function(y,x){return this.encode(y,x).ldelim()},T.decode=function(y,x){if(!(y instanceof S))y=S.create(y);let f=x===void 0?y.len:y.pos+x,G=new H.common.ProtoUint;while(y.pos<f){let o=y.uint32();switch(o>>>3){case 1:G.value=y.string();break;default:y.skipType(o&7);break}}return G},T.decodeDelimited=function(y){if(!(y instanceof S))y=new S(y);return this.decode(y,y.uint32())},T.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},T.fromObject=function(y){if(y instanceof H.common.ProtoUint)return y;let x=new H.common.ProtoUint;if(y.value!=null)x.value=String(y.value);return x},T.toObject=function(y,x){if(!x)x={};let f={};if(x.defaults)f.value="";if(y.value!=null&&y.hasOwnProperty("value"))f.value=y.value;return f},T.prototype.toJSON=function(){return this.constructor.toObject(this,m.util.toJSONOptions)},T})(),n})();H.types=(()=>{let n={};return n.MsgDeposit=(()=>{function T(l){if(this.coins=[],l){for(let y=Object.keys(l),x=0;x<y.length;++x)if(l[y[x]]!=null)this[y[x]]=l[y[x]]}}return T.prototype.coins=D.emptyArray,T.prototype.memo="",T.prototype.signer=D.newBuffer([]),T.create=function(y){return new T(y)},T.encode=function(y,x){if(!x)x=ly.create();if(y.coins?.length)for(let f=0;f<y.coins.length;++f)H.common.Coin.encode(y.coins[f],x.uint32(10).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))x.uint32(18).string(y.memo);if(y.signer!=null&&Object.hasOwnProperty.call(y,"signer"))x.uint32(26).bytes(y.signer);return x},T.encodeDelimited=function(y,x){return this.encode(y,x).ldelim()},T.decode=function(y,x){if(!(y instanceof S))y=S.create(y);let f=x===void 0?y.len:y.pos+x,G=new H.types.MsgDeposit;while(y.pos<f){let o=y.uint32();switch(o>>>3){case 1:if(!G.coins?.length)G.coins=[];G.coins.push(H.common.Coin.decode(y,y.uint32()));break;case 2:G.memo=y.string();break;case 3:G.signer=y.bytes();break;default:y.skipType(o&7);break}}return G},T.decodeDelimited=function(y){if(!(y instanceof S))y=new S(y);return this.decode(y,y.uint32())},T.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 x=0;x<y.coins.length;++x){let f=H.common.Coin.verify(y.coins[x]);if(f)return"coins."+f}}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},T.fromObject=function(y){if(y instanceof H.types.MsgDeposit)return y;let x=new H.types.MsgDeposit;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".types.MsgDeposit.coins: array expected");x.coins=[];for(let f=0;f<y.coins.length;++f){if(typeof y.coins[f]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");x.coins[f]=H.common.Coin.fromObject(y.coins[f])}}if(y.memo!=null)x.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")D.base64.decode(y.signer,x.signer=D.newBuffer(D.base64.length(y.signer)),0);else if(y.signer.length)x.signer=y.signer}return x},T.toObject=function(y,x){if(!x)x={};let f={};if(x.arrays||x.defaults)f.coins=[];if(x.defaults){if(f.memo="",x.bytes===String)f.signer="";else if(f.signer=[],x.bytes!==Array)f.signer=D.newBuffer(f.signer)}if(y.coins?.length){f.coins=[];for(let G=0;G<y.coins.length;++G)f.coins[G]=H.common.Coin.toObject(y.coins[G],x)}if(y.memo!=null&&y.hasOwnProperty("memo"))f.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))f.signer=x.bytes===String?D.base64.encode(y.signer,0,y.signer.length):x.bytes===Array?Array.prototype.slice.call(y.signer):y.signer;return f},T.prototype.toJSON=function(){return this.constructor.toObject(this,m.util.toJSONOptions)},T})(),n.MsgSend=(()=>{function T(l){if(this.amount=[],l){for(let y=Object.keys(l),x=0;x<y.length;++x)if(l[y[x]]!=null)this[y[x]]=l[y[x]]}}return T.prototype.fromAddress=D.newBuffer([]),T.prototype.toAddress=D.newBuffer([]),T.prototype.amount=D.emptyArray,T.create=function(y){return new T(y)},T.encode=function(y,x){if(!x)x=ly.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))x.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))x.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let f=0;f<y.amount.length;++f)H.cosmos.base.v1beta1.Coin.encode(y.amount[f],x.uint32(26).fork()).ldelim();return x},T.encodeDelimited=function(y,x){return this.encode(y,x).ldelim()},T.decode=function(y,x){if(!(y instanceof S))y=S.create(y);let f=x===void 0?y.len:y.pos+x,G=new H.types.MsgSend;while(y.pos<f){let o=y.uint32();switch(o>>>3){case 1:G.fromAddress=y.bytes();break;case 2:G.toAddress=y.bytes();break;case 3:if(!G.amount?.length)G.amount=[];G.amount.push(H.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(o&7);break}}return G},T.decodeDelimited=function(y){if(!(y instanceof S))y=new S(y);return this.decode(y,y.uint32())},T.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 x=0;x<y.amount.length;++x){let f=H.cosmos.base.v1beta1.Coin.verify(y.amount[x]);if(f)return"amount."+f}}return null},T.fromObject=function(y){if(y instanceof H.types.MsgSend)return y;let x=new H.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")D.base64.decode(y.fromAddress,x.fromAddress=D.newBuffer(D.base64.length(y.fromAddress)),0);else if(y.fromAddress.length)x.fromAddress=y.fromAddress}if(y.toAddress!=null){if(typeof y.toAddress==="string")D.base64.decode(y.toAddress,x.toAddress=D.newBuffer(D.base64.length(y.toAddress)),0);else if(y.toAddress.length)x.toAddress=y.toAddress}if(y.amount){if(!Array.isArray(y.amount))throw TypeError(".types.MsgSend.amount: array expected");x.amount=[];for(let f=0;f<y.amount.length;++f){if(typeof y.amount[f]!=="object")throw TypeError(".types.MsgSend.amount: object expected");x.amount[f]=H.cosmos.base.v1beta1.Coin.fromObject(y.amount[f])}}return x},T.toObject=function(y,x){if(!x)x={};let f={};if(x.arrays||x.defaults)f.amount=[];if(x.defaults){if(x.bytes===String)f.fromAddress="";else if(f.fromAddress=[],x.bytes!==Array)f.fromAddress=D.newBuffer(f.fromAddress);if(x.bytes===String)f.toAddress="";else if(f.toAddress=[],x.bytes!==Array)f.toAddress=D.newBuffer(f.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))f.fromAddress=x.bytes===String?D.base64.encode(y.fromAddress,0,y.fromAddress.length):x.bytes===Array?Array.prototype.slice.call(y.fromAddress):y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))f.toAddress=x.bytes===String?D.base64.encode(y.toAddress,0,y.toAddress.length):x.bytes===Array?Array.prototype.slice.call(y.toAddress):y.toAddress;if(y.amount?.length){f.amount=[];for(let G=0;G<y.amount.length;++G)f.amount[G]=H.cosmos.base.v1beta1.Coin.toObject(y.amount[G],x)}return f},T.prototype.toJSON=function(){return this.constructor.toObject(this,m.util.toJSONOptions)},T})(),n})();H.cosmos=(()=>{let n={};return n.base=(()=>{let T={};return T.v1beta1=(()=>{let l={};return l.Coin=(()=>{function y(x){if(x){for(let f=Object.keys(x),G=0;G<f.length;++G)if(x[f[G]]!=null)this[f[G]]=x[f[G]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(f){return new y(f)},y.encode=function(f,G){if(!G)G=ly.create();if(f.denom!=null&&Object.hasOwnProperty.call(f,"denom"))G.uint32(10).string(f.denom);if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))G.uint32(18).string(f.amount);return G},y.encodeDelimited=function(f,G){return this.encode(f,G).ldelim()},y.decode=function(f,G){if(!(f instanceof S))f=S.create(f);let o=G===void 0?f.len:f.pos+G,C=new H.cosmos.base.v1beta1.Coin;while(f.pos<o){let L=f.uint32();switch(L>>>3){case 1:C.denom=f.string();break;case 2:C.amount=f.string();break;default:f.skipType(L&7);break}}return C},y.decodeDelimited=function(f){if(!(f instanceof S))f=new S(f);return this.decode(f,f.uint32())},y.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.denom!=null&&f.hasOwnProperty("denom")){if(!D.isString(f.denom))return"denom: string expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!D.isString(f.amount))return"amount: string expected"}return null},y.fromObject=function(f){if(f instanceof H.cosmos.base.v1beta1.Coin)return f;let G=new H.cosmos.base.v1beta1.Coin;if(f.denom!=null)G.denom=String(f.denom);if(f.amount!=null)G.amount=String(f.amount);return G},y.toObject=function(f,G){if(!G)G={};let o={};if(G.defaults)o.denom="",o.amount="";if(f.denom!=null&&f.hasOwnProperty("denom"))o.denom=f.denom;if(f.amount!=null&&f.hasOwnProperty("amount"))o.amount=f.amount;return o},y.prototype.toJSON=function(){return this.constructor.toObject(this,m.util.toJSONOptions)},y})(),l.DecCoin=(()=>{function y(x){if(x){for(let f=Object.keys(x),G=0;G<f.length;++G)if(x[f[G]]!=null)this[f[G]]=x[f[G]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(f){return new y(f)},y.encode=function(f,G){if(!G)G=ly.create();if(f.denom!=null&&Object.hasOwnProperty.call(f,"denom"))G.uint32(10).string(f.denom);if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))G.uint32(18).string(f.amount);return G},y.encodeDelimited=function(f,G){return this.encode(f,G).ldelim()},y.decode=function(f,G){if(!(f instanceof S))f=S.create(f);let o=G===void 0?f.len:f.pos+G,C=new H.cosmos.base.v1beta1.DecCoin;while(f.pos<o){let L=f.uint32();switch(L>>>3){case 1:C.denom=f.string();break;case 2:C.amount=f.string();break;default:f.skipType(L&7);break}}return C},y.decodeDelimited=function(f){if(!(f instanceof S))f=new S(f);return this.decode(f,f.uint32())},y.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.denom!=null&&f.hasOwnProperty("denom")){if(!D.isString(f.denom))return"denom: string expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!D.isString(f.amount))return"amount: string expected"}return null},y.fromObject=function(f){if(f instanceof H.cosmos.base.v1beta1.DecCoin)return f;let G=new H.cosmos.base.v1beta1.DecCoin;if(f.denom!=null)G.denom=String(f.denom);if(f.amount!=null)G.amount=String(f.amount);return G},y.toObject=function(f,G){if(!G)G={};let o={};if(G.defaults)o.denom="",o.amount="";if(f.denom!=null&&f.hasOwnProperty("denom"))o.denom=f.denom;if(f.amount!=null&&f.hasOwnProperty("amount"))o.amount=f.amount;return o},y.prototype.toJSON=function(){return this.constructor.toObject(this,m.util.toJSONOptions)},y})(),l.IntProto=(()=>{function y(x){if(x){for(let f=Object.keys(x),G=0;G<f.length;++G)if(x[f[G]]!=null)this[f[G]]=x[f[G]]}}return y.prototype.int="",y.create=function(f){return new y(f)},y.encode=function(f,G){if(!G)G=ly.create();if(f.int!=null&&Object.hasOwnProperty.call(f,"int"))G.uint32(10).string(f.int);return G},y.encodeDelimited=function(f,G){return this.encode(f,G).ldelim()},y.decode=function(f,G){if(!(f instanceof S))f=S.create(f);let o=G===void 0?f.len:f.pos+G,C=new H.cosmos.base.v1beta1.IntProto;while(f.pos<o){let L=f.uint32();switch(L>>>3){case 1:C.int=f.string();break;default:f.skipType(L&7);break}}return C},y.decodeDelimited=function(f){if(!(f instanceof S))f=new S(f);return this.decode(f,f.uint32())},y.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.int!=null&&f.hasOwnProperty("int")){if(!D.isString(f.int))return"int: string expected"}return null},y.fromObject=function(f){if(f instanceof H.cosmos.base.v1beta1.IntProto)return f;let G=new H.cosmos.base.v1beta1.IntProto;if(f.int!=null)G.int=String(f.int);return G},y.toObject=function(f,G){if(!G)G={};let o={};if(G.defaults)o.int="";if(f.int!=null&&f.hasOwnProperty("int"))o.int=f.int;return o},y.prototype.toJSON=function(){return this.constructor.toObject(this,m.util.toJSONOptions)},y})(),l.DecProto=(()=>{function y(x){if(x){for(let f=Object.keys(x),G=0;G<f.length;++G)if(x[f[G]]!=null)this[f[G]]=x[f[G]]}}return y.prototype.dec="",y.create=function(f){return new y(f)},y.encode=function(f,G){if(!G)G=ly.create();if(f.dec!=null&&Object.hasOwnProperty.call(f,"dec"))G.uint32(10).string(f.dec);return G},y.encodeDelimited=function(f,G){return this.encode(f,G).ldelim()},y.decode=function(f,G){if(!(f instanceof S))f=S.create(f);let o=G===void 0?f.len:f.pos+G,C=new H.cosmos.base.v1beta1.DecProto;while(f.pos<o){let L=f.uint32();switch(L>>>3){case 1:C.dec=f.string();break;default:f.skipType(L&7);break}}return C},y.decodeDelimited=function(f){if(!(f instanceof S))f=new S(f);return this.decode(f,f.uint32())},y.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.dec!=null&&f.hasOwnProperty("dec")){if(!D.isString(f.dec))return"dec: string expected"}return null},y.fromObject=function(f){if(f instanceof H.cosmos.base.v1beta1.DecProto)return f;let G=new H.cosmos.base.v1beta1.DecProto;if(f.dec!=null)G.dec=String(f.dec);return G},y.toObject=function(f,G){if(!G)G={};let o={};if(G.defaults)o.dec="";if(f.dec!=null&&f.hasOwnProperty("dec"))o.dec=f.dec;return o},y.prototype.toJSON=function(){return this.constructor.toObject(this,m.util.toJSONOptions)},y})(),l})(),T})(),n})()});import{Chain as a5}from"@swapkit/helpers";async function $y(){let{$root:n}=await Promise.resolve().then(() => (xx(),fx)),T=await import("@cosmjs/proto-signing"),l=T.Registry??T.default?.Registry,y=await import("@cosmjs/stargate"),x=y.defaultRegistryTypes??y.default?.defaultRegistryTypes;return new l([...x,["/types.MsgSend",n.types.MsgSend],["/types.MsgDeposit",n.types.MsgDeposit]])}async function Dy(n){let T=await import("@cosmjs/stargate"),l=T.AminoTypes??T.default?.AminoTypes,y=n===a5.THORChain?"thorchain":"mayachain";return new l({"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,fromAmino:({signer:x,...f})=>({...f,signer:Hn(x)}),toAmino:({signer:x,...f})=>({...f,signer:Un(x)})},"/types.MsgSend":{aminoType:`${y}/MsgSend`,fromAmino:({from_address:x,to_address:f,...G})=>({...G,fromAddress:Hn(x),toAddress:Hn(f)}),toAmino:({fromAddress:x,toAddress:f,...G})=>({...G,from_address:Un(x),to_address:Un(f)})}})}var nf=R(()=>{dT()});import{AssetValue as s5,Chain as lT,getChainConfig as lx,SwapKitError as e5}from"@swapkit/helpers";function xf(n){return function(l){let{assetValue:y,recipient:x,memo:f,sender:G,asSignable:o,asAminoMessage:C}=l;if(x)return ox(n)({asAminoMessage:C,asSignable:o,assetValue:y,memo:f,recipient:x,sender:G});return Cx(n)({asAminoMessage:C,asSignable:o,assetValue:y,memo:f,sender:G})}}function ky(n){if(n.type==="thorchain/MsgSend"||n.type==="mayachain/MsgSend")return n;return{...n,value:{...n.value,coins:n.value.coins.map((T)=>{let l=s5.from({asset:T.asset}),y=(l.isSynthetic?l.symbol.split("/")?.[1]:l.symbol)?.toUpperCase(),x=(l.isSynthetic?l.symbol.split("/")?.[0]:l.chain)?.toUpperCase();return{...T,asset:{chain:x,symbol:y,synth:l.isSynthetic,ticker:l.ticker}}})}}}async function kn({chain:n,memo:T,msgs:l}){let y=await $y(),x=await Dy(n),f={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:T,messages:l.map((G)=>x.fromAmino(G))}};return y.encode(f)}var yl,nl,Tf=({sender:n,recipient:T,assetValue:l})=>{return{type:`${l.chain===lT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:l.getBaseValue("string"),denom:Yy(l.symbol,!0)}],from_address:n,to_address:T}}},ff=({sender:n,assetValue:T,memo:l=""})=>{return{type:`${T.chain===lT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:T.getBaseValue("string"),asset:Yn(T)}],memo:l,signer:n}}},GT=({sender:n,recipient:T,assetValue:l,memo:y})=>{return!T?ff({assetValue:l,memo:y,sender:n}):Tf({assetValue:l,recipient:T,sender:n})},Ry=async(n,T)=>{return(await Dy(T)).fromAmino(n)},Gx=async({rpcUrl:n,sender:T})=>{let y=await(await Wy(n)).getAccount(T);if(!y)throw new e5("toolbox_cosmos_account_not_found",{sender:T});return y},ox=(n)=>async({sender:T,recipient:l,assetValue:y,memo:x="",asSignable:f=!0,asAminoMessage:G=!1,sequence:o,accountNumber:C})=>{let L=await Gx({rpcUrl:n,sender:T}),N=y.chain,{chainId:X}=lx(N),_=Tf({assetValue:y,recipient:l,sender:T}),Z=f?await Ry(G?_:ky(_),N):_;return{accountNumber:C||L.accountNumber,chainId:X,fee:Qy(N),memo:x,msgs:[Z],sequence:o||L.sequence}},Cx=(n)=>async({sender:T,assetValue:l,memo:y="",asSignable:x=!0,asAminoMessage:f=!1,sequence:G,accountNumber:o})=>{let C=await Gx({rpcUrl:n,sender:T}),L=l.chain,{chainId:N}=lx(L),X=ff({assetValue:l,memo:y,sender:T}),_=x?await Ry(f?X:ky(X),L):X;return{accountNumber:o||C.accountNumber,chainId:N,fee:Qy(L),memo:y,msgs:[_],sequence:G||C.sequence}};var Lx=R(()=>{Rn();nf();yl=Qy(lT.THORChain).gas,nl=Qy(lT.Maya).gas});var Xx=()=>{};var _x=R(()=>{Xx()});var lf=R(()=>{dT();Lx();nf();_x()});import{base64 as Cf,bech32 as Gf}from"@scure/base";import{AssetValue as Lf,applyFeeMultiplier as Nx,Chain as s,CosmosChainPrefixes as Tl,DerivationPath as fl,derivationPathToString as Zx,FeeOption as Xf,getChainConfig as xl,getRPCUrl as ll,NetworkDerivationPath as Gl,SwapKitError as _f,SwapKitNumber as of,updateDerivationPath as ol}from"@swapkit/helpers";import{SwapKitApi as Qx}from"@swapkit/helpers/api";import{match as Cl,P as Bx}from"ts-pattern";async function Zf(n,T){try{let y=(await Qx.getGasRate()).find((x)=>x.chainId===n)?.value;return y?Number.parseFloat(y):T}catch{return T}}async function Nf({phrase:n,prefix:T,...l}){let y=await import("@cosmjs/proto-signing"),x=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,f=await import("@cosmjs/crypto"),G=f.stringToPath??f.default?.stringToPath,o="derivationPath"in l?l.derivationPath:`${fl[l.chain]}/${l.index}`;return x.fromMnemonic(n,{hdPaths:[G(o)],prefix:T})}async function Ll({privateKey:n,prefix:T}){let l=await import("@cosmjs/proto-signing");return(l.DirectSecp256k1Wallet??l.default?.DirectSecp256k1Wallet).fromKey(n,T)}function Wx(n){return async function({signature:l,message:y,address:x}){let f=await n(x);if(!f?.pubkey)throw new _f("toolbox_cosmos_verify_signature_no_pubkey");let G=await import("@cosmjs/crypto"),o=G.Secp256k1Signature??G.default?.Secp256k1Signature,C=G.Secp256k1??G.default?.Secp256k1,L=o.fromFixedLength(Cf.decode(l));return C.verifySignature(L,Cf.decode(y),f.pubkey.value)}}async function On({chain:n,...T}){let l=await ll(n),y=Tl[n],x="index"in T?T.index||0:0,f=Zx("derivationPath"in T&&T.derivationPath?T.derivationPath:ol(Gl[n],{index:x})),G=await Cl(T).with({phrase:Bx.string},({phrase:X})=>Nf({derivationPath:f,phrase:X,prefix:y})).with({signer:Bx.any},({signer:X})=>X).otherwise(()=>{return});async function o(X){return(await Wy(l)).getAccount(X)}async function C(){let[X]=await G?.getAccounts()||[];return X?.address}async function L(){let[X]=await G?.getAccounts()||[];if(!X?.pubkey)throw new _f("toolbox_cosmos_signer_not_defined");return Cf.encode(X?.pubkey)}async function N({recipient:X,assetValue:_,memo:Z="",feeRate:B,feeOptionKey:w=Xf.Fast}){let M=await C();if(!(G&&M))throw new _f("toolbox_cosmos_signer_not_defined");let W=Lf.from({chain:n}),Y=Yn(W),v=B||Nl((await wx(n,Jx[n]))[w],Y),u=await Dn(l,G),F=[{amount:_.getBaseValue("string"),denom:Yy(`u${_.symbol}`).toLowerCase()}],{transactionHash:V}=await u.sendTokens(M,X,F,v,Z);return V}return{createPrivateKeyFromPhrase:Bl(f),createTransaction:eT,fetchFeeRateFromSwapKit:Zf,getAccount:o,getAddress:C,getBalance:async(X,_)=>{let Z=await qx(l)(X),B=await Promise.all(Z.filter(({denom:w})=>w&&!w.includes("IBC/")).map(({denom:w,amount:M})=>{let W=[s.THORChain,s.Maya].includes(n)&&(w.includes("/")||w.includes("˜"))?`${n}.${w}`:w;return yf(W,M)}));if(B.length===0)return[Lf.from({chain:n})];return B},getBalanceAsDenoms:qx(l),getFees:()=>wx(n,Jx[n]),getPubKey:L,getSignerFromPhrase:async({phrase:X,derivationPath:_})=>Nf({derivationPath:Zx(_),index:x,phrase:X,prefix:y}),getSignerFromPrivateKey:async(X)=>{let _=await import("@cosmjs/proto-signing");return(_.DirectSecp256k1Wallet??_.default?.DirectSecp256k1Wallet).fromKey(X,y)},transfer:N,validateAddress:Mx(y),verifySignature:Wx(o)}}async function Xl(n,T){try{let y=(await Qx.getGasRate()).find((x)=>x.chainId===n)?.value;return y?Number.parseFloat(y):T}catch{return T}}function _l({assetValue:{chain:n}}){return Lf.from({chain:n,value:Zl(n)})}async function wx(n,T){let{chainId:l,baseDecimal:y}=xl(n),x=await Zf(l,T);return{average:of.fromBigInt(BigInt(x),y),fast:of.fromBigInt(BigInt(Nx(x,Xf.Fast,!0)),y),fastest:of.fromBigInt(BigInt(Nx(x,Xf.Fastest,!0)),y)}}function Nl(n,T){return{amount:[{amount:n.getBaseValue("string"),denom:T}],gas:"200000"}}function Zl(n){return{[s.Cosmos]:0.007,[s.Kujira]:0.02,[s.Noble]:0.01,[s.THORChain]:0.02,[s.Maya]:0.02,[s.Harbor]:0.02}[n]||0}function Mx(n){return function(l){if(!l.startsWith(n))return!1;try{let{prefix:y,words:x}=Gf.decode(l);return Gf.encode(y,x)===l.toLocaleLowerCase()}catch{return!1}}}function qx(n){return async function(l){return(await(await Wy(n)).getAllBalances(l)).map((G)=>({...G,denom:G.denom.includes("/")?G.denom.toUpperCase():G.denom}))}}function Bl(n){return async function(l){let y=await import("@cosmjs/crypto"),x=y.stringToPath??y.default?.stringToPath,f=y.Slip10Curve??y.default?.Slip10Curve,G=y.Slip10??y.default?.Slip10,o=y.EnglishMnemonic??y.default?.EnglishMnemonic,C=y.Bip39??y.default?.Bip39,L=new o(l),N=await C.mnemonicToSeed(L),{privkey:X}=G.derivePath(f.Secp256k1,N,x(n));return X}}var Jx;var oT=R(()=>{Rn();Jx={[s.Cosmos]:500,[s.Kujira]:1000,[s.Noble]:1000,[s.THORChain]:5000000,[s.Maya]:5000000,[s.Harbor]:5000000}});import{base64 as by}from"@scure/base";import{Chain as Jl,CosmosChainPrefixes as wl,derivationPathToString as ql,FeeOption as Bf,getChainConfig as Px,getRPCUrl as Ql,NetworkDerivationPath as Wl,RequestClient as Ml,SKConfig as Pl,SwapKitError as zx,SwapKitNumber as Hx,updateDerivationPath as zl}from"@swapkit/helpers";import{match as Hl,P as Ux}from"ts-pattern";function Ul({prefix:n,derivationPath:T}){return async function(y,x=0){let f=await import("@cosmjs/amino"),G=f.Secp256k1HdWallet??f.default?.Secp256k1HdWallet,o=await import("@cosmjs/crypto"),C=o.stringToPath??o.default?.stringToPath;return G.fromMnemonic(y,{hdPaths:[C(`${T}/${x}`)],prefix:n})}}function Yl(n){return by.encode(n)}function Dl(n){return async function({wallet:l,tx:y}){let{msgs:x,accountNumber:f,sequence:G,chainId:o,fee:C,memo:L}=typeof y==="string"?JSON.parse(y):y,N=(await l.getAccounts())?.[0]?.address||"",X=await Dy(n),_=await $y(),Z=await sT(l,{aminoTypes:X,registry:_}),B=[];for(let W of x){let Y=await Ry(W,n);B.push(Y)}let{signatures:[w]}=await Z.sign(N,B,C,L,{accountNumber:f,chainId:o,sequence:G});return{bodyBytes:await kn({chain:n,memo:L,msgs:x.map(ky)}),signature:Yl(w)}}}function Rl({prefix:n,rpcUrl:T}){return async function(y,x,f,G,o){let{encodeSecp256k1Pubkey:C,pubkeyToAddress:L}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:N}=(await import("@cosmjs/stargate")).default,{sequence:X,fee:_}=JSON.parse(y),Z=await Yx(f,G),B=x.map((W)=>[L(C(by.decode(W.pubKey)),n),by.decode(W.signature)]),w=await Wy(T),{transactionHash:M}=await w.broadcastTx(N(Z,X,_,o,new Map(B)));return M}}async function Yx(n,T,l=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:x}=(await import("@cosmjs/amino")).default;return y(n.map((f)=>x(by.decode(f))),T,l)}function kl(n){return by.decode(n)}async function Ol({privateKey:n,message:T}){let{Secp256k1:l}=(await import("@cosmjs/crypto")).default,y=await l.createSignature(by.decode(T),n);return by.encode(Buffer.concat([y.r(32),y.s(32)]))}async function Jf({chain:n,...T}){let l=await Ql(n),{nodeUrl:y}=Px(n),{isStagenet:x}=Pl.get("envs"),f=n===Jl.THORChain,G=`${x?"s":""}${wl[n]}`,o="index"in T?T.index||0:0,C="derivationPath"in T&&T.derivationPath?T.derivationPath:zl(Wl[n],{index:o}),L=await On({chain:n,...T}),N=await Hl(T).with({phrase:Ux.string},({phrase:B})=>L.getSignerFromPhrase({derivationPath:C,phrase:B})).with({signer:Ux.any},({signer:B})=>B).otherwise(()=>{return}),X=Qy(n);async function _(){let B,w=`${y}/${f?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:M}}=await Ml.get(w);if(!M||Number.isNaN(M)||M<0)throw new zx("toolbox_cosmos_invalid_fee",{nativeFee:M.toString()});B=new Hx(M)}catch{B=new Hx({decimal:Px(n).baseDecimal,value:f?0.02:1})}return{[Bf.Average]:B,[Bf.Fast]:B,[Bf.Fastest]:B}}async function Z({assetValue:B,memo:w="",recipient:M}){let{TxRaw:W}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),Y=(await N?.getAccounts())?.[0]?.address;if(!(Y&&N))throw new zx("toolbox_cosmos_no_signer");let v="signAmino"in N,u=await $y(),F=await Dy(n),V=await Dn(l,N,{aminoTypes:F,registry:u}),d=GT({assetValue:B,memo:w,recipient:M,sender:Y});if(v){let U=await Ry(d,n),{signatures:k,authInfoBytes:O}=await V.sign(Y,[U],X,w),I=W.encode({authInfoBytes:O,bodyBytes:await kn({chain:n,memo:w,msgs:[d].map(ky)}),signatures:k}).finish();return(await V.broadcastTx(I)).transactionHash}let Uy=ky(d),J=await Ry(Uy,n);return(await V.signAndBroadcast(Y,[J],X,w)).transactionHash}return{...L,broadcastMultisigTx:Rl({prefix:G,rpcUrl:l}),buildAminoMsg:GT,buildEncodedTxBody:kn,convertToSignable:Ry,createDefaultAminoTypes:()=>Dy(n),createDefaultRegistry:$y,createMultisig:Yx,createTransaction:xf(l),deposit:Z,getFees:_,importSignature:kl,parseAminoMessageForDirectSigning:ky,pubkeyToAddress:async(B)=>{let{pubkeyToAddress:w}=(await import("@cosmjs/amino")).default;return w(B,G)},secp256k1HdWalletFromMnemonic:Ul({derivationPath:ql(C),prefix:G}),signMultisigTx:Dl(n),signWithPrivateKey:Ol,transfer:Z}}var wf=R(()=>{lf();Rn();oT()});import{Chain as Sn,SwapKitError as Sl}from"@swapkit/helpers";var ul=(n,T)=>{switch(n){case Sn.Cosmos:case Sn.Kujira:case Sn.Noble:return On({chain:n,...T});case Sn.Maya:case Sn.THORChain:return Jf({chain:n,...T});default:throw new Sl("toolbox_cosmos_not_supported",{chain:n})}};var Dx=R(()=>{oT();wf();oT();wf()});var CT={};a(CT,{verifySignature:()=>Wx,transferMsgAmino:()=>Tf,toBase64:()=>m5,parseAminoMessageForDirectSigning:()=>ky,getSignerFromPrivateKey:()=>Ll,getSignerFromPhrase:()=>Nf,getMsgSendDenom:()=>Yy,getFeeRateFromSwapKit:()=>Xl,getDenomWithChain:()=>Yn,getDefaultChainFee:()=>Qy,getCreateTransaction:()=>xf,getCosmosValidateAddress:()=>Mx,getCosmosToolbox:()=>ul,getAssetFromDenom:()=>yf,fromBase64:()=>i5,fetchFeeRateFromSwapKit:()=>Zf,estimateTransactionFee:()=>_l,depositMsgAmino:()=>ff,createThorchainToolbox:()=>Jf,createStargateClient:()=>Wy,createSigningStargateClient:()=>Dn,createOfflineStargateClient:()=>sT,createDefaultRegistry:()=>$y,createDefaultAminoTypes:()=>Dy,createCosmosToolbox:()=>On,cosmosCreateTransaction:()=>eT,convertToSignable:()=>Ry,buildTransferTx:()=>ox,buildEncodedTxBody:()=>kn,buildDepositTx:()=>Cx,buildAminoMsg:()=>GT,bech32ToBase64:()=>Hn,base64ToBech32:()=>Un,YUM_KUJIRA_FACTORY_DENOM:()=>e0,USK_KUJIRA_FACTORY_DENOM:()=>aT,THORCHAIN_GAS_VALUE:()=>yl,MAYA_GAS_VALUE:()=>nl,DEFAULT_NOBLE_FEE_MAINNET:()=>Tx,DEFAULT_KUJI_FEE_MAINNET:()=>nx,DEFAULT_COSMOS_FEE_MAINNET:()=>yx});var LT=R(()=>{lf();Dx();Rn()});import{AssetValue as qf,Chain as hy,DerivationPath as Il,derivationPathToString as vl,getChainConfig as Ox,getRPCUrl as Fl,NetworkDerivationPath as El,SwapKitError as jy,updateDerivationPath as Al}from"@swapkit/helpers";import{match as tl,P as Rx}from"ts-pattern";async function Kl(n){try{let T=await fetch(`https://lite-api.jup.ag/tokens/v1/token/${n}`);if(!T.ok)return null;return await T.json()}catch{return null}}async function Vl(n){let T=await py(),{PublicKey:l}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),x=new l(n),f=[],G=await T.getBalance(x);if(G>0){let{baseDecimal:C}=Ox(hy.Solana);f.push(qf.from({chain:hy.Solana,fromBaseDecimal:C,value:G}))}let o=await T.getParsedTokenAccountsByOwner(x,{programId:y});for(let{account:C}of o.value){let L=C.data.parsed.info,N=L.mint,X=L.tokenAmount.amount;if(Number(X)===0)continue;let _=await Kl(N),Z=_?.symbol||"UNKNOWN",B=_?.decimals||L.tokenAmount.decimals;f.push(qf.from({asset:`${hy.Solana}.${Z}-${N}`,fromBaseDecimal:B,value:X}))}return f}async function Mf(){let{PublicKey:n}=await import("@solana/web3.js");return(T)=>{try{let l=new n(T);return n.isOnCurve(l.toBytes())}catch{return!1}}}async function $l(n){let T=n&&"index"in n?n.index||0:0,l=vl(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:Al(El[hy.Solana],{index:T})),y=await tl(n).with({phrase:Rx.string},({phrase:G})=>Wf({derivationPath:l,phrase:G})).with({signer:Rx.any},({signer:G})=>G).otherwise(()=>{return});function x(){return y?.publicKey?kx(y.publicKey):""}function f(G){let o=G||x();if(!o)throw new jy("core_wallet_connection_not_found");return Vl(o)}return{broadcastTransaction:Qf(py),createKeysForPath:Wf,createTransaction:Pf(py),createTransactionFromInstructions:jl,estimateTransactionFee:bl(py),getAddress:x,getAddressFromPubKey:kx,getAddressValidator:Mf,getBalance:f,getConnection:py,getPubkeyFromAddress:zf,signTransaction:ml(py,y),transfer:cl(py,y)}}function bl(n){return async({recipient:T,assetValue:l,memo:y,isProgramDerivedAddress:x,sender:f})=>{let G=await n(),C=(await Pf(n)({assetValue:l,isProgramDerivedAddress:x,memo:y,recipient:T,sender:f})).compileMessage(),L=await G.getFeeForMessage(C);if(L.value===null)throw new jy("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:N}=Ox(hy.Solana);return qf.from({chain:hy.Solana,fromBaseDecimal:N,value:L.value})}}async function py(){let{Connection:n}=await import("@solana/web3.js"),T=await Fl(hy.Solana);return new n(T,"confirmed")}function pl(n){return async({assetValue:T,recipient:l,sender:y,isProgramDerivedAddress:x})=>{let f=await n(),G=await zf(y);if(T.isGasAsset){let{Transaction:o,SystemProgram:C,PublicKey:L}=await import("@solana/web3.js");return new o().add(C.transfer({fromPubkey:G,lamports:T.getBaseValue("number"),toPubkey:new L(l)}))}if(T.address)return hl({amount:T.getBaseValue("number"),connection:f,decimals:T.decimal,from:G,isProgramDerivedAddress:x,recipient:l,tokenAddress:T.address});return}}async function hl({tokenAddress:n,recipient:T,from:l,connection:y,amount:x,decimals:f,isProgramDerivedAddress:G}){let{getAssociatedTokenAddress:o,getAccount:C,createAssociatedTokenAccountInstruction:L,createTransferCheckedInstruction:N}=await import("@solana/spl-token"),{Transaction:X,PublicKey:_}=await import("@solana/web3.js"),Z=new X,B=new _(n),w=await o(B,l),M=new _(T),W=await o(B,M,G),Y=!1;try{await C(y,W),Y=!0}catch{}if(!Y)Z.add(L(l,W,M,B));return Z.add(N(w,B,W,l,x,f)),Z}function Pf(n){return async({recipient:T,assetValue:l,memo:y,isProgramDerivedAddress:x,sender:f})=>{let{createMemoInstruction:G}=await import("@solana/spl-memo"),o=await zf(f),C=await Mf();if(!(x||C(T)))throw new jy("core_transaction_invalid_recipient_address");let L=await n(),N=await pl(n)({assetValue:l,isProgramDerivedAddress:x,recipient:T,sender:f});if(!N)throw new jy("core_transaction_invalid_sender_address");if(y)N.add(G(y));let X=await L.getLatestBlockhash();return N.recentBlockhash=X.blockhash,N.feePayer=o,N}}async function jl({instructions:n}){let{Transaction:T}=await import("@solana/web3.js"),l=new T().add(...n);if(!l)throw new jy("core_transaction_invalid_sender_address");return l}function cl(n,T){return async({recipient:l,assetValue:y,memo:x,isProgramDerivedAddress:f})=>{if(!T)throw new jy("core_transaction_invalid_sender_address");let G=T.publicKey?.toString()??(await T.connect()).publicKey.toString(),o=await Pf(n)({assetValue:y,isProgramDerivedAddress:f,memo:x,recipient:l,sender:G});if("signTransaction"in T){let C=await T.signTransaction(o);return Qf(n)(C)}return o.sign(T),Qf(n)(o)}}function Qf(n){return async(T)=>{return(await n()).sendRawTransaction(T.serialize())}}function ml(n,T){return async(l)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!T)throw new jy("toolbox_solana_no_signer");if(!(l instanceof y)){let f=await(await n()).getLatestBlockhash();l.recentBlockhash=f.blockhash,l.feePayer=T.publicKey||void 0}if("connect"in T)return await T.signTransaction(l);return await l.sign([T]),l}}async function Wf({phrase:n,derivationPath:T=Il.SOL}){let{HDKey:l}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:y}=await import("@scure/bip39"),{Keypair:x}=await import("@solana/web3.js"),f=y(n),G=l.fromMasterSeed(f);return x.fromSeed(G.derive(T,!0).privateKey)}function kx(n){return n.toString()}async function zf(n){let{PublicKey:T}=await import("@solana/web3.js");return new T(n)}var Sx=()=>{};var Hf={};a(Hf,{getSolanaToolbox:()=>$l,getSolanaAddressValidator:()=>Mf,createKeysForPath:()=>Wf});var Uf=R(()=>{Sx()});import{AssetValue as XT,Chain as Yf,getChainConfig as il,SwapKitError as Oy}from"@swapkit/helpers";import{match as gl,P as ux}from"ts-pattern";async function Ix(){let{isValidSuiAddress:n}=await import("@mysten/sui/utils");return function(l){try{return n(l)}catch{return!1}}}async function dl({provider:n,...T}={}){let l=await Ix(),y=await gl(T).with({phrase:ux.string},async({phrase:X})=>{let{Ed25519Keypair:_}=await import("@mysten/sui/keypairs/ed25519");return _.deriveKeypair(X)}).with({signer:ux.any},({signer:X})=>X).otherwise(()=>{return});async function x(X=n){let{SuiClient:_,getFullnodeUrl:Z}=await import("@mysten/sui/client");return new _({url:X||Z("mainnet")})}function f(){return y?.toSuiAddress()||""}async function G(X){let _=X||f();if(!_)throw new Oy("toolbox_sui_address_required");try{let Z=await x(),{totalBalance:B}=await Z.getBalance({owner:_}),{baseDecimal:w,chain:M}=il(Yf.Sui),W=[XT.from({chain:M,fromBaseDecimal:w,value:B})],Y=await Z.getAllBalances({owner:_});for(let{coinType:v,totalBalance:u}of Y){if(v==="0x2::sui::SUI")continue;if(Number(u)>0){let F=v.split("::").pop()?.toUpperCase()||"UNKNOWN",V=`${M}.${F}-${v}`;W.push(XT.from({asset:V,fromBaseDecimal:w,value:u}))}}return W}catch(Z){throw new Oy("toolbox_sui_balance_error",{error:Z})}}async function o(X){let _=XT.from({chain:Yf.Sui,value:"0.01"});if(!X)return _;try{let Z=await x(),{txBytes:B}=await C(X),{effects:{status:w,gasUsed:M}}=await Z.dryRunTransactionBlock({transactionBlock:B});if(w.status!=="success")return _;let W=Number(M.computationCost)+Number(M.storageCost)-Number(M.storageRebate);return XT.from({chain:Yf.Sui,value:W.toString()})}catch{return _}}async function C({recipient:X,assetValue:_,gasBudget:Z,sender:B}){let{Transaction:w}=await import("@mysten/sui/transactions"),M=B||f();if(!M)throw new Oy("toolbox_sui_no_sender");try{let W=new w;if(W.setSender(M),_.isGasAsset||_.symbol==="SUI"){let[u]=W.splitCoins(W.gas,[_.getBaseValue("string")]);W.transferObjects([u],X)}else throw new Oy("toolbox_sui_custom_token_transfer_not_implemented");if(Z)W.setGasBudget(Z);let Y=await x(),v=await W.build({client:Y});return{tx:W,txBytes:v}}catch(W){throw new Oy("toolbox_sui_transaction_creation_error",{error:W})}}async function L(X){if(!y)throw new Oy("toolbox_sui_no_signer");if(X instanceof Uint8Array)return y.signTransaction(X);let{txBytes:_}="tx"in X?X:await C(X);return y.signTransaction(_)}async function N({assetValue:X,gasBudget:_,recipient:Z}){if(!y)throw new Oy("toolbox_sui_no_signer");let B=y.toSuiAddress()||f();if(!B)throw new Oy("toolbox_sui_no_sender");let{txBytes:w}=await C({assetValue:X,gasBudget:_,recipient:Z,sender:B}),M=await x(),{digest:W}=await M.signAndExecuteTransaction({signer:y,transaction:w});return W}return{createTransaction:C,estimateTransactionFee:o,getAddress:f,getBalance:G,signTransaction:L,transfer:N,validateAddress:l}}var vx=()=>{};var _T={};a(_T,{getSuiToolbox:()=>dl,getSuiAddressValidator:()=>Ix});var NT=R(()=>{vx()});import{AssetValue as Fx,Chain as ZT,getChainConfig as Ex,SwapKitError as xn,SwapKitNumber as rl}from"@swapkit/helpers";import{match as al,P as Ax}from"ts-pattern";async function sl(n={}){let{mnemonicToWalletKey:T}=await import("@ton/crypto"),{Address:l,TonClient:y,WalletContractV4:x}=await import("@ton/ton"),f=await tx(),G,o,C=await al(n).with({phrase:Ax.string},async({phrase:W})=>T(W.split(" "))).with({signer:Ax.any},({signer:W})=>W).otherwise(()=>{return});function L(){let{rpcUrls:W}=Ex(ZT.Ton),[Y]=W;if(!G||G.parameters.endpoint!==Y)G=new y({endpoint:Y});return G}function N(W){if(!o||W){let Y=L(),v=W||C;if(!v)throw new xn("core_wallet_connection_not_found");let u=x.create({publicKey:v.publicKey,workchain:0});o=Y.open(u)}return o}async function X(W){let Y=L(),{baseDecimal:v}=Ex(ZT.Ton);try{let u=await Y.getBalance(l.parse(W));return[Fx.from({chain:ZT.Ton,value:rl.fromBigInt(u,v)})]}catch(u){throw new xn("core_wallet_connection_not_found",{error:u})}}async function _({assetValue:W,recipient:Y,memo:v}){let u=N();if(!u||!C)throw new xn("core_wallet_connection_not_found");let{toNano:F,comment:V,internal:d}=await import("@ton/ton"),Uy=await u.getSeqno(),J=F(W.getValue("string")),P=v?V(v):void 0;return u.createTransfer({messages:[d({body:P,to:Y,value:J})],secretKey:C.secretKey,seqno:Uy})}async function Z({assetValue:W,recipient:Y,memo:v}){let u=N();if(!u||!C)throw new xn("core_wallet_connection_not_found");let F=await _({assetValue:W,memo:v,recipient:Y});return await u.send(F),F.hash().toString()}async function B(W){let Y=N();if(!Y)throw new xn("core_wallet_connection_not_found");try{return await Y.send(W),W.hash().toString("hex")}catch(v){throw new xn("core_wallet_connection_not_found",{error:v})}}function w(){return N().address.toString()}function M(){return Promise.resolve(Fx.from({chain:ZT.Ton,value:"0.0001"}))}return{createTransaction:_,estimateTransactionFee:M,getAddress:w,getBalance:X,sendTransaction:B,transfer:Z,validateAddress:f}}async function tx(){let{Address:n}=await import("@ton/ton");return function(l){try{return n.parse(l),!0}catch{return!1}}}var Kx=()=>{};var BT={};a(BT,{getTONToolbox:()=>sl,getTONAddressValidator:()=>tx});var JT=R(()=>{Kx()});var ln;var Df=R(()=>{ln=[{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 el}from"@swapkit/helpers";async function Vx(n){let T=await import("tronweb"),l=T.TronWeb??T.default?.TronWeb;try{let y=await fetch(`${y2}/v1/accounts/${n}`);if(!y.ok)throw Error(`TronGrid API error: ${y.status} ${y.statusText}`);let x=await y.json();if(!(x.success&&x.data)||x.data.length===0)throw Error("Invalid response from TronGrid API");let f;try{f=l.address.toHex(n).toLowerCase()}catch{f=n.toLowerCase()}let G=x.data.find((o)=>{return o.address.toLowerCase()===f});if(!G)return;return{balance:G.balance,trc20:G.trc20||[]}}catch(y){throw new el("toolbox_tron_trongrid_api_error",{address:n,message:y instanceof Error?y.message:"Unknown error"})}}var y2="https://api.trongrid.io";var $x=()=>{};import{AssetValue as My,BaseDecimal as bx,Chain as Ly,derivationPathToString as jx,getRPCUrl as n2,NetworkDerivationPath as cx,SwapKitError as e,updateDerivationPath as mx,warnOnce as Rf}from"@swapkit/helpers";import{match as T2,P as px}from"ts-pattern";async function kf(){let n=await import("tronweb"),T=n.TronWeb??n.default?.TronWeb;return(l)=>{return T.isAddress(l)}}async function ix({phrase:n,derivationPath:T,index:l}){let y=T||jx(mx(cx[Ly.Tron],{index:l||0})),{HDKey:x}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),G=f(n),C=x.fromMasterSeed(G).derive(y);if(!C.privateKey)throw new e("toolbox_tron_no_signer");return Buffer.from(C.privateKey).toString("hex")}async function o2({phrase:n,derivationPath:T,tronWeb:l}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:x}=await import("@scure/bip39"),f=x(n),o=y.fromMasterSeed(f).derive(T);if(!o.privateKey)throw new e("toolbox_tron_no_signer");let C=Buffer.from(o.privateKey).toString("hex");l.setPrivateKey(C);let L=l?.address.fromPrivateKey(C);return{getAddress:()=>Promise.resolve(typeof L==="string"?L:""),signTransaction:async(N)=>{return await l.trx.sign(N,C)}}}var f2=268,x2=13000,l2=345,hx="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",G2="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",gx=async(n={})=>{let T=await import("tronweb"),l=T.TronWeb??T.default?.TronWeb,y=await n2(Ly.Tron),x=void 0,f=new l({fullHost:y,headers:void 0}),G="index"in n?n.index||0:0,o=jx("derivationPath"in n&&n.derivationPath?n.derivationPath:mx(cx[Ly.Tron],{index:G})),C=await T2(n).with({phrase:px.string},async({phrase:J})=>o2({derivationPath:o,phrase:J,tronWeb:f})).with({signer:px.any},({signer:J})=>Promise.resolve(J)).otherwise(()=>Promise.resolve(void 0)),L=async()=>{if(!C)throw new e("toolbox_tron_no_signer");return await C.getAddress()},N=()=>{return 1e8},X=async()=>{try{let J=await f.trx.getChainParameters(),P={};for(let U of J)P[U.key]=U.value;return{bandwidthFee:P.getTransactionFee||1000,createAccountFee:P.getCreateAccountFee||1e5,energyFee:P.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},_=async(J)=>{try{let P=await f.trx.getAccount(J);return P&&Object.keys(P).length>0}catch{return!1}},Z=async(J)=>{try{let P=await f.trx.getAccountResources(J);return{bandwidth:{free:P.freeNetLimit-P.freeNetUsed,total:P.NetLimit||0,used:P.NetUsed||0},energy:{total:P.EnergyLimit||0,used:P.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},B=async(J,P)=>{try{let U=f.contract(ln,P);if(!U.methods?.balanceOf)return 0n;let[k]=await U.methods.balanceOf(J).call();return k?typeof k==="bigint"?k:BigInt(k):0n}catch(U){return console.warn(`balanceOf() failed for ${P}:`,U),0n}},w=async(J,P)=>{try{f.setAddress(P);let U=f.contract(ln,J),[k,O]=await Promise.all([U.symbol().call().catch(()=>"UNKNOWN"),U.decimals().call().catch(()=>"18")]);return{decimals:Number(O??18),symbol:k??"UNKNOWN"}}catch(U){return Rf({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${J}: ${U instanceof Error?U.message:U}`}),null}},M=async(J,P=!0)=>{let U=[My.from({chain:Ly.Tron})];try{let k=await Vx(J);if(k){let O=[];O.push(My.from({chain:Ly.Tron,fromBaseDecimal:6,value:k.balance}));for(let I of k.trc20){let[t,$]=Object.entries(I)[0]||[];if(!(t&&$))continue;let A=await w(t,J);if(!A)continue;O.push(My.from({asset:`TRON.${A.symbol}-${t}`,fromBaseDecimal:A.decimals,value:BigInt($||0)}))}return O}return U}catch(k){Rf({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${k instanceof Error?k.message:k}`});try{let O=[],I=await f.trx.getBalance(J);if(I&&Number(I)>0)O.push(My.from({chain:Ly.Tron,fromBaseDecimal:6,value:I}));let t=await B(J,hx);if(t)O.push(My.from({asset:`TRON.USDT-${hx}`,fromBaseDecimal:6,value:t}));if(O.length===0)return U;return O}catch(O){return console.error("Tron balance fetch failed:",O),U}}},W=async({recipient:J,assetValue:P,memo:U})=>{if(!C)throw new e("toolbox_tron_no_signer");let k=await L();if(f.setAddress(k),P.isGasAsset){let A=await f.transactionBuilder.sendTrx(J,P.getBaseValue("number"),k);if(U){let r=await f.transactionBuilder.addUpdateData(A,U,"utf8"),By=await C.signTransaction(r),{txid:Ey}=await f.trx.sendRawTransaction(By);return Ey}let fy=await C.signTransaction(A),{txid:xy}=await f.trx.sendRawTransaction(fy);return xy}let I=await v({assetValue:P,memo:U,recipient:J,sender:k}),t=await C.signTransaction(I),{txid:$}=await f.trx.sendRawTransaction(t);if(!$)throw new e("toolbox_tron_token_transfer_failed");return $},Y=async({assetValue:J,recipient:P,sender:U})=>{let k=J.isGasAsset;try{let O=U?U:C?await L():void 0;if(!O)return k?My.from({chain:Ly.Tron,fromBaseDecimal:0,value:0.1}):My.from({chain:Ly.Tron,fromBaseDecimal:0,value:15});let I=await X(),$=await _(P)?0:I.createAccountFee,A=await Z(O);if(k){let Ay=f2,P0=A.bandwidth.free+(A.bandwidth.total-A.bandwidth.used),z0=0;if(Ay>P0)z0=(Ay-P0)*I.bandwidthFee;let r1=$+z0;return My.from({chain:Ly.Tron,fromBaseDecimal:bx.TRON,value:r1})}let fy=l2,xy=x2,r=A.bandwidth.free+(A.bandwidth.total-A.bandwidth.used),By=A.energy.total-A.energy.used,Ey=0;if(fy>r)Ey=(fy-r)*I.bandwidthFee;let bn=0;if(xy>By)bn=(xy-By)*I.energyFee;let ST=$+Ey+bn;return My.from({chain:Ly.Tron,fromBaseDecimal:bx.TRON,value:ST})}catch(O){throw Rf({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${O instanceof Error?O.message:O}`}),new e("toolbox_tron_fee_estimation_failed",{error:O})}},v=async(J)=>{let{recipient:P,assetValue:U,memo:k,sender:O,expiration:I}=J;if(U.isGasAsset){let A=await f.transactionBuilder.sendTrx(P,U.getBaseValue("number"),O);if(k)return f.transactionBuilder.addUpdateData(A,k,"utf8");if(I)f.transactionBuilder.extendExpiration(A,I);return A}f.setAddress(O);let $=U.address;if(!$)throw new e("toolbox_tron_invalid_token_identifier",{identifier:U.toString()});try{let fy=[{type:"address",value:P},{type:"uint256",value:U.getBaseValue("string")}],xy={callValue:0,feeLimit:N()},r=await f.transactionBuilder.triggerSmartContract($,"transfer(address,uint256)",xy,fy,O);if(k)return f.transactionBuilder.addUpdateData(r.transaction,k,"utf8");if(I)f.transactionBuilder.extendExpiration(r.transaction,I);return r.transaction}catch(A){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:A instanceof Error?A.message:String(A)})}},u=async(J)=>{if(!C)throw new e("toolbox_tron_no_signer");return await C.signTransaction(J)},F=async(J)=>{let{txid:P}=await f.trx.sendRawTransaction(J);return P},V=async({assetAddress:J,spenderAddress:P,from:U})=>{try{let k=f.contract(ln,J);if(!k.methods?.allowance)throw new e("toolbox_tron_invalid_token_contract");let[O]=await k.methods.allowance(U,P).call();return O?typeof O==="bigint"?O:BigInt(O):0n}catch(k){throw new e("toolbox_tron_allowance_check_failed",{error:k})}};return{approve:async({assetAddress:J,spenderAddress:P,amount:U,from:k})=>{if(!C)throw new e("toolbox_tron_no_signer");let O=k||await L(),I=U!==void 0?BigInt(U).toString():G2,t="approve(address,uint256)",$=[{type:"address",value:P},{type:"uint256",value:I}],fy={callValue:0,feeLimit:N()};try{let{transaction:xy}=await f.transactionBuilder.triggerSmartContract(J,t,fy,$,O),r=await C.signTransaction(xy),{txid:By}=await f.trx.sendRawTransaction(r);if(!By)throw new e("toolbox_tron_approve_failed");return By}catch(xy){throw new e("toolbox_tron_approve_failed",{error:xy})}},broadcastTransaction:F,createTransaction:v,estimateTransactionFee:Y,getAddress:L,getApprovedAmount:V,getBalance:M,isApproved:async({assetAddress:J,spenderAddress:P,from:U,amount:k})=>{let O=await V({assetAddress:J,from:U,spenderAddress:P});if(!k)return O>0n;let I=BigInt(k);return O>=I},signTransaction:u,transfer:W,tronWeb:f,validateAddress:await kf()}};var dx=R(()=>{Df();$x()});var Of={};a(Of,{trc20ABI:()=>ln,getTronPrivateKeyFromMnemonic:()=>ix,getTronAddressValidator:()=>kf,createTronToolbox:()=>gx});var Sf=R(()=>{Df();dx()});import{networks as C2}from"@bitgo/utxo-lib";import{Chain as i,getRPCUrl as L2,RequestClient as wT,SKConfig as sx,SwapKitError as Sy,warnOnce as ex}from"@swapkit/helpers";import{networks as X2}from"bitcoinjs-lib";import un from"coininfo";async function _2({chain:n,txHash:T}){let l=`${qT(n)}/push/transaction`,y=JSON.stringify({data:T});try{let x=await wT.post(l,{body:y,headers:{"Content-Type":"application/json"}});if(x.context.code!==200)throw new Sy("toolbox_utxo_broadcast_failed",{error:x.context.error||"Transaction broadcast failed"});return x.data?.transaction_hash||T}catch(x){let f=await L2(n);if(f){let G=JSON.stringify({id:H0(),jsonrpc:"2.0",method:"sendrawtransaction",params:[T]}),o=await wT.post(f,{body:G,headers:{"Content-Type":"application/json"}});if(o.error)throw new Sy("toolbox_utxo_broadcast_failed",{error:o.error?.message});if(o.result.includes('"code":-26'))throw new Sy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return o.result}throw x}}function qT(n){return`https://api.blockchair.com/${N2(n)}`}function rx(n){switch(n){case i.Bitcoin:return 5;case i.Dogecoin:return 1e4;case i.Litecoin:return 1;case i.Zcash:return 1;default:return 2}}function N2(n){switch(n){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 Z2(n){try{let{feePerKb:T}=await wT.get(`https://app.bitgo.com/api/v2/${n.toLowerCase()}/tx/fee`),l=T/1000;return Math.max(l,rx(n))}catch{return rx(n)}}async function uf(n,T){let l=await wT.get(`${n}${T?`${n.includes("?")?"&":"?"}key=${T}`:""}`);if(!l||l.context.code!==200)throw new Sy("toolbox_utxo_api_error",{error:`Failed to query ${n}`});return l.data}async function y1({address:n,chain:T,apiKey:l}){if(!n)throw new Sy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await uf(`${qT(T)}/dashboards/address/${n}?transaction_details=true`,l))[n]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function B2({address:n,chain:T,apiKey:l}){return(await y1({address:n,apiKey:l,chain:T}))?.address.balance||0}async function n1({chain:n,apiKey:T,txHash:l}){if(!l)throw new Sy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await uf(`${qT(n)}/raw/transaction/${l}`,T))?.[l]?.raw_transaction||""}catch(y){return console.error("Failed to fetch raw transaction:",y),""}}async function J2({chain:n,address:T,apiKey:l,offset:y=0,limit:x=30}){return(await uf(`${qT(n)}/outputs?q=recipient(${T}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${x}&offset=${y}`,l)).map(({is_spent:C,script_hex:L,block_id:N,transaction_hash:X,index:_,value:Z,spending_signature_hex:B})=>({hash:X,index:_,is_confirmed:N!==-1,is_spent:C,script_hex:L,txHex:B,value:Z}))}function w2(n){return n.reduce((T,l)=>T+l.value,0)}function ax(n,T){let l=[...n].sort((y,x)=>x.value-y.value);if(T){let y=[],x=0;for(let f of l)if(y.push(f),x+=f.value,x>=T)break;return y}return l}async function T1({chain:n,address:T,apiKey:l,targetValue:y,accumulativeValue:x=0,offset:f=0,limit:G=30}){if(!T)throw new Sy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let o=await J2({address:T,apiKey:l,chain:n,limit:G,offset:f,targetValue:y}),L=o.length<G,N=o.filter(({is_spent:M})=>!M),X=w2(N),_=x+X,Z=y&&_>=y;if(L||Z)return ax(N,y);let B=await T1({accumulativeValue:_,address:T,apiKey:l,chain:n,limit:G,offset:f+G,targetValue:y}),w=[...N,...B];return ax(w,y)}catch(o){return console.error("Failed to fetch unspent UTXOs:",o),[]}}async function q2({address:n,chain:T,apiKey:l,fetchTxHex:y=!0,targetValue:x}){let f=await T1({address:n,apiKey:l,chain:T,targetValue:x}),G=[];for(let{hash:o,index:C,script_hex:L,value:N}of f){let X;if(y)X=await n1({apiKey:l,chain:T,txHash:o});G.push({address:n,hash:o,index:C,txHex:X,value:N,witnessUtxo:{script:Buffer.from(L,"hex"),value:N}})}return G}function Q2(n){let T=sx.get("apiKeys").blockchair||"";return ex({condition:!T,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(l)=>_2({chain:n,txHash:l}),getAddressData:(l)=>y1({address:l,apiKey:T,chain:n}),getBalance:(l)=>B2({address:l,apiKey:T,chain:n}),getRawTx:(l)=>n1({apiKey:T,chain:n,txHash:l}),getSuggestedTxFee:()=>Z2(n),getUtxos:(l)=>q2({...l,apiKey:T,chain:n})}}function W2(n){return n}function yy(n){let T=sx.get("apis")[n];if(T)return ex({condition:!0,id:"custom_utxo_api_warning",warning:"Using custom UTXO API. Be sure to implement all methods to avoid issues."}),T;return Q2(n)}function Xy(){return function(T){switch(T){case i.Bitcoin:return X2.bitcoin;case i.BitcoinCash:return un.bitcoincash.main.toBitcoinJS();case i.Dash:return un.dash.main.toBitcoinJS();case i.Litecoin:return un.litecoin.main.toBitcoinJS();case i.Dogecoin:{let l={private:70615956,public:70617039},y=un.dogecoin.test;return y.versions.bip32=l,un.dogecoin.main.toBitcoinJS()}case i.Zcash:return C2.zcash;default:throw new Sy("toolbox_utxo_not_supported",{chain:T})}}}var f1=R(()=>{Jn()});import{SwapKitError as l1}from"@swapkit/helpers";import G1 from"bs58check";import o1 from"cashaddrjs";function vf(n){try{return QT(n),!0}catch{return!1}}function Ff(n){return QT(n)?.network}function Gn(n){let T=QT(n);if(T?.format==="legacy")return n;return z2(T)}function In(n){let T=QT(n);return H2(T)}function QT(n){try{let T=M2(n);if(T)return T}catch{}try{let T=P2(n);if(T)return T}catch{}throw new l1("toolbox_utxo_invalid_address",{address:n})}function M2(n){try{let T=G1.decode(n);if(T.length!==21)throw new l1("toolbox_utxo_invalid_address",{address:n});let l=T[0],y=Array.prototype.slice.call(T,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{return}}function P2(n){if(n.indexOf(":")!==-1)try{return x1(n)}catch{}else{let T=["bitcoincash","bchtest","bchreg"];for(let l of T)try{return x1(`${l}:${n}`)}catch{}}return}function x1(n){try{let{hash:T,prefix:l,type:y}=o1.decode(n);return{format:"cashaddr",hash:Array.prototype.slice.call(T,0),network:l==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function z2(n){let T=K.legacy[n.network][n.type],l=Buffer.alloc(1+n.hash.length);return l[0]=T,l.set(n.hash,1),G1.encode(l)}function H2(n){let T=n.network==="mainnet"?"bitcoincash":"bchtest",l=n.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(n.hash);return o1.encode(T,l,y)}var If,K;var C1=R(()=>{((l)=>{l.Mainnet="mainnet";l.Testnet="testnet"})(If||={});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 U2}from"@swapkit/helpers";import{opcodes as Y2,script as D2}from"bitcoinjs-lib";function _y(n){let T=Buffer.from(n,"utf8");return D2.compile([Y2.OP_RETURN,T])}var R2=1000,MT=10,L1=10,k2=41,O2=107,PT,WT,vn,Fn=(n)=>{if(n.startsWith("bc1")||n.startsWith("tb1")||n.startsWith("ltc1")||n.startsWith("tltc1"))return"P2WPKH";if(n.startsWith("1")||n.startsWith("m")||n.startsWith("n")||n.startsWith("bitcoincash:q")||n.startsWith("bitcoincash:p")||n.startsWith("q")||n.startsWith("p")||n.startsWith("L")||n.startsWith("M")||n.startsWith("3")||n.startsWith("D")||n.startsWith("A")||n.startsWith("9")||n.startsWith("X")||n.startsWith("7")||n.startsWith("y")||n.startsWith("t1")||n.startsWith("t3")||n.startsWith("tm"))return"P2PKH";throw new U2("toolbox_utxo_invalid_address",{address:n})},on=({inputs:n,outputs:T,feeRate:l})=>{let y=n[0]&&"address"in n[0]&&n[0].address?Fn(n[0].address):"P2PKH",x=n.filter((G)=>G.value>=WT["type"in G?G.type:"P2PKH"]*Math.ceil(l)).reduce((G,o)=>G+uy(o),0),f=T?.reduce((G,o)=>G+En(o),0)||vn[y];return MT+x+f},uy=(n)=>{if("type"in n)return WT[n.type];if("address"in n&&n.address)return WT[Fn(n.address)];return k2+O2},En=(n,T)=>{if(n?.script)return L1+n.script.length+(n.script.length>=74?2:1);if(T)return vn[T];return vn.P2PKH};var Ef=R(()=>{((l)=>{l.P2PKH="P2PKH";l.P2WPKH="P2WPKH"})(PT||={});WT={["P2PKH"]:148,["P2WPKH"]:68},vn={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as cy,SwapKitError as S2}from"@swapkit/helpers";function zT(n){switch(n){case cy.Bitcoin:case cy.BitcoinCash:return 550;case cy.Dash:case cy.Litecoin:return 5500;case cy.Dogecoin:return 1e5;case cy.Zcash:return 546;default:throw new S2("toolbox_utxo_not_supported",{chain:n})}}function Ny({inputs:n,outputs:T,feeRate:l=1,chain:y=cy.Bitcoin,changeAddress:x=""}){let f=Math.ceil(l),G=n[0]&&"address"in n[0]&&n[0].address?Fn(n[0].address):"P2PKH",o=n.filter((Z)=>uy(Z)*f<=Z.value),C=MT+T.reduce((Z,B)=>Z+En(B,G),0),L=T.reduce((Z,B)=>Z+B.value,0),N=C*f,X=0,_=[];for(let Z of o){let B=uy(Z),w=f*B;N+=w,X+=Z.value,_.push(Z);let M=N+L;if(X<M)continue;let W=X-M,Y=f*En({address:"",value:0},G);if(W>Y){let v=Y+N,u=X-(L+v);if(u>Math.max(uy({})*f,zT(y)))return{fee:v,inputs:_,outputs:T.concat({address:x,value:u})}}return{fee:N,inputs:_,outputs:T}}return{fee:f*on({feeRate:f,inputs:n,outputs:T})}}var X1=R(()=>{Ef()});var Cn=R(()=>{f1();C1();X1();Ef()});import{networks as u2,address as I2}from"@bitgo/utxo-lib";import v2 from"bs58check";function my(n){return n.replace(/(bchtest:|bitcoincash:)/,"")}function Iy(n){let T=my(n);return vf(T)&&Ff(T)==="mainnet"}function Ln(n){try{if(n.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let T=u2.zcash;try{return I2.toOutputScript(n,T),!0}catch{let l=v2.decode(n);if(l.length<21)return!1;let y=l[0];return y===T.pubKeyHash||y===T.scriptHash}}catch{return!1}}var An=R(()=>{Cn()});import tf from"@bitcoinerlab/secp256k1";import{ECPair as F2,HDNode as E2}from"@psf/bitcoincashjs-lib";import{HDKey as A2}from"@scure/bip32";import{mnemonicToSeedSync as _1}from"@scure/bip39";import{AssetValue as Af,applyFeeMultiplier as N1,Chain as ny,DerivationPath as t2,derivationPathToString as K2,FeeOption as Py,NetworkDerivationPath as V2,SwapKitError as zy,SwapKitNumber as $2,updateDerivationPath as b2}from"@swapkit/helpers";import{address as p2,initEccLib as B1,Psbt as h2,payments as Z1}from"bitcoinjs-lib";import{ECPairFactory as j2}from"ecpair";function J1({inputs:n,outputs:T,chain:l,psbt:y,sender:x,compiledMemo:f}){for(let G of n){let o=!!G.witnessUtxo&&!tn.includes(l)&&{witnessUtxo:G.witnessUtxo},C=tn.includes(l)&&{nonWitnessUtxo:G.txHex?Buffer.from(G.txHex,"hex"):void 0};y.addInput({hash:G.hash,index:G.index,...o,...C})}for(let G of T){let o="address"in G&&G.address?G.address:x,C=G.script;if(C&&!f)continue;let L=C?{script:f,value:0}:{address:o,value:G.value};B1(tf),y.addOutput(L)}return{inputs:n,psbt:y}}async function w1({assetValue:n,recipient:T,memo:l,feeRate:y,sender:x,fetchTxHex:f=!1}){let G=n.chain,o=l?await _y(l):null,C=await W1({assetValue:n,fetchTxHex:f,memo:l,recipient:T,sender:x}),{inputs:L,outputs:N}=Ny({...C,chain:G,feeRate:y});if(!(L&&N))throw new zy("toolbox_utxo_insufficient_balance",{assetValue:n,sender:x});let X=await Xy(),_=new h2({network:X(G)});if(G===ny.Dogecoin)_.setMaximumFeeRate(650000000);let{psbt:Z,inputs:B}=await J1({chain:G,compiledMemo:o,inputs:L,outputs:N,psbt:_,sender:x});return{inputs:B,psbt:Z,utxos:C.inputs}}async function q1(){let n=await Xy();return function({address:l,chain:y}){if(y===ny.BitcoinCash)return Iy(l);if(y===ny.Zcash)return Ln(l);try{return B1(tf),p2.toOutputScript(l,n(y)),!0}catch{return!1}}}async function c2({chain:n,phrase:T,derivationPath:l}){let y=(await Kn(n))({derivationPath:l,phrase:T});async function x(G){return await G.signAllInputs(y),G}function f(){return Kf(n)(y)}return{getAddress:f,signTransaction:x}}async function iy({chain:n,...T}){let l="phrase"in T?T.phrase:void 0,y="index"in T?T.index||0:0,x=K2("derivationPath"in T&&T.derivationPath?T.derivationPath:b2(V2[n],{index:y})),f=l?await c2({chain:n,derivationPath:x,phrase:l}):("signer"in T)?T.signer:void 0;function G(){return Promise.resolve(f?.getAddress())}let o=await q1(),C=await Kn(n);return{accumulative:Ny,broadcastTx:(L)=>yy(n).broadcastTx(L),calculateTxSize:on,createKeysForPath:C,createTransaction:w1,estimateMaxSendableAmount:m2(n),estimateTransactionFee:i2(n),getAddress:G,getAddressFromKeys:Kf(n),getBalance:dy(n),getFeeRates:()=>Vn(n),getInputsOutputsFee:Q1,getPrivateKeyFromMnemonic:(L)=>{return C(L).toWIF()},transfer:g2(f),validateAddress:(L)=>o({address:L,chain:n})}}async function Q1({assetValue:n,feeOptionKey:T=Py.Fast,feeRate:l,memo:y,sender:x,recipient:f}){let G=n.chain,o=await W1({assetValue:n,memo:y,recipient:f,sender:x}),C=l?Math.floor(l):(await Vn(G))[T];return Ny({...o,chain:G,feeRate:C})}function m2(n){return async function({from:l,memo:y,feeRate:x,feeOptionKey:f=Py.Fast,recipients:G=1}){let o=await yy(n).getAddressData(l),C=x?Math.ceil(x):(await Vn(n))[f],L=o?.utxo.map((B)=>({...B,hash:"",type:"P2PKH"})).filter((B)=>B.value>Math.max(zT(n),uy(B)*C));if(!L?.length)return Af.from({chain:n});let N=Af.from({chain:n,value:L.reduce((B,w)=>B+w.value,0)}),X=typeof G==="number"?Array.from({length:G},()=>({address:l,value:0})):G;if(y){let B=await _y(y);X.push({address:l,script:B,value:0})}let Z=on({feeRate:C,inputs:L,outputs:X})*C;return N.sub(Z)}}function i2(n){return async(T)=>{let l=await Q1(T);return Af.from({chain:n,value:$2.fromBigInt(BigInt(l.fee),8).getValue("string")})}}async function Kn(n){let T=await Xy();switch(n){case ny.BitcoinCash:return function({phrase:y,derivationPath:x=`${t2.BCH}/0`,wif:f}){let G=T(n);if(f)return F2.fromWIF(f,G);if(!y)throw new zy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return E2.fromSeedBuffer(Buffer.from(_1(y)),G).derivePath(x).keyPair};case ny.Bitcoin:case ny.Dogecoin:case ny.Litecoin:case ny.Zcash:case ny.Dash:return function({phrase:y,wif:x,derivationPath:f}){if(!(x||y))throw new zy("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let G=j2(tf),o=T(n);if(x)return G.fromWIF(x,o);let C=_1(y),L=A2.fromMasterSeed(C,o).derive(f);if(!L.privateKey)throw new zy("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return G.fromPrivateKey(Buffer.from(L.privateKey),{network:o})};default:throw new zy("toolbox_utxo_not_supported",{chain:n})}}function Kf(n){let T=Xy();return function(y){if(!y)throw new zy("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let x=tn.includes(n)?Z1.p2pkh:Z1.p2wpkh,{address:f}=x({network:T(n),pubkey:y.publicKey});if(!f)throw new zy("toolbox_utxo_invalid_address",{error:"Address not defined"});return f}}function g2(n){return async function({memo:l,recipient:y,feeOptionKey:x,feeRate:f,assetValue:G}){let o=await n?.getAddress(),C=G.chain;if(!(n&&o))throw new zy("toolbox_utxo_no_signer");if(!y)throw new zy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let L=f||(await Vn(C))[x||Py.Fast],{psbt:N}=await w1({assetValue:G,feeRate:L,memo:l,recipient:y,sender:o}),X=await n.signTransaction(N);return X.finalizeAllInputs(),yy(C).broadcastTx(X.extractTransaction().toHex())}}async function Vn(n){let T=await yy(n).getSuggestedTxFee();return{[Py.Average]:T,[Py.Fast]:N1(T,Py.Fast),[Py.Fastest]:N1(T,Py.Fastest)}}async function W1({assetValue:n,recipient:T,memo:l,sender:y,fetchTxHex:x=!1}){let f=n.chain,G=(await Vn(f))[Py.Fastest],o=x||tn.includes(f),C=n.getBaseValue("number"),L=Math.ceil(C+G*5000);return{inputs:await yy(f).getUtxos({address:y,fetchTxHex:o,targetValue:L}),outputs:[{address:T,value:C},...l?[{address:"",script:await _y(l),value:0}]:[]]}}var tn;var $n=R(()=>{Jn();Cn();An();tn=[ny.Dash,ny.Dogecoin,ny.Zcash,ny.BitcoinCash]});import{address as d2,Transaction as r2,TransactionBuilder as a2}from"@psf/bitcoincashjs-lib";import{Chain as s2,derivationPathToString as e2,FeeOption as yG,NetworkDerivationPath as nG,SwapKitError as Xn,updateDerivationPath as TG}from"@swapkit/helpers";import{Psbt as fG}from"bitcoinjs-lib";function gy(n){return my(In(n))}function xG(n){function T({builder:y,utxos:x}){return x.forEach((f,G)=>{y.sign(G,n,void 0,65,f.witnessUtxo?.value)}),y.build()}return{getAddress:()=>{let y=n.getAddress(0);return Promise.resolve(gy(y))},signTransaction:T}}async function Vf(n){let T="phrase"in n?n.phrase:void 0,l="index"in n?n.index||0:0,y=e2("derivationPath"in n&&n.derivationPath?n.derivationPath:TG(nG[Gy],{index:l})),x=T?(await Kn(Gy))({derivationPath:y,phrase:T}):void 0,f=x?xG(x):("signer"in n)?n.signer:void 0;function G(){return Promise.resolve(f?.getAddress())}let{getBalance:o,getFeeRates:C,broadcastTx:L,...N}=await iy({chain:Gy});function X(_,Z=!0){return o(my(In(_)))}return{...N,broadcastTx:L,buildTx:GG,createTransaction:M1,getAddress:G,getAddressFromKeys:oG,getBalance:X,getFeeRates:C,stripPrefix:my,stripToCashAddress:gy,transfer:lG({broadcastTx:L,getFeeRates:C,signer:f}),validateAddress:Iy}}async function M1({assetValue:n,recipient:T,memo:l,feeRate:y,sender:x}){if(!Iy(T))throw new Xn("toolbox_utxo_invalid_address",{address:T});let f=Math.ceil(n.getBaseValue("number")+y*7500),G=await yy(Gy).getUtxos({address:gy(x),fetchTxHex:!0,targetValue:f}),o=l?await _y(l):null,C=[];C.push({address:T,value:n.getBaseValue("number")});let{inputs:L,outputs:N}=Ny({chain:Gy,feeRate:y,inputs:G,outputs:C});if(!(L&&N))throw new Xn("toolbox_utxo_insufficient_balance",{assetValue:n,sender:x});let X=await Xy(),_=new a2(X(Gy));await Promise.all(L.map(async(Z)=>{let B=await yy(Gy).getRawTx(Z.hash);_.addInput(r2.fromBuffer(Buffer.from(B,"hex")),Z.index)}));for(let Z of N){let B="address"in Z&&Z.address?Z.address:Gn(x),w=await Xy(),M=d2.toOutputScript(Gn(B),w(Gy));_.addOutput(M,Z.value)}if(o)_.addOutput(o,0);return{builder:_,utxos:L}}function lG({broadcastTx:n,getFeeRates:T,signer:l}){return async function({recipient:x,assetValue:f,feeOptionKey:G=yG.Fast,...o}){let C=await l?.getAddress();if(!(l&&C))throw new Xn("toolbox_utxo_no_signer");if(!x)throw new Xn("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let L=o.feeRate||(await T())[G],{builder:N,utxos:X}=await M1({...o,assetValue:f,feeRate:L,recipient:x,sender:C}),Z=(await l.signTransaction({builder:N,utxos:X})).toHex();return n(Z)}}async function GG({assetValue:n,recipient:T,memo:l,feeRate:y,sender:x,setSigHashType:f}){let G=In(T);if(!Iy(G))throw new Xn("toolbox_utxo_invalid_address",{address:G});let o=Math.ceil(n.getBaseValue("number")+y*7500),C=await yy(Gy).getUtxos({address:gy(x),fetchTxHex:!1,targetValue:o}),L=Number(y.toFixed(0)),N=l?await _y(l):null,X=[];if(X.push({address:Gn(T),value:n.getBaseValue("number")}),N)X.push({script:N,value:0});let{inputs:_,outputs:Z}=Ny({chain:Gy,feeRate:L,inputs:C,outputs:X});if(!(_&&Z))throw new Xn("toolbox_utxo_insufficient_balance",{assetValue:n,sender:x});let B=await Xy(),w=new fG({network:B(Gy)});for(let{hash:M,index:W,witnessUtxo:Y}of _)w.addInput({hash:M,index:W,sighashType:f?65:void 0,witnessUtxo:Y});for(let M of Z){let W="address"in M&&M.address?M.address:Gn(x),Y=M.script?N?{script:N,value:0}:void 0:{address:W,value:M.value};if(Y)w.addOutput(Y)}return{inputs:_,psbt:w,utxos:C}}function oG(n){let T=n.getAddress(0);return gy(T)}var Gy;var HT=R(()=>{Cn();$n();An();Gy=s2.BitcoinCash});import{bitgo as CG,crypto as LG,ECPair as z1,networks as XG,address as _G}from"@bitgo/utxo-lib";import{HDKey as H1}from"@scure/bip32";import{mnemonicToSeedSync as U1}from"@scure/bip39";import{Chain as UT,derivationPathToString as NG,FeeOption as ZG,NetworkDerivationPath as BG,SKConfig as JG,SwapKitError as YT,updateDerivationPath as wG}from"@swapkit/helpers";import qG from"bs58check";import{match as QG,P as $f}from"ts-pattern";function Y1(){return XG.zcash}function D1(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
+ `,pubKeyHash:28,scriptHash:28,wif:128}}function WG({phrase:n,derivationPath:T}){let l=U1(n),x=H1.fromMasterSeed(l).derive(T);if(!x.privateKey)throw new YT("toolbox_utxo_invalid_params");let f=D1(),G=z1.fromPrivateKey(Buffer.from(x.privateKey),{network:f}),o=LG.hash160(G.publicKey),{isStagenet:C}=JG.get("envs"),L=C?Buffer.from([29,37]):Buffer.from([28,184]),N=Buffer.concat([L,o]),X=qG.encode(N);return{getAddress:()=>Promise.resolve(X),signTransaction:(_)=>{let Z=_.signAllInputs(G);return Promise.resolve(Z)}}}function MG({inputs:n,outputs:T,psbt:l,sender:y,compiledMemo:x}){for(let f of n){let G=!!f.witnessUtxo&&{witnessUtxo:{...f.witnessUtxo,value:BigInt(f.value)}},o=!f.witnessUtxo&&{nonWitnessUtxo:f.txHex?Buffer.from(f.txHex,"hex"):void 0};l.addInput({hash:f.hash,index:f.index,...G,...o})}for(let f of T){let G="address"in f&&f.address?f.address:y,o=f.script;if(o&&!x)continue;let C=o?{script:x,value:0n}:{script:_G.toOutputScript(G,Y1()),value:BigInt(f.value)};l.addOutput(C)}return{inputs:n,psbt:l}}async function P1(n){let{assetValue:T,recipient:l,memo:y,feeRate:x,sender:f,fetchTxHex:G}=n,o=y?_y(y):null,C=await yy(UT.Zcash).getUtxos({address:f,fetchTxHex:G!==!1}),L=[{address:l,value:Number(T.getBaseValue("string"))},...o?[{script:o,value:0}]:[]],{inputs:N,outputs:X}=Ny({chain:UT.Zcash,changeAddress:f,feeRate:x,inputs:C,outputs:L});if(!(N&&X))throw new YT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:f});let _=CG.createPsbtForNetwork({network:Y1()},{version:455}),B=3268858036,w=Buffer.concat([Buffer.of(252),Buffer.of(5),Buffer.from("BITGO"),Buffer.of(0)]),M=Buffer.allocUnsafe(4);M.writeUInt32LE(B>>>0,0),_.addUnknownKeyValToGlobal({key:w,value:M});let{psbt:W,inputs:Y}=await MG({compiledMemo:o,inputs:N,outputs:X,psbt:_,sender:f});return{inputs:Y,outputs:X,psbt:W}}async function bf(n){let T=await QG(n).with({signer:$f.not($f.nullish)},({signer:G})=>Promise.resolve(G)).with({phrase:$f.string},({phrase:G,derivationPath:o,index:C=0})=>{let L=o||BG[UT.Zcash]||[44,133,0,0,0],N=wG(L,{index:C}),X=NG(N);return WG({derivationPath:X,phrase:G})}).otherwise(()=>Promise.resolve(void 0)),l=await iy({chain:UT.Zcash,signer:T});async function y({recipient:G,assetValue:o,feeOptionKey:C=ZG.Fast,...L}){let N=await T?.getAddress();if(!(T&&N))throw new YT("toolbox_utxo_no_signer");let X=L.feeRate||(await l.getFeeRates())[C],{psbt:_}=await P1({...L,assetValue:o,feeRate:X,recipient:G,sender:N}),Z=await T.signTransaction(_);return Z.finalizeAllInputs(),l.broadcastTx(Z.extractTransaction().toHex())}function x({phrase:G,derivationPath:o="m/44'/133'/0'/0/0"}){let C=U1(G),N=H1.fromMasterSeed(C).derive(o);if(!N.privateKey)throw new YT("toolbox_utxo_invalid_params");let X=D1();return z1.fromPrivateKey(Buffer.from(N.privateKey),{network:X})}function f({phrase:G,derivationPath:o="m/44'/133'/0'/0/0"}){return x({derivationPath:o,phrase:G}).toWIF()}return{...l,createKeysForPath:x,createTransaction:P1,getPrivateKeyFromMnemonic:f,transfer:y,validateAddress:Ln}}var pf=R(()=>{Cn();$n();An()});import{Chain as _n,SwapKitError as PG}from"@swapkit/helpers";async function zG(n,T){switch(n){case _n.BitcoinCash:return await Vf(T||{});case _n.Zcash:return await bf(T);case _n.Bitcoin:case _n.Dogecoin:case _n.Litecoin:case _n.Dash:return await iy({chain:n,...T});default:throw new PG("toolbox_utxo_not_supported",{chain:n})}}var R1=R(()=>{HT();$n();pf();HT();An()});var hf={};a(hf,{validateZcashAddress:()=>Ln,toLegacyAddress:()=>Gn,toCashAddress:()=>In,stripToCashAddress:()=>gy,stripPrefix:()=>my,nonSegwitChains:()=>tn,isValidAddress:()=>vf,getUtxoToolbox:()=>zG,getUtxoNetwork:()=>Xy,getUtxoApi:()=>yy,getUTXOAddressValidator:()=>q1,getScriptTypeForAddress:()=>Fn,getOutputSize:()=>En,getInputSize:()=>uy,getDustThreshold:()=>zT,getCreateKeysForPath:()=>Kn,detectAddressNetwork:()=>Ff,createZcashToolbox:()=>bf,createUTXOToolbox:()=>iy,createCustomUtxoApi:()=>W2,createBCHToolbox:()=>Vf,compileMemo:()=>_y,calculateTxSize:()=>on,bchValidateAddress:()=>Iy,addressFromKeysGetter:()=>Kf,addInputsAndOutputs:()=>J1,accumulative:()=>Ny,UtxoNetwork:()=>If,UTXOScriptType:()=>PT,TX_OVERHEAD:()=>MT,OutputSizes:()=>vn,OP_RETURN_OVERHEAD:()=>L1,MIN_TX_FEE:()=>R2,InputSizes:()=>WT});var jf=R(()=>{Cn();R1();HT();$n();pf()});import{derivationPathToString as HG,SwapKitError as UG}from"@swapkit/helpers";import{KeyPairSigner as YG}from"near-api-js";async function DT(){let{validateAccountId:n}=await import("near-sdk-js");return(T)=>{try{return n(T)}catch{let l=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return T.length>=2&&T.length<=64&&l.test(T)}}}async function RT(n){let{parseSeedPhrase:T}=await import("near-seed-phrase"),{KeyPair:l}=await import("near-api-js"),y=n.index||0,x=n.derivationPath?HG(n.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:f}=T(n.phrase,x),G=l.fromString(f);return O1(G)}async function cf(n){let{KeyPair:T}=await import("near-api-js/lib/utils"),l=T.fromString(n);return O1(l)}function O1(n){return new k1(n)}async function kT(n,T){let y=(await n.query({account_id:T,finality:"final",request_type:"view_access_key_list"})).keys.find((o)=>o.access_key.permission==="FullAccess");if(!y)throw new UG("toolbox_near_no_public_key_found");let{utils:x}=await import("near-api-js"),f=x.PublicKey.fromString(y.public_key);return{nonce:y.access_key.nonce||0,publicKey:f}}var k1;var mf=R(()=>{k1=class k1 extends YG{#y;constructor(n){super(n);this.#y=n}getAddress(){let n=this.#y.getPublicKey(),T=Buffer.from(n.data).toString("hex");return Promise.resolve(T)}}});function gf(n){return"recipient"in n&&"amount"in n&&!("contractId"in n)}function df(n){return"contractId"in n&&"methodName"in n}function rf(n){return"actions"in n}function af(n){return"newAccountId"in n}function sf(n){return"contractCode"in n}function ef(n){return"customEstimator"in n}function y0(n){let T=0;for(let l of n)switch(l.enum){case"transfer":T+=Number(g.SIMPLE_TRANSFER);break;case"functionCall":T+=Number(g.CONTRACT_CALL);break;case"createAccount":T+=Number(g.ACCOUNT_CREATION);break;case"deployContract":T+=Number(g.CONTRACT_DEPLOYMENT);break;case"addKey":T+=Number(g.ACCESS_KEY_ADDITION);break;case"deleteKey":T+=Number(g.ACCESS_KEY_DELETION);break;case"stake":T+=Number(g.STAKE);break;default:T+=Number(g.CONTRACT_CALL)}return T.toString()}function n0(n){if(n==="ft_transfer"||n==="ft_transfer_call")return g.TOKEN_TRANSFER;if(n==="storage_deposit")return g.STORAGE_DEPOSIT;return g.CONTRACT_CALL}function DG(n){return(BigInt(n)*BigInt(1000000000000)).toString()}function RG(n){return(BigInt(n)/BigInt(1000000000000)).toString()}var g;var T0=R(()=>{g={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 OT({account:n,contractId:T,viewMethods:l,changeMethods:y}){let{Contract:x}=await import("near-api-js");return new x(n,T,{changeMethods:y,useLocalViewExecution:!0,viewMethods:l})}async function f0({contractId:n,account:T}){let l=(await import("bn.js")).default,y=await OT({account:T,changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"],contractId:n,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"]}),x=async(f)=>{if(!await y.storage_balance_of({account_id:f})){let C=(await y.storage_balance_bounds())?.min||"1250000000000000000000";await y.storage_deposit({account_id:f},new l("100000000000000"),new l(C))}};return{balanceOf:(f)=>y.ft_balance_of({account_id:f}),contract:y,ensureStorage:x,metadata:()=>y.ft_metadata(),storageBalanceOf:(f)=>y.storage_balance_of({account_id:f}),storageDeposit:(f,G)=>y.storage_deposit({account_id:f},new l("100000000000000"),new l(G||"1250000000000000000000")),totalSupply:()=>y.ft_total_supply(),transfer:async(f,G,o)=>{return await x(f),y.ft_transfer({amount:G,memo:o,receiver_id:f},new l("100000000000000"),new l("1"))},transferCall:async(f,G,o,C)=>{return await x(f),y.ft_transfer_call({amount:G,memo:C,msg:o,receiver_id:f},new l("100000000000000"),new l("1"))}}}import{AssetValue as S1,Chain as Nn,getChainConfig as u1,getRPCUrl as kG,SwapKitError as Ty}from"@swapkit/helpers";async function OG(n){let{P:T,match:l}=await import("ts-pattern"),{providers:y}=await import("near-api-js"),x=await l(n).with({phrase:T.string},async(J)=>{return await RT(J)}).with({signer:T.any},({signer:J})=>J).otherwise(()=>{return}),f=await kG(Nn.Near),G=new y.JsonRpcProvider({url:f});async function o(J){let{Account:P}=await import("near-api-js"),U=J||await C();return new P(U,G,x)}async function C(){if(!x)throw new Ty("toolbox_near_no_signer");return await x.getAddress()}async function L(J){if(!x)throw new Ty("toolbox_near_no_signer");let P=await N({...J,sender:await C()});return w(await B(P))}async function N(J){let{recipient:P,assetValue:U,memo:k,attachedDeposit:O,sender:I,functionCall:t}=J,$=await DT();if(!$(P))throw new Ty("toolbox_near_invalid_address",{recipient:P});if(!$(I))throw new Ty("toolbox_near_invalid_address",{signerId:I});if(t)return _({...t,sender:I});if(!U.isGasAsset){let Ay=U.address;if(!Ay)throw new Ty("toolbox_near_missing_contract_address");return _({args:{amount:U.getBaseValue("string"),memo:k||null,receiver_id:P},attachedDeposit:O||"1",contractId:Ay,gas:"250000000000000",methodName:"ft_transfer",sender:I})}let{publicKey:A,nonce:fy}=await kT(G,I),xy=U.getBaseValue("bigint"),{transactions:r,utils:By}=await import("near-api-js"),Ey=[r.transfer(xy)];if(k&&O)Ey.push(r.functionCall("memo",{memo:k},BigInt("250000000000000"),BigInt(O)));let bn=await G.block({finality:"final"}),ST=By.serialize.base_decode(bn.header.hash);return r.createTransaction(I,A,P,fy+1,Ey,ST)}async function X(J){let{SCHEMA:P}=await import("near-api-js/lib/transaction"),{utils:U}=await import("near-api-js"),k=U.serialize.serialize(P.Transaction,J);return Buffer.from(k).toString("base64")}async function _(J){let{sender:P}=J,{publicKey:U,nonce:k}=await kT(G,P),{transactions:O,utils:I}=await import("near-api-js"),t=await G.block({finality:"final"}),$=I.serialize.base_decode(t.header.hash),A=[O.functionCall(J.methodName,Buffer.from(JSON.stringify(J.args)),BigInt(J.gas),BigInt(J.attachedDeposit))];return O.createTransaction(P,U,J.contractId,k+1,A,$)}async function Z(J){let{transactions:P}=await import("near-api-js");return P.functionCall(J.methodName,Buffer.from(JSON.stringify(J.args)),BigInt(J.gas),BigInt(J.attachedDeposit))}async function B(J){if(!x)throw new Ty("toolbox_near_no_signer");let[P,U]=await x.signTransaction(J);return U}async function w(J){return(await G.sendTransaction(J)).transaction.hash}async function M(J){if("assetValue"in J){let O=BigInt("115123062500")+BigInt("108059500000"),I=await W(),t=O*BigInt(I.toString()),{baseDecimal:$}=u1(Nn.Near);return S1.from({chain:Nn.Near,fromBaseDecimal:$,value:t.toString()})}let P=x?await o():void 0;return d(J,P)}async function W(){try{return await G.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Y(J,P,U){if(!x)throw new Ty("toolbox_near_no_signer");let k=await o(),{utils:O}=await import("near-api-js"),I=O.format.parseNearAmount(U)||"0";return(await k.createAccount(J,O.PublicKey.fromString(P),BigInt(I))).transaction.hash}async function v(J){try{if(!x)throw new Ty("toolbox_near_no_signer");let{transactions:P}=await import("near-api-js"),{contractId:U,methodName:k,args:O,deposit:I}=J,t=await o(),$=await d({args:O||{},contractId:U,methodName:k}),A=P.functionCall(k,O||{},$.getBaseValue("bigint"),BigInt(I||"1"));return(await t.signAndSendTransaction({actions:[A],receiverId:U})).transaction_outcome.id}catch(P){throw new Ty("toolbox_near_transfer_failed",{error:P})}}async function u(J){let P=await o();return OT({account:P,changeMethods:J.changeMethods,contractId:J.contractId,viewMethods:J.viewMethods})}async function F(J){if(!x)throw new Ty("toolbox_near_no_signer");if(J.actions.length===0)throw new Ty("toolbox_near_empty_batch");return(await(await o()).signAndSendTransaction({actions:J.actions,receiverId:J.receiverId})).transaction.hash}async function V(J){let P=await o();return f0({account:P,contractId:J})}async function d(J,P){let{baseDecimal:U}=u1(Nn.Near),k=await l(J).when(gf,()=>g.SIMPLE_TRANSFER).when(df,(t)=>n0(t.methodName)).when(rf,(t)=>y0(t.actions)).when(af,()=>g.ACCOUNT_CREATION).when(sf,()=>g.CONTRACT_DEPLOYMENT).when(ef,(t)=>{if(!P)throw new Ty("toolbox_near_no_account");return t.customEstimator(P)}).otherwise(()=>{throw new Ty("toolbox_near_invalid_gas_params")}),I=BigInt(k)*BigInt(1000000000000);return S1.from({chain:Nn.Near,fromBaseDecimal:U,value:I})}async function Uy(){try{return(await G.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:w,callFunction:v,createAction:Z,createContract:u,createContractFunctionCall:_,createSubAccount:Y,createTransaction:N,estimateGas:d,estimateTransactionFee:M,executeBatchTransaction:F,getAddress:C,getBalance:dy(Nn.Near),getGasPrice:Uy,getPublicKey:async()=>x?(await x.getPublicKey()).toString():"",getSignerFromPhrase:(J)=>RT(J),getSignerFromPrivateKey:cf,nep141:V,provider:G,serializeTransaction:X,signTransaction:B,transfer:L,validateAddress:await DT()}}var x0=R(()=>{Jn();mf();T0()});var I1=R(()=>{x0()});var l0={};a(l0,{tgasToGas:()=>DG,isSimpleTransfer:()=>gf,isCustomEstimator:()=>ef,isContractDeployment:()=>sf,isContractCall:()=>df,isBatchTransaction:()=>rf,isAccountCreation:()=>af,getValidateNearAddress:()=>DT,getNearToolbox:()=>OG,getNearSignerFromPrivateKey:()=>cf,getNearSignerFromPhrase:()=>RT,getFullAccessPublicKey:()=>kT,getContractMethodGas:()=>n0,gasToTGas:()=>RG,estimateBatchGas:()=>y0,createNearContract:()=>OT,createNEP141Token:()=>f0,GAS_COSTS:()=>g});var G0=R(()=>{mf();T0();x0();I1()});var o0={};a(o0,{radixValidateAddress:()=>F1,RadixToolbox:()=>tG});import{AssetValue as SG,Chain as v1,SKConfig as uG,SwapKitError as IG}from"@swapkit/helpers";function F1(n){return n.startsWith("account_rdx1")&&n.length===66}function vG({networkApi:n}){return async function(l){let y=await FG({address:l,networkApi:n});return EG({networkApi:n,resources:y})}}async function FG({address:n,networkApi:T}){let l=!0,y,x=[],f=await AG(T);while(l){let G={address:n,at_ledger_state:{state_version:f},cursor:y,limit_per_page:100},o=await T.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:G});if(x=x.concat(o.items),o.next_cursor)y=o.next_cursor;else l=!1}return x}async function EG({resources:n,networkApi:T}){let l=[],y=50,x=[];for(let f=0;f<n.length;f+=50)x.push(n.slice(f,f+50));for(let f of x){let G=f.map((L)=>L.resource_address),o=await T.state.getEntityDetailsVaultAggregated(G),C=new Map;for(let L of o)if(L.details!==void 0){let N=L.metadata?.items.find((_)=>_.key==="symbol"),X=N?.value.typed.type==="String"?N.value.typed.value:"?";if(L.details.type==="FungibleResource")C.set(L.address,{decimals:L.details.divisibility,symbol:X})}for(let L of f)if(L.aggregation_level==="Global"){let N=C.get(L.resource_address)||{decimals:0,symbol:"?"},X=SG.from({asset:N.symbol!==v1.Radix?`${v1.Radix}.${N.symbol}-${L.resource_address}`:"XRD.XRD",value:L.amount});l.push(X)}}return l}function AG(n){return n.status.getCurrent().then((T)=>T.ledger_state.state_version)}var tG=async({dappConfig:n}={})=>{let{RadixDappToolkit:T}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:l}=await import("@radixdlt/babylon-gateway-api-sdk"),y=n||uG.get("integrations").radix,x=T({...y,networkId:y.network?.networkId||1}),f=l.initialize(x.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:vG({networkApi:f}),networkApi:f,signAndBroadcast:()=>{throw new IG("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:F1}};var C0=()=>{};var _0={};a(_0,{rippleValidateAddress:()=>X0,hashes:()=>mG,getRippleToolbox:()=>cG});import{AssetValue as L0,Chain as Hy,getChainConfig as E1,getRPCUrl as KG,SwapKitError as vy,SwapKitNumber as VG}from"@swapkit/helpers";import{Client as $G,isValidAddress as bG,Wallet as pG,xrpToDrops as hG}from"xrpl";import{hashes as mG}from"xrpl";function A1(n){let T=pG.fromMnemonic(n);return{getAddress:()=>Promise.resolve(T.address),signTransaction:(l)=>Promise.resolve(T.sign(l))}}function X0(n){return bG(n)}var jG,cG=async(n={})=>{let T="signer"in n&&n.signer?n.signer:("phrase"in n)&&n.phrase?A1(n.phrase):void 0,l=await KG(Hy.Ripple);if(!l)throw new vy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:Hy.Ripple}});let y=new $G(l);await y.connect();let x=()=>{if(!T)throw new vy({errorKey:"toolbox_ripple_signer_not_found"});return T.getAddress()},f=async(_)=>{let Z=_||await x(),{baseDecimal:B}=E1(Hy.Ripple);try{let M=(await y.request({account:Z,command:"account_info"})).result.account_data.Balance;return[L0.from({chain:Hy.Ripple,fromBaseDecimal:B,value:M})]}catch(w){if(w.data.error_code===jG.ACCOUNT_NOT_FOUND)return[L0.from({chain:Hy.Ripple,value:0})];throw new vy("toolbox_ripple_get_balance_error",{info:{address:Z,error:w}})}},G=async()=>{let Z=(await y.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:B}=E1(Hy.Ripple);return L0.from({chain:Hy.Ripple,fromBaseDecimal:B,value:VG.fromBigInt(BigInt(Z),B)})},o=async({assetValue:_,recipient:Z,memo:B,sender:w})=>{if(!X0(Z))throw new vy({errorKey:"core_transaction_invalid_recipient_address"});let M=w||await x();if(!_.isGasAsset||_.chain!==Hy.Ripple)throw new vy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:_.toString()}});let W={Account:M,Amount:hG(_.getValue("string")),Destination:Z,TransactionType:"Payment"};if(B)W.Memos=[{Memo:{MemoData:Buffer.from(B).toString("hex")}}];return await y.autofill(W)},C=(_)=>{if(!T)throw new vy({errorKey:"toolbox_ripple_signer_not_found"});return T.signTransaction(_)},L=async(_)=>{let B=(await y.submitAndWait(_)).result;if(B.validated)return B.hash;throw new vy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Hy.Ripple}})};return{broadcastTransaction:L,createSigner:A1,createTransaction:o,disconnect:()=>y.disconnect(),estimateTransactionFee:G,getAddress:x,getBalance:f,signer:T,signTransaction:C,transfer:async(_)=>{if(!T)throw new vy({errorKey:"toolbox_ripple_signer_not_found"});let Z=await T.getAddress(),B=await o({..._,sender:Z}),w=await C(B);return L(w.tx_blob)},validateAddress:X0}};var N0=R(()=>{jG={ACCOUNT_NOT_FOUND:19}});import{AssetValue as iG,Chain as gG,SwapKitNumber as t1}from"@swapkit/helpers";async function dG(n,T,l){try{let y=await n.query.system?.account?.(l);if(!y)return[T.set(0)];let{data:{free:x}}=y,f=t1.fromBigInt(BigInt(x.toString()),T.decimal).getValue("string");return[T.set(f)]}catch(y){return console.error("Error fetching substrate balance:",y),[T.set(0)]}}async function rG(n,T,l){try{let y=await n.query.flip?.account?.(l);if(!y)return[T.set(0)];let x=y.balance||y.data?.balance;if(!x||x.isEmpty)return[T.set(0)];let f=t1.fromBigInt(BigInt(x.toString()),T.decimal).getValue("string");return[T.set(f)]}catch(y){return console.error("Error fetching chainflip balance:",y),[T.set(0)]}}function K1(n,T){return function(y){let x=iG.from({chain:n});switch(n){case gG.Chainflip:return rG(T,x,y);default:return dG(T,x,y)}}}var V1=()=>{};var aG,sG,eG,Fy;var Z0=R(()=>{aG={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},sG={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},eG={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},Fy={DOT:aG,FLIP:sG,GENERIC:eG}});import{hexToU8a as yo,isHex as no,u8aToHex as To}from"@polkadot/util";import{decodeAddress as b1,encodeAddress as p1}from"@polkadot/util-crypto";import{AssetValue as fo,Chain as Bn,getRPCUrl as xo,SwapKitError as Zy,SwapKitNumber as lo}from"@swapkit/helpers";import{match as Go,P as $1}from"ts-pattern";function oo(n,T){switch(n){case Bn.Chainflip:return j1(T);case Bn.Polkadot:return h1(T);default:throw new Zy("toolbox_substrate_not_supported",{chain:n})}}function Zn(n){return"address"in n}async function J0(n,T){let{Keyring:l}=await import("@polkadot/api"),{cryptoWaitReady:y}=await import("@polkadot/util-crypto");return await y(),new l({ss58Format:T,type:"sr25519"}).addFromUri(n)}function Bo(n,T){let l=b1(n);return p1(l,T)}function c1(n,T){return no(n)?yo(n):b1(n,void 0,T)}function m1(n,T="ss58",l){if(T==="hex")return To(n);return p1(n,l)}async function Q0({generic:n,chain:T,...l}){let{ApiPromise:y,WsProvider:x}=await import("@polkadot/api"),f=await xo(T),G=new x(f),o=await y.create({provider:G}),C=fo.from({chain:T}),L=n?Fy.GENERIC:Fy[T],N=await Go(l).with({phrase:$1.string},({phrase:X})=>J0(X,Fy[T].prefix)).with({signer:$1.any},({signer:X})=>X).otherwise(()=>{return});return i1({api:o,chain:T,gasAsset:C,network:L,signer:N})}var h1=({generic:n=!1,...T}={})=>{return Q0({chain:Bn.Polkadot,generic:n,...T})},j1=async({generic:n=!1,...T}={})=>{return{...await Q0({chain:Bn.Chainflip,generic:n,...T})}},w0=(n,T)=>n.rpc.system.accountNextIndex(T),B0=(n,T)=>{try{let l=c1(n,T);return m1(l,"ss58",T),!0}catch{return!1}},q0=(n,{recipient:T,assetValue:l})=>n.tx.balances?.transferAllowDeath?.(T,l.getBaseValue("number")),Co=async(n,T,{recipient:l,assetValue:y,sender:x})=>{let f=q0(n,{assetValue:y,recipient:l});if(!f)throw new Zy("toolbox_substrate_transfer_error");let G=Zn(T),o=G?T.address:x;if(!o)throw new Zy("core_transaction_invalid_sender_address");let C=await w0(n,o);return(await f.signAndSend(G?T:o,{nonce:C,signer:G?void 0:T})).toString()},Lo=async(n,T,l,{recipient:y,assetValue:x,sender:f})=>{let G=q0(n,{assetValue:x,recipient:y}),o=Zn(T)?T.address:f;if(!o)return;let C=await G?.paymentInfo(o,{nonce:await w0(n,o)})||{partialFee:0};return l.set(lo.fromBigInt(BigInt(C.partialFee.toString()),l.decimal).getValue("string"))},Xo=async(n,T)=>{if(T)return n.send(T);return(await n.send()).toString()},_o=async(n,T)=>{return await T.signAsync(n)},No=(n,T,l)=>{if(l)return T.signAndSend(n,l);return T.signAndSend(n).toString()},Zo=async({signer:n,address:T,tx:l,callback:y,api:x})=>{let f=await w0(x,T);if(y)l.signAndSend(T,{nonce:f,signer:n},y);return l.signAndSend(T,{nonce:f,signer:n}).toString()},i1=({api:n,network:T,gasAsset:l,signer:y,chain:x})=>({api:n,broadcast:Xo,convertAddress:Bo,createKeyring:(f)=>J0(f,T.prefix),createTransaction:(f)=>q0(n,f),decodeAddress:c1,encodeAddress:m1,estimateTransactionFee:(f)=>{if(!y)throw new Zy("core_wallet_not_keypair_wallet");return Lo(n,y,l,f)},gasAsset:l,getAddress:(f)=>{let G=f||y;if(!G)throw new Zy("core_wallet_not_keypair_wallet");return Zn(G)?G.address:void 0},getBalance:K1(x||Bn.Polkadot,n),network:T,sign:(f)=>{if(!y)throw new Zy("core_wallet_not_keypair_wallet");if(Zn(y))return _o(y,f);throw new Zy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:f,callback:G,address:o})=>{if(!y)throw new Zy("core_wallet_not_keypair_wallet");if(Zn(y))return No(y,f,G);if(o)return Zo({address:o,api:n,callback:G,signer:y,tx:f});throw new Zy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(f)=>{if(!y)throw new Zy("core_wallet_not_keypair_wallet");return Co(n,y,f)},validateAddress:(f)=>B0(f,T.prefix)}),Jo=({address:n,chain:T})=>{let{prefix:l}=T===Bn.Polkadot?Fy.DOT:Fy.FLIP;return B0(n,l)||B0(n,Fy.GENERIC.prefix)};var g1=R(()=>{V1();Z0()});var W0={};a(W0,{substrateValidateAddress:()=>Jo,isKeyringPair:()=>Zn,getSubstrateToolbox:()=>oo,createSubstrateToolbox:()=>Q0,createKeyring:()=>J0,SubstrateNetwork:()=>Fy,PolkadotToolbox:()=>h1,ChainflipToolbox:()=>j1,BaseSubstrateToolbox:()=>i1});var M0=R(()=>{g1();Z0()});import{AssetValue as wo,Chain as z,EVMChains as qo,FeeOption as Qo,SwapKitError as Wo,UTXOChains as Mo}from"@swapkit/helpers";async function DX(){let{match:n}=await import("ts-pattern"),{evmValidateAddress:T}=await Promise.resolve().then(() => (i0(),m0)),{getCardanoAddressValidator:l}=await Promise.resolve().then(() => (gT(),iT)),{getCosmosValidateAddress:y}=await Promise.resolve().then(() => (LT(),CT)),{getSolanaAddressValidator:x}=await Promise.resolve().then(() => (Uf(),Hf)),{getSuiAddressValidator:f}=await Promise.resolve().then(() => (NT(),_T)),{getTONAddressValidator:G}=await Promise.resolve().then(() => (JT(),BT)),{getTronAddressValidator:o}=await Promise.resolve().then(() => (Sf(),Of)),{getUTXOAddressValidator:C}=await Promise.resolve().then(() => (jf(),hf)),{getValidateNearAddress:L}=await Promise.resolve().then(() => (G0(),l0)),{radixValidateAddress:N}=await Promise.resolve().then(() => (C0(),o0)),{rippleValidateAddress:X}=await Promise.resolve().then(() => (N0(),_0)),{substrateValidateAddress:_}=await Promise.resolve().then(() => (M0(),W0)),Z=await l(),B=await L(),w=await x(),M=await f(),W=await G(),Y=await o(),v=await C();return function({address:F,chain:V}){return n(V).with(...qo,()=>T({address:F})).with(...Mo,()=>v({address:F,chain:V})).with(z.Cosmos,z.Kujira,z.Noble,z.Maya,z.THORChain,(Uy)=>{return y(Uy)(F)}).with(z.Chainflip,z.Polkadot,()=>_({address:F,chain:V})).with(z.Radix,()=>N(F)).with(z.Near,()=>B(F)).with(z.Ripple,()=>X(F)).with(z.Solana,()=>w(F)).with(z.Sui,()=>M(F)).with(z.Ton,()=>W(F)).with(z.Tron,()=>Y(F)).with(z.Cardano,()=>Z(F)).otherwise(()=>!1)}}function RX(n){return async function(l){let{match:y}=await import("ts-pattern");return y(n).returnType().with(z.Arbitrum,z.Aurora,z.Avalanche,z.Base,z.Berachain,z.BinanceSmartChain,z.Ethereum,z.Gnosis,z.Optimism,z.Polygon,async(x)=>{let f=await d1(x),G=await f.createTransaction(l);return f.estimateTransactionFee({...G,chain:x,feeOption:l.feeOptionKey||Qo.Fast})}).with(z.Bitcoin,z.BitcoinCash,z.Dogecoin,z.Dash,z.Litecoin,z.Polkadot,z.Solana,z.Ripple,z.Tron,z.Near,z.Cardano,async(x)=>{return(await d1(x)).estimateTransactionFee(l)}).with(z.Sui,async()=>{let{getSuiToolbox:x}=await Promise.resolve().then(() => (NT(),_T));return(await x()).estimateTransactionFee(l)}).with(z.Ton,async()=>{let{getTONToolbox:x}=await Promise.resolve().then(() => (JT(),BT));return(await x()).estimateTransactionFee()}).with(z.THORChain,z.Maya,z.Kujira,z.Noble,z.Cosmos,async()=>{let{estimateTransactionFee:x}=await Promise.resolve().then(() => (LT(),CT));return x(l)}).otherwise(async()=>wo.from({chain:n}))}}async function d1(n,T){let{match:l}=await import("ts-pattern");return l(n).returnType().with(z.Arbitrum,z.Aurora,z.Avalanche,z.Base,z.Berachain,z.BinanceSmartChain,z.Ethereum,z.Gnosis,z.Optimism,z.Polygon,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (cT(),h0));return await y(n,T)}).with(z.Litecoin,z.Dash,z.Dogecoin,z.BitcoinCash,z.Bitcoin,z.Zcash,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (jf(),hf));return await y(n,T)}).with(z.Cosmos,z.Kujira,z.Noble,z.Maya,z.THORChain,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (LT(),CT));return await y(n,T)}).with(z.Chainflip,z.Polkadot,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (M0(),W0));return await y(n,T)}).with(z.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (C0(),o0));return await y(T)}).with(z.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (N0(),_0));return await y(T)}).with(z.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (Uf(),Hf));return await y(T)}).with(z.Sui,async()=>{let{getSuiToolbox:y}=await Promise.resolve().then(() => (NT(),_T));return await y(T)}).with(z.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (Sf(),Of));return await y(T)}).with(z.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (G0(),l0));return await y(T)}).with(z.Cardano,async()=>{let{getCardanoToolbox:y}=await Promise.resolve().then(() => (gT(),iT));return await y(T)}).with(z.Ton,async()=>{let{getTONToolbox:y}=await Promise.resolve().then(() => (JT(),BT));return await y(T)}).otherwise(()=>{throw new Wo("toolbox_not_supported",{chain:n})})}export{d1 as getToolbox,RX as getFeeEstimator,DX as getAddressValidator};
3
3
 
4
- //# debugId=09EB104BF634A16764756E2164756E21
4
+ //# debugId=8C7E2FE819868A6E64756E2164756E21
5
5
  //# sourceMappingURL=index.js.map