@swapkit/toolboxes 4.0.19 → 4.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/src/cosmos/index.cjs +2 -2
  2. package/dist/src/cosmos/index.cjs.map +7 -7
  3. package/dist/src/cosmos/index.js +2 -2
  4. package/dist/src/cosmos/index.js.map +7 -7
  5. package/dist/src/evm/index.cjs +2 -2
  6. package/dist/src/evm/index.cjs.map +6 -6
  7. package/dist/src/evm/index.js +2 -2
  8. package/dist/src/evm/index.js.map +6 -6
  9. package/dist/src/index.cjs +3 -3
  10. package/dist/src/index.cjs.map +22 -22
  11. package/dist/src/index.js +3 -3
  12. package/dist/src/index.js.map +22 -22
  13. package/dist/src/near/index.cjs +2 -2
  14. package/dist/src/near/index.cjs.map +7 -7
  15. package/dist/src/near/index.js +2 -2
  16. package/dist/src/near/index.js.map +7 -7
  17. package/dist/src/ripple/index.cjs +2 -2
  18. package/dist/src/ripple/index.cjs.map +3 -3
  19. package/dist/src/ripple/index.js +2 -2
  20. package/dist/src/ripple/index.js.map +3 -3
  21. package/dist/src/solana/index.cjs +2 -2
  22. package/dist/src/solana/index.cjs.map +3 -3
  23. package/dist/src/solana/index.js +2 -2
  24. package/dist/src/solana/index.js.map +3 -3
  25. package/dist/src/substrate/index.cjs +2 -2
  26. package/dist/src/substrate/index.cjs.map +3 -3
  27. package/dist/src/substrate/index.js +2 -2
  28. package/dist/src/substrate/index.js.map +3 -3
  29. package/dist/src/tron/index.cjs +2 -2
  30. package/dist/src/tron/index.cjs.map +3 -3
  31. package/dist/src/tron/index.js +2 -2
  32. package/dist/src/tron/index.js.map +3 -3
  33. package/dist/src/utxo/index.cjs +3 -3
  34. package/dist/src/utxo/index.cjs.map +6 -6
  35. package/dist/src/utxo/index.js +3 -3
  36. package/dist/src/utxo/index.js.map +6 -6
  37. package/dist/types/cosmos/thorchainUtils/messages.d.ts +7 -7
  38. package/dist/types/cosmos/thorchainUtils/messages.d.ts.map +1 -1
  39. package/dist/types/cosmos/thorchainUtils/registry.d.ts +2 -2
  40. package/dist/types/cosmos/thorchainUtils/registry.d.ts.map +1 -1
  41. package/dist/types/cosmos/toolbox/cosmos.d.ts.map +1 -1
  42. package/dist/types/cosmos/toolbox/thorchain.d.ts +5 -5
  43. package/dist/types/cosmos/toolbox/thorchain.d.ts.map +1 -1
  44. package/dist/types/cosmos/types.d.ts +3 -3
  45. package/dist/types/cosmos/types.d.ts.map +1 -1
  46. package/dist/types/cosmos/util.d.ts +1 -1
  47. package/dist/types/cosmos/util.d.ts.map +1 -1
  48. package/dist/types/evm/helpers.d.ts +1 -1
  49. package/dist/types/evm/helpers.d.ts.map +1 -1
  50. package/dist/types/evm/toolbox/baseEVMToolbox.d.ts.map +1 -1
  51. package/dist/types/evm/toolbox/evm.d.ts.map +1 -1
  52. package/dist/types/evm/toolbox/index.d.ts +5 -5
  53. package/dist/types/evm/toolbox/index.d.ts.map +1 -1
  54. package/dist/types/evm/toolbox/op.d.ts +15 -13
  55. package/dist/types/evm/toolbox/op.d.ts.map +1 -1
  56. package/dist/types/near/helpers/core.d.ts.map +1 -1
  57. package/dist/types/near/helpers/gasEstimation.d.ts +4 -4
  58. package/dist/types/near/helpers/gasEstimation.d.ts.map +1 -1
  59. package/dist/types/near/toolbox.d.ts.map +1 -1
  60. package/dist/types/near/types/toolbox.d.ts +5 -13
  61. package/dist/types/near/types/toolbox.d.ts.map +1 -1
  62. package/dist/types/near/types.d.ts +2 -0
  63. package/dist/types/near/types.d.ts.map +1 -1
  64. package/dist/types/ripple/index.d.ts.map +1 -1
  65. package/dist/types/solana/toolbox.d.ts.map +1 -1
  66. package/dist/types/substrate/substrate.d.ts +3 -3
  67. package/dist/types/substrate/substrate.d.ts.map +1 -1
  68. package/dist/types/tron/toolbox.d.ts.map +1 -1
  69. package/dist/types/tron/types.d.ts +1 -0
  70. package/dist/types/tron/types.d.ts.map +1 -1
  71. package/dist/types/utils.d.ts.map +1 -1
  72. package/dist/types/utxo/toolbox/bitcoinCash.d.ts +1 -1
  73. package/dist/types/utxo/toolbox/bitcoinCash.d.ts.map +1 -1
  74. package/dist/types/utxo/toolbox/index.d.ts +1 -1
  75. package/dist/types/utxo/toolbox/index.d.ts.map +1 -1
  76. package/dist/types/utxo/toolbox/utxo.d.ts +2 -2
  77. package/dist/types/utxo/toolbox/utxo.d.ts.map +1 -1
  78. package/dist/types/utxo/toolbox/zcash.d.ts.map +1 -1
  79. package/package.json +3 -3
package/dist/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
- var CX=Object.create;var{getPrototypeOf:OX,defineProperty:I0,getOwnPropertyNames:wX}=Object;var EX=Object.prototype.hasOwnProperty;var W=(T,X,L)=>{L=T!=null?CX(OX(T)):{};let y=X||!T||!T.__esModule?I0(L,"default",{value:T,enumerable:!0}):L;for(let Z of wX(T))if(!EX.call(y,Z))I0(y,Z,{get:()=>T[Z],enumerable:!0});return y};var Zy=(T,X)=>{for(var L in X)I0(T,L,{get:X[L],enumerable:!0,configurable:!0,set:(y)=>X[L]=()=>y})};var v=(T,X)=>()=>(T&&(X=T(T=0)),X);var Y=((T)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(T,{get:(X,L)=>(typeof require<"u"?require:X)[L]}):T)(function(T){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+T+'" is not supported')});import{base64 as J1,bech32 as pT}from"@scure/base";import{SwapKitError as vX}from"@swapkit/helpers";import{fromByteArray as FX,toByteArray as $X}from"base64-js";function WT(T){return J1.encode(Uint8Array.from(pT.fromWords(pT.decode(T).words)))}function YT(T,X="thor"){return pT.encode(X,pT.toWords(J1.decode(T)))}function VX(T){return FX(T)}function PX(T){if(!T.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new vX("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return $X(T)}var C0=()=>{};import{AssetValue as O0,BaseDecimal as xy,Chain as l,getRPCUrl as lX,SwapKitError as Q1}from"@swapkit/helpers";function Uy(T){switch(T){case l.Maya:return{amount:[],gas:"10000000000"};case l.THORChain:return{amount:[],gas:"500000000"};case l.Kujira:return z1;case l.Noble:return G1;default:return x1}}async function _y(T){let X=await import("@cosmjs/stargate"),L=X.StargateClient??X.default?.StargateClient,y=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return L.connect({headers:y,url:T})}async function _T(T,X,L={}){let y=await import("@cosmjs/stargate"),Z=y.SigningStargateClient??y.default?.SigningStargateClient,f=y.GasPrice??y.default?.GasPrice,J=typeof L==="string"?L:"0.0003uatom",Q=typeof L==="string"?{}:L;return Z.connectWithSigner(T,X,{gasPrice:f.fromString(J),...Q})}async function E0(T,X){let L=await import("@cosmjs/stargate");return(L.SigningStargateClient??L.default?.SigningStargateClient).offline(T,X)}async function v0({sender:T,recipient:X,assetValue:L,memo:y="",feeRate:Z,sequence:f,accountNumber:J}){let{chain:Q,chainId:q}=L,x=await lX(Q),G=await(await _y(x)).getAccount(T);if(!G)throw new Q1("toolbox_cosmos_account_not_found",{sender:T});let B=O0.from({chain:Q}),H=wy(B.symbol),M=Uy(Q),_=H&&Z?{amount:[{amount:Z.toString(),denom:H}],gas:M.gas}:M,D={amount:[{amount:L.getBaseValue("string"),denom:wy(L.symbol)}],fromAddress:T,toAddress:X};return{accountNumber:J??G.accountNumber,chainId:q,fee:_,memo:y,msgs:[{typeUrl:KX(Q),value:D}],sequence:f??G.sequence}}var w0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",q1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",x1,z1,G1,wy=(T,X=!1)=>{if(X)return T.toLowerCase();switch(T){case"uUSK":case"USK":return w0;case"uYUM":case"YUM":return q1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return T}},UT=({symbol:T,chain:X})=>{if(X===l.Maya)return(T.toUpperCase()!=="CACAO"?T:`${l.Maya}.${T}`).toUpperCase();if(X===l.THORChain)return(["RUNE","TCY","RUJI"].includes(T.toUpperCase())?`${l.THORChain}.${T}`:T).toUpperCase();return wy(T,!1)},KX=(T)=>{switch(T){case l.Maya:case l.THORChain:return"/types.MsgSend";case l.Cosmos:case l.Kujira:case l.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new Q1("toolbox_cosmos_not_supported",{chain:T})}},AX,F0=(T,X)=>{let L=AX[T.toLowerCase()];if(!L)return O0.from({asset:T,fromBaseDecimal:8,value:X});let{chain:y,asset:Z,decimals:f}=L,J=y?{chain:y}:{asset:Z};return O0.from({...J,fromBaseDecimal:f,value:X})};var RT=v(()=>{x1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},z1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},G1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};AX={atom:{chain:l.Cosmos,decimals:xy[l.Cosmos]},cacao:{chain:l.Maya,decimals:10},kuji:{chain:l.Kujira,decimals:xy[l.Kujira]},maya:{asset:`${l.Maya}.${l.Maya}`,decimals:4},rune:{chain:l.THORChain,decimals:xy[l.THORChain]},tcy:{asset:"THOR.TCY",decimals:xy[l.THORChain]},uatom:{chain:l.Cosmos,decimals:xy[l.Cosmos]},ukuji:{chain:l.Kujira,decimals:xy[l.Kujira]},usdc:{chain:l.Noble,decimals:xy[l.Noble]},uusdc:{chain:l.Noble,decimals:xy[l.Noble]},"x/kuji":{asset:"THOR.KUJI",decimals:xy[l.THORChain]},[w0.toLowerCase()]:{asset:`${l.Kujira}.USK`,decimals:xy[l.Kujira]}}});var B1={};Zy(B1,{$root:()=>U});import d from"protobufjs/minimal.js";var F,fy,O,U;var M1=v(()=>{F=d.Reader,fy=d.Writer,O=d.util,U=d.roots.default||(d.roots.default={});U.common=(()=>{let T={};return T.Asset=(()=>{function X(L){if(L){for(let y=Object.keys(L),Z=0;Z<y.length;++Z)if(L[y[Z]]!=null)this[y[Z]]=L[y[Z]]}}return X.prototype.chain="",X.prototype.symbol="",X.prototype.ticker="",X.prototype.synth=!1,X.create=function(y){return new X(y)},X.encode=function(y,Z){if(!Z)Z=fy.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))Z.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))Z.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))Z.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))Z.uint32(32).bool(y.synth);return Z},X.encodeDelimited=function(y,Z){return this.encode(y,Z).ldelim()},X.decode=function(y,Z){if(!(y instanceof F))y=F.create(y);let f=Z===void 0?y.len:y.pos+Z,J=new U.common.Asset;while(y.pos<f){let Q=y.uint32();switch(Q>>>3){case 1:J.chain=y.string();break;case 2:J.symbol=y.string();break;case 3:J.ticker=y.string();break;case 4:J.synth=y.bool();break;default:y.skipType(Q&7);break}}return J},X.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},X.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.chain!=null&&y.hasOwnProperty("chain")){if(!O.isString(y.chain))return"chain: string expected"}if(y.symbol!=null&&y.hasOwnProperty("symbol")){if(!O.isString(y.symbol))return"symbol: string expected"}if(y.ticker!=null&&y.hasOwnProperty("ticker")){if(!O.isString(y.ticker))return"ticker: string expected"}if(y.synth!=null&&y.hasOwnProperty("synth")){if(typeof y.synth!=="boolean")return"synth: boolean expected"}return null},X.fromObject=function(y){if(y instanceof U.common.Asset)return y;let Z=new U.common.Asset;if(y.chain!=null)Z.chain=String(y.chain);if(y.symbol!=null)Z.symbol=String(y.symbol);if(y.ticker!=null)Z.ticker=String(y.ticker);if(y.synth!=null)Z.synth=Boolean(y.synth);return Z},X.toObject=function(y,Z){if(!Z)Z={};let f={};if(Z.defaults)f.chain="",f.symbol="",f.ticker="",f.synth=!1;if(y.chain!=null&&y.hasOwnProperty("chain"))f.chain=y.chain;if(y.symbol!=null&&y.hasOwnProperty("symbol"))f.symbol=y.symbol;if(y.ticker!=null&&y.hasOwnProperty("ticker"))f.ticker=y.ticker;if(y.synth!=null&&y.hasOwnProperty("synth"))f.synth=y.synth;return f},X.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},X})(),T.Coin=(()=>{function X(L){if(L){for(let y=Object.keys(L),Z=0;Z<y.length;++Z)if(L[y[Z]]!=null)this[y[Z]]=L[y[Z]]}}return X.prototype.asset=null,X.prototype.amount="",X.prototype.decimals=O.Long?O.Long.fromBits(0,0,!1):0,X.create=function(y){return new X(y)},X.encode=function(y,Z){if(!Z)Z=fy.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))U.common.Asset.encode(y.asset,Z.uint32(10).fork()).ldelim();if(y.amount!=null&&Object.hasOwnProperty.call(y,"amount"))Z.uint32(18).string(y.amount);if(y.decimals!=null&&Object.hasOwnProperty.call(y,"decimals"))Z.uint32(24).int64(y.decimals);return Z},X.encodeDelimited=function(y,Z){return this.encode(y,Z).ldelim()},X.decode=function(y,Z){if(!(y instanceof F))y=F.create(y);let f=Z===void 0?y.len:y.pos+Z,J=new U.common.Coin;while(y.pos<f){let Q=y.uint32();switch(Q>>>3){case 1:J.asset=U.common.Asset.decode(y,y.uint32());break;case 2:J.amount=y.string();break;case 3:J.decimals=y.int64();break;default:y.skipType(Q&7);break}}return J},X.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},X.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.asset!=null&&y.hasOwnProperty("asset")){let Z=U.common.Asset.verify(y.asset);if(Z)return"asset."+Z}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!O.isString(y.amount))return"amount: string expected"}if(y.decimals!=null&&y.hasOwnProperty("decimals")){if(!O.isInteger(y.decimals)&&!(y.decimals&&O.isInteger(y.decimals.low)&&O.isInteger(y.decimals.high)))return"decimals: integer|Long expected"}return null},X.fromObject=function(y){if(y instanceof U.common.Coin)return y;let Z=new U.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");Z.asset=U.common.Asset.fromObject(y.asset)}if(y.amount!=null)Z.amount=String(y.amount);if(y.decimals!=null){if(O.Long)(Z.decimals=O.Long.fromValue(y.decimals)).unsigned=!1;else if(typeof y.decimals==="string")Z.decimals=Number.parseInt(y.decimals,10);else if(typeof y.decimals==="number")Z.decimals=y.decimals;else if(typeof y.decimals==="object")Z.decimals=new O.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber()}return Z},X.toObject=function(y,Z){if(!Z)Z={};let f={};if(Z.defaults)if(f.asset=null,f.amount="",O.Long){let J=new O.Long(0,0,!1);f.decimals=Z.longs===String?J.toString():Z.longs===Number?J.toNumber():J}else f.decimals=Z.longs===String?"0":0;if(y.asset!=null&&y.hasOwnProperty("asset"))f.asset=U.common.Asset.toObject(y.asset,Z);if(y.amount!=null&&y.hasOwnProperty("amount"))f.amount=y.amount;if(y.decimals!=null&&y.hasOwnProperty("decimals"))if(typeof y.decimals==="number")f.decimals=Z.longs===String?String(y.decimals):y.decimals;else f.decimals=Z.longs===String?O.Long.prototype.toString.call(y.decimals):Z.longs===Number?new O.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber():y.decimals;return f},X.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},X})(),T.PubKeySet=(()=>{function X(L){if(L){for(let y=Object.keys(L),Z=0;Z<y.length;++Z)if(L[y[Z]]!=null)this[y[Z]]=L[y[Z]]}}return X.prototype.secp256k1="",X.prototype.ed25519="",X.create=function(y){return new X(y)},X.encode=function(y,Z){if(!Z)Z=fy.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))Z.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))Z.uint32(18).string(y.ed25519);return Z},X.encodeDelimited=function(y,Z){return this.encode(y,Z).ldelim()},X.decode=function(y,Z){if(!(y instanceof F))y=F.create(y);let f=Z===void 0?y.len:y.pos+Z,J=new U.common.PubKeySet;while(y.pos<f){let Q=y.uint32();switch(Q>>>3){case 1:J.secp256k1=y.string();break;case 2:J.ed25519=y.string();break;default:y.skipType(Q&7);break}}return J},X.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},X.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1")){if(!O.isString(y.secp256k1))return"secp256k1: string expected"}if(y.ed25519!=null&&y.hasOwnProperty("ed25519")){if(!O.isString(y.ed25519))return"ed25519: string expected"}return null},X.fromObject=function(y){if(y instanceof U.common.PubKeySet)return y;let Z=new U.common.PubKeySet;if(y.secp256k1!=null)Z.secp256k1=String(y.secp256k1);if(y.ed25519!=null)Z.ed25519=String(y.ed25519);return Z},X.toObject=function(y,Z){if(!Z)Z={};let f={};if(Z.defaults)f.secp256k1="",f.ed25519="";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1"))f.secp256k1=y.secp256k1;if(y.ed25519!=null&&y.hasOwnProperty("ed25519"))f.ed25519=y.ed25519;return f},X.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},X})(),T.Tx=(()=>{function X(L){if(this.coins=[],this.gas=[],L){for(let y=Object.keys(L),Z=0;Z<y.length;++Z)if(L[y[Z]]!=null)this[y[Z]]=L[y[Z]]}}return X.prototype.id="",X.prototype.chain="",X.prototype.fromAddress="",X.prototype.toAddress="",X.prototype.coins=O.emptyArray,X.prototype.gas=O.emptyArray,X.prototype.memo="",X.create=function(y){return new X(y)},X.encode=function(y,Z){if(!Z)Z=fy.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))Z.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))Z.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))Z.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))Z.uint32(34).string(y.toAddress);if(y.coins?.length)for(let f=0;f<y.coins.length;++f)U.common.Coin.encode(y.coins[f],Z.uint32(42).fork()).ldelim();if(y.gas?.length)for(let f=0;f<y.gas.length;++f)U.common.Coin.encode(y.gas[f],Z.uint32(50).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))Z.uint32(58).string(y.memo);return Z},X.encodeDelimited=function(y,Z){return this.encode(y,Z).ldelim()},X.decode=function(y,Z){if(!(y instanceof F))y=F.create(y);let f=Z===void 0?y.len:y.pos+Z,J=new U.common.Tx;while(y.pos<f){let Q=y.uint32();switch(Q>>>3){case 1:J.id=y.string();break;case 2:J.chain=y.string();break;case 3:J.fromAddress=y.string();break;case 4:J.toAddress=y.string();break;case 5:if(!J.coins?.length)J.coins=[];J.coins.push(U.common.Coin.decode(y,y.uint32()));break;case 6:if(!J.gas?.length)J.gas=[];J.gas.push(U.common.Coin.decode(y,y.uint32()));break;case 7:J.memo=y.string();break;default:y.skipType(Q&7);break}}return J},X.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},X.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.id!=null&&y.hasOwnProperty("id")){if(!O.isString(y.id))return"id: string expected"}if(y.chain!=null&&y.hasOwnProperty("chain")){if(!O.isString(y.chain))return"chain: string expected"}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!O.isString(y.fromAddress))return"fromAddress: string expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!O.isString(y.toAddress))return"toAddress: string expected"}if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let Z=0;Z<y.coins.length;++Z){let f=U.common.Coin.verify(y.coins[Z]);if(f)return"coins."+f}}if(y.gas!=null&&y.hasOwnProperty("gas")){if(!Array.isArray(y.gas))return"gas: array expected";for(let Z=0;Z<y.gas.length;++Z){let f=U.common.Coin.verify(y.gas[Z]);if(f)return"gas."+f}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!O.isString(y.memo))return"memo: string expected"}return null},X.fromObject=function(y){if(y instanceof U.common.Tx)return y;let Z=new U.common.Tx;if(y.id!=null)Z.id=String(y.id);if(y.chain!=null)Z.chain=String(y.chain);if(y.fromAddress!=null)Z.fromAddress=String(y.fromAddress);if(y.toAddress!=null)Z.toAddress=String(y.toAddress);if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Tx.coins: array expected");Z.coins=[];for(let f=0;f<y.coins.length;++f){if(typeof y.coins[f]!=="object")throw TypeError(".common.Tx.coins: object expected");Z.coins[f]=U.common.Coin.fromObject(y.coins[f])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");Z.gas=[];for(let f=0;f<y.gas.length;++f){if(typeof y.gas[f]!=="object")throw TypeError(".common.Tx.gas: object expected");Z.gas[f]=U.common.Coin.fromObject(y.gas[f])}}if(y.memo!=null)Z.memo=String(y.memo);return Z},X.toObject=function(y,Z){if(!Z)Z={};let f={};if(Z.arrays||Z.defaults)f.coins=[],f.gas=[];if(Z.defaults)f.id="",f.chain="",f.fromAddress="",f.toAddress="",f.memo="";if(y.id!=null&&y.hasOwnProperty("id"))f.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))f.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))f.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))f.toAddress=y.toAddress;if(y.coins?.length){f.coins=[];for(let J=0;J<y.coins.length;++J)f.coins[J]=U.common.Coin.toObject(y.coins[J],Z)}if(y.gas?.length){f.gas=[];for(let J=0;J<y.gas.length;++J)f.gas[J]=U.common.Coin.toObject(y.gas[J],Z)}if(y.memo!=null&&y.hasOwnProperty("memo"))f.memo=y.memo;return f},X.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},X})(),T.Fee=(()=>{function X(L){if(this.coins=[],L){for(let y=Object.keys(L),Z=0;Z<y.length;++Z)if(L[y[Z]]!=null)this[y[Z]]=L[y[Z]]}}return X.prototype.coins=O.emptyArray,X.prototype.poolDeduct="",X.create=function(y){return new X(y)},X.encode=function(y,Z){if(!Z)Z=fy.create();if(y.coins?.length)for(let f=0;f<y.coins.length;++f)U.common.Coin.encode(y.coins[f],Z.uint32(10).fork()).ldelim();if(y.poolDeduct!=null&&Object.hasOwnProperty.call(y,"poolDeduct"))Z.uint32(18).string(y.poolDeduct);return Z},X.encodeDelimited=function(y,Z){return this.encode(y,Z).ldelim()},X.decode=function(y,Z){if(!(y instanceof F))y=F.create(y);let f=Z===void 0?y.len:y.pos+Z,J=new U.common.Fee;while(y.pos<f){let Q=y.uint32();switch(Q>>>3){case 1:if(!J.coins?.length)J.coins=[];J.coins.push(U.common.Coin.decode(y,y.uint32()));break;case 2:J.poolDeduct=y.string();break;default:y.skipType(Q&7);break}}return J},X.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},X.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let Z=0;Z<y.coins.length;++Z){let f=U.common.Coin.verify(y.coins[Z]);if(f)return"coins."+f}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!O.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},X.fromObject=function(y){if(y instanceof U.common.Fee)return y;let Z=new U.common.Fee;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Fee.coins: array expected");Z.coins=[];for(let f=0;f<y.coins.length;++f){if(typeof y.coins[f]!=="object")throw TypeError(".common.Fee.coins: object expected");Z.coins[f]=U.common.Coin.fromObject(y.coins[f])}}if(y.poolDeduct!=null)Z.poolDeduct=String(y.poolDeduct);return Z},X.toObject=function(y,Z){if(!Z)Z={};let f={};if(Z.arrays||Z.defaults)f.coins=[];if(Z.defaults)f.poolDeduct="";if(y.coins?.length){f.coins=[];for(let J=0;J<y.coins.length;++J)f.coins[J]=U.common.Coin.toObject(y.coins[J],Z)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))f.poolDeduct=y.poolDeduct;return f},X.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},X})(),T.ProtoUint=(()=>{function X(L){if(L){for(let y=Object.keys(L),Z=0;Z<y.length;++Z)if(L[y[Z]]!=null)this[y[Z]]=L[y[Z]]}}return X.prototype.value="",X.create=function(y){return new X(y)},X.encode=function(y,Z){if(!Z)Z=fy.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))Z.uint32(10).string(y.value);return Z},X.encodeDelimited=function(y,Z){return this.encode(y,Z).ldelim()},X.decode=function(y,Z){if(!(y instanceof F))y=F.create(y);let f=Z===void 0?y.len:y.pos+Z,J=new U.common.ProtoUint;while(y.pos<f){let Q=y.uint32();switch(Q>>>3){case 1:J.value=y.string();break;default:y.skipType(Q&7);break}}return J},X.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},X.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.value!=null&&y.hasOwnProperty("value")){if(!O.isString(y.value))return"value: string expected"}return null},X.fromObject=function(y){if(y instanceof U.common.ProtoUint)return y;let Z=new U.common.ProtoUint;if(y.value!=null)Z.value=String(y.value);return Z},X.toObject=function(y,Z){if(!Z)Z={};let f={};if(Z.defaults)f.value="";if(y.value!=null&&y.hasOwnProperty("value"))f.value=y.value;return f},X.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},X})(),T})();U.types=(()=>{let T={};return T.MsgDeposit=(()=>{function X(L){if(this.coins=[],L){for(let y=Object.keys(L),Z=0;Z<y.length;++Z)if(L[y[Z]]!=null)this[y[Z]]=L[y[Z]]}}return X.prototype.coins=O.emptyArray,X.prototype.memo="",X.prototype.signer=O.newBuffer([]),X.create=function(y){return new X(y)},X.encode=function(y,Z){if(!Z)Z=fy.create();if(y.coins?.length)for(let f=0;f<y.coins.length;++f)U.common.Coin.encode(y.coins[f],Z.uint32(10).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))Z.uint32(18).string(y.memo);if(y.signer!=null&&Object.hasOwnProperty.call(y,"signer"))Z.uint32(26).bytes(y.signer);return Z},X.encodeDelimited=function(y,Z){return this.encode(y,Z).ldelim()},X.decode=function(y,Z){if(!(y instanceof F))y=F.create(y);let f=Z===void 0?y.len:y.pos+Z,J=new U.types.MsgDeposit;while(y.pos<f){let Q=y.uint32();switch(Q>>>3){case 1:if(!J.coins?.length)J.coins=[];J.coins.push(U.common.Coin.decode(y,y.uint32()));break;case 2:J.memo=y.string();break;case 3:J.signer=y.bytes();break;default:y.skipType(Q&7);break}}return J},X.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},X.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let Z=0;Z<y.coins.length;++Z){let f=U.common.Coin.verify(y.coins[Z]);if(f)return"coins."+f}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!O.isString(y.memo))return"memo: string expected"}if(y.signer!=null&&y.hasOwnProperty("signer")){if(!(y.signer&&typeof y.signer.length==="number"||O.isString(y.signer)))return"signer: buffer expected"}return null},X.fromObject=function(y){if(y instanceof U.types.MsgDeposit)return y;let Z=new U.types.MsgDeposit;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".types.MsgDeposit.coins: array expected");Z.coins=[];for(let f=0;f<y.coins.length;++f){if(typeof y.coins[f]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");Z.coins[f]=U.common.Coin.fromObject(y.coins[f])}}if(y.memo!=null)Z.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")O.base64.decode(y.signer,Z.signer=O.newBuffer(O.base64.length(y.signer)),0);else if(y.signer.length)Z.signer=y.signer}return Z},X.toObject=function(y,Z){if(!Z)Z={};let f={};if(Z.arrays||Z.defaults)f.coins=[];if(Z.defaults){if(f.memo="",Z.bytes===String)f.signer="";else if(f.signer=[],Z.bytes!==Array)f.signer=O.newBuffer(f.signer)}if(y.coins?.length){f.coins=[];for(let J=0;J<y.coins.length;++J)f.coins[J]=U.common.Coin.toObject(y.coins[J],Z)}if(y.memo!=null&&y.hasOwnProperty("memo"))f.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))f.signer=Z.bytes===String?O.base64.encode(y.signer,0,y.signer.length):Z.bytes===Array?Array.prototype.slice.call(y.signer):y.signer;return f},X.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},X})(),T.MsgSend=(()=>{function X(L){if(this.amount=[],L){for(let y=Object.keys(L),Z=0;Z<y.length;++Z)if(L[y[Z]]!=null)this[y[Z]]=L[y[Z]]}}return X.prototype.fromAddress=O.newBuffer([]),X.prototype.toAddress=O.newBuffer([]),X.prototype.amount=O.emptyArray,X.create=function(y){return new X(y)},X.encode=function(y,Z){if(!Z)Z=fy.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))Z.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))Z.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let f=0;f<y.amount.length;++f)U.cosmos.base.v1beta1.Coin.encode(y.amount[f],Z.uint32(26).fork()).ldelim();return Z},X.encodeDelimited=function(y,Z){return this.encode(y,Z).ldelim()},X.decode=function(y,Z){if(!(y instanceof F))y=F.create(y);let f=Z===void 0?y.len:y.pos+Z,J=new U.types.MsgSend;while(y.pos<f){let Q=y.uint32();switch(Q>>>3){case 1:J.fromAddress=y.bytes();break;case 2:J.toAddress=y.bytes();break;case 3:if(!J.amount?.length)J.amount=[];J.amount.push(U.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(Q&7);break}}return J},X.decodeDelimited=function(y){if(!(y instanceof F))y=new F(y);return this.decode(y,y.uint32())},X.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!(y.fromAddress&&typeof y.fromAddress.length==="number"||O.isString(y.fromAddress)))return"fromAddress: buffer expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!(y.toAddress&&typeof y.toAddress.length==="number"||O.isString(y.toAddress)))return"toAddress: buffer expected"}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!Array.isArray(y.amount))return"amount: array expected";for(let Z=0;Z<y.amount.length;++Z){let f=U.cosmos.base.v1beta1.Coin.verify(y.amount[Z]);if(f)return"amount."+f}}return null},X.fromObject=function(y){if(y instanceof U.types.MsgSend)return y;let Z=new U.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")O.base64.decode(y.fromAddress,Z.fromAddress=O.newBuffer(O.base64.length(y.fromAddress)),0);else if(y.fromAddress.length)Z.fromAddress=y.fromAddress}if(y.toAddress!=null){if(typeof y.toAddress==="string")O.base64.decode(y.toAddress,Z.toAddress=O.newBuffer(O.base64.length(y.toAddress)),0);else if(y.toAddress.length)Z.toAddress=y.toAddress}if(y.amount){if(!Array.isArray(y.amount))throw TypeError(".types.MsgSend.amount: array expected");Z.amount=[];for(let f=0;f<y.amount.length;++f){if(typeof y.amount[f]!=="object")throw TypeError(".types.MsgSend.amount: object expected");Z.amount[f]=U.cosmos.base.v1beta1.Coin.fromObject(y.amount[f])}}return Z},X.toObject=function(y,Z){if(!Z)Z={};let f={};if(Z.arrays||Z.defaults)f.amount=[];if(Z.defaults){if(Z.bytes===String)f.fromAddress="";else if(f.fromAddress=[],Z.bytes!==Array)f.fromAddress=O.newBuffer(f.fromAddress);if(Z.bytes===String)f.toAddress="";else if(f.toAddress=[],Z.bytes!==Array)f.toAddress=O.newBuffer(f.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))f.fromAddress=Z.bytes===String?O.base64.encode(y.fromAddress,0,y.fromAddress.length):Z.bytes===Array?Array.prototype.slice.call(y.fromAddress):y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))f.toAddress=Z.bytes===String?O.base64.encode(y.toAddress,0,y.toAddress.length):Z.bytes===Array?Array.prototype.slice.call(y.toAddress):y.toAddress;if(y.amount?.length){f.amount=[];for(let J=0;J<y.amount.length;++J)f.amount[J]=U.cosmos.base.v1beta1.Coin.toObject(y.amount[J],Z)}return f},X.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},X})(),T})();U.cosmos=(()=>{let T={};return T.base=(()=>{let X={};return X.v1beta1=(()=>{let L={};return L.Coin=(()=>{function y(Z){if(Z){for(let f=Object.keys(Z),J=0;J<f.length;++J)if(Z[f[J]]!=null)this[f[J]]=Z[f[J]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(f){return new y(f)},y.encode=function(f,J){if(!J)J=fy.create();if(f.denom!=null&&Object.hasOwnProperty.call(f,"denom"))J.uint32(10).string(f.denom);if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))J.uint32(18).string(f.amount);return J},y.encodeDelimited=function(f,J){return this.encode(f,J).ldelim()},y.decode=function(f,J){if(!(f instanceof F))f=F.create(f);let Q=J===void 0?f.len:f.pos+J,q=new U.cosmos.base.v1beta1.Coin;while(f.pos<Q){let x=f.uint32();switch(x>>>3){case 1:q.denom=f.string();break;case 2:q.amount=f.string();break;default:f.skipType(x&7);break}}return q},y.decodeDelimited=function(f){if(!(f instanceof F))f=new F(f);return this.decode(f,f.uint32())},y.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.denom!=null&&f.hasOwnProperty("denom")){if(!O.isString(f.denom))return"denom: string expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!O.isString(f.amount))return"amount: string expected"}return null},y.fromObject=function(f){if(f instanceof U.cosmos.base.v1beta1.Coin)return f;let J=new U.cosmos.base.v1beta1.Coin;if(f.denom!=null)J.denom=String(f.denom);if(f.amount!=null)J.amount=String(f.amount);return J},y.toObject=function(f,J){if(!J)J={};let Q={};if(J.defaults)Q.denom="",Q.amount="";if(f.denom!=null&&f.hasOwnProperty("denom"))Q.denom=f.denom;if(f.amount!=null&&f.hasOwnProperty("amount"))Q.amount=f.amount;return Q},y.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},y})(),L.DecCoin=(()=>{function y(Z){if(Z){for(let f=Object.keys(Z),J=0;J<f.length;++J)if(Z[f[J]]!=null)this[f[J]]=Z[f[J]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(f){return new y(f)},y.encode=function(f,J){if(!J)J=fy.create();if(f.denom!=null&&Object.hasOwnProperty.call(f,"denom"))J.uint32(10).string(f.denom);if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))J.uint32(18).string(f.amount);return J},y.encodeDelimited=function(f,J){return this.encode(f,J).ldelim()},y.decode=function(f,J){if(!(f instanceof F))f=F.create(f);let Q=J===void 0?f.len:f.pos+J,q=new U.cosmos.base.v1beta1.DecCoin;while(f.pos<Q){let x=f.uint32();switch(x>>>3){case 1:q.denom=f.string();break;case 2:q.amount=f.string();break;default:f.skipType(x&7);break}}return q},y.decodeDelimited=function(f){if(!(f instanceof F))f=new F(f);return this.decode(f,f.uint32())},y.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.denom!=null&&f.hasOwnProperty("denom")){if(!O.isString(f.denom))return"denom: string expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!O.isString(f.amount))return"amount: string expected"}return null},y.fromObject=function(f){if(f instanceof U.cosmos.base.v1beta1.DecCoin)return f;let J=new U.cosmos.base.v1beta1.DecCoin;if(f.denom!=null)J.denom=String(f.denom);if(f.amount!=null)J.amount=String(f.amount);return J},y.toObject=function(f,J){if(!J)J={};let Q={};if(J.defaults)Q.denom="",Q.amount="";if(f.denom!=null&&f.hasOwnProperty("denom"))Q.denom=f.denom;if(f.amount!=null&&f.hasOwnProperty("amount"))Q.amount=f.amount;return Q},y.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},y})(),L.IntProto=(()=>{function y(Z){if(Z){for(let f=Object.keys(Z),J=0;J<f.length;++J)if(Z[f[J]]!=null)this[f[J]]=Z[f[J]]}}return y.prototype.int="",y.create=function(f){return new y(f)},y.encode=function(f,J){if(!J)J=fy.create();if(f.int!=null&&Object.hasOwnProperty.call(f,"int"))J.uint32(10).string(f.int);return J},y.encodeDelimited=function(f,J){return this.encode(f,J).ldelim()},y.decode=function(f,J){if(!(f instanceof F))f=F.create(f);let Q=J===void 0?f.len:f.pos+J,q=new U.cosmos.base.v1beta1.IntProto;while(f.pos<Q){let x=f.uint32();switch(x>>>3){case 1:q.int=f.string();break;default:f.skipType(x&7);break}}return q},y.decodeDelimited=function(f){if(!(f instanceof F))f=new F(f);return this.decode(f,f.uint32())},y.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.int!=null&&f.hasOwnProperty("int")){if(!O.isString(f.int))return"int: string expected"}return null},y.fromObject=function(f){if(f instanceof U.cosmos.base.v1beta1.IntProto)return f;let J=new U.cosmos.base.v1beta1.IntProto;if(f.int!=null)J.int=String(f.int);return J},y.toObject=function(f,J){if(!J)J={};let Q={};if(J.defaults)Q.int="";if(f.int!=null&&f.hasOwnProperty("int"))Q.int=f.int;return Q},y.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},y})(),L.DecProto=(()=>{function y(Z){if(Z){for(let f=Object.keys(Z),J=0;J<f.length;++J)if(Z[f[J]]!=null)this[f[J]]=Z[f[J]]}}return y.prototype.dec="",y.create=function(f){return new y(f)},y.encode=function(f,J){if(!J)J=fy.create();if(f.dec!=null&&Object.hasOwnProperty.call(f,"dec"))J.uint32(10).string(f.dec);return J},y.encodeDelimited=function(f,J){return this.encode(f,J).ldelim()},y.decode=function(f,J){if(!(f instanceof F))f=F.create(f);let Q=J===void 0?f.len:f.pos+J,q=new U.cosmos.base.v1beta1.DecProto;while(f.pos<Q){let x=f.uint32();switch(x>>>3){case 1:q.dec=f.string();break;default:f.skipType(x&7);break}}return q},y.decodeDelimited=function(f){if(!(f instanceof F))f=new F(f);return this.decode(f,f.uint32())},y.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.dec!=null&&f.hasOwnProperty("dec")){if(!O.isString(f.dec))return"dec: string expected"}return null},y.fromObject=function(f){if(f instanceof U.cosmos.base.v1beta1.DecProto)return f;let J=new U.cosmos.base.v1beta1.DecProto;if(f.dec!=null)J.dec=String(f.dec);return J},y.toObject=function(f,J){if(!J)J={};let Q={};if(J.defaults)Q.dec="";if(f.dec!=null&&f.hasOwnProperty("dec"))Q.dec=f.dec;return Q},y.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},y})(),L})(),X})(),T})()});import{Chain as SX}from"@swapkit/helpers";async function Ay(){let{$root:T}=await Promise.resolve().then(() => (M1(),B1)),X=await import("@cosmjs/proto-signing"),L=X.Registry??X.default?.Registry,y=await import("@cosmjs/stargate"),Z=y.defaultRegistryTypes??y.default?.defaultRegistryTypes;return new L([...Z,["/types.MsgSend",T.types.MsgSend],["/types.MsgDeposit",T.types.MsgDeposit]])}async function Ey(T){let X=await import("@cosmjs/stargate"),L=X.AminoTypes??X.default?.AminoTypes,y=T===SX.THORChain?"thorchain":"mayachain";return new L({"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,fromAmino:({signer:Z,...f})=>({...f,signer:WT(Z)}),toAmino:({signer:Z,...f})=>({...f,signer:YT(Z)})},"/types.MsgSend":{aminoType:`${y}/MsgSend`,fromAmino:({from_address:Z,to_address:f,...J})=>({...J,fromAddress:WT(Z),toAddress:WT(f)}),toAmino:({fromAddress:Z,toAddress:f,...J})=>({...J,from_address:YT(Z),to_address:YT(f)})}})}var $0=v(()=>{C0()});import{AssetValue as uX,Chain as mT,ChainToChainId as H1,SwapKitError as bX}from"@swapkit/helpers";function l0(T){return function(L){let{assetValue:y,recipient:Z,memo:f,sender:J,asSignable:Q,asAminoMessage:q}=L;if(Z)return Y1(T)({asAminoMessage:q,asSignable:Q,assetValue:y,memo:f,recipient:Z,sender:J});return U1(T)({asAminoMessage:q,asSignable:Q,assetValue:y,memo:f,sender:J})}}function Fy(T){if(T.type==="thorchain/MsgSend"||T.type==="mayachain/MsgSend")return T;return{...T,value:{...T.value,coins:T.value.coins.map((X)=>{let L=uX.from({asset:X.asset}),y=(L.isSynthetic?L.symbol.split("/")?.[1]:L.symbol)?.toUpperCase(),Z=(L.isSynthetic?L.symbol.split("/")?.[0]:L.chain)?.toUpperCase();return{...X,asset:{chain:Z,symbol:y,synth:L.isSynthetic,ticker:L.ticker}}})}}}async function NT({chain:T,memo:X,msgs:L}){let y=await Ay(),Z=await Ey(T),f={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:X,messages:L.map((J)=>Z.fromAmino(J))}};return y.encode(f)}var jX,hX,V0=({sender:T,recipient:X,assetValue:L})=>{return{type:`${L.chain===mT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:L.getBaseValue("string"),denom:wy(L.symbol,!0)}],from_address:T,to_address:X}}},P0=({sender:T,assetValue:X,memo:L=""})=>{return{type:`${X.chain===mT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:X.getBaseValue("string"),asset:UT(X)}],memo:L,signer:T}}},oT=({sender:T,recipient:X,assetValue:L,memo:y})=>{return!X?P0({assetValue:L,memo:y,sender:T}):V0({assetValue:L,recipient:X,sender:T})},vy=async(T,X)=>{return(await Ey(X)).fromAmino(T)},W1=async({rpcUrl:T,sender:X})=>{let y=await(await _y(T)).getAccount(X);if(!y)throw new bX("toolbox_cosmos_account_not_found",{sender:X});return y},Y1=(T)=>async({sender:X,recipient:L,assetValue:y,memo:Z="",asSignable:f=!0,asAminoMessage:J=!1,sequence:Q,accountNumber:q})=>{let x=await W1({rpcUrl:T,sender:X}),z=y.chain,G=V0({assetValue:y,recipient:L,sender:X}),B=f?await vy(J?G:Fy(G),z):G;return{accountNumber:q||x.accountNumber,chainId:H1[z],fee:Uy(y.chain),memo:Z,msgs:[B],sequence:Q||x.sequence}},U1=(T)=>async({sender:X,assetValue:L,memo:y="",asSignable:Z=!0,asAminoMessage:f=!1,sequence:J,accountNumber:Q})=>{let q=await W1({rpcUrl:T,sender:X}),x=L.chain,z=P0({assetValue:L,memo:y,sender:X}),G=Z?await vy(f?z:Fy(z),x):z;return{accountNumber:Q||q.accountNumber,chainId:H1[x],fee:Uy(L.chain),memo:y,msgs:[G],sequence:J||q.sequence}};var _1=v(()=>{RT();$0();jX=Uy(mT.THORChain).gas,hX=Uy(mT.Maya).gas});var R1=()=>{};var N1=v(()=>{R1()});var K0=v(()=>{C0();_1();$0();N1()});import{base64 as b0,bech32 as A0}from"@scure/base";import{AssetValue as E1,applyFeeMultiplier as D1,BaseDecimal as S0,Chain as s,ChainToChainId as nX,CosmosChainPrefixes as v1,DerivationPath as pX,derivationPathToString as k1,FeeOption as j0,getRPCUrl as mX,NetworkDerivationPath as oX,SKConfig as cX,SwapKitError as cT,SwapKitNumber as u0,updateDerivationPath as gX}from"@swapkit/helpers";import{SwapKitApi as F1}from"@swapkit/helpers/api";import{match as dX,P as I1}from"ts-pattern";async function n0(T,X){try{let y=(await F1.getGasRate()).find((Z)=>Z.chainId===T)?.value;return y?Number.parseFloat(y):X}catch(L){return X}}async function h0({phrase:T,prefix:X,...L}){let y=await import("@cosmjs/proto-signing"),Z=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,f=await import("@cosmjs/crypto"),J=f.stringToPath??f.default?.stringToPath,Q="derivationPath"in L?L.derivationPath:`${pX[L.chain]}/${L.index}`;return Z.fromMnemonic(T,{hdPaths:[J(Q)],prefix:X})}async function tX({privateKey:T,prefix:X}){let L=await import("@cosmjs/proto-signing");return(L.DirectSecp256k1Wallet??L.default?.DirectSecp256k1Wallet).fromKey(T,X)}function $1(T){return async function({signature:L,message:y,address:Z}){let f=await T(Z);if(!f?.pubkey)throw new cT("toolbox_cosmos_verify_signature_no_pubkey");let J=await import("@cosmjs/crypto"),Q=J.Secp256k1Signature??J.default?.Secp256k1Signature,q=J.Secp256k1??J.default?.Secp256k1,x=Q.fromFixedLength(b0.decode(L));return q.verifySignature(x,b0.decode(y),f.pubkey.value)}}async function DT({chain:T,...X}){let L=await mX(T),y=v1[T],Z="index"in X?X.index||0:0,f=k1("derivationPath"in X&&X.derivationPath?X.derivationPath:gX(oX[T],{index:Z})),J=await dX(X).with({phrase:I1.string},({phrase:G})=>h0({derivationPath:f,phrase:G,prefix:y})).with({signer:I1.any},({signer:G})=>G).otherwise(()=>{return});async function Q(G){return(await _y(L)).getAccount(G)}async function q(){let[G]=await J?.getAccounts()||[];return G?.address}async function x(){let[G]=await J?.getAccounts()||[];if(!G?.pubkey)throw new cT("toolbox_cosmos_signer_not_defined");return b0.encode(G?.pubkey)}async function z({recipient:G,assetValue:B,memo:H="",feeRate:M,feeOptionKey:_=j0.Fast}){let D=await q();if(!(J&&D))throw new cT("toolbox_cosmos_signer_not_defined");let $=E1.from({chain:T}),V=UT($),n=M||eX((await O1(T,C1[T]))[_],V),S=await _T(L,J),o=[{amount:B.getBaseValue("string"),denom:wy(`u${B.symbol}`).toLowerCase()}],{transactionHash:c}=await S.sendTokens(D,G,o,n,H);return c}return{createPrivateKeyFromPhrase:T8(f),createTransaction:v0,fetchFeeRateFromSwapKit:n0,getAccount:Q,getAddress:q,getBalance:async(G,B)=>{let H=await w1(L)(G);return await Promise.all(H.filter(({denom:M})=>M&&!M.includes("IBC/")).map(({denom:M,amount:_})=>{let D=[s.THORChain,s.Maya].includes(T)&&(M.includes("/")||M.includes("˜"))?`${T}.${M}`:M;return F0(D,_)}))},getBalanceAsDenoms:w1(L),getFees:()=>O1(T,C1[T]),getPubKey:x,getSignerFromPhrase:async({phrase:G,derivationPath:B})=>h0({derivationPath:k1(B),index:Z,phrase:G,prefix:y}),getSignerFromPrivateKey:async(G)=>{let B=await import("@cosmjs/proto-signing");return(B.DirectSecp256k1Wallet??B.default?.DirectSecp256k1Wallet).fromKey(G,y)},transfer:z,validateAddress:P1(y),verifySignature:$1(Q)}}async function V1(T,X){try{let y=(await F1.getGasRate()).find((Z)=>Z.chainId===T)?.value;return y?Number.parseFloat(y):X}catch(L){return X}}function rX({address:T,chain:X,prefix:L}){let y=L||sX(X);if(!(y&&T))throw new cT("toolbox_cosmos_validate_address_prefix_not_found");return P1(y)(T)}function aX({assetValue:{chain:T}}){return E1.from({chain:T,value:y8(T)})}function sX(T){let{isStagenet:X}=cX.get("envs"),L=T?[s.THORChain,s.Maya].includes(T)&&X:!1,y=T?v1[T]:void 0;return L?`s${y}`:y}async function O1(T,X){let L=await n0(nX[T],X);return{average:u0.fromBigInt(BigInt(L),S0[T]),fast:u0.fromBigInt(BigInt(D1(L,j0.Fast,!0)),S0[T]),fastest:u0.fromBigInt(BigInt(D1(L,j0.Fastest,!0)),S0[T])}}function eX(T,X){return{amount:[{amount:T.getBaseValue("string"),denom:X}],gas:"200000"}}function y8(T){return{[s.Cosmos]:0.007,[s.Kujira]:0.02,[s.Noble]:0.01,[s.THORChain]:0.02,[s.Maya]:0.02}[T]||0}function P1(T){return function(L){if(!L.startsWith(T))return!1;try{let{prefix:y,words:Z}=A0.decode(L);return A0.encode(y,Z)===L.toLocaleLowerCase()}catch(y){return!1}}}function w1(T){return async function(L){return(await(await _y(T)).getAllBalances(L)).map((J)=>({...J,denom:J.denom.includes("/")?J.denom.toUpperCase():J.denom}))}}function T8(T){return async function(L){let y=await import("@cosmjs/crypto"),Z=y.stringToPath??y.default?.stringToPath,f=y.Slip10Curve??y.default?.Slip10Curve,J=y.Slip10??y.default?.Slip10,Q=y.EnglishMnemonic??y.default?.EnglishMnemonic,q=y.Bip39??y.default?.Bip39,x=new Q(L),z=await q.mnemonicToSeed(x),{privkey:G}=J.derivePath(f.Secp256k1,z,Z(T));return G}}var C1,iX;var gT=v(()=>{RT();C1={[s.Cosmos]:500,[s.Kujira]:1000,[s.Noble]:1000,[s.THORChain]:5000000,[s.Maya]:5000000};iX=V1});import{base64 as Sy}from"@scure/base";import{BaseDecimal as X8,Chain as f8,CosmosChainPrefixes as Z8,derivationPathToString as L8,FeeOption as p0,getRPCUrl as J8,NetworkDerivationPath as Q8,RequestClient as q8,SKConfig as l1,SwapKitError as K1,SwapKitNumber as A1,updateDerivationPath as x8}from"@swapkit/helpers";import{match as z8,P as S1}from"ts-pattern";function G8({prefix:T,derivationPath:X}){return async function(y,Z=0){let f=await import("@cosmjs/amino"),J=f.Secp256k1HdWallet??f.default?.Secp256k1HdWallet,Q=await import("@cosmjs/crypto"),q=Q.stringToPath??Q.default?.stringToPath;return J.fromMnemonic(y,{hdPaths:[q(`${X}/${Z}`)],prefix:T})}}function B8(T){return Sy.encode(T)}function M8(T){return async function({wallet:L,tx:y}){let{msgs:Z,accountNumber:f,sequence:J,chainId:Q,fee:q,memo:x}=typeof y==="string"?JSON.parse(y):y,z=(await L.getAccounts())?.[0]?.address||"",G=await Ey(T),B=await Ay(),H=await E0(L,{aminoTypes:G,registry:B}),M=[];for(let $ of Z){let V=await vy($,T);M.push(V)}let{signatures:[_]}=await H.sign(z,M,q,x,{accountNumber:f,chainId:Q,sequence:J});return{bodyBytes:await NT({chain:T,memo:x,msgs:Z.map(Fy)}),signature:B8(_)}}}function H8({prefix:T,rpcUrl:X}){return async function(y,Z,f,J,Q){let{encodeSecp256k1Pubkey:q,pubkeyToAddress:x}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:z}=(await import("@cosmjs/stargate")).default,{sequence:G,fee:B}=JSON.parse(y),H=await u1(f,J),M=Z.map(($)=>[x(q(Sy.decode($.pubKey)),T),Sy.decode($.signature)]),_=await _y(X),{transactionHash:D}=await _.broadcastTx(z(H,G,B,Q,new Map(M)));return D}}async function u1(T,X,L=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:Z}=(await import("@cosmjs/amino")).default;return y(T.map((f)=>Z(Sy.decode(f))),X,L)}function W8(T){return Sy.decode(T)}async function Y8({privateKey:T,message:X}){let{Secp256k1:L}=(await import("@cosmjs/crypto")).default,y=await L.createSignature(Sy.decode(X),T);return Sy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function m0({chain:T,...X}){let L=l1.get("nodeUrls")[T],y=await J8(T),{isStagenet:Z}=l1.get("envs"),f=T===f8.THORChain,J=`${Z?"s":""}${Z8[T]}`,Q="index"in X?X.index||0:0,q="derivationPath"in X&&X.derivationPath?X.derivationPath:x8(Q8[T],{index:Q}),x=await DT({chain:T,...X}),z=await z8(X).with({phrase:S1.string},({phrase:M})=>x.getSignerFromPhrase({derivationPath:q,phrase:M})).with({signer:S1.any},({signer:M})=>M).otherwise(()=>{return}),G=Uy(T);async function B(){let M,_=`${L}/${f?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:D}}=await q8.get(_);if(!D||Number.isNaN(D)||D<0)throw new K1("toolbox_cosmos_invalid_fee",{nativeFee:D.toString()});M=new A1(D)}catch{M=new A1({decimal:X8[T],value:f?0.02:1})}return{[p0.Average]:M,[p0.Fast]:M,[p0.Fastest]:M}}async function H({assetValue:M,memo:_="",recipient:D}){let{TxRaw:$}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),V=(await z?.getAccounts())?.[0]?.address;if(!(V&&z))throw new K1("toolbox_cosmos_no_signer");let n="signAmino"in z,S=await Ay(),o=await Ey(T),c=await _T(y,z,{aminoTypes:o,registry:S}),C=oT({assetValue:M,memo:_,recipient:D,sender:V});if(n){let E=await vy(C,T),{signatures:k,authInfoBytes:I}=await c.sign(V,[E],G,_),K=$.encode({authInfoBytes:I,bodyBytes:await NT({chain:T,memo:_,msgs:[C].map(Fy)}),signatures:k}).finish();return(await c.broadcastTx(K)).transactionHash}let P=Fy(C),N=await vy(P,T);return(await c.signAndBroadcast(V,[N],G,_)).transactionHash}return{...x,broadcastMultisigTx:H8({prefix:J,rpcUrl:y}),buildAminoMsg:oT,buildEncodedTxBody:NT,convertToSignable:vy,createDefaultAminoTypes:()=>Ey(T),createDefaultRegistry:Ay,createMultisig:u1,createTransaction:l0(y),deposit:H,getFees:B,importSignature:W8,parseAminoMessageForDirectSigning:Fy,pubkeyToAddress:async(M)=>{let{pubkeyToAddress:_}=(await import("@cosmjs/amino")).default;return _(M,J)},secp256k1HdWalletFromMnemonic:G8({derivationPath:L8(q),prefix:J}),signMultisigTx:M8(T),signWithPrivateKey:Y8,transfer:H}}var o0=v(()=>{K0();RT();gT()});import{Chain as kT,SwapKitError as U8}from"@swapkit/helpers";var _8=(T,X)=>{switch(T){case kT.Cosmos:case kT.Kujira:case kT.Noble:return DT({chain:T,...X});case kT.Maya:case kT.THORChain:return m0({chain:T,...X});default:throw new U8("toolbox_cosmos_not_supported",{chain:T})}};var b1=v(()=>{gT();o0();gT();o0()});var dT={};Zy(dT,{verifySignature:()=>$1,transferMsgAmino:()=>V0,toBase64:()=>VX,parseAminoMessageForDirectSigning:()=>Fy,getSignerFromPrivateKey:()=>tX,getSignerFromPhrase:()=>h0,getMsgSendDenom:()=>wy,getFeeRateFromThorswap:()=>iX,getFeeRateFromSwapKit:()=>V1,getDenomWithChain:()=>UT,getDefaultChainFee:()=>Uy,getCreateTransaction:()=>l0,getCosmosToolbox:()=>_8,getAssetFromDenom:()=>F0,fromBase64:()=>PX,fetchFeeRateFromSwapKit:()=>n0,estimateTransactionFee:()=>aX,depositMsgAmino:()=>P0,createThorchainToolbox:()=>m0,createStargateClient:()=>_y,createSigningStargateClient:()=>_T,createOfflineStargateClient:()=>E0,createDefaultRegistry:()=>Ay,createDefaultAminoTypes:()=>Ey,createCosmosToolbox:()=>DT,cosmosValidateAddress:()=>rX,cosmosCreateTransaction:()=>v0,convertToSignable:()=>vy,buildTransferTx:()=>Y1,buildEncodedTxBody:()=>NT,buildDepositTx:()=>U1,buildAminoMsg:()=>oT,bech32ToBase64:()=>WT,base64ToBech32:()=>YT,YUM_KUJIRA_FACTORY_DENOM:()=>q1,USK_KUJIRA_FACTORY_DENOM:()=>w0,THORCHAIN_GAS_VALUE:()=>jX,MAYA_GAS_VALUE:()=>hX,DEFAULT_NOBLE_FEE_MAINNET:()=>G1,DEFAULT_KUJI_FEE_MAINNET:()=>z1,DEFAULT_COSMOS_FEE_MAINNET:()=>x1});var tT=v(()=>{K0();b1();RT()});import{AssetValue as R8,BaseDecimal as N8}from"@swapkit/helpers";import{SwapKitApi as D8}from"@swapkit/helpers/api";function j1(){function T(){let X=Date.now(),L=c0||X;return c0=L,X>c0?X:L+1}return k8+T().toString(36)}function iy(T){return async function(L,y=!0){return(await D8.getChainBalance({address:L,chain:T,scamFilter:y})).map(({identifier:f,value:J,decimal:Q})=>{return new R8({decimal:Q||N8[T],identifier:f,value:J})})}}var k8,c0=0;var IT=v(()=>{k8=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{SKConfig as I8,warnOnce as C8}from"@swapkit/helpers";function CT(T){let X=I8.get("apis")[T];if(X)return C8({condition:!0,id:"custom_evm_api_warning",warning:"Using custom EVM API. Be sure to implement all methods to avoid issues."}),X;return w8(T)}function O8(T){return T}function w8(T){return{getBalance:iy(T)}}var iT=v(()=>{IT()});import{BaseDecimal as E8,Chain as m,ChainToExplorerUrl as v8,ChainToHexChainId as F8,getRPCUrl as $8,SKConfig as V8,SwapKitError as P8}from"@swapkit/helpers";async function uy(T,X){let{JsonRpcProvider:L}=await import("ethers");return new L(X||await $8(T))}function OT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function g0(T){return()=>m.Ethereum===T?void 0:{...l8({chain:T}),blockExplorerUrls:[v8[T]],chainId:F8[T],rpcUrls:[V8.get("rpcUrls")[T]]}}function d0(T){return![m.Arbitrum,m.BinanceSmartChain].includes(T)}function l8({chain:T}){let X=E8[T];switch(T){case m.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{decimals:X,name:"Ethereum",symbol:m.Ethereum}};case m.Aurora:return{chainName:"Aurora Mainnet",nativeCurrency:{decimals:X,name:"Ethereum",symbol:m.Ethereum}};case m.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{decimals:X,name:"Avalanche",symbol:T}};case m.Base:return{chainName:"Base Mainnet",nativeCurrency:{decimals:X,name:"Ethereum",symbol:m.Ethereum}};case m.Berachain:return{chainName:"Berachain",nativeCurrency:{decimals:X,name:"Berachain",symbol:"BERA"}};case m.BinanceSmartChain:return{chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:X,name:"Binance Coin",symbol:"BNB"}};case m.Gnosis:return{chainName:"Gnosis",nativeCurrency:{decimals:X,name:"xDAI",symbol:"XDAI"}};case m.Optimism:return{chainName:"OP Mainnet",nativeCurrency:{decimals:X,name:"Ethereum",symbol:m.Ethereum}};case m.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{decimals:X,name:"Polygon",symbol:m.Polygon}};default:throw new P8("toolbox_evm_not_supported",{chain:T})}}var ry=()=>{};var h1;var n1=v(()=>{h1=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as K8,applyFeeMultiplierToBigInt as ay,Chain as t,ContractAddress as zy,FeeOption as p,isGasAsset as A8,SwapKitError as h,SwapKitNumber as rT}from"@swapkit/helpers";import{erc20ABI as wT}from"@swapkit/helpers/contracts";import{BrowserProvider as S8,Contract as p1,getAddress as aT,Interface as m1}from"ethers";function sy({chain:T=t.Ethereum,provider:X,signer:L,isEIP1559Compatible:y=!0}){return{approve:h8({chain:T,isEIP1559Compatible:y,provider:X,signer:L}),approvedAmount:g1({chain:T,provider:X}),broadcastTransaction:X.broadcastTransaction,call:s0({chain:T,isEIP1559Compatible:y,provider:X,signer:L}),createApprovalTx:o8({chain:T,provider:X,signer:L}),createContract:r0({chain:T,provider:X}),createContractTxObject:by({chain:T,provider:X}),createTransaction:t0({chain:T,provider:X,signer:L}),createTransferTx:t0({chain:T,provider:X,signer:L}),EIP1193SendTransaction:yT(X),estimateCall:d1({provider:X,signer:L}),estimateGasLimit:p8({chain:T,provider:X,signer:L}),estimateGasPrices:jy({chain:T,isEIP1559Compatible:y,provider:X}),estimateTransactionFee:c8({chain:T,isEIP1559Compatible:y,provider:X}),getAddress:()=>{return L?L.getAddress():void 0},isApproved:j8({chain:T,provider:X}),sendTransaction:t1({chain:T,isEIP1559Compatible:y,provider:X,signer:L}),signMessage:L?.signMessage,transfer:n8({chain:T,isEIP1559Compatible:y,provider:X,signer:L}),validateAddress:(Z)=>i0({address:Z})}}function i0({address:T}){try{return aT(T),!0}catch(X){return!1}}function ey(T){return T instanceof S8}function vT(T,X,L){return new p1(T,m1.from(X),L)}function r0({provider:T}){return function(L,y){return new p1(L,m1.from(y),T)}}function a0({abi:T,funcName:X}){let L=T.find((y)=>y.name===X);if(!L)throw new h("toolbox_evm_no_abi_fragment",{funcName:X});return L.stateMutability&&u8.includes(L.stateMutability)}function o1(T){return aT(T)}function yT(T){return function({value:L,...y}){if(!ey(T))throw new h("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:Z,gasPrice:f,maxFeePerGas:J,maxPriorityFeePerGas:Q,...q}=y;return T.send("eth_sendTransaction",[{...q,value:OT(BigInt(L||0))}])}}function c1(T,X){let L=TT(T,X);if(L)return aT(L.toLowerCase());throw new h("toolbox_evm_invalid_gas_asset_address")}function TT({chain:T,symbol:X,ticker:L},y){try{let Z=T===t.BinanceSmartChain&&X==="BNB"&&L==="BNB",f=T===y&&X===y&&L===y,J=[t.Arbitrum,t.Aurora,t.Base,t.Optimism].includes(T)&&X==="ETH"&&L==="ETH";if(f||Z||J)return b8[y];return aT(X.slice(L.length+1).replace(/^0X/,""))}catch(Z){return null}}function by({provider:T}){return async({contractAddress:X,abi:L,funcName:y,funcParams:Z=[],txOverrides:f})=>vT(X,L,T).getFunction(y).populateTransaction(...Z.concat(f).filter((J)=>typeof J<"u"))}function jy({chain:T,provider:X,isEIP1559Compatible:L=!0}){if(T===t.Arbitrum)return async function(){try{let{gasPrice:Z}=await X.getFeeData();if(!Z)throw new h("toolbox_evm_no_fee_data");return{[p.Average]:{gasPrice:Z},[p.Fast]:{gasPrice:Z},[p.Fastest]:{gasPrice:Z}}}catch(Z){throw new h("toolbox_evm_gas_estimation_error",{error:Z.msg??Z.toString()})}};return async function(){try{let{maxFeePerGas:Z,maxPriorityFeePerGas:f,gasPrice:J}=await X.getFeeData();if(L){if(Z===null||f===null)throw new h("toolbox_evm_no_fee_data");return{[p.Average]:{maxFeePerGas:Z,maxPriorityFeePerGas:f},[p.Fast]:{maxFeePerGas:ay(Z,p.Fast),maxPriorityFeePerGas:ay(f,p.Fast)},[p.Fastest]:{maxFeePerGas:ay(Z,p.Fastest),maxPriorityFeePerGas:ay(f,p.Fastest)}}}if(!J)throw new h("toolbox_evm_no_gas_price");return{[p.Average]:{gasPrice:J},[p.Fast]:{gasPrice:ay(J,p.Fast)},[p.Fastest]:{gasPrice:ay(J,p.Fastest)}}}catch(Z){throw new h("toolbox_evm_gas_estimation_error",{error:Z.msg??Z.toString()})}}}function s0({provider:T,isEIP1559Compatible:X,signer:L,chain:y}){return async function({callProvider:f,contractAddress:J,abi:Q,funcName:q,funcParams:x=[],txOverrides:z={},feeOption:G=p.Fast}){let B=f||T;if(!J)throw new h("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let H=a0({abi:Q,funcName:q});if(H&&ey(B)&&L){let D=by({chain:y,provider:B}),$=z?.from||await L?.getAddress(),V=await D({abi:Q,contractAddress:J,funcName:q,funcParams:x,txOverrides:{...z,from:$}});return yT(B)(V)}let M=vT(J,Q,B);if(H){if(!L)throw new h("toolbox_evm_no_signer");let D=z?.from||await L.getAddress();if(!D)throw new h("toolbox_evm_no_signer_address");let $=M.connect(L),V=jy({chain:y,isEIP1559Compatible:X,provider:T}),{maxFeePerGas:n,maxPriorityFeePerGas:S,gasPrice:o}=(await V())[G],c=await M.getFunction(q).estimateGas(...x,z),C=await $[q](...x,{...z,gasLimit:c,gasPrice:o,maxFeePerGas:n,maxPriorityFeePerGas:S,nonce:z?.nonce||await B.getTransactionCount(D)});return typeof C?.hash==="string"?C?.hash:C}let _=await M[q]?.(...x);return typeof _?.hash==="string"?_?.hash:_}}function g1({provider:T,chain:X}){return function({assetAddress:y,spenderAddress:Z,from:f}){return s0({chain:X,isEIP1559Compatible:!0,provider:T})({abi:wT,contractAddress:y,funcName:"allowance",funcParams:[f,Z]})}}function j8({provider:T,chain:X}){return async function({assetAddress:y,spenderAddress:Z,from:f,amount:J=ET}){let Q=await g1({chain:X,provider:T})({assetAddress:y,from:f,spenderAddress:Z});return rT.fromBigInt(Q).gte(rT.fromBigInt(BigInt(J)))}}function h8({signer:T,isEIP1559Compatible:X=!0,provider:L,chain:y}){return async function({assetAddress:f,spenderAddress:J,feeOptionKey:Q=p.Fast,amount:q,gasLimitFallback:x,from:z,nonce:G}){let B=[J,BigInt(q||ET)],H=await T?.getAddress()||z,M={abi:wT,contractAddress:f,funcName:"approve",funcParams:B,signer:T,txOverrides:{from:H}};if(ey(L)){let D=by({chain:y,provider:L}),$=yT(L),V=await D(M);return $(V)}return s0({chain:y,isEIP1559Compatible:X,provider:L,signer:T})({...M,feeOption:Q,funcParams:B,txOverrides:{from:H,gasLimit:x?BigInt(x.toString()):void 0,nonce:G}})}}function n8({signer:T,isEIP1559Compatible:X=!0,provider:L}){return async function({assetValue:Z,memo:f,recipient:J,feeOptionKey:Q=p.Fast,sender:q,...x}){let{hexlify:z,toUtf8Bytes:G}=await import("ethers"),B=Z.getBaseValue("bigint"),H=Z.chain,M=q||await T?.getAddress(),_=t1({chain:H,isEIP1559Compatible:X,provider:L,signer:T});if(!M)throw new h("toolbox_evm_no_from_address");if(Z.isGasAsset){let o={...x,data:z(G(f||"")),feeOptionKey:Q,from:M,to:J,value:B};return _(o)}if(!TT(Z,H))throw new h("toolbox_evm_no_contract_address");let{maxFeePerGas:$,maxPriorityFeePerGas:V,gasPrice:n}=(await jy({chain:H,isEIP1559Compatible:X,provider:L})())[Q],S=await t0({chain:H,provider:L,signer:T})({assetValue:Z,data:z(G(f||"")),gasPrice:n,maxFeePerGas:$,maxPriorityFeePerGas:V,memo:f,recipient:J,sender:M});return _(S)}}function d1({provider:T,signer:X}){return function({contractAddress:y,abi:Z,funcName:f,funcParams:J=[],txOverrides:Q}){if(!y)throw new h("toolbox_evm_no_contract_address");let q=vT(y,Z,T);return X?q.connect(X).getFunction(f).estimateGas(...J,Q):q.getFunction(f).estimateGas(...J,Q)}}function p8({provider:T,signer:X}){return async function({assetValue:y,recipient:Z,memo:f,data:J,sender:Q,funcName:q,funcParams:x,txOverrides:z}){let G=y.bigIntValue,B=y.isGasAsset?null:TT(y,y.chain);if(B&&q)return d1({provider:T,signer:X})({abi:wT,contractAddress:B,funcName:q,funcParams:x,txOverrides:z});let{hexlify:H,toUtf8Bytes:M}=await import("ethers");return T.estimateGas({data:J?J:f?H(M(f)):void 0,from:Q,to:Z,value:G})}}function t1({provider:T,signer:X,isEIP1559Compatible:L=!0,chain:y}){return async function({feeOptionKey:f=p.Fast,...J}){let{from:Q,to:q,data:x,value:z,...G}=J;if(!X)throw new h("toolbox_evm_no_signer");if(!q)throw new h("toolbox_evm_no_to_address");let B={...G,data:x||"0x",from:Q,to:q,value:BigInt(z||0)};if(ey(T))return yT(T)(B);let H=Q||await X.getAddress(),M=J.nonce||await T.getTransactionCount(H),_=(await T.getNetwork()).chainId,D=m8(B)||L,$=jy({chain:y,isEIP1559Compatible:L,provider:T}),V=D&&!(B.maxFeePerGas&&B.maxPriorityFeePerGas)||!B.gasPrice?Object.entries((await $())[f]).reduce((S,[o,c])=>({...S,[o]:OT(BigInt(c))}),{}):{},n;try{n=OT(B.gasLimit||await T.estimateGas(B)*11n/10n)}catch(S){throw new h("toolbox_evm_error_estimating_gas_limit",{error:S})}try{let S={...B,chainId:_,gasLimit:n,nonce:M,type:D?2:0,...V};try{return(await X.sendTransaction(S)).hash}catch(o){let c=await X.signTransaction({...S,from:H});return(await T.broadcastTransaction(c)).hash}}catch(S){throw new h("toolbox_evm_error_sending_transaction",{error:S})}}}function t0({provider:T,signer:X}){return async function({assetValue:y,memo:Z,recipient:f,data:J,sender:Q,maxFeePerGas:q,maxPriorityFeePerGas:x,gasPrice:z,...G}){let B=y.getBaseValue("bigint"),H=y.chain,M=Q||await X?.getAddress();if(!M)throw new h("toolbox_evm_no_from_address");if(A8(y)){let{hexlify:$,toUtf8Bytes:V}=await import("ethers");return{...G,data:J||$(V(Z||"")),from:M,to:f,value:B}}let _=TT(y,H);if(!_)throw new h("toolbox_evm_no_contract_address");return by({chain:y.chain,provider:T})({abi:wT,contractAddress:_,funcName:"transfer",funcParams:[f,B],txOverrides:{from:M,gasPrice:z,maxFeePerGas:q,maxPriorityFeePerGas:x}})}}function o8({provider:T,signer:X,chain:L}){return async function({assetAddress:Z,spenderAddress:f,amount:J,from:Q}){let q=await X?.getAddress()||Q,x=by({chain:L,provider:T}),z=["bigint","number"].includes(typeof J)?J:J||ET;return await x({abi:wT,contractAddress:Z,funcName:"approve",funcParams:[f,BigInt(z)],txOverrides:{from:q}})}}function c8({provider:T,isEIP1559Compatible:X=!0}){return async function({feeOption:y=p.Fast,chain:Z,...f}){let Q=await jy({chain:Z,isEIP1559Compatible:X,provider:T})(),q=await T.estimateGas(f),x=K8.from({chain:Z}),{gasPrice:z,maxFeePerGas:G,maxPriorityFeePerGas:B}=Q[y];if(!X&&z)return x.set(rT.fromBigInt(z*q,x.decimal));if(G&&B){let H=(G+B)*q;return x.set(rT.fromBigInt(H,x.decimal))}throw new h("toolbox_evm_no_gas_price")}}var ET,u8,b8,m8=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var sT=v(()=>{ry();ET=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");u8=["payable","nonpayable"];b8={[t.Arbitrum]:zy.ARB,[t.Aurora]:zy.AURORA,[t.Avalanche]:zy.AVAX,[t.Base]:zy.BASE,[t.Berachain]:zy.BERA,[t.BinanceSmartChain]:zy.BSC,[t.Ethereum]:zy.ETH,[t.Gnosis]:zy.GNO,[t.Optimism]:zy.OP,[t.Polygon]:zy.MATIC}});import{Chain as Ry,FeeOption as g8,getRPCUrl as d8}from"@swapkit/helpers";import{HDNodeWallet as t8}from"ethers";import{match as i8,P as i1}from"ts-pattern";async function eT({provider:T,...X}){let L=await Ny(Ry.Ethereum)({provider:T,...X});async function y(Z,f="0x5ba1e12693dc8f9c48aad8770482f4739beed696",J="aggregate",Q=g8.Fast){let q=await L.createContractTxObject({abi:h1,contractAddress:f,funcName:J,funcParams:[Z]});return L.sendTransaction({...q,feeOptionKey:Q})}return{...L,multicall:y}}function Ny(T){return async function({provider:L,...y}){let Z=await d8(T),f=L||await uy(T,Z),J=d0(T),Q=i8(y).with({phrase:i1.string},({phrase:x})=>t8.fromPhrase(x).connect(f)).with({signer:i1.any},({signer:x})=>x).otherwise(()=>{return});return{...sy({chain:T,isEIP1559Compatible:J,provider:f,signer:Q}),getBalance:CT(T).getBalance,getNetworkParams:g0(T)}}}var y0,T0,X0,f0,Z0,L0,J0,Q0;var e0=v(()=>{iT();n1();ry();sT();y0=Ny(Ry.Arbitrum),T0=Ny(Ry.Aurora),X0=Ny(Ry.Avalanche),f0=Ny(Ry.Base),Z0=Ny(Ry.Berachain),L0=Ny(Ry.BinanceSmartChain),J0=Ny(Ry.Gnosis),Q0=Ny(Ry.Polygon)});var r1;var a1=v(()=>{r1=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as XT,BaseDecimal as r8,Chain as FT,ChainId as a8,ChainToExplorerUrl as s8,FeeOption as Dy,getRPCUrl as e8,SKConfig as yf,SwapKitError as y5}from"@swapkit/helpers";import{Contract as Tf,HDNodeWallet as Xf}from"ethers";import{match as ff,P as s1}from"ts-pattern";function T5(T){return new Tf(Zf,r1,T)}function e1(T){return function(){let L=T5(T);if(L&&"l1BaseFee"in L)return L?.l1BaseFee();return}}function y2(T){return async function({from:L,to:y,nonce:Z,...f}){let{Transaction:J}=await import("ethers");if(!y)throw new y5("toolbox_evm_invalid_transaction",{error:"Missing to address"});return J.from({...f,authorizationList:f.authorizationList,nonce:Z?Z:L?await T.getTransactionCount(L):0,to:y}).serialized}}function T2(T){return async function(L){let y=T5(T),Z=await y2(T)(L);if(y&&"getL1Fee"in y)return y.getL1Fee(Z)}}function X2(T){return async function(L){let y=await T.send("eth_gasPrice",[]),Z=await T.estimateGas(L);return y.mul(Z)}}function Lf(T){return async function(L){let y=await T2(T)(L),Z=await X2(T)(L);return y.add(Z)}}function Jf(T){return async function(L){let y=T5(T),Z=await y2(T)(L);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(Z)}}async function qf(T){try{let{maxFeePerGas:X,maxPriorityFeePerGas:L,gasPrice:y}=await T.getFeeData(),Z=e1(T)(),f=y;if(!(X&&L))throw new y5("toolbox_evm_no_fee_data");return{[Dy.Average]:{gasPrice:f,l1GasPrice:Z,maxFeePerGas:X,maxPriorityFeePerGas:L},[Dy.Fast]:{gasPrice:XT(f,Dy.Fast),l1GasPrice:XT(Z||0n,Dy.Fast),maxFeePerGas:X,maxPriorityFeePerGas:XT(L,Dy.Fast)},[Dy.Fastest]:{gasPrice:XT(f,Dy.Fastest),l1GasPrice:XT(Z||0n,Dy.Fastest),maxFeePerGas:X,maxPriorityFeePerGas:XT(L,Dy.Fastest)}}}catch(X){throw new y5("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}}async function q0({provider:T,...X}){let L=FT.Optimism,y=await e8(L),Z=T||await uy(L,y),f=ff(X).with({phrase:s1.string},({phrase:q})=>Xf.fromPhrase(q).connect(Z)).with({signer:s1.any},({signer:q})=>q).otherwise(()=>{return}),J=sy({provider:Z,signer:f}),Q=e1(Z);return{...J,estimateGasPrices:qf(Z),estimateL1Gas:Jf(Z),estimateL1GasCost:T2(Z),estimateL2GasCost:X2(Z),estimateTotalGasCost:Lf(Z),getBalance:CT(FT.Optimism).getBalance,getL1GasPrice:Q,getNetworkParams:Qf}}var Zf="0x420000000000000000000000000000000000000f",Qf=()=>({blockExplorerUrls:[s8[FT.Optimism]],chainId:a8.OptimismHex,chainName:"Optimism",nativeCurrency:{decimals:r8.ETH,name:"Ethereum",symbol:FT.Ethereum},rpcUrls:[yf.get("rpcUrls")[FT.Optimism]]});var X5=v(()=>{iT();a1();ry();sT()});var Z2={};Zy(Z2,{toChecksumAddress:()=>o1,isStateChangingCall:()=>a0,isBrowserProvider:()=>ey,getTokenAddress:()=>TT,getEvmToolbox:()=>f2,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>yT,getCreateContractTxObject:()=>by,getCreateContract:()=>r0,getChecksumAddressFromAsset:()=>c1,evmValidateAddress:()=>i0,createContract:()=>vT,OPToolbox:()=>q0,MAX_APPROVAL:()=>ET,MATICToolbox:()=>Q0,GNOToolbox:()=>J0,ETHToolbox:()=>eT,BaseEVMToolbox:()=>sy,BSCToolbox:()=>L0,BERAToolbox:()=>Z0,BASEToolbox:()=>f0,AVAXToolbox:()=>X0,AURORAToolbox:()=>T0,ARBToolbox:()=>y0});import{Chain as Gy,SwapKitError as xf}from"@swapkit/helpers";async function f2(T,X){let L={...X,provider:X?.provider||await uy(T)};switch(T){case Gy.Arbitrum:return y0(L);case Gy.Aurora:return T0(L);case Gy.Avalanche:return X0(L);case Gy.Base:return f0(L);case Gy.Berachain:return Z0(L);case Gy.BinanceSmartChain:return L0(L);case Gy.Gnosis:return J0(L);case Gy.Optimism:return q0(L);case Gy.Polygon:return Q0(L);case Gy.Ethereum:return eT(L);default:throw new xf("toolbox_evm_not_supported",{chain:T})}}var f5=v(()=>{ry();e0();X5();sT();e0();X5()});var L2;var J2=v(()=>{((L)=>{L.Test="goerli";L.Main="homestead"})(L2||={})});var Q2={};Zy(Q2,{toHexString:()=>OT,toChecksumAddress:()=>o1,isStateChangingCall:()=>a0,isBrowserProvider:()=>ey,getTokenAddress:()=>TT,getProvider:()=>uy,getNetworkParams:()=>g0,getIsEIP1559Compatible:()=>d0,getEvmToolbox:()=>f2,getEvmApi:()=>CT,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>yT,getCreateContractTxObject:()=>by,getCreateContract:()=>r0,getChecksumAddressFromAsset:()=>c1,evmValidateAddress:()=>i0,createCustomEvmApi:()=>O8,createContract:()=>vT,OPToolbox:()=>q0,MAX_APPROVAL:()=>ET,MATICToolbox:()=>Q0,GNOToolbox:()=>J0,EthNetwork:()=>L2,ETHToolbox:()=>eT,BaseEVMToolbox:()=>sy,BSCToolbox:()=>L0,BERAToolbox:()=>Z0,BASEToolbox:()=>f0,AVAXToolbox:()=>X0,AURORAToolbox:()=>T0,ARBToolbox:()=>y0});var q2=v(()=>{iT();ry();f5();J2()});import{AssetValue as zf,Chain as Gf,SwapKitNumber as x2}from"@swapkit/helpers";async function Bf(T,X,L){try{let y=await T.query.system?.account?.(L);if(!y)return[X.set(0)];let{data:{free:Z}}=y,f=x2.fromBigInt(BigInt(Z.toString()),X.decimal).getValue("string");return[X.set(f)]}catch(y){return console.error("Error fetching substrate balance:",y),[X.set(0)]}}async function Mf(T,X,L){try{let y=await T.query.flip?.account?.(L);if(!y)return[X.set(0)];let Z=y.balance||y.data?.balance;if(!Z||Z.isEmpty)return[X.set(0)];let f=x2.fromBigInt(BigInt(Z.toString()),X.decimal).getValue("string");return[X.set(f)]}catch(y){return console.error("Error fetching chainflip balance:",y),[X.set(0)]}}function z2(T,X){return function(y){let Z=zf.from({chain:T});switch(T){case Gf.Chainflip:return Mf(X,Z,y);default:return Bf(X,Z,y)}}}var G2=()=>{};var Hf,Wf,Yf,$y;var Z5=v(()=>{Hf={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},Wf={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},Yf={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},$y={DOT:Hf,FLIP:Wf,GENERIC:Yf}});import{hexToU8a as Uf,isHex as _f,u8aToHex as Rf}from"@polkadot/util";import{decodeAddress as M2,encodeAddress as H2}from"@polkadot/util-crypto";import{AssetValue as Nf,Chain as ZT,getRPCUrl as Df,SwapKitError as By,SwapKitNumber as kf}from"@swapkit/helpers";import{match as If,P as B2}from"ts-pattern";function Cf(T,X){switch(T){case ZT.Chainflip:return Y2(X);case ZT.Polkadot:return W2(X);default:throw new By("toolbox_substrate_not_supported",{chain:T})}}function fT(T){return"address"in T}async function J5(T,X){let{Keyring:L}=await import("@polkadot/api"),{cryptoWaitReady:y}=await import("@polkadot/util-crypto");return await y(),new L({ss58Format:X,type:"sr25519"}).addFromUri(T)}function Vf(T,X){let L=M2(T);return H2(L,X)}function U2(T,X){return _f(T)?Uf(T):M2(T,void 0,X)}function _2(T,X="ss58",L){if(X==="hex")return Rf(T);return H2(T,L)}async function x5({generic:T,chain:X,...L}){let{ApiPromise:y,WsProvider:Z}=await import("@polkadot/api"),f=await Df(X),J=new Z(f),Q=await y.create({provider:J}),q=Nf.from({chain:X}),x=T?$y.GENERIC:$y[X],z=await If(L).with({phrase:B2.string},({phrase:G})=>J5(G,$y[X].prefix)).with({signer:B2.any},({signer:G})=>G).otherwise(()=>{return});return R2({api:Q,chain:X,gasAsset:q,network:x,signer:z})}var W2=({generic:T=!1,...X}={})=>{return x5({chain:ZT.Polkadot,generic:T,...X})},Y2=async({generic:T=!1,...X}={})=>{return{...await x5({chain:ZT.Chainflip,generic:T,...X})}},Q5=(T,X)=>T.rpc.system.accountNextIndex(X),L5=(T,X)=>{try{let L=U2(T,X);return _2(L,"ss58",X),!0}catch(L){return!1}},q5=(T,{recipient:X,assetValue:L})=>T.tx.balances?.transferAllowDeath?.(X,L.getBaseValue("number")),Of=async(T,X,{recipient:L,assetValue:y,sender:Z})=>{let f=q5(T,{assetValue:y,recipient:L});if(!f)throw new By("toolbox_substrate_transfer_error");let J=fT(X),Q=J?X.address:Z;if(!Q)throw new By("core_transaction_invalid_sender_address");let q=await Q5(T,Q);return(await f.signAndSend(J?X:Q,{nonce:q,signer:J?void 0:X})).toString()},wf=async(T,X,L,{recipient:y,assetValue:Z,sender:f})=>{let J=q5(T,{assetValue:Z,recipient:y}),Q=fT(X)?X.address:f;if(!Q)return;let q=await J?.paymentInfo(Q,{nonce:await Q5(T,Q)})||{partialFee:0};return L.set(kf.fromBigInt(BigInt(q.partialFee.toString()),L.decimal).getValue("string"))},Ef=async(T,X)=>{if(X)return T.send(X);return(await T.send()).toString()},vf=async(T,X)=>{return await X.signAsync(T)},Ff=(T,X,L)=>{if(L)return X.signAndSend(T,L);return X.signAndSend(T).toString()},$f=async({signer:T,address:X,tx:L,callback:y,api:Z})=>{let f=await Q5(Z,X);if(y)L.signAndSend(X,{nonce:f,signer:T},y);return L.signAndSend(X,{nonce:f,signer:T}).toString()},R2=({api:T,network:X,gasAsset:L,signer:y,chain:Z})=>({api:T,broadcast:Ef,convertAddress:Vf,createKeyring:(f)=>J5(f,X.prefix),createTransaction:(f)=>q5(T,f),decodeAddress:U2,encodeAddress:_2,estimateTransactionFee:(f)=>{if(!y)throw new By("core_wallet_not_keypair_wallet");return wf(T,y,L,f)},gasAsset:L,getAddress:(f)=>{let J=f||y;if(!J)throw new By("core_wallet_not_keypair_wallet");return fT(J)?J.address:void 0},getBalance:z2(Z||ZT.Polkadot,T),network:X,sign:(f)=>{if(!y)throw new By("core_wallet_not_keypair_wallet");if(fT(y))return vf(y,f);throw new By("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:f,callback:J,address:Q})=>{if(!y)throw new By("core_wallet_not_keypair_wallet");if(fT(y))return Ff(y,f,J);if(Q)return $f({address:Q,api:T,callback:J,signer:y,tx:f});throw new By("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(f)=>{if(!y)throw new By("core_wallet_not_keypair_wallet");return Of(T,y,f)},validateAddress:(f)=>L5(f,X.prefix)}),Pf=({address:T,chain:X})=>{let{prefix:L}=X===ZT.Polkadot?$y.DOT:$y.FLIP;return L5(T,L)||L5(T,$y.GENERIC.prefix)};var N2=v(()=>{G2();Z5()});var z5={};Zy(z5,{substrateValidateAddress:()=>Pf,isKeyringPair:()=>fT,getSubstrateToolbox:()=>Cf,createSubstrateToolbox:()=>x5,createKeyring:()=>J5,SubstrateNetwork:()=>$y,PolkadotToolbox:()=>W2,ChainflipToolbox:()=>Y2,BaseSubstrateToolbox:()=>R2});var G5=v(()=>{N2();Z5()});import{networks as lf}from"@bitgo/utxo-lib";import{Chain as i,getRPCUrl as Kf,RequestClient as x0,SKConfig as I2,SwapKitError as Vy,warnOnce as C2}from"@swapkit/helpers";import{networks as Af}from"bitcoinjs-lib";import $T from"coininfo";async function Sf({chain:T,txHash:X}){let L=`${z0(T)}/push/transaction`,y=JSON.stringify({data:X});try{let Z=await x0.post(L,{body:y,headers:{"Content-Type":"application/json"}});if(Z.context.code!==200)throw new Vy("toolbox_utxo_broadcast_failed",{error:Z.context.error||"Transaction broadcast failed"});return Z.data?.transaction_hash||X}catch(Z){let f=await Kf(T);if(f){let J=JSON.stringify({id:j1(),jsonrpc:"2.0",method:"sendrawtransaction",params:[X]}),Q=await x0.post(f,{body:J,headers:{"Content-Type":"application/json"}});if(Q.error)throw new Vy("toolbox_utxo_broadcast_failed",{error:Q.error?.message});if(Q.result.includes('"code":-26'))throw new Vy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return Q.result}throw Z}}function z0(T){return`https://api.blockchair.com/${uf(T)}`}function D2(T){switch(T){case i.Bitcoin:return 5;case i.Dogecoin:return 1e4;case i.Litecoin:return 1;case i.Zcash:return 1;default:return 2}}function uf(T){switch(T){case i.BitcoinCash:return"bitcoin-cash";case i.Litecoin:return"litecoin";case i.Dash:return"dash";case i.Dogecoin:return"dogecoin";case i.Zcash:return"zcash";case i.Polkadot:return"polkadot";default:return"bitcoin"}}async function bf(T){try{let{feePerKb:X}=await x0.get(`https://app.bitgo.com/api/v2/${T.toLowerCase()}/tx/fee`),L=X/1000;return Math.max(L,D2(T))}catch(X){return D2(T)}}async function B5(T,X){let L=await x0.get(`${T}${X?`${T.includes("?")?"&":"?"}key=${X}`:""}`);if(!L||L.context.code!==200)throw new Vy("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return L.data}async function O2({address:T,chain:X,apiKey:L}){if(!T)throw new Vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await B5(`${z0(X)}/dashboards/address/${T}?transaction_details=true`,L))[T]}catch(y){return{address:{balance:0,transaction_count:0},utxo:[]}}}async function jf({address:T,chain:X,apiKey:L}){return(await O2({address:T,apiKey:L,chain:X}))?.address.balance||0}async function w2({chain:T,apiKey:X,txHash:L}){if(!L)throw new Vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await B5(`${z0(T)}/raw/transaction/${L}`,X))?.[L]?.raw_transaction||""}catch(y){return console.error("Failed to fetch raw transaction:",y),""}}async function hf({chain:T,address:X,apiKey:L,offset:y=0,limit:Z=30}){return(await B5(`${z0(T)}/outputs?q=recipient(${X}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${Z}&offset=${y}`,L)).map(({is_spent:q,script_hex:x,block_id:z,transaction_hash:G,index:B,value:H,spending_signature_hex:M})=>({hash:G,index:B,is_confirmed:z!==-1,is_spent:q,script_hex:x,txHex:M,value:H}))}function nf(T){return T.reduce((X,L)=>X+L.value,0)}function k2(T,X){let L=[...T].sort((y,Z)=>Z.value-y.value);if(X){let y=[],Z=0;for(let f of L)if(y.push(f),Z+=f.value,Z>=X)break;return y}return L}async function E2({chain:T,address:X,apiKey:L,targetValue:y,accumulativeValue:Z=0,offset:f=0,limit:J=30}){if(!X)throw new Vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let Q=await hf({address:X,apiKey:L,chain:T,limit:J,offset:f,targetValue:y}),x=Q.length<J,z=Q.filter(({is_spent:D})=>!D),G=nf(z),B=Z+G,H=y&&B>=y;if(x||H)return k2(z,y);let M=await E2({accumulativeValue:B,address:X,apiKey:L,chain:T,limit:J,offset:f+J,targetValue:y}),_=[...z,...M];return k2(_,y)}catch(Q){return console.error("Failed to fetch unspent UTXOs:",Q),[]}}async function pf({address:T,chain:X,apiKey:L,fetchTxHex:y=!0,targetValue:Z}){let f=await E2({address:T,apiKey:L,chain:X,targetValue:Z}),J=[];for(let{hash:Q,index:q,script_hex:x,value:z}of f){let G;if(y)G=await w2({apiKey:L,chain:X,txHash:Q});J.push({address:T,hash:Q,index:q,txHex:G,value:z,witnessUtxo:{script:Buffer.from(x,"hex"),value:z}})}return J}function mf(T){let X=I2.get("apiKeys").blockchair||"";return C2({condition:!X,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(L)=>Sf({chain:T,txHash:L}),getAddressData:(L)=>O2({address:L,apiKey:X,chain:T}),getBalance:(L)=>jf({address:L,apiKey:X,chain:T}),getRawTx:(L)=>w2({apiKey:X,chain:T,txHash:L}),getSuggestedTxFee:()=>bf(T),getUtxos:(L)=>pf({...L,apiKey:X,chain:T})}}function of(T){return T}function yy(T){let X=I2.get("apis")[T];if(X)return C2({condition:!0,id:"custom_utxo_api_warning",warning:"Using custom UTXO API. Be sure to implement all methods to avoid issues."}),X;return mf(T)}function My(){return function(X){switch(X){case i.Bitcoin:return Af.bitcoin;case i.BitcoinCash:return $T.bitcoincash.main.toBitcoinJS();case i.Dash:return $T.dash.main.toBitcoinJS();case i.Litecoin:return $T.litecoin.main.toBitcoinJS();case i.Dogecoin:{let L={private:70615956,public:70617039},y=$T.dogecoin.test;return y.versions.bip32=L,$T.dogecoin.main.toBitcoinJS()}case i.Zcash:return lf.zcash;default:throw new Vy("toolbox_utxo_not_supported",{chain:X})}}}var v2=v(()=>{IT()});import{SwapKitError as $2}from"@swapkit/helpers";import V2 from"bs58check";import P2 from"cashaddrjs";function H5(T){try{return G0(T),!0}catch(X){return!1}}function W5(T){return G0(T)?.network}function LT(T){let X=G0(T);if(X?.format==="legacy")return T;return df(X)}function VT(T){let X=G0(T);return tf(X)}function G0(T){try{let X=cf(T);if(X)return X}catch(X){}try{let X=gf(T);if(X)return X}catch(X){}throw new $2("toolbox_utxo_invalid_address",{address:T})}function cf(T){try{let X=V2.decode(T);if(X.length!==21)throw new $2("toolbox_utxo_invalid_address",{address:T});let L=X[0],y=Array.prototype.slice.call(X,1);switch(L){case A.legacy.mainnet.p2pkh:return{format:"legacy",hash:y,network:"mainnet",type:"p2pkh"};case A.legacy.mainnet.p2sh:return{format:"legacy",hash:y,network:"mainnet",type:"p2sh"};case A.legacy.testnet.p2pkh:return{format:"legacy",hash:y,network:"testnet",type:"p2pkh"};case A.legacy.testnet.p2sh:return{format:"legacy",hash:y,network:"testnet",type:"p2sh"};case A.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2pkh"};case A.bitpay.mainnet.p2sh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2sh"};default:return}}catch(X){return}}function gf(T){if(T.indexOf(":")!==-1)try{return F2(T)}catch(X){}else{let X=["bitcoincash","bchtest","bchreg"];for(let L of X)try{return F2(`${L}:${T}`)}catch(y){}}return}function F2(T){try{let{hash:X,prefix:L,type:y}=P2.decode(T);return{format:"cashaddr",hash:Array.prototype.slice.call(X,0),network:L==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch(X){return}}function df(T){let X=A.legacy[T.network][T.type],L=Buffer.alloc(1+T.hash.length);return L[0]=X,L.set(T.hash,1),V2.encode(L)}function tf(T){let X=T.network==="mainnet"?"bitcoincash":"bchtest",L=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return P2.encode(X,L,y)}var M5,A;var l2=v(()=>{((L)=>{L.Mainnet="mainnet";L.Testnet="testnet"})(M5||={});A={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as rf}from"@swapkit/helpers";import{opcodes as af,script as sf}from"bitcoinjs-lib";function Hy(T){let X=Buffer.from(T,"utf8");return sf.compile([af.OP_RETURN,X])}var ef=1000,M0=10,K2=10,yZ=41,TZ=107,H0,B0,PT,lT=(T)=>{if(T.startsWith("bc1")||T.startsWith("tb1")||T.startsWith("ltc1")||T.startsWith("tltc1"))return"P2WPKH";if(T.startsWith("1")||T.startsWith("m")||T.startsWith("n")||T.startsWith("bitcoincash:q")||T.startsWith("bitcoincash:p")||T.startsWith("q")||T.startsWith("p")||T.startsWith("L")||T.startsWith("M")||T.startsWith("3")||T.startsWith("D")||T.startsWith("A")||T.startsWith("9")||T.startsWith("X")||T.startsWith("7")||T.startsWith("y")||T.startsWith("t1")||T.startsWith("t3")||T.startsWith("tm"))return"P2PKH";throw new rf("toolbox_utxo_invalid_address",{address:T})},JT=({inputs:T,outputs:X,feeRate:L})=>{let y=T[0]&&"address"in T[0]&&T[0].address?lT(T[0].address):"P2PKH",Z=T.filter((J)=>J.value>=B0["type"in J?J.type:"P2PKH"]*Math.ceil(L)).reduce((J,Q)=>J+Py(Q),0),f=X?.reduce((J,Q)=>J+KT(Q),0)||PT[y];return M0+Z+f},Py=(T)=>{if("type"in T)return B0[T.type];if("address"in T&&T.address)return B0[lT(T.address)];return yZ+TZ},KT=(T,X)=>{if(T?.script)return K2+T.script.length+(T.script.length>=74?2:1);if(X)return PT[X];return PT.P2PKH};var Y5=v(()=>{((L)=>{L.P2PKH="P2PKH";L.P2WPKH="P2WPKH"})(H0||={});B0={["P2PKH"]:148,["P2WPKH"]:68},PT={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as hy,SwapKitError as XZ}from"@swapkit/helpers";function W0(T){switch(T){case hy.Bitcoin:case hy.BitcoinCash:return 550;case hy.Dash:case hy.Litecoin:return 5500;case hy.Dogecoin:return 1e5;case hy.Zcash:return 546;default:throw new XZ("toolbox_utxo_not_supported",{chain:T})}}function Wy({inputs:T,outputs:X,feeRate:L=1,chain:y=hy.Bitcoin,changeAddress:Z=""}){let f=Math.ceil(L),J=T[0]&&"address"in T[0]&&T[0].address?lT(T[0].address):"P2PKH",Q=T.filter((H)=>Py(H)*f<=H.value),q=M0+X.reduce((H,M)=>H+KT(M,J),0),x=X.reduce((H,M)=>H+M.value,0),z=q*f,G=0,B=[];for(let H of Q){let M=Py(H),_=f*M;z+=_,G+=H.value,B.push(H);let D=z+x;if(G<D)continue;let $=G-D,V=f*KT({address:"",value:0},J);if($>V){let n=V+z,S=G-(x+n);if(S>Math.max(Py({})*f,W0(y)))return{fee:n,inputs:B,outputs:X.concat({address:Z,value:S})}}return{fee:z,inputs:B,outputs:X}}return{fee:f*JT({feeRate:f,inputs:T,outputs:X})}}var A2=v(()=>{Y5()});var QT=v(()=>{v2();l2();A2();Y5()});import{networks as fZ,address as ZZ}from"@bitgo/utxo-lib";import LZ from"bs58check";function ny(T){return T.replace(/(bchtest:|bitcoincash:)/,"")}function ly(T){let X=ny(T);return H5(X)&&W5(X)==="mainnet"}function qT(T){try{if(T.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let X=fZ.zcash;try{return ZZ.toOutputScript(T,X),!0}catch{let L=LZ.decode(T);if(L.length<21)return!1;let y=L[0];return y===X.pubKeyHash||y===X.scriptHash}}catch{return!1}}var AT=v(()=>{QT()});import _5 from"@bitcoinerlab/secp256k1";import{ECPair as JZ,HDNode as QZ}from"@psf/bitcoincashjs-lib";import{HDKey as qZ}from"@scure/bip32";import{mnemonicToSeedSync as S2}from"@scure/bip39";import{AssetValue as U5,applyFeeMultiplier as u2,Chain as Ty,DerivationPath as xZ,derivationPathToString as zZ,FeeOption as ky,NetworkDerivationPath as GZ,SwapKitError as Iy,SwapKitNumber as BZ,updateDerivationPath as MZ}from"@swapkit/helpers";import{address as HZ,initEccLib as j2,Psbt as WZ,payments as b2}from"bitcoinjs-lib";import{ECPairFactory as YZ}from"ecpair";function h2({inputs:T,outputs:X,chain:L,psbt:y,sender:Z,compiledMemo:f}){for(let J of T){let Q=!!J.witnessUtxo&&!ST.includes(L)&&{witnessUtxo:J.witnessUtxo},q=ST.includes(L)&&{nonWitnessUtxo:J.txHex?Buffer.from(J.txHex,"hex"):void 0};y.addInput({hash:J.hash,index:J.index,...Q,...q})}for(let J of X){let Q="address"in J&&J.address?J.address:Z,q=J.script;if(q&&!f)continue;let x=q?{script:f,value:0}:{address:Q,value:J.value};j2(_5),y.addOutput(x)}return{inputs:T,psbt:y}}async function n2({assetValue:T,recipient:X,memo:L,feeRate:y,sender:Z,fetchTxHex:f=!1}){let J=T.chain,Q=L?await Hy(L):null,q=await o2({assetValue:T,fetchTxHex:f,memo:L,recipient:X,sender:Z}),{inputs:x,outputs:z}=Wy({...q,chain:J,feeRate:y});if(!(x&&z))throw new Iy("toolbox_utxo_insufficient_balance",{assetValue:T,sender:Z});let G=await My(),B=new WZ({network:G(J)});if(J===Ty.Dogecoin)B.setMaximumFeeRate(650000000);let{psbt:H,inputs:M}=await h2({chain:J,compiledMemo:Q,inputs:x,outputs:z,psbt:B,sender:Z});return{inputs:M,psbt:H,utxos:q.inputs}}async function p2(){let T=await My();return function({address:L,chain:y}){if(y===Ty.BitcoinCash)return ly(L);if(y===Ty.Zcash)return qT(L);try{return j2(_5),HZ.toOutputScript(L,T(y)),!0}catch(Z){return!1}}}async function UZ({chain:T,phrase:X,derivationPath:L}){let y=(await uT(T))({derivationPath:L,phrase:X});async function Z(J){return await J.signAllInputs(y),J}async function f(){return(await R5(T))(y)}return{getAddress:f,signTransaction:Z}}async function py({chain:T,...X}){let L="phrase"in X?X.phrase:void 0,y="index"in X?X.index||0:0,Z=zZ("derivationPath"in X&&X.derivationPath?X.derivationPath:MZ(GZ[T],{index:y})),f=L?await UZ({chain:T,derivationPath:Z,phrase:L}):("signer"in X)?X.signer:void 0;function J(){return Promise.resolve(f?.getAddress())}let Q=await R5(T),q=await p2(),x=await uT(T);return{accumulative:Wy,broadcastTx:(z)=>yy(T).broadcastTx(z),calculateTxSize:JT,createKeysForPath:x,createTransaction:n2,estimateMaxSendableAmount:_Z(T),estimateTransactionFee:RZ(T),getAddress:J,getAddressFromKeys:Q,getBalance:iy(T),getFeeRates:()=>bT(T),getInputsOutputsFee:m2,getPrivateKeyFromMnemonic:(z)=>{return x(z).toWIF()},transfer:NZ(f),validateAddress:(z)=>q({address:z,chain:T})}}async function m2({assetValue:T,feeOptionKey:X=ky.Fast,feeRate:L,memo:y,sender:Z,recipient:f}){let J=T.chain,Q=await o2({assetValue:T,memo:y,recipient:f,sender:Z}),q=L?Math.floor(L):(await bT(J))[X];return Wy({...Q,chain:J,feeRate:q})}function _Z(T){return async function({from:L,memo:y,feeRate:Z,feeOptionKey:f=ky.Fast,recipients:J=1}){let Q=await yy(T).getAddressData(L),q=Z?Math.ceil(Z):(await bT(T))[f],x=Q?.utxo.map((M)=>({...M,hash:"",type:"P2PKH"})).filter((M)=>M.value>Math.max(W0(T),Py(M)*q));if(!x?.length)return U5.from({chain:T});let z=U5.from({chain:T,value:x.reduce((M,_)=>M+_.value,0)}),G=typeof J==="number"?Array.from({length:J},()=>({address:L,value:0})):J;if(y){let M=await Hy(y);G.push({address:L,script:M,value:0})}let H=JT({feeRate:q,inputs:x,outputs:G})*q;return z.sub(H)}}function RZ(T){return async(X)=>{let L=await m2(X);return U5.from({chain:T,value:BZ.fromBigInt(BigInt(L.fee),8).getValue("string")})}}async function uT(T){let X=await My();switch(T){case Ty.BitcoinCash:return function({phrase:y,derivationPath:Z=`${xZ.BCH}/0`,wif:f}){let J=X(T);if(f)return JZ.fromWIF(f,J);if(!y)throw new Iy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return QZ.fromSeedBuffer(Buffer.from(S2(y)),J).derivePath(Z).keyPair};case Ty.Bitcoin:case Ty.Dogecoin:case Ty.Litecoin:case Ty.Zcash:case Ty.Dash:return function({phrase:y,wif:Z,derivationPath:f}){if(!(Z||y))throw new Iy("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let J=YZ(_5),Q=X(T);if(Z)return J.fromWIF(Z,Q);let q=S2(y),x=qZ.fromMasterSeed(q,Q).derive(f);if(!x.privateKey)throw new Iy("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return J.fromPrivateKey(Buffer.from(x.privateKey),{network:Q})};default:throw new Iy("toolbox_utxo_not_supported",{chain:T})}}async function R5(T){let X=await My();return function(y){if(!y)throw new Iy("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let Z=ST.includes(T)?b2.p2pkh:b2.p2wpkh,{address:f}=Z({network:X(T),pubkey:y.publicKey});if(!f)throw new Iy("toolbox_utxo_invalid_address",{error:"Address not defined"});return f}}function NZ(T){return async function({memo:L,recipient:y,feeOptionKey:Z,feeRate:f,assetValue:J}){let Q=await T?.getAddress(),q=J.chain;if(!(T&&Q))throw new Iy("toolbox_utxo_no_signer");if(!y)throw new Iy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let x=f||(await bT(q))[Z||ky.Fast],{psbt:z}=await n2({assetValue:J,feeRate:x,memo:L,recipient:y,sender:Q}),G=await T.signTransaction(z);return G.finalizeAllInputs(),yy(q).broadcastTx(G.extractTransaction().toHex())}}async function bT(T){let X=await yy(T).getSuggestedTxFee();return{[ky.Average]:X,[ky.Fast]:u2(X,ky.Fast),[ky.Fastest]:u2(X,ky.Fastest)}}async function o2({assetValue:T,recipient:X,memo:L,sender:y,fetchTxHex:Z=!1}){let f=T.chain,J=(await bT(f))[ky.Fastest],Q=Z||ST.includes(f),q=T.getBaseValue("number"),x=Math.ceil(q+J*5000);return{inputs:await yy(f).getUtxos({address:y,fetchTxHex:Q,targetValue:x}),outputs:[{address:X,value:q},...L?[{address:"",script:await Hy(L),value:0}]:[]]}}var ST;var jT=v(()=>{IT();QT();AT();ST=[Ty.Dash,Ty.Dogecoin,Ty.Zcash,Ty.BitcoinCash]});import{address as DZ,Transaction as kZ,TransactionBuilder as IZ}from"@psf/bitcoincashjs-lib";import{Chain as CZ,derivationPathToString as OZ,FeeOption as wZ,NetworkDerivationPath as EZ,SwapKitError as xT,updateDerivationPath as vZ}from"@swapkit/helpers";import{Psbt as FZ}from"bitcoinjs-lib";function my(T){return ny(VT(T))}function $Z(T){function X({builder:y,utxos:Z}){return Z.forEach((f,J)=>{y.sign(J,T,void 0,65,f.witnessUtxo?.value)}),y.build()}return{getAddress:()=>{let y=T.getAddress(0);return Promise.resolve(my(y))},signTransaction:X}}async function N5(T){let X="phrase"in T?T.phrase:void 0,L="index"in T?T.index||0:0,y=OZ("derivationPath"in T&&T.derivationPath?T.derivationPath:vZ(EZ[Jy],{index:L})),Z=X?(await uT(Jy))({derivationPath:y,phrase:X}):void 0,f=Z?$Z(Z):("signer"in T)?T.signer:void 0;function J(){return Promise.resolve(f?.getAddress())}let{getBalance:Q,getFeeRates:q,broadcastTx:x,...z}=await py({chain:Jy});function G(B,H=!0){return Q(ny(VT(B)))}return{...z,broadcastTx:x,buildTx:PZ,createTransaction:c2,getAddress:J,getAddressFromKeys:lZ,getBalance:G,getFeeRates:q,stripPrefix:ny,stripToCashAddress:my,transfer:VZ({broadcastTx:x,getFeeRates:q,signer:f}),validateAddress:ly}}async function c2({assetValue:T,recipient:X,memo:L,feeRate:y,sender:Z}){if(!ly(X))throw new xT("toolbox_utxo_invalid_address",{address:X});let f=Math.ceil(T.getBaseValue("number")+y*7500),J=await yy(Jy).getUtxos({address:my(Z),fetchTxHex:!0,targetValue:f}),Q=L?await Hy(L):null,q=[];q.push({address:X,value:T.getBaseValue("number")});let{inputs:x,outputs:z}=Wy({chain:Jy,feeRate:y,inputs:J,outputs:q});if(!(x&&z))throw new xT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:Z});let G=await My(),B=new IZ(G(Jy));await Promise.all(x.map(async(H)=>{let M=await yy(Jy).getRawTx(H.hash);B.addInput(kZ.fromBuffer(Buffer.from(M,"hex")),H.index)}));for(let H of z){let M="address"in H&&H.address?H.address:LT(Z),_=await My(),D=DZ.toOutputScript(LT(M),_(Jy));B.addOutput(D,H.value)}if(Q)B.addOutput(Q,0);return{builder:B,utxos:x}}function VZ({broadcastTx:T,getFeeRates:X,signer:L}){return async function({recipient:Z,assetValue:f,feeOptionKey:J=wZ.Fast,...Q}){let q=await L?.getAddress();if(!(L&&q))throw new xT("toolbox_utxo_no_signer");if(!Z)throw new xT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let x=Q.feeRate||(await X())[J],{builder:z,utxos:G}=await c2({...Q,assetValue:f,feeRate:x,recipient:Z,sender:q}),H=(await L.signTransaction({builder:z,utxos:G})).toHex();return T(H)}}async function PZ({assetValue:T,recipient:X,memo:L,feeRate:y,sender:Z,setSigHashType:f}){let J=VT(X);if(!ly(J))throw new xT("toolbox_utxo_invalid_address",{address:J});let Q=Math.ceil(T.getBaseValue("number")+y*7500),q=await yy(Jy).getUtxos({address:my(Z),fetchTxHex:!1,targetValue:Q}),x=Number(y.toFixed(0)),z=L?await Hy(L):null,G=[];if(G.push({address:LT(X),value:T.getBaseValue("number")}),z)G.push({script:z,value:0});let{inputs:B,outputs:H}=Wy({chain:Jy,feeRate:x,inputs:q,outputs:G});if(!(B&&H))throw new xT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:Z});let M=await My(),_=new FZ({network:M(Jy)});for(let{hash:D,index:$,witnessUtxo:V}of B)_.addInput({hash:D,index:$,sighashType:f?65:void 0,witnessUtxo:V});for(let D of H){let $="address"in D&&D.address?D.address:LT(Z),V=D.script?z?{script:z,value:0}:void 0:{address:$,value:D.value};if(V)_.addOutput(V)}return{inputs:B,psbt:_,utxos:q}}function lZ(T){let X=T.getAddress(0);return my(X)}var Jy;var Y0=v(()=>{QT();jT();AT();Jy=CZ.BitcoinCash});import{bitgo as KZ,crypto as AZ,ECPair as d2,networks as SZ,address as uZ}from"@bitgo/utxo-lib";import{HDKey as t2}from"@scure/bip32";import{mnemonicToSeedSync as i2}from"@scure/bip39";import{Chain as U0,derivationPathToString as bZ,FeeOption as jZ,NetworkDerivationPath as hZ,SKConfig as nZ,SwapKitError as _0,updateDerivationPath as pZ}from"@swapkit/helpers";import mZ from"bs58check";import{match as oZ,P as D5}from"ts-pattern";function r2(){return SZ.zcash}function a2(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
- `,pubKeyHash:28,scriptHash:28,wif:128}}function cZ({phrase:T,derivationPath:X}){let L=i2(T),Z=t2.fromMasterSeed(L).derive(X);if(!Z.privateKey)throw new _0("toolbox_utxo_invalid_params");let f=a2(),J=d2.fromPrivateKey(Buffer.from(Z.privateKey),{network:f}),Q=AZ.hash160(J.publicKey),{isStagenet:q}=nZ.get("envs"),x=q?Buffer.from([29,37]):Buffer.from([28,184]),z=Buffer.concat([x,Q]),G=mZ.encode(z);return{getAddress:()=>Promise.resolve(G),signTransaction:(B)=>{let H=B.signAllInputs(J);return Promise.resolve(H)}}}function gZ({inputs:T,outputs:X,psbt:L,sender:y,compiledMemo:Z}){for(let f of T){let J=!!f.witnessUtxo&&{witnessUtxo:{...f.witnessUtxo,value:BigInt(f.value)}},Q=!f.witnessUtxo&&{nonWitnessUtxo:f.txHex?Buffer.from(f.txHex,"hex"):void 0};L.addInput({hash:f.hash,index:f.index,...J,...Q})}for(let f of X){let J="address"in f&&f.address?f.address:y,Q=f.script;if(Q&&!Z)continue;let q=Q?{script:Z,value:0n}:{script:uZ.toOutputScript(J,r2()),value:BigInt(f.value)};L.addOutput(q)}return{inputs:T,psbt:L}}async function g2(T){let{assetValue:X,recipient:L,memo:y,feeRate:Z,sender:f,fetchTxHex:J}=T,Q=y?Hy(y):null,q=await yy(U0.Zcash).getUtxos({address:f,fetchTxHex:J!==!1}),x=[{address:L,value:Number(X.getBaseValue("string"))},...Q?[{script:Q,value:0}]:[]],{inputs:z,outputs:G}=Wy({chain:U0.Zcash,changeAddress:f,feeRate:Z,inputs:q,outputs:x});if(!(z&&G))throw new _0("toolbox_utxo_insufficient_balance",{assetValue:X,sender:f});let B=KZ.createPsbtForNetwork({network:r2()},{version:455}),M=3268858036,_=Buffer.concat([Buffer.of(252),Buffer.of(5),Buffer.from("BITGO"),Buffer.of(0)]),D=Buffer.allocUnsafe(4);D.writeUInt32LE(M>>>0,0),B.addUnknownKeyValToGlobal({key:_,value:D});let{psbt:$,inputs:V}=await gZ({compiledMemo:Q,inputs:z,outputs:G,psbt:B,sender:f});return{inputs:V,outputs:G,psbt:$}}async function k5(T){let X=await oZ(T).with({signer:D5.not(D5.nullish)},({signer:J})=>Promise.resolve(J)).with({phrase:D5.string},({phrase:J,derivationPath:Q,index:q=0})=>{let x=Q||hZ[U0.Zcash]||[44,133,0,0,0],z=pZ(x,{index:q}),G=bZ(z);return cZ({derivationPath:G,phrase:J})}).otherwise(()=>Promise.resolve(void 0)),L=await py({chain:U0.Zcash,signer:X});async function y({recipient:J,assetValue:Q,feeOptionKey:q=jZ.Fast,...x}){let z=await X?.getAddress();if(!(X&&z))throw new _0("toolbox_utxo_no_signer");let G=x.feeRate||(await L.getFeeRates())[q],{psbt:B}=await g2({...x,assetValue:Q,feeRate:G,recipient:J,sender:z}),H=await X.signTransaction(B);return H.finalizeAllInputs(),L.broadcastTx(H.extractTransaction().toHex())}function Z({phrase:J,derivationPath:Q="m/44'/133'/0'/0/0"}){let q=i2(J),z=t2.fromMasterSeed(q).derive(Q);if(!z.privateKey)throw new _0("toolbox_utxo_invalid_params");let G=a2();return d2.fromPrivateKey(Buffer.from(z.privateKey),{network:G})}function f({phrase:J,derivationPath:Q="m/44'/133'/0'/0/0"}){return Z({derivationPath:Q,phrase:J}).toWIF()}return{...L,createKeysForPath:Z,createTransaction:g2,getPrivateKeyFromMnemonic:f,transfer:y,validateAddress:qT}}var I5=v(()=>{QT();jT();AT()});import{Chain as zT,SwapKitError as dZ}from"@swapkit/helpers";async function tZ(T,X){switch(T){case zT.BitcoinCash:return await N5(X||{});case zT.Zcash:return await k5(X);case zT.Bitcoin:case zT.Dogecoin:case zT.Litecoin:case zT.Dash:return await py({chain:T,...X});default:throw new dZ("toolbox_utxo_not_supported",{chain:T})}}var s2=v(()=>{Y0();jT();I5();Y0();AT()});var C5={};Zy(C5,{validateZcashAddress:()=>qT,toLegacyAddress:()=>LT,toCashAddress:()=>VT,stripToCashAddress:()=>my,stripPrefix:()=>ny,nonSegwitChains:()=>ST,isValidAddress:()=>H5,getUtxoToolbox:()=>tZ,getUtxoNetwork:()=>My,getUtxoApi:()=>yy,getUTXOAddressValidator:()=>p2,getScriptTypeForAddress:()=>lT,getOutputSize:()=>KT,getInputSize:()=>Py,getDustThreshold:()=>W0,getCreateKeysForPath:()=>uT,detectAddressNetwork:()=>W5,createZcashToolbox:()=>k5,createUTXOToolbox:()=>py,createCustomUtxoApi:()=>of,createBCHToolbox:()=>N5,compileMemo:()=>Hy,calculateTxSize:()=>JT,bchValidateAddress:()=>ly,addressFromKeysGetter:()=>R5,addInputsAndOutputs:()=>h2,accumulative:()=>Wy,UtxoNetwork:()=>M5,UTXOScriptType:()=>H0,TX_OVERHEAD:()=>M0,OutputSizes:()=>PT,OP_RETURN_OVERHEAD:()=>K2,MIN_TX_FEE:()=>ef,InputSizes:()=>B0});var O5=v(()=>{QT();s2();Y0();jT();I5()});import{AssetValue as w5,BaseDecimal as TX,Chain as cy,DerivationPath as iZ,derivationPathToString as rZ,getRPCUrl as aZ,NetworkDerivationPath as sZ,SwapKitError as gy,updateDerivationPath as eZ}from"@swapkit/helpers";import{match as yL,P as e2}from"ts-pattern";async function TL(T){try{let X=await fetch(`https://lite-api.jup.ag/tokens/v1/token/${T}`);if(!X.ok)return null;return await X.json()}catch{return null}}async function XL(T){let X=await oy(),{PublicKey:L}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),Z=new L(T),f=[],J=await X.getBalance(Z);if(J>0)f.push(w5.from({chain:cy.Solana,fromBaseDecimal:TX[cy.Solana],value:J}));let Q=await X.getParsedTokenAccountsByOwner(Z,{programId:y});for(let{account:q}of Q.value){let x=q.data.parsed.info,z=x.mint,G=x.tokenAmount.amount;if(Number(G)===0)continue;let B=await TL(z),H=B?.symbol||"UNKNOWN",M=B?.decimals||x.tokenAmount.decimals;f.push(w5.from({asset:`${cy.Solana}.${H}-${z}`,fromBaseDecimal:M,value:G}))}return f}async function F5(){let{PublicKey:T}=await import("@solana/web3.js");return(X)=>{try{let L=new T(X);return T.isOnCurve(L.toBytes())}catch(L){return!1}}}async function fL(T){let X=T&&"index"in T?T.index||0:0,L=rZ(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:eZ(sZ[cy.Solana],{index:X})),y=await yL(T).with({phrase:e2.string},({phrase:f})=>v5({derivationPath:L,phrase:f})).with({signer:e2.any},({signer:f})=>f).otherwise(()=>{return});function Z(){return y?.publicKey?yX(y.publicKey):""}return{broadcastTransaction:E5(oy),createKeysForPath:v5,createTransaction:$5(oy),createTransactionFromInstructions:QL,estimateTransactionFee:ZL(oy),getAddress:Z,getAddressFromPubKey:yX,getAddressValidator:F5,getBalance:(f)=>{let J=f||Z();if(!J)throw new gy("core_wallet_connection_not_found");return XL(J)},getConnection:oy,getPubkeyFromAddress:V5,signTransaction:xL(oy,y),transfer:qL(oy,y)}}function ZL(T){return async({recipient:X,assetValue:L,memo:y,isProgramDerivedAddress:Z,sender:f})=>{let J=await T(),q=(await $5(T)({assetValue:L,isProgramDerivedAddress:Z,memo:y,recipient:X,sender:f})).compileMessage(),x=await J.getFeeForMessage(q);if(x.value===null)throw new gy("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");return w5.from({chain:cy.Solana,fromBaseDecimal:TX[cy.Solana],value:x.value})}}async function oy(){let{Connection:T}=await import("@solana/web3.js"),X=await aZ(cy.Solana);return new T(X,"confirmed")}function LL(T){return async({assetValue:X,recipient:L,sender:y,isProgramDerivedAddress:Z})=>{let f=await T(),J=await V5(y);if(X.isGasAsset){let{Transaction:Q,SystemProgram:q,PublicKey:x}=await import("@solana/web3.js");return new Q().add(q.transfer({fromPubkey:J,lamports:X.getBaseValue("number"),toPubkey:new x(L)}))}if(X.address)return JL({amount:X.getBaseValue("number"),connection:f,decimals:X.decimal,from:J,isProgramDerivedAddress:Z,recipient:L,tokenAddress:X.address});return}}async function JL({tokenAddress:T,recipient:X,from:L,connection:y,amount:Z,decimals:f,isProgramDerivedAddress:J}){let{getAssociatedTokenAddress:Q,getAccount:q,createAssociatedTokenAccountInstruction:x,createTransferCheckedInstruction:z}=await import("@solana/spl-token"),{Transaction:G,PublicKey:B}=await import("@solana/web3.js"),H=new G,M=new B(T),_=await Q(M,L),D=new B(X),$=await Q(M,D,J),V=!1;try{await q(y,$),V=!0}catch(n){}if(!V)H.add(x(L,$,D,M));return H.add(z(_,M,$,L,Z,f)),H}function $5(T){return async({recipient:X,assetValue:L,memo:y,isProgramDerivedAddress:Z,sender:f})=>{let{createMemoInstruction:J}=await import("@solana/spl-memo"),Q=await V5(f),q=await F5();if(!(Z||q(X)))throw new gy("core_transaction_invalid_recipient_address");let x=await T(),z=await LL(T)({assetValue:L,isProgramDerivedAddress:Z,recipient:X,sender:f});if(!z)throw new gy("core_transaction_invalid_sender_address");if(y)z.add(J(y));let G=await x.getLatestBlockhash();return z.recentBlockhash=G.blockhash,z.feePayer=Q,z}}async function QL({instructions:T}){let{Transaction:X}=await import("@solana/web3.js"),L=new X().add(...T);if(!L)throw new gy("core_transaction_invalid_sender_address");return L}function qL(T,X){return async({recipient:L,assetValue:y,memo:Z,isProgramDerivedAddress:f})=>{if(!X)throw new gy("core_transaction_invalid_sender_address");let J=X.publicKey?.toString()??(await X.connect()).publicKey.toString(),Q=await $5(T)({assetValue:y,isProgramDerivedAddress:f,memo:Z,recipient:L,sender:J});if("signTransaction"in X){let q=await X.signTransaction(Q);return E5(T)(q)}return Q.sign(X),E5(T)(Q)}}function E5(T){return async(X)=>{return(await T()).sendRawTransaction(X.serialize())}}function xL(T,X){return async(L)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!X)throw new gy("toolbox_solana_no_signer");if(!(L instanceof y)){let f=await(await T()).getLatestBlockhash();L.recentBlockhash=f.blockhash,L.feePayer=X.publicKey||void 0}if("connect"in X)return await X.signTransaction(L);return await L.sign([X]),L}}async function v5({phrase:T,derivationPath:X=iZ.SOL}){let{HDKey:L}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:y}=await import("@scure/bip39"),{Keypair:Z}=await import("@solana/web3.js"),f=y(T),J=L.fromMasterSeed(f);return Z.fromSeed(J.derive(X,!0).privateKey)}function yX(T){return T.toString()}async function V5(T){let{PublicKey:X}=await import("@solana/web3.js");return new X(T)}var XX=()=>{};var P5={};Zy(P5,{getSolanaToolbox:()=>fL,getSolanaAddressValidator:()=>F5,createKeysForPath:()=>v5});var l5=v(()=>{XX()});import{derivationPathToString as zL,SwapKitError as GL}from"@swapkit/helpers";import{KeyPairSigner as BL}from"near-api-js";async function hT(){let{validateAccountId:T}=await import("near-sdk-js");return(X)=>{try{return T(X)}catch{let L=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return X.length>=2&&X.length<=64&&L.test(X)}}}async function R0(T){let{parseSeedPhrase:X}=await import("near-seed-phrase"),{KeyPair:L}=await import("near-api-js"),y=T.index||0,Z=T.derivationPath?zL(T.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:f}=X(T.phrase,Z),J=L.fromString(f);return ZX(J)}async function K5(T){let{KeyPair:X}=await import("near-api-js/lib/utils"),L=X.fromString(T);return ZX(L)}function ZX(T){return new fX(T)}async function N0(T,X){let y=(await T.query({account_id:X,finality:"final",request_type:"view_access_key_list"})).keys.find((Q)=>Q.access_key.permission==="FullAccess");if(!y)throw new GL("toolbox_near_invalid_address");let{utils:Z}=await import("near-api-js"),f=Z.PublicKey.fromString(y.public_key);return{nonce:y.access_key.nonce||0,publicKey:f}}var fX;var A5=v(()=>{fX=class fX extends BL{#y;constructor(T){super(T);this.#y=T}getAddress(){let T=this.#y.getPublicKey(),X=Buffer.from(T.data).toString("hex");return Promise.resolve(X)}}});function S5(T){return"recipient"in T&&"amount"in T&&!("contractId"in T)}function u5(T){return"contractId"in T&&"methodName"in T}function b5(T){return"actions"in T}function j5(T){return"newAccountId"in T}function h5(T){return"contractCode"in T}function n5(T){return"customEstimator"in T}function p5(T){let X=0;for(let L of T)switch(L.enum){case"transfer":X+=Number(r.SIMPLE_TRANSFER);break;case"functionCall":X+=Number(r.CONTRACT_CALL);break;case"createAccount":X+=Number(r.ACCOUNT_CREATION);break;case"deployContract":X+=Number(r.CONTRACT_DEPLOYMENT);break;case"addKey":X+=Number(r.ACCESS_KEY_ADDITION);break;case"deleteKey":X+=Number(r.ACCESS_KEY_DELETION);break;case"stake":X+=Number(r.STAKE);break;default:X+=Number(r.CONTRACT_CALL)}return X.toString()}function m5(T){if(T==="ft_transfer"||T==="ft_transfer_call")return r.TOKEN_TRANSFER;if(T==="storage_deposit")return r.STORAGE_DEPOSIT;return r.CONTRACT_CALL}function ML(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function HL(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var r;var o5=v(()=>{r={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"100",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"100",TOKEN_TRANSFER:"100"}});async function D0({account:T,contractId:X,viewMethods:L,changeMethods:y}){let{Contract:Z}=await import("near-api-js");return new Z(T,X,{changeMethods:y,useLocalViewExecution:!0,viewMethods:L})}async function c5({contractId:T,account:X}){let L=(await import("bn.js")).default,y=await D0({account:X,changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"],contractId:T,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"]}),Z=async(f)=>{if(!await y.storage_balance_of({account_id:f})){let q=(await y.storage_balance_bounds())?.min||"1250000000000000000000";await y.storage_deposit({account_id:f},new L("100000000000000"),new L(q))}};return{balanceOf:(f)=>y.ft_balance_of({account_id:f}),contract:y,ensureStorage:Z,metadata:()=>y.ft_metadata(),storageBalanceOf:(f)=>y.storage_balance_of({account_id:f}),storageDeposit:(f,J)=>y.storage_deposit({account_id:f},new L("100000000000000"),new L(J||"1250000000000000000000")),totalSupply:()=>y.ft_total_supply(),transfer:async(f,J,Q)=>{return await Z(f),y.ft_transfer({amount:J,memo:Q,receiver_id:f},new L("100000000000000"),new L("1"))},transferCall:async(f,J,Q,q)=>{return await Z(f),y.ft_transfer_call({amount:J,memo:q,msg:Q,receiver_id:f},new L("100000000000000"),new L("1"))}}}import{AssetValue as LX,BaseDecimal as JX,Chain as GT,getRPCUrl as WL,SwapKitError as a}from"@swapkit/helpers";async function YL(T){let{P:X,match:L}=await import("ts-pattern"),{providers:y}=await import("near-api-js"),Z=await L(T).with({phrase:X.string},async(C)=>{return await R0(C)}).with({signer:X.any},({signer:C})=>C).otherwise(()=>{return}),f=await WL(GT.Near),J=new y.JsonRpcProvider({url:f});async function Q(C){let{Account:P}=await import("near-api-js"),N=C||await q();return new P(N,J,Z)}async function q(){if(!Z)throw new a("toolbox_near_no_signer");return await Z.getAddress()}async function x(C){if(!Z)throw new a("toolbox_near_no_signer");let{recipient:P,assetValue:N}=C;if(!(await hT())(P))throw new a("toolbox_near_invalid_address");let E=await Q();if(N.isGasAsset===!1){let k=N.address;if(!k)throw new a("toolbox_near_missing_contract_address");let I=N.getBaseValue("string");return $({args:{amount:I,memo:C.memo,receiver_id:P},contractId:k,methodName:"ft_transfer"})}try{let k=N.getBaseValue("string");return(await E.transfer({amount:k,receiverId:P})).transaction_outcome.id}catch(k){throw new a("toolbox_near_transfer_failed",{error:k})}}async function z(C){let{recipient:P,assetValue:N,memo:w,feeRate:E,attachedDeposit:k,sender:I}=C,K=await hT();if(!K(P))throw new a("toolbox_near_invalid_address",{address:P});if(!K(I))throw new a("toolbox_near_invalid_address",{address:I});if(!N.isGasAsset){let HT=N.address;if(!HT)throw new a("toolbox_near_missing_contract_address");return G({args:{amount:N.getBaseValue("string"),memo:w||null,receiver_id:P},attachedDeposit:"1",contractId:HT,gas:E.toString()||"100000000000000",methodName:"ft_transfer",sender:I})}let{publicKey:b,nonce:u}=await N0(J,I),j=N.getBaseValue("bigint"),{SCHEMA:Xy}=await import("near-api-js/lib/transaction"),{transactions:g,utils:Qy}=await import("near-api-js"),qy=[g.transfer(j)];if(w&&k)qy.push(g.functionCall("memo",{memo:w},BigInt(E),BigInt(k)));let dy=await J.block({finality:"final"}),MT=Qy.serialize.base_decode(dy.header.hash),k0=g.createTransaction(I,b,P,u,qy,MT),ty=Qy.serialize.serialize(Xy.Transaction,k0),nT=Buffer.from(ty).toString("base64");return{details:{blockHash:Qy.serialize.base_encode(MT),nonce:u,signerId:I},publicKey:b.toString(),serialized:nT}}async function G(C){let{sender:P}=C,{publicKey:N,nonce:w}=await N0(J,P),{SCHEMA:E}=await import("near-api-js/lib/transaction"),{transactions:k,utils:I}=await import("near-api-js"),K=await J.block({finality:"final"}),b=I.serialize.base_decode(K.header.hash),u=[k.functionCall(C.methodName,Buffer.from(JSON.stringify(C.args)),BigInt(C.gas),BigInt(C.attachedDeposit))],j=k.createTransaction(P,N,C.contractId,w,u,b),Xy=I.serialize.serialize(E.Transaction,j),g=Buffer.from(Xy).toString("base64");return{details:{blockHash:I.serialize.base_encode(b),methodName:C.methodName,nonce:w,receiverId:C.contractId,signerId:P},publicKey:N.toString(),serialized:g}}async function B(C){if(!Z)throw new a("toolbox_near_no_signer");let[P,N]=await Z.signTransaction(C);return N}async function H(C){return(await J.sendTransaction(C)).transaction.hash}async function M(C){if("assetValue"in C){let E=BigInt("115123062500")+BigInt("108059500000"),k=await _(),I=E*BigInt(k.toString());return LX.from({chain:GT.Near,fromBaseDecimal:JX[GT.Near],value:I.toString()})}let P=Z?await Q():void 0;return o(C,P)}async function _(){try{return await J.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function D(C,P,N){if(!Z)throw new a("toolbox_near_no_signer");let w=await Q(),{utils:E}=await import("near-api-js"),k=E.format.parseNearAmount(N)||"0";return(await w.createAccount(C,E.PublicKey.fromString(P),BigInt(k))).transaction.hash}async function $(C){try{if(!Z)throw new a("toolbox_near_no_signer");let{transactions:P}=await import("near-api-js"),{contractId:N,methodName:w,args:E,deposit:k}=C,I=await Q(),K=await o({args:E||{},contractId:N,methodName:w}),b=P.functionCall(w,E||{},K.getBaseValue("bigint"),BigInt(k||"0"));return(await I.signAndSendTransaction({actions:[b],receiverId:N})).transaction_outcome.id}catch(P){throw new a("toolbox_near_transfer_failed",{error:P})}}async function V(C){let P=await Q();return D0({account:P,changeMethods:C.changeMethods,contractId:C.contractId,viewMethods:C.viewMethods})}async function n(C){if(!Z)throw new a("toolbox_near_no_signer");if(C.actions.length===0)throw new a("toolbox_near_empty_batch");return(await(await Q()).signAndSendTransaction({actions:C.actions,receiverId:C.receiverId})).transaction.hash}async function S(C){let P=await Q();return c5({account:P,contractId:C})}async function o(C,P){let N=await L(C).when(S5,()=>r.SIMPLE_TRANSFER).when(u5,(I)=>m5(I.methodName)).when(b5,(I)=>p5(I.actions)).when(j5,()=>r.ACCOUNT_CREATION).when(h5,()=>r.CONTRACT_DEPLOYMENT).when(n5,(I)=>{if(!P)throw new a("toolbox_near_no_account");return I.customEstimator(P)}).otherwise(()=>{throw new a("toolbox_near_invalid_gas_params")}),w=await c(),k=BigInt(N)*BigInt(1000000000000)*BigInt(w);return LX.from({chain:GT.Near,fromBaseDecimal:JX[GT.Near],value:k})}async function c(){try{return(await J.gasPrice(null)).gas_price||"100000000"}catch(C){return"100000000"}}return{broadcastTransaction:H,callFunction:$,createContract:V,createContractFunctionCall:G,createSubAccount:D,createTransaction:z,estimateGas:o,estimateTransactionFee:M,executeBatchTransaction:n,getAddress:q,getBalance:iy(GT.Near),getGasPrice:c,getPublicKey:async()=>Z?(await Z.getPublicKey()).toString():"",getSignerFromPhrase:(C)=>R0(C),getSignerFromPrivateKey:K5,nep141:S,provider:J,signTransaction:B,transfer:x,validateAddress:await hT()}}var g5=v(()=>{IT();A5();o5()});var QX=v(()=>{g5()});var d5={};Zy(d5,{tgasToGas:()=>ML,isSimpleTransfer:()=>S5,isCustomEstimator:()=>n5,isContractDeployment:()=>h5,isContractCall:()=>u5,isBatchTransaction:()=>b5,isAccountCreation:()=>j5,getValidateNearAddress:()=>hT,getNearToolbox:()=>YL,getNearSignerFromPrivateKey:()=>K5,getNearSignerFromPhrase:()=>R0,getFullAccessPublicKey:()=>N0,getContractMethodGas:()=>m5,gasToTGas:()=>HL,estimateBatchGas:()=>p5,createNearContract:()=>D0,createNEP141Token:()=>c5,GAS_COSTS:()=>r});var t5=v(()=>{A5();o5();g5();QX()});var a5={};Zy(a5,{rippleValidateAddress:()=>r5,hashes:()=>OL,getRippleToolbox:()=>CL});import{AssetValue as i5,BaseDecimal as qX,Chain as Cy,getRPCUrl as UL,SwapKitError as Ky,SwapKitNumber as _L}from"@swapkit/helpers";import{Client as RL,isValidAddress as NL,Wallet as DL,xrpToDrops as kL}from"xrpl";import{hashes as OL}from"xrpl";function xX(T){let X=DL.fromMnemonic(T);return{getAddress:()=>Promise.resolve(X.address),signTransaction:(L)=>Promise.resolve(X.sign(L))}}function r5(T){return NL(T)}var IL,CL=async(T={})=>{let X="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?xX(T.phrase):void 0,L=await UL(Cy.Ripple);if(!L)throw new Ky({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:Cy.Ripple}});let y=new RL(L);await y.connect();let Z=()=>{if(!X)throw new Ky({errorKey:"toolbox_ripple_signer_not_found"});return X.getAddress()},f=async(B)=>{let H=B||await Z();try{let _=(await y.request({account:H,command:"account_info"})).result.account_data.Balance;return[i5.from({chain:Cy.Ripple,fromBaseDecimal:qX[Cy.Ripple],value:_})]}catch(M){if(M.data.error_code===IL.ACCOUNT_NOT_FOUND)return[i5.from({chain:Cy.Ripple,value:0})];throw new Ky("toolbox_ripple_get_balance_error",{info:{address:H,error:M}})}},J=async()=>{let H=(await y.request({command:"fee"})).result.drops.open_ledger_fee;return i5.from({chain:Cy.Ripple,value:_L.fromBigInt(BigInt(H),qX[Cy.Ripple])})},Q=async({assetValue:B,recipient:H,memo:M,sender:_})=>{if(!r5(H))throw new Ky({errorKey:"core_transaction_invalid_recipient_address"});let D=_||await Z();if(!B.isGasAsset||B.chain!==Cy.Ripple)throw new Ky({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:B.toString()}});let $={Account:D,Amount:kL(B.getValue("string")),Destination:H,TransactionType:"Payment"};if(M)$.Memos=[{Memo:{MemoData:Buffer.from(M).toString("hex")}}];return await y.autofill($)},q=(B)=>{if(!X)throw new Ky({errorKey:"toolbox_ripple_signer_not_found"});return X.signTransaction(B)},x=async(B)=>{let M=(await y.submitAndWait(B)).result;if(M.validated)return M.hash;throw new Ky({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Cy.Ripple}})};return{broadcastTransaction:x,createSigner:xX,createTransaction:Q,disconnect:()=>y.disconnect(),estimateTransactionFee:J,getAddress:Z,getBalance:f,signer:X,signTransaction:q,transfer:async(B)=>{if(!X)throw new Ky({errorKey:"toolbox_ripple_signer_not_found"});let H=await X.getAddress(),M=await Q({...B,sender:H}),_=await q(M);return x(_.tx_blob)},validateAddress:r5}};var s5=v(()=>{IL={ACCOUNT_NOT_FOUND:19}});var e5={};Zy(e5,{radixValidateAddress:()=>GX,RadixToolbox:()=>lL});import{AssetValue as wL,Chain as zX,SKConfig as EL,SwapKitError as vL}from"@swapkit/helpers";function GX(T){return T.startsWith("account_rdx1")&&T.length===66}function FL({networkApi:T}){return async function(L){let y=await $L({address:L,networkApi:T});return VL({networkApi:T,resources:y})}}async function $L({address:T,networkApi:X}){let L=!0,y,Z=[],f=await PL(X);while(L){let J={address:T,at_ledger_state:{state_version:f},cursor:y,limit_per_page:100},Q=await X.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:J});if(Z=Z.concat(Q.items),Q.next_cursor)y=Q.next_cursor;else L=!1}return Z}async function VL({resources:T,networkApi:X}){let L=[],y=50,Z=[];for(let f=0;f<T.length;f+=50)Z.push(T.slice(f,f+50));for(let f of Z){let J=f.map((x)=>x.resource_address),Q=await X.state.getEntityDetailsVaultAggregated(J),q=new Map;for(let x of Q)if(x.details!==void 0){let z=x.metadata?.items.find((B)=>B.key==="symbol"),G=z?.value.typed.type==="String"?z.value.typed.value:"?";if(x.details.type==="FungibleResource")q.set(x.address,{decimals:x.details.divisibility,symbol:G})}for(let x of f)if(x.aggregation_level==="Global"){let z=q.get(x.resource_address)||{decimals:0,symbol:"?"},G=wL.from({asset:z.symbol!==zX.Radix?`${zX.Radix}.${z.symbol}-${x.resource_address}`:"XRD.XRD",value:x.amount});L.push(G)}}return L}function PL(T){return T.status.getCurrent().then((X)=>X.ledger_state.state_version)}var lL=async({dappConfig:T}={})=>{let{RadixDappToolkit:X}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:L}=await import("@radixdlt/babylon-gateway-api-sdk"),y=T||EL.get("integrations").radix,Z=X({...y,networkId:y.network?.networkId||1}),f=L.initialize(Z.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:FL({networkApi:f}),networkApi:f,signAndBroadcast:()=>{throw new vL("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:GX}};var y1=()=>{};var BT;var T1=v(()=>{BT=[{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}]});import{SwapKitError as KL}from"@swapkit/helpers";async function BX(T){let X=await import("tronweb"),L=X.TronWeb??X.default?.TronWeb;try{let y=await fetch(`${AL}/v1/accounts/${T}`);if(!y.ok)throw Error(`TronGrid API error: ${y.status} ${y.statusText}`);let Z=await y.json();if(!(Z.success&&Z.data)||Z.data.length===0)throw Error("Invalid response from TronGrid API");let f;try{f=L.address.toHex(T).toLowerCase()}catch{f=T.toLowerCase()}let J=Z.data.find((Q)=>{return Q.address.toLowerCase()===f});if(!J)return;return{balance:J.balance,trc20:J.trc20||[]}}catch(y){throw new KL("toolbox_tron_trongrid_api_error",{address:T,message:y instanceof Error?y.message:"Unknown error"})}}var AL="https://api.trongrid.io";var MX=()=>{};import{AssetValue as Oy,Chain as Yy,derivationPathToString as YX,getRPCUrl as SL,NetworkDerivationPath as UX,SwapKitError as e,updateDerivationPath as _X,warnOnce as X1}from"@swapkit/helpers";import{match as uL,P as HX}from"ts-pattern";async function f1(){let T=await import("tronweb"),X=T.TronWeb??T.default?.TronWeb;return(L)=>{return X.isAddress(L)}}async function RX({phrase:T,derivationPath:X,index:L}){let y=X||YX(_X(UX[Yy.Tron],{index:L||0})),{HDKey:Z}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),J=f(T),q=Z.fromMasterSeed(J).derive(y);if(!q.privateKey)throw new e("toolbox_tron_no_signer");return Buffer.from(q.privateKey).toString("hex")}async function pL({phrase:T,derivationPath:X,tronWeb:L}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:Z}=await import("@scure/bip39"),f=Z(T),Q=y.fromMasterSeed(f).derive(X);if(!Q.privateKey)throw new e("toolbox_tron_no_signer");let q=Buffer.from(Q.privateKey).toString("hex");L.setPrivateKey(q);let x=L?.address.fromPrivateKey(q);return{getAddress:()=>Promise.resolve(typeof x==="string"?x:""),signTransaction:async(z)=>{return await L.trx.sign(z,q)}}}var bL=268,jL=13000,hL=345,WX="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",nL="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",NX=async(T={})=>{let X=await import("tronweb"),L=X.TronWeb??X.default?.TronWeb,y=await SL(Yy.Tron),Z=void 0,f=new L({fullHost:y,headers:void 0}),J="index"in T?T.index||0:0,Q=YX("derivationPath"in T&&T.derivationPath?T.derivationPath:_X(UX[Yy.Tron],{index:J})),q=await uL(T).with({phrase:HX.string},async({phrase:N})=>pL({derivationPath:Q,phrase:N,tronWeb:f})).with({signer:HX.any},({signer:N})=>Promise.resolve(N)).otherwise(()=>Promise.resolve(void 0)),x=async()=>{if(!q)throw new e("toolbox_tron_no_signer");return await q.getAddress()},z=()=>{return 1e8},G=async()=>{try{let N=await f.trx.getChainParameters(),w={};for(let E of N)w[E.key]=E.value;return{bandwidthFee:w.getTransactionFee||1000,createAccountFee:w.getCreateAccountFee||1e5,energyFee:w.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},B=async(N)=>{try{let w=await f.trx.getAccount(N);return w&&Object.keys(w).length>0}catch{return!1}},H=async(N)=>{try{let w=await f.trx.getAccountResources(N);return{bandwidth:{free:w.freeNetLimit-w.freeNetUsed,total:w.NetLimit||0,used:w.NetUsed||0},energy:{total:w.EnergyLimit||0,used:w.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},M=async(N,w)=>{try{let E=f.contract(BT,w);if(!E.methods?.balanceOf)return 0n;let[k]=await E.methods.balanceOf(N).call();return k?typeof k==="bigint"?k:BigInt(k):0n}catch(E){return console.warn(`balanceOf() failed for ${w}:`,E),0n}},_=async(N,w)=>{try{f.setAddress(w);let E=f.contract(BT,N),[k,I]=await Promise.all([E.symbol().call().catch(()=>"UNKNOWN"),E.decimals().call().catch(()=>"18")]);return{decimals:Number(I??18),symbol:k??"UNKNOWN"}}catch(E){return X1({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${N}: ${E instanceof Error?E.message:E}`}),null}},D=async(N,w=!0)=>{let E=[Oy.from({chain:Yy.Tron})];try{let k=await BX(N);if(k){let I=[];I.push(Oy.from({chain:Yy.Tron,fromBaseDecimal:6,value:k.balance}));for(let K of k.trc20){let[b,u]=Object.entries(K)[0]||[];if(!(b&&u))continue;let j=await _(b,N);if(!j)continue;I.push(Oy.from({asset:`TRON.${j.symbol}-${b}`,fromBaseDecimal:j.decimals,value:BigInt(u||0)}))}return I}return E}catch(k){X1({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${k instanceof Error?k.message:k}`});let I=[],K=await f.trx.getBalance(N);if(K&&Number(K)>0)I.push(Oy.from({chain:Yy.Tron,fromBaseDecimal:6,value:K}));let b=await M(N,WX);if(b)I.push(Oy.from({asset:`TRON.USDT-${WX}`,fromBaseDecimal:6,value:b}));return I}},$=async({recipient:N,assetValue:w,memo:E})=>{if(!q)throw new e("toolbox_tron_no_signer");let k=await x();if(f.setAddress(k),w.isGasAsset){let j=await f.transactionBuilder.sendTrx(N,w.getBaseValue("number"),k);if(E){let Qy=await f.transactionBuilder.addUpdateData(j,E,"utf8"),qy=await q.signTransaction(Qy),{txid:dy}=await f.trx.sendRawTransaction(qy);return dy}let Xy=await q.signTransaction(j),{txid:g}=await f.trx.sendRawTransaction(Xy);return g}let K=await n({assetValue:w,memo:E,recipient:N,sender:k}),b=await q.signTransaction(K),{txid:u}=await f.trx.sendRawTransaction(b);if(!u)throw new e("toolbox_tron_token_transfer_failed");return u},V=async({assetValue:N,recipient:w,sender:E})=>{let k=N.isGasAsset;try{let I=E?E:q?await x():void 0;if(!I)return k?Oy.from({chain:Yy.Tron,fromBaseDecimal:0,value:0.1}):Oy.from({chain:Yy.Tron,fromBaseDecimal:0,value:15});let K=await G(),u=await B(w)?0:K.createAccountFee,j=await H(I);if(k){let ty=bL,nT=j.bandwidth.free+(j.bandwidth.total-j.bandwidth.used),HT=0;if(ty>nT)HT=(ty-nT)*K.bandwidthFee;let IX=u+HT;return Oy.from({chain:Yy.Tron,fromBaseDecimal:6,value:IX})}let Xy=hL,g=jL,Qy=j.bandwidth.free+(j.bandwidth.total-j.bandwidth.used),qy=j.energy.total-j.energy.used,dy=0;if(Xy>Qy)dy=(Xy-Qy)*K.bandwidthFee;let MT=0;if(g>qy)MT=(g-qy)*K.energyFee;let k0=u+dy+MT;return Oy.from({chain:Yy.Tron,fromBaseDecimal:6,value:k0})}catch(I){throw X1({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${I instanceof Error?I.message:I}`}),new e("toolbox_tron_fee_estimation_failed",{error:I})}},n=async(N)=>{let{recipient:w,assetValue:E,memo:k,sender:I}=N;if(E.isGasAsset){let u=await f.transactionBuilder.sendTrx(w,E.getBaseValue("number"),I);if(k)return f.transactionBuilder.addUpdateData(u,k,"utf8");return u}f.setAddress(I);let b=E.address;if(!b)throw new e("toolbox_tron_invalid_token_identifier",{identifier:E.toString()});try{let j=[{type:"address",value:w},{type:"uint256",value:E.getBaseValue("string")}],Xy={callValue:0,feeLimit:z()},g=await f.transactionBuilder.triggerSmartContract(b,"transfer(address,uint256)",Xy,j,I);if(k)return f.transactionBuilder.addUpdateData(g.transaction,k,"utf8");return g.transaction}catch(u){throw new e("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction. This might be due to TronWeb 6.0.3 bug. Use the transfer method directly instead.",originalError:u instanceof Error?u.message:String(u)})}},S=async(N)=>{if(!q)throw new e("toolbox_tron_no_signer");return await q.signTransaction(N)},o=async(N)=>{let{txid:w}=await f.trx.sendRawTransaction(N);return w},c=async({assetAddress:N,spenderAddress:w,from:E})=>{try{let k=f.contract(BT,N);if(!k.methods?.allowance)throw new e("toolbox_tron_invalid_token_contract");let[I]=await k.methods.allowance(E,w).call();return I?typeof I==="bigint"?I:BigInt(I):0n}catch(k){throw new e("toolbox_tron_allowance_check_failed",{error:k})}};return{approve:async({assetAddress:N,spenderAddress:w,amount:E,from:k})=>{if(!q)throw new e("toolbox_tron_no_signer");let I=k||await x(),K=E!==void 0?BigInt(E).toString():nL,b="approve(address,uint256)",u=[{type:"address",value:w},{type:"uint256",value:K}],Xy={callValue:0,feeLimit:z()};try{let{transaction:g}=await f.transactionBuilder.triggerSmartContract(N,b,Xy,u,I),Qy=await q.signTransaction(g),{txid:qy}=await f.trx.sendRawTransaction(Qy);if(!qy)throw new e("toolbox_tron_approve_failed");return qy}catch(g){throw new e("toolbox_tron_approve_failed",{error:g})}},broadcastTransaction:o,createTransaction:n,estimateTransactionFee:V,getAddress:x,getApprovedAmount:c,getBalance:D,isApproved:async({assetAddress:N,spenderAddress:w,from:E,amount:k})=>{let I=await c({assetAddress:N,from:E,spenderAddress:w});if(!k)return I>0n;let K=BigInt(k);return I>=K},signTransaction:S,transfer:$,tronWeb:f,validateAddress:await f1()}};var DX=v(()=>{T1();MX()});var Z1={};Zy(Z1,{trc20ABI:()=>BT,getTronPrivateKeyFromMnemonic:()=>RX,getTronAddressValidator:()=>f1,createTronToolbox:()=>NX});var L1=v(()=>{T1();DX()});import{AssetValue as mL,Chain as R,EVMChains as oL,FeeOption as cL,SwapKitError as gL,UTXOChains as dL}from"@swapkit/helpers";async function b9(){let{match:T}=await import("ts-pattern"),{cosmosValidateAddress:X}=await Promise.resolve().then(() => (tT(),dT)),{evmValidateAddress:L}=await Promise.resolve().then(() => (q2(),Q2)),{substrateValidateAddress:y}=await Promise.resolve().then(() => (G5(),z5)),{getUTXOAddressValidator:Z}=await Promise.resolve().then(() => (O5(),C5)),{getSolanaAddressValidator:f}=await Promise.resolve().then(() => (l5(),P5)),{getValidateNearAddress:J}=await Promise.resolve().then(() => (t5(),d5)),{rippleValidateAddress:Q}=await Promise.resolve().then(() => (s5(),a5)),{radixValidateAddress:q}=await Promise.resolve().then(() => (y1(),e5)),{getTronAddressValidator:x}=await Promise.resolve().then(() => (L1(),Z1)),z=await f(),G=await Z(),B=await x(),H=await J();return function({address:_,chain:D}){return T(D).with(...oL,()=>L({address:_})).with(...dL,()=>G({address:_,chain:D})).with(R.Cosmos,R.Kujira,R.Noble,R.Maya,R.THORChain,()=>X({address:_,chain:D})).with(R.Chainflip,R.Polkadot,()=>y({address:_,chain:D})).with(R.Radix,()=>q(_)).with(R.Near,()=>H(_)).with(R.Ripple,()=>Q(_)).with(R.Solana,()=>z(_)).with(R.Tron,()=>B(_)).otherwise(()=>!1)}}function j9(T){return async function(L){let{match:y}=await import("ts-pattern");return y(T).returnType().with(R.Arbitrum,R.Aurora,R.Avalanche,R.Base,R.Berachain,R.BinanceSmartChain,R.Ethereum,R.Gnosis,R.Optimism,R.Polygon,async(Z)=>{let f=await kX(Z),J=await f.createTransaction(L);return f.estimateTransactionFee({...J,chain:Z,feeOption:L.feeOptionKey||cL.Fast})}).with(R.Bitcoin,R.BitcoinCash,R.Dogecoin,R.Dash,R.Litecoin,R.Polkadot,R.Solana,R.Ripple,R.Tron,R.Near,async(Z)=>{return(await kX(Z)).estimateTransactionFee(L)}).with(R.THORChain,R.Maya,R.Kujira,R.Noble,R.Cosmos,async()=>{let{estimateTransactionFee:Z}=await Promise.resolve().then(() => (tT(),dT));return Z(L)}).otherwise(async()=>mL.from({chain:T}))}}async function kX(T,X){let{match:L}=await import("ts-pattern");return L(T).returnType().with(R.Arbitrum,R.Aurora,R.Avalanche,R.Base,R.Berachain,R.BinanceSmartChain,R.Ethereum,R.Gnosis,R.Optimism,R.Polygon,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (f5(),Z2));return await y(T,X)}).with(R.Litecoin,R.Dash,R.Dogecoin,R.BitcoinCash,R.Bitcoin,R.Zcash,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (O5(),C5));return await y(T,X)}).with(R.Cosmos,R.Kujira,R.Noble,R.Maya,R.THORChain,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (tT(),dT));return await y(T,X)}).with(R.Chainflip,R.Polkadot,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (G5(),z5));return await y(T,X)}).with(R.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (y1(),e5));return await y(X)}).with(R.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (s5(),a5));return await y(X)}).with(R.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (l5(),P5));return await y(X)}).with(R.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (L1(),Z1));return await y(X)}).with(R.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (t5(),d5));return await y(X)}).otherwise(()=>{throw new gL("toolbox_not_supported",{chain:T})})}export{kX as getToolbox,j9 as getFeeEstimator,b9 as getAddressValidator};
1
+ var EG=Object.create;var{getPrototypeOf:PG,defineProperty:Rf,getOwnPropertyNames:wG}=Object;var lG=Object.prototype.hasOwnProperty;var U=(T,f,X)=>{X=T!=null?EG(PG(T)):{};let y=f||!T||!T.__esModule?Rf(X,"default",{value:T,enumerable:!0}):X;for(let L of wG(T))if(!lG.call(y,L))Rf(y,L,{get:()=>T[L],enumerable:!0});return y};var Ly=(T,f)=>{for(var X in f)Rf(T,X,{get:f[X],enumerable:!0,configurable:!0,set:(y)=>f[X]=()=>y})};var P=(T,f)=>()=>(T&&(f=T(T=0)),f);var H=((T)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(T,{get:(f,X)=>(typeof require<"u"?require:f)[X]}):T)(function(T){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+T+'" is not supported')});import{base64 as x1,bech32 as nT}from"@scure/base";import{SwapKitError as vG}from"@swapkit/helpers";import{fromByteArray as FG,toByteArray as AG}from"base64-js";function zT(T){return x1.encode(Uint8Array.from(nT.fromWords(nT.decode(T).words)))}function _T(T,f="thor"){return nT.encode(f,nT.toWords(x1.decode(T)))}function SG(T){return FG(T)}function VG(T){if(!T.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new vG("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return AG(T)}var Df=()=>{};import{AssetValue as kf,Chain as A,getChainConfig as Zy,getRPCUrl as $G,SwapKitError as Z1}from"@swapkit/helpers";function Yy(T){switch(T){case A.Maya:return{amount:[],gas:"10000000000"};case A.THORChain:return{amount:[],gas:"500000000"};case A.Kujira:return Q1;case A.Noble:return q1;default:return J1}}async function Uy(T){let f=await import("@cosmjs/stargate"),X=f.StargateClient??f.default?.StargateClient,y=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return X.connect({headers:y,url:T})}async function NT(T,f,X={}){let y=await import("@cosmjs/stargate"),L=y.SigningStargateClient??y.default?.SigningStargateClient,G=y.GasPrice??y.default?.GasPrice,x=typeof X==="string"?X:"0.0003uatom",Z=typeof X==="string"?{}:X;return L.connectWithSigner(T,f,{gasPrice:G.fromString(x),...Z})}async function Of(T,f){let X=await import("@cosmjs/stargate");return(X.SigningStargateClient??X.default?.SigningStargateClient).offline(T,f)}async function Ef({sender:T,recipient:f,assetValue:X,memo:y="",feeRate:L,sequence:G,accountNumber:x}){let{chain:Z,chainId:B}=X,J=await $G(Z),q=await(await Uy(J)).getAccount(T);if(!q)throw new Z1("toolbox_cosmos_account_not_found",{sender:T});let z=kf.from({chain:Z}),M=Oy(z.symbol),_=Yy(Z),W=M&&L?{amount:[{amount:L.toString(),denom:M}],gas:_.gas}:_,k={amount:[{amount:X.getBaseValue("string"),denom:Oy(X.symbol)}],fromAddress:T,toAddress:f};return{accountNumber:x??q.accountNumber,chainId:B,fee:W,memo:y,msgs:[{typeUrl:KG(Z),value:k}],sequence:G??q.sequence}}var If="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",B1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",J1,Q1,q1,Oy=(T,f=!1)=>{if(f)return T.toLowerCase();switch(T){case"uUSK":case"USK":return If;case"uYUM":case"YUM":return B1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return T}},MT=({symbol:T,chain:f})=>{if(f===A.Maya)return(T.toUpperCase()!=="CACAO"?T:`${A.Maya}.${T}`).toUpperCase();if(f===A.THORChain)return(["RUNE","TCY","RUJI"].includes(T.toUpperCase())?`${A.THORChain}.${T}`:T).toUpperCase();return Oy(T,!1)},KG=(T)=>{switch(T){case A.Maya:case A.THORChain:return"/types.MsgSend";case A.Cosmos:case A.Kujira:case A.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new Z1("toolbox_cosmos_not_supported",{chain:T})}},uG,Pf=(T,f)=>{let X=uG[T.toLowerCase()];if(!X)return kf.from({asset:T,fromBaseDecimal:8,value:f});let{chain:y,asset:L,decimals:G}=X,x=y?{chain:y}:{asset:L};return kf.from({...x,fromBaseDecimal:G,value:f})};var YT=P(()=>{J1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},Q1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},q1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};uG={atom:{chain:A.Cosmos,decimals:Zy(A.Cosmos).baseDecimal},cacao:{chain:A.Maya,decimals:10},kuji:{chain:A.Kujira,decimals:Zy(A.Kujira).baseDecimal},maya:{asset:`${A.Maya}.${A.Maya}`,decimals:4},rune:{chain:A.THORChain,decimals:Zy(A.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Zy(A.THORChain).baseDecimal},uatom:{chain:A.Cosmos,decimals:Zy(A.Cosmos).baseDecimal},ukuji:{chain:A.Kujira,decimals:Zy(A.Kujira).baseDecimal},usdc:{chain:A.Noble,decimals:Zy(A.Noble).baseDecimal},uusdc:{chain:A.Noble,decimals:Zy(A.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Zy(A.THORChain).baseDecimal},[If.toLowerCase()]:{asset:`${A.Kujira}.USK`,decimals:Zy(A.Kujira).baseDecimal}}});var z1={};Ly(z1,{$root:()=>C});import p from"protobufjs/minimal.js";var w,Gy,I,C;var _1=P(()=>{w=p.Reader,Gy=p.Writer,I=p.util,C=p.roots.default||(p.roots.default={});C.common=(()=>{let T={};return T.Asset=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.chain="",f.prototype.symbol="",f.prototype.ticker="",f.prototype.synth=!1,f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))L.uint32(10).string(y.chain);if(y.symbol!=null&&Object.hasOwnProperty.call(y,"symbol"))L.uint32(18).string(y.symbol);if(y.ticker!=null&&Object.hasOwnProperty.call(y,"ticker"))L.uint32(26).string(y.ticker);if(y.synth!=null&&Object.hasOwnProperty.call(y,"synth"))L.uint32(32).bool(y.synth);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.Asset;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.chain=y.string();break;case 2:x.symbol=y.string();break;case 3:x.ticker=y.string();break;case 4:x.synth=y.bool();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.chain!=null&&y.hasOwnProperty("chain")){if(!I.isString(y.chain))return"chain: string expected"}if(y.symbol!=null&&y.hasOwnProperty("symbol")){if(!I.isString(y.symbol))return"symbol: string expected"}if(y.ticker!=null&&y.hasOwnProperty("ticker")){if(!I.isString(y.ticker))return"ticker: string expected"}if(y.synth!=null&&y.hasOwnProperty("synth")){if(typeof y.synth!=="boolean")return"synth: boolean expected"}return null},f.fromObject=function(y){if(y instanceof C.common.Asset)return y;let L=new C.common.Asset;if(y.chain!=null)L.chain=String(y.chain);if(y.symbol!=null)L.symbol=String(y.symbol);if(y.ticker!=null)L.ticker=String(y.ticker);if(y.synth!=null)L.synth=Boolean(y.synth);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)G.chain="",G.symbol="",G.ticker="",G.synth=!1;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.symbol!=null&&y.hasOwnProperty("symbol"))G.symbol=y.symbol;if(y.ticker!=null&&y.hasOwnProperty("ticker"))G.ticker=y.ticker;if(y.synth!=null&&y.hasOwnProperty("synth"))G.synth=y.synth;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.Coin=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.asset=null,f.prototype.amount="",f.prototype.decimals=I.Long?I.Long.fromBits(0,0,!1):0,f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.asset!=null&&Object.hasOwnProperty.call(y,"asset"))C.common.Asset.encode(y.asset,L.uint32(10).fork()).ldelim();if(y.amount!=null&&Object.hasOwnProperty.call(y,"amount"))L.uint32(18).string(y.amount);if(y.decimals!=null&&Object.hasOwnProperty.call(y,"decimals"))L.uint32(24).int64(y.decimals);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.Coin;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.asset=C.common.Asset.decode(y,y.uint32());break;case 2:x.amount=y.string();break;case 3:x.decimals=y.int64();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.asset!=null&&y.hasOwnProperty("asset")){let L=C.common.Asset.verify(y.asset);if(L)return"asset."+L}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!I.isString(y.amount))return"amount: string expected"}if(y.decimals!=null&&y.hasOwnProperty("decimals")){if(!I.isInteger(y.decimals)&&!(y.decimals&&I.isInteger(y.decimals.low)&&I.isInteger(y.decimals.high)))return"decimals: integer|Long expected"}return null},f.fromObject=function(y){if(y instanceof C.common.Coin)return y;let L=new C.common.Coin;if(y.asset!=null){if(typeof y.asset!=="object")throw TypeError(".common.Coin.asset: object expected");L.asset=C.common.Asset.fromObject(y.asset)}if(y.amount!=null)L.amount=String(y.amount);if(y.decimals!=null){if(I.Long)(L.decimals=I.Long.fromValue(y.decimals)).unsigned=!1;else if(typeof y.decimals==="string")L.decimals=Number.parseInt(y.decimals,10);else if(typeof y.decimals==="number")L.decimals=y.decimals;else if(typeof y.decimals==="object")L.decimals=new I.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber()}return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)if(G.asset=null,G.amount="",I.Long){let x=new I.Long(0,0,!1);G.decimals=L.longs===String?x.toString():L.longs===Number?x.toNumber():x}else G.decimals=L.longs===String?"0":0;if(y.asset!=null&&y.hasOwnProperty("asset"))G.asset=C.common.Asset.toObject(y.asset,L);if(y.amount!=null&&y.hasOwnProperty("amount"))G.amount=y.amount;if(y.decimals!=null&&y.hasOwnProperty("decimals"))if(typeof y.decimals==="number")G.decimals=L.longs===String?String(y.decimals):y.decimals;else G.decimals=L.longs===String?I.Long.prototype.toString.call(y.decimals):L.longs===Number?new I.LongBits(y.decimals.low>>>0,y.decimals.high>>>0).toNumber():y.decimals;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.PubKeySet=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.secp256k1="",f.prototype.ed25519="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.secp256k1!=null&&Object.hasOwnProperty.call(y,"secp256k1"))L.uint32(10).string(y.secp256k1);if(y.ed25519!=null&&Object.hasOwnProperty.call(y,"ed25519"))L.uint32(18).string(y.ed25519);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.PubKeySet;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.secp256k1=y.string();break;case 2:x.ed25519=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1")){if(!I.isString(y.secp256k1))return"secp256k1: string expected"}if(y.ed25519!=null&&y.hasOwnProperty("ed25519")){if(!I.isString(y.ed25519))return"ed25519: string expected"}return null},f.fromObject=function(y){if(y instanceof C.common.PubKeySet)return y;let L=new C.common.PubKeySet;if(y.secp256k1!=null)L.secp256k1=String(y.secp256k1);if(y.ed25519!=null)L.ed25519=String(y.ed25519);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)G.secp256k1="",G.ed25519="";if(y.secp256k1!=null&&y.hasOwnProperty("secp256k1"))G.secp256k1=y.secp256k1;if(y.ed25519!=null&&y.hasOwnProperty("ed25519"))G.ed25519=y.ed25519;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.Tx=(()=>{function f(X){if(this.coins=[],this.gas=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.id="",f.prototype.chain="",f.prototype.fromAddress="",f.prototype.toAddress="",f.prototype.coins=I.emptyArray,f.prototype.gas=I.emptyArray,f.prototype.memo="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.id!=null&&Object.hasOwnProperty.call(y,"id"))L.uint32(10).string(y.id);if(y.chain!=null&&Object.hasOwnProperty.call(y,"chain"))L.uint32(18).string(y.chain);if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))L.uint32(26).string(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))L.uint32(34).string(y.toAddress);if(y.coins?.length)for(let G=0;G<y.coins.length;++G)C.common.Coin.encode(y.coins[G],L.uint32(42).fork()).ldelim();if(y.gas?.length)for(let G=0;G<y.gas.length;++G)C.common.Coin.encode(y.gas[G],L.uint32(50).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))L.uint32(58).string(y.memo);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.Tx;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.id=y.string();break;case 2:x.chain=y.string();break;case 3:x.fromAddress=y.string();break;case 4:x.toAddress=y.string();break;case 5:if(!x.coins?.length)x.coins=[];x.coins.push(C.common.Coin.decode(y,y.uint32()));break;case 6:if(!x.gas?.length)x.gas=[];x.gas.push(C.common.Coin.decode(y,y.uint32()));break;case 7:x.memo=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.id!=null&&y.hasOwnProperty("id")){if(!I.isString(y.id))return"id: string expected"}if(y.chain!=null&&y.hasOwnProperty("chain")){if(!I.isString(y.chain))return"chain: string expected"}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!I.isString(y.fromAddress))return"fromAddress: string expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!I.isString(y.toAddress))return"toAddress: string expected"}if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let G=C.common.Coin.verify(y.coins[L]);if(G)return"coins."+G}}if(y.gas!=null&&y.hasOwnProperty("gas")){if(!Array.isArray(y.gas))return"gas: array expected";for(let L=0;L<y.gas.length;++L){let G=C.common.Coin.verify(y.gas[L]);if(G)return"gas."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!I.isString(y.memo))return"memo: string expected"}return null},f.fromObject=function(y){if(y instanceof C.common.Tx)return y;let L=new C.common.Tx;if(y.id!=null)L.id=String(y.id);if(y.chain!=null)L.chain=String(y.chain);if(y.fromAddress!=null)L.fromAddress=String(y.fromAddress);if(y.toAddress!=null)L.toAddress=String(y.toAddress);if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Tx.coins: array expected");L.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Tx.coins: object expected");L.coins[G]=C.common.Coin.fromObject(y.coins[G])}}if(y.gas){if(!Array.isArray(y.gas))throw TypeError(".common.Tx.gas: array expected");L.gas=[];for(let G=0;G<y.gas.length;++G){if(typeof y.gas[G]!=="object")throw TypeError(".common.Tx.gas: object expected");L.gas[G]=C.common.Coin.fromObject(y.gas[G])}}if(y.memo!=null)L.memo=String(y.memo);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.coins=[],G.gas=[];if(L.defaults)G.id="",G.chain="",G.fromAddress="",G.toAddress="",G.memo="";if(y.id!=null&&y.hasOwnProperty("id"))G.id=y.id;if(y.chain!=null&&y.hasOwnProperty("chain"))G.chain=y.chain;if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=y.toAddress;if(y.coins?.length){G.coins=[];for(let x=0;x<y.coins.length;++x)G.coins[x]=C.common.Coin.toObject(y.coins[x],L)}if(y.gas?.length){G.gas=[];for(let x=0;x<y.gas.length;++x)G.gas[x]=C.common.Coin.toObject(y.gas[x],L)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.Fee=(()=>{function f(X){if(this.coins=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.coins=I.emptyArray,f.prototype.poolDeduct="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)C.common.Coin.encode(y.coins[G],L.uint32(10).fork()).ldelim();if(y.poolDeduct!=null&&Object.hasOwnProperty.call(y,"poolDeduct"))L.uint32(18).string(y.poolDeduct);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.Fee;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:if(!x.coins?.length)x.coins=[];x.coins.push(C.common.Coin.decode(y,y.uint32()));break;case 2:x.poolDeduct=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let G=C.common.Coin.verify(y.coins[L]);if(G)return"coins."+G}}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct")){if(!I.isString(y.poolDeduct))return"poolDeduct: string expected"}return null},f.fromObject=function(y){if(y instanceof C.common.Fee)return y;let L=new C.common.Fee;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".common.Fee.coins: array expected");L.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".common.Fee.coins: object expected");L.coins[G]=C.common.Coin.fromObject(y.coins[G])}}if(y.poolDeduct!=null)L.poolDeduct=String(y.poolDeduct);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.coins=[];if(L.defaults)G.poolDeduct="";if(y.coins?.length){G.coins=[];for(let x=0;x<y.coins.length;++x)G.coins[x]=C.common.Coin.toObject(y.coins[x],L)}if(y.poolDeduct!=null&&y.hasOwnProperty("poolDeduct"))G.poolDeduct=y.poolDeduct;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.ProtoUint=(()=>{function f(X){if(X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.value="",f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.value!=null&&Object.hasOwnProperty.call(y,"value"))L.uint32(10).string(y.value);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.common.ProtoUint;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.value=y.string();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.value!=null&&y.hasOwnProperty("value")){if(!I.isString(y.value))return"value: string expected"}return null},f.fromObject=function(y){if(y instanceof C.common.ProtoUint)return y;let L=new C.common.ProtoUint;if(y.value!=null)L.value=String(y.value);return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.defaults)G.value="";if(y.value!=null&&y.hasOwnProperty("value"))G.value=y.value;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T})();C.types=(()=>{let T={};return T.MsgDeposit=(()=>{function f(X){if(this.coins=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.coins=I.emptyArray,f.prototype.memo="",f.prototype.signer=I.newBuffer([]),f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.coins?.length)for(let G=0;G<y.coins.length;++G)C.common.Coin.encode(y.coins[G],L.uint32(10).fork()).ldelim();if(y.memo!=null&&Object.hasOwnProperty.call(y,"memo"))L.uint32(18).string(y.memo);if(y.signer!=null&&Object.hasOwnProperty.call(y,"signer"))L.uint32(26).bytes(y.signer);return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.types.MsgDeposit;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:if(!x.coins?.length)x.coins=[];x.coins.push(C.common.Coin.decode(y,y.uint32()));break;case 2:x.memo=y.string();break;case 3:x.signer=y.bytes();break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.coins!=null&&y.hasOwnProperty("coins")){if(!Array.isArray(y.coins))return"coins: array expected";for(let L=0;L<y.coins.length;++L){let G=C.common.Coin.verify(y.coins[L]);if(G)return"coins."+G}}if(y.memo!=null&&y.hasOwnProperty("memo")){if(!I.isString(y.memo))return"memo: string expected"}if(y.signer!=null&&y.hasOwnProperty("signer")){if(!(y.signer&&typeof y.signer.length==="number"||I.isString(y.signer)))return"signer: buffer expected"}return null},f.fromObject=function(y){if(y instanceof C.types.MsgDeposit)return y;let L=new C.types.MsgDeposit;if(y.coins){if(!Array.isArray(y.coins))throw TypeError(".types.MsgDeposit.coins: array expected");L.coins=[];for(let G=0;G<y.coins.length;++G){if(typeof y.coins[G]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");L.coins[G]=C.common.Coin.fromObject(y.coins[G])}}if(y.memo!=null)L.memo=String(y.memo);if(y.signer!=null){if(typeof y.signer==="string")I.base64.decode(y.signer,L.signer=I.newBuffer(I.base64.length(y.signer)),0);else if(y.signer.length)L.signer=y.signer}return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.coins=[];if(L.defaults){if(G.memo="",L.bytes===String)G.signer="";else if(G.signer=[],L.bytes!==Array)G.signer=I.newBuffer(G.signer)}if(y.coins?.length){G.coins=[];for(let x=0;x<y.coins.length;++x)G.coins[x]=C.common.Coin.toObject(y.coins[x],L)}if(y.memo!=null&&y.hasOwnProperty("memo"))G.memo=y.memo;if(y.signer!=null&&y.hasOwnProperty("signer"))G.signer=L.bytes===String?I.base64.encode(y.signer,0,y.signer.length):L.bytes===Array?Array.prototype.slice.call(y.signer):y.signer;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T.MsgSend=(()=>{function f(X){if(this.amount=[],X){for(let y=Object.keys(X),L=0;L<y.length;++L)if(X[y[L]]!=null)this[y[L]]=X[y[L]]}}return f.prototype.fromAddress=I.newBuffer([]),f.prototype.toAddress=I.newBuffer([]),f.prototype.amount=I.emptyArray,f.create=function(y){return new f(y)},f.encode=function(y,L){if(!L)L=Gy.create();if(y.fromAddress!=null&&Object.hasOwnProperty.call(y,"fromAddress"))L.uint32(10).bytes(y.fromAddress);if(y.toAddress!=null&&Object.hasOwnProperty.call(y,"toAddress"))L.uint32(18).bytes(y.toAddress);if(y.amount?.length)for(let G=0;G<y.amount.length;++G)C.cosmos.base.v1beta1.Coin.encode(y.amount[G],L.uint32(26).fork()).ldelim();return L},f.encodeDelimited=function(y,L){return this.encode(y,L).ldelim()},f.decode=function(y,L){if(!(y instanceof w))y=w.create(y);let G=L===void 0?y.len:y.pos+L,x=new C.types.MsgSend;while(y.pos<G){let Z=y.uint32();switch(Z>>>3){case 1:x.fromAddress=y.bytes();break;case 2:x.toAddress=y.bytes();break;case 3:if(!x.amount?.length)x.amount=[];x.amount.push(C.cosmos.base.v1beta1.Coin.decode(y,y.uint32()));break;default:y.skipType(Z&7);break}}return x},f.decodeDelimited=function(y){if(!(y instanceof w))y=new w(y);return this.decode(y,y.uint32())},f.verify=function(y){if(typeof y!=="object"||y===null)return"object expected";if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress")){if(!(y.fromAddress&&typeof y.fromAddress.length==="number"||I.isString(y.fromAddress)))return"fromAddress: buffer expected"}if(y.toAddress!=null&&y.hasOwnProperty("toAddress")){if(!(y.toAddress&&typeof y.toAddress.length==="number"||I.isString(y.toAddress)))return"toAddress: buffer expected"}if(y.amount!=null&&y.hasOwnProperty("amount")){if(!Array.isArray(y.amount))return"amount: array expected";for(let L=0;L<y.amount.length;++L){let G=C.cosmos.base.v1beta1.Coin.verify(y.amount[L]);if(G)return"amount."+G}}return null},f.fromObject=function(y){if(y instanceof C.types.MsgSend)return y;let L=new C.types.MsgSend;if(y.fromAddress!=null){if(typeof y.fromAddress==="string")I.base64.decode(y.fromAddress,L.fromAddress=I.newBuffer(I.base64.length(y.fromAddress)),0);else if(y.fromAddress.length)L.fromAddress=y.fromAddress}if(y.toAddress!=null){if(typeof y.toAddress==="string")I.base64.decode(y.toAddress,L.toAddress=I.newBuffer(I.base64.length(y.toAddress)),0);else if(y.toAddress.length)L.toAddress=y.toAddress}if(y.amount){if(!Array.isArray(y.amount))throw TypeError(".types.MsgSend.amount: array expected");L.amount=[];for(let G=0;G<y.amount.length;++G){if(typeof y.amount[G]!=="object")throw TypeError(".types.MsgSend.amount: object expected");L.amount[G]=C.cosmos.base.v1beta1.Coin.fromObject(y.amount[G])}}return L},f.toObject=function(y,L){if(!L)L={};let G={};if(L.arrays||L.defaults)G.amount=[];if(L.defaults){if(L.bytes===String)G.fromAddress="";else if(G.fromAddress=[],L.bytes!==Array)G.fromAddress=I.newBuffer(G.fromAddress);if(L.bytes===String)G.toAddress="";else if(G.toAddress=[],L.bytes!==Array)G.toAddress=I.newBuffer(G.toAddress)}if(y.fromAddress!=null&&y.hasOwnProperty("fromAddress"))G.fromAddress=L.bytes===String?I.base64.encode(y.fromAddress,0,y.fromAddress.length):L.bytes===Array?Array.prototype.slice.call(y.fromAddress):y.fromAddress;if(y.toAddress!=null&&y.hasOwnProperty("toAddress"))G.toAddress=L.bytes===String?I.base64.encode(y.toAddress,0,y.toAddress.length):L.bytes===Array?Array.prototype.slice.call(y.toAddress):y.toAddress;if(y.amount?.length){G.amount=[];for(let x=0;x<y.amount.length;++x)G.amount[x]=C.cosmos.base.v1beta1.Coin.toObject(y.amount[x],L)}return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},f})(),T})();C.cosmos=(()=>{let T={};return T.base=(()=>{let f={};return f.v1beta1=(()=>{let X={};return X.Coin=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))x.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))x.uint32(18).string(G.amount);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof w))G=w.create(G);let Z=x===void 0?G.len:G.pos+x,B=new C.cosmos.base.v1beta1.Coin;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.denom=G.string();break;case 2:B.amount=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof w))G=new w(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!I.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!I.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.Coin)return G;let x=new C.cosmos.base.v1beta1.Coin;if(G.denom!=null)x.denom=String(G.denom);if(G.amount!=null)x.amount=String(G.amount);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.denom="",Z.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))Z.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))Z.amount=G.amount;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X.DecCoin=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.denom="",y.prototype.amount="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.denom!=null&&Object.hasOwnProperty.call(G,"denom"))x.uint32(10).string(G.denom);if(G.amount!=null&&Object.hasOwnProperty.call(G,"amount"))x.uint32(18).string(G.amount);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof w))G=w.create(G);let Z=x===void 0?G.len:G.pos+x,B=new C.cosmos.base.v1beta1.DecCoin;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.denom=G.string();break;case 2:B.amount=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof w))G=new w(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.denom!=null&&G.hasOwnProperty("denom")){if(!I.isString(G.denom))return"denom: string expected"}if(G.amount!=null&&G.hasOwnProperty("amount")){if(!I.isString(G.amount))return"amount: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.DecCoin)return G;let x=new C.cosmos.base.v1beta1.DecCoin;if(G.denom!=null)x.denom=String(G.denom);if(G.amount!=null)x.amount=String(G.amount);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.denom="",Z.amount="";if(G.denom!=null&&G.hasOwnProperty("denom"))Z.denom=G.denom;if(G.amount!=null&&G.hasOwnProperty("amount"))Z.amount=G.amount;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X.IntProto=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.int="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.int!=null&&Object.hasOwnProperty.call(G,"int"))x.uint32(10).string(G.int);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof w))G=w.create(G);let Z=x===void 0?G.len:G.pos+x,B=new C.cosmos.base.v1beta1.IntProto;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.int=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof w))G=new w(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.int!=null&&G.hasOwnProperty("int")){if(!I.isString(G.int))return"int: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.IntProto)return G;let x=new C.cosmos.base.v1beta1.IntProto;if(G.int!=null)x.int=String(G.int);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.int="";if(G.int!=null&&G.hasOwnProperty("int"))Z.int=G.int;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X.DecProto=(()=>{function y(L){if(L){for(let G=Object.keys(L),x=0;x<G.length;++x)if(L[G[x]]!=null)this[G[x]]=L[G[x]]}}return y.prototype.dec="",y.create=function(G){return new y(G)},y.encode=function(G,x){if(!x)x=Gy.create();if(G.dec!=null&&Object.hasOwnProperty.call(G,"dec"))x.uint32(10).string(G.dec);return x},y.encodeDelimited=function(G,x){return this.encode(G,x).ldelim()},y.decode=function(G,x){if(!(G instanceof w))G=w.create(G);let Z=x===void 0?G.len:G.pos+x,B=new C.cosmos.base.v1beta1.DecProto;while(G.pos<Z){let J=G.uint32();switch(J>>>3){case 1:B.dec=G.string();break;default:G.skipType(J&7);break}}return B},y.decodeDelimited=function(G){if(!(G instanceof w))G=new w(G);return this.decode(G,G.uint32())},y.verify=function(G){if(typeof G!=="object"||G===null)return"object expected";if(G.dec!=null&&G.hasOwnProperty("dec")){if(!I.isString(G.dec))return"dec: string expected"}return null},y.fromObject=function(G){if(G instanceof C.cosmos.base.v1beta1.DecProto)return G;let x=new C.cosmos.base.v1beta1.DecProto;if(G.dec!=null)x.dec=String(G.dec);return x},y.toObject=function(G,x){if(!x)x={};let Z={};if(x.defaults)Z.dec="";if(G.dec!=null&&G.hasOwnProperty("dec"))Z.dec=G.dec;return Z},y.prototype.toJSON=function(){return this.constructor.toObject(this,p.util.toJSONOptions)},y})(),X})(),f})(),T})()});import{Chain as bG}from"@swapkit/helpers";async function Ky(){let{$root:T}=await Promise.resolve().then(() => (_1(),z1)),f=await import("@cosmjs/proto-signing"),X=f.Registry??f.default?.Registry,y=await import("@cosmjs/stargate"),L=y.defaultRegistryTypes??y.default?.defaultRegistryTypes;return new X([...L,["/types.MsgSend",T.types.MsgSend],["/types.MsgDeposit",T.types.MsgDeposit]])}async function Ey(T){let f=await import("@cosmjs/stargate"),X=f.AminoTypes??f.default?.AminoTypes,y=T===bG.THORChain?"thorchain":"mayachain";return new X({"/types.MsgDeposit":{aminoType:`${y}/MsgDeposit`,fromAmino:({signer:L,...G})=>({...G,signer:zT(L)}),toAmino:({signer:L,...G})=>({...G,signer:_T(L)})},"/types.MsgSend":{aminoType:`${y}/MsgSend`,fromAmino:({from_address:L,to_address:G,...x})=>({...x,fromAddress:zT(L),toAddress:zT(G)}),toAmino:({fromAddress:L,toAddress:G,...x})=>({...x,from_address:_T(L),to_address:_T(G)})}})}var wf=P(()=>{Df()});import{AssetValue as nG,Chain as jT,getChainConfig as M1,SwapKitError as jG}from"@swapkit/helpers";function Ff(T){return function(X){let{assetValue:y,recipient:L,memo:G,sender:x,asSignable:Z,asAminoMessage:B}=X;if(L)return Y1(T)({asAminoMessage:B,asSignable:Z,assetValue:y,memo:G,recipient:L,sender:x});return U1(T)({asAminoMessage:B,asSignable:Z,assetValue:y,memo:G,sender:x})}}function wy(T){if(T.type==="thorchain/MsgSend"||T.type==="mayachain/MsgSend")return T;return{...T,value:{...T.value,coins:T.value.coins.map((f)=>{let X=nG.from({asset:f.asset}),y=(X.isSynthetic?X.symbol.split("/")?.[1]:X.symbol)?.toUpperCase(),L=(X.isSynthetic?X.symbol.split("/")?.[0]:X.chain)?.toUpperCase();return{...f,asset:{chain:L,symbol:y,synth:X.isSynthetic,ticker:X.ticker}}})}}}async function UT({chain:T,memo:f,msgs:X}){let y=await Ky(),L=await Ey(T),G={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:f,messages:X.map((x)=>L.fromAmino(x))}};return y.encode(G)}var hG,pG,lf=({sender:T,recipient:f,assetValue:X})=>{return{type:`${X.chain===jT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:X.getBaseValue("string"),denom:Oy(X.symbol,!0)}],from_address:T,to_address:f}}},vf=({sender:T,assetValue:f,memo:X=""})=>{return{type:`${f.chain===jT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:f.getBaseValue("string"),asset:MT(f)}],memo:X,signer:T}}},hT=({sender:T,recipient:f,assetValue:X,memo:y})=>{return!f?vf({assetValue:X,memo:y,sender:T}):lf({assetValue:X,recipient:f,sender:T})},Py=async(T,f)=>{return(await Ey(f)).fromAmino(T)},N1=async({rpcUrl:T,sender:f})=>{let y=await(await Uy(T)).getAccount(f);if(!y)throw new jG("toolbox_cosmos_account_not_found",{sender:f});return y},Y1=(T)=>async({sender:f,recipient:X,assetValue:y,memo:L="",asSignable:G=!0,asAminoMessage:x=!1,sequence:Z,accountNumber:B})=>{let J=await N1({rpcUrl:T,sender:f}),Q=y.chain,{chainId:q}=M1(Q),z=lf({assetValue:y,recipient:X,sender:f}),M=G?await Py(x?z:wy(z),Q):z;return{accountNumber:B||J.accountNumber,chainId:q,fee:Yy(Q),memo:L,msgs:[M],sequence:Z||J.sequence}},U1=(T)=>async({sender:f,assetValue:X,memo:y="",asSignable:L=!0,asAminoMessage:G=!1,sequence:x,accountNumber:Z})=>{let B=await N1({rpcUrl:T,sender:f}),J=X.chain,{chainId:Q}=M1(J),q=vf({assetValue:X,memo:y,sender:f}),z=L?await Py(G?q:wy(q),J):q;return{accountNumber:Z||B.accountNumber,chainId:Q,fee:Yy(J),memo:y,msgs:[z],sequence:x||B.sequence}};var H1=P(()=>{YT();wf();hG=Yy(jT.THORChain).gas,pG=Yy(jT.Maya).gas});var W1=()=>{};var C1=P(()=>{W1()});var Af=P(()=>{Df();H1();wf();C1()});import{base64 as $f,bech32 as Sf}from"@scure/base";import{AssetValue as P1,applyFeeMultiplier as R1,Chain as r,CosmosChainPrefixes as w1,DerivationPath as oG,derivationPathToString as D1,FeeOption as Kf,getChainConfig as mG,getRPCUrl as cG,NetworkDerivationPath as tG,SKConfig as gG,SwapKitError as pT,SwapKitNumber as Vf,updateDerivationPath as iG}from"@swapkit/helpers";import{SwapKitApi as l1}from"@swapkit/helpers/api";import{match as dG,P as k1}from"ts-pattern";async function bf(T,f){try{let y=(await l1.getGasRate()).find((L)=>L.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(X){return f}}async function uf({phrase:T,prefix:f,...X}){let y=await import("@cosmjs/proto-signing"),L=y.DirectSecp256k1HdWallet??y.default?.DirectSecp256k1HdWallet,G=await import("@cosmjs/crypto"),x=G.stringToPath??G.default?.stringToPath,Z="derivationPath"in X?X.derivationPath:`${oG[X.chain]}/${X.index}`;return L.fromMnemonic(T,{hdPaths:[x(Z)],prefix:f})}async function rG({privateKey:T,prefix:f}){let X=await import("@cosmjs/proto-signing");return(X.DirectSecp256k1Wallet??X.default?.DirectSecp256k1Wallet).fromKey(T,f)}function v1(T){return async function({signature:X,message:y,address:L}){let G=await T(L);if(!G?.pubkey)throw new pT("toolbox_cosmos_verify_signature_no_pubkey");let x=await import("@cosmjs/crypto"),Z=x.Secp256k1Signature??x.default?.Secp256k1Signature,B=x.Secp256k1??x.default?.Secp256k1,J=Z.fromFixedLength($f.decode(X));return B.verifySignature(J,$f.decode(y),G.pubkey.value)}}async function HT({chain:T,...f}){let X=await cG(T),y=w1[T],L="index"in f?f.index||0:0,G=D1("derivationPath"in f&&f.derivationPath?f.derivationPath:iG(tG[T],{index:L})),x=await dG(f).with({phrase:k1.string},({phrase:q})=>uf({derivationPath:G,phrase:q,prefix:y})).with({signer:k1.any},({signer:q})=>q).otherwise(()=>{return});async function Z(q){return(await Uy(X)).getAccount(q)}async function B(){let[q]=await x?.getAccounts()||[];return q?.address}async function J(){let[q]=await x?.getAccounts()||[];if(!q?.pubkey)throw new pT("toolbox_cosmos_signer_not_defined");return $f.encode(q?.pubkey)}async function Q({recipient:q,assetValue:z,memo:M="",feeRate:_,feeOptionKey:W=Kf.Fast}){let k=await B();if(!(x&&k))throw new pT("toolbox_cosmos_signer_not_defined");let v=P1.from({chain:T}),F=MT(v),b=_||T2((await O1(T,I1[T]))[W],F),K=await NT(X,x),i=[{amount:z.getBaseValue("string"),denom:Oy(`u${z.symbol}`).toLowerCase()}],{transactionHash:m}=await K.sendTokens(k,q,i,b,M);return m}return{createPrivateKeyFromPhrase:G2(G),createTransaction:Ef,fetchFeeRateFromSwapKit:bf,getAccount:Z,getAddress:B,getBalance:async(q,z)=>{let M=await E1(X)(q);return await Promise.all(M.filter(({denom:_})=>_&&!_.includes("IBC/")).map(({denom:_,amount:W})=>{let k=[r.THORChain,r.Maya].includes(T)&&(_.includes("/")||_.includes("˜"))?`${T}.${_}`:_;return Pf(k,W)}))},getBalanceAsDenoms:E1(X),getFees:()=>O1(T,I1[T]),getPubKey:J,getSignerFromPhrase:async({phrase:q,derivationPath:z})=>uf({derivationPath:D1(z),index:L,phrase:q,prefix:y}),getSignerFromPrivateKey:async(q)=>{let z=await import("@cosmjs/proto-signing");return(z.DirectSecp256k1Wallet??z.default?.DirectSecp256k1Wallet).fromKey(q,y)},transfer:Q,validateAddress:A1(y),verifySignature:v1(Z)}}async function F1(T,f){try{let y=(await l1.getGasRate()).find((L)=>L.chainId===T)?.value;return y?Number.parseFloat(y):f}catch(X){return f}}function sG({address:T,chain:f,prefix:X}){let y=X||y2(f);if(!(y&&T))throw new pT("toolbox_cosmos_validate_address_prefix_not_found");return A1(y)(T)}function eG({assetValue:{chain:T}}){return P1.from({chain:T,value:f2(T)})}function y2(T){let{isStagenet:f}=gG.get("envs"),X=T?[r.THORChain,r.Maya].includes(T)&&f:!1,y=T?w1[T]:void 0;return X?`s${y}`:y}async function O1(T,f){let{chainId:X,baseDecimal:y}=mG(T),L=await bf(X,f);return{average:Vf.fromBigInt(BigInt(L),y),fast:Vf.fromBigInt(BigInt(R1(L,Kf.Fast,!0)),y),fastest:Vf.fromBigInt(BigInt(R1(L,Kf.Fastest,!0)),y)}}function T2(T,f){return{amount:[{amount:T.getBaseValue("string"),denom:f}],gas:"200000"}}function f2(T){return{[r.Cosmos]:0.007,[r.Kujira]:0.02,[r.Noble]:0.01,[r.THORChain]:0.02,[r.Maya]:0.02}[T]||0}function A1(T){return function(X){if(!X.startsWith(T))return!1;try{let{prefix:y,words:L}=Sf.decode(X);return Sf.encode(y,L)===X.toLocaleLowerCase()}catch(y){return!1}}}function E1(T){return async function(X){return(await(await Uy(T)).getAllBalances(X)).map((x)=>({...x,denom:x.denom.includes("/")?x.denom.toUpperCase():x.denom}))}}function G2(T){return async function(X){let y=await import("@cosmjs/crypto"),L=y.stringToPath??y.default?.stringToPath,G=y.Slip10Curve??y.default?.Slip10Curve,x=y.Slip10??y.default?.Slip10,Z=y.EnglishMnemonic??y.default?.EnglishMnemonic,B=y.Bip39??y.default?.Bip39,J=new Z(X),Q=await B.mnemonicToSeed(J),{privkey:q}=x.derivePath(G.Secp256k1,Q,L(T));return q}}var I1,aG;var oT=P(()=>{YT();I1={[r.Cosmos]:500,[r.Kujira]:1000,[r.Noble]:1000,[r.THORChain]:5000000,[r.Maya]:5000000};aG=F1});import{base64 as uy}from"@scure/base";import{Chain as L2,CosmosChainPrefixes as X2,derivationPathToString as x2,FeeOption as nf,getChainConfig as Z2,getRPCUrl as B2,NetworkDerivationPath as J2,RequestClient as Q2,SKConfig as S1,SwapKitError as V1,SwapKitNumber as $1,updateDerivationPath as q2}from"@swapkit/helpers";import{match as z2,P as K1}from"ts-pattern";function _2({prefix:T,derivationPath:f}){return async function(y,L=0){let G=await import("@cosmjs/amino"),x=G.Secp256k1HdWallet??G.default?.Secp256k1HdWallet,Z=await import("@cosmjs/crypto"),B=Z.stringToPath??Z.default?.stringToPath;return x.fromMnemonic(y,{hdPaths:[B(`${f}/${L}`)],prefix:T})}}function M2(T){return uy.encode(T)}function N2(T){return async function({wallet:X,tx:y}){let{msgs:L,accountNumber:G,sequence:x,chainId:Z,fee:B,memo:J}=typeof y==="string"?JSON.parse(y):y,Q=(await X.getAccounts())?.[0]?.address||"",q=await Ey(T),z=await Ky(),M=await Of(X,{aminoTypes:q,registry:z}),_=[];for(let v of L){let F=await Py(v,T);_.push(F)}let{signatures:[W]}=await M.sign(Q,_,B,J,{accountNumber:G,chainId:Z,sequence:x});return{bodyBytes:await UT({chain:T,memo:J,msgs:L.map(wy)}),signature:M2(W)}}}function Y2({prefix:T,rpcUrl:f}){return async function(y,L,G,x,Z){let{encodeSecp256k1Pubkey:B,pubkeyToAddress:J}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:Q}=(await import("@cosmjs/stargate")).default,{sequence:q,fee:z}=JSON.parse(y),M=await u1(G,x),_=L.map((v)=>[J(B(uy.decode(v.pubKey)),T),uy.decode(v.signature)]),W=await Uy(f),{transactionHash:k}=await W.broadcastTx(Q(M,q,z,Z,new Map(_)));return k}}async function u1(T,f,X=!0){let{createMultisigThresholdPubkey:y,encodeSecp256k1Pubkey:L}=(await import("@cosmjs/amino")).default;return y(T.map((G)=>L(uy.decode(G))),f,X)}function U2(T){return uy.decode(T)}async function H2({privateKey:T,message:f}){let{Secp256k1:X}=(await import("@cosmjs/crypto")).default,y=await X.createSignature(uy.decode(f),T);return uy.encode(Buffer.concat([y.r(32),y.s(32)]))}async function jf({chain:T,...f}){let X=S1.get("nodeUrls")[T],y=await B2(T),{isStagenet:L}=S1.get("envs"),G=T===L2.THORChain,x=`${L?"s":""}${X2[T]}`,Z="index"in f?f.index||0:0,B="derivationPath"in f&&f.derivationPath?f.derivationPath:q2(J2[T],{index:Z}),J=await HT({chain:T,...f}),Q=await z2(f).with({phrase:K1.string},({phrase:_})=>J.getSignerFromPhrase({derivationPath:B,phrase:_})).with({signer:K1.any},({signer:_})=>_).otherwise(()=>{return}),q=Yy(T);async function z(){let _,W=`${X}/${G?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:k}}=await Q2.get(W);if(!k||Number.isNaN(k)||k<0)throw new V1("toolbox_cosmos_invalid_fee",{nativeFee:k.toString()});_=new $1(k)}catch{_=new $1({decimal:Z2(T).baseDecimal,value:G?0.02:1})}return{[nf.Average]:_,[nf.Fast]:_,[nf.Fastest]:_}}async function M({assetValue:_,memo:W="",recipient:k}){let{TxRaw:v}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),F=(await Q?.getAccounts())?.[0]?.address;if(!(F&&Q))throw new V1("toolbox_cosmos_no_signer");let b="signAmino"in Q,K=await Ky(),i=await Ey(T),m=await NT(y,Q,{aminoTypes:i,registry:K}),s=hT({assetValue:_,memo:W,recipient:k,sender:F});if(b){let R=await Py(s,T),{signatures:O,authInfoBytes:E}=await m.sign(F,[R],q,W),l=v.encode({authInfoBytes:E,bodyBytes:await UT({chain:T,memo:W,msgs:[s].map(wy)}),signatures:O}).finish();return(await m.broadcastTx(l)).transactionHash}let uT=wy(s),N=await Py(uT,T);return(await m.signAndBroadcast(F,[N],q,W)).transactionHash}return{...J,broadcastMultisigTx:Y2({prefix:x,rpcUrl:y}),buildAminoMsg:hT,buildEncodedTxBody:UT,convertToSignable:Py,createDefaultAminoTypes:()=>Ey(T),createDefaultRegistry:Ky,createMultisig:u1,createTransaction:Ff(y),deposit:M,getFees:z,importSignature:U2,parseAminoMessageForDirectSigning:wy,pubkeyToAddress:async(_)=>{let{pubkeyToAddress:W}=(await import("@cosmjs/amino")).default;return W(_,x)},secp256k1HdWalletFromMnemonic:_2({derivationPath:x2(B),prefix:x}),signMultisigTx:N2(T),signWithPrivateKey:H2,transfer:M}}var hf=P(()=>{Af();YT();oT()});import{Chain as WT,SwapKitError as W2}from"@swapkit/helpers";var C2=(T,f)=>{switch(T){case WT.Cosmos:case WT.Kujira:case WT.Noble:return HT({chain:T,...f});case WT.Maya:case WT.THORChain:return jf({chain:T,...f});default:throw new W2("toolbox_cosmos_not_supported",{chain:T})}};var b1=P(()=>{oT();hf();oT();hf()});var mT={};Ly(mT,{verifySignature:()=>v1,transferMsgAmino:()=>lf,toBase64:()=>SG,parseAminoMessageForDirectSigning:()=>wy,getSignerFromPrivateKey:()=>rG,getSignerFromPhrase:()=>uf,getMsgSendDenom:()=>Oy,getFeeRateFromThorswap:()=>aG,getFeeRateFromSwapKit:()=>F1,getDenomWithChain:()=>MT,getDefaultChainFee:()=>Yy,getCreateTransaction:()=>Ff,getCosmosToolbox:()=>C2,getAssetFromDenom:()=>Pf,fromBase64:()=>VG,fetchFeeRateFromSwapKit:()=>bf,estimateTransactionFee:()=>eG,depositMsgAmino:()=>vf,createThorchainToolbox:()=>jf,createStargateClient:()=>Uy,createSigningStargateClient:()=>NT,createOfflineStargateClient:()=>Of,createDefaultRegistry:()=>Ky,createDefaultAminoTypes:()=>Ey,createCosmosToolbox:()=>HT,cosmosValidateAddress:()=>sG,cosmosCreateTransaction:()=>Ef,convertToSignable:()=>Py,buildTransferTx:()=>Y1,buildEncodedTxBody:()=>UT,buildDepositTx:()=>U1,buildAminoMsg:()=>hT,bech32ToBase64:()=>zT,base64ToBech32:()=>_T,YUM_KUJIRA_FACTORY_DENOM:()=>B1,USK_KUJIRA_FACTORY_DENOM:()=>If,THORCHAIN_GAS_VALUE:()=>hG,MAYA_GAS_VALUE:()=>pG,DEFAULT_NOBLE_FEE_MAINNET:()=>q1,DEFAULT_KUJI_FEE_MAINNET:()=>Q1,DEFAULT_COSMOS_FEE_MAINNET:()=>J1});var cT=P(()=>{Af();b1();YT()});import{AssetValue as R2,getChainConfig as D2}from"@swapkit/helpers";import{SwapKitApi as k2}from"@swapkit/helpers/api";function n1(){function T(){let f=Date.now(),X=pf||f;return pf=X,f>pf?f:X+1}return I2+T().toString(36)}function iy(T){return async function(X,y=!0){let L=await k2.getChainBalance({address:X,chain:T,scamFilter:y}),{baseDecimal:G}=D2(T);return L.map(({identifier:x,value:Z,decimal:B})=>{return new R2({decimal:B||G,identifier:x,value:Z})})}}var I2,pf=0;var CT=P(()=>{I2=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{SKConfig as O2,warnOnce as E2}from"@swapkit/helpers";function RT(T){let f=O2.get("apis")[T];if(f)return E2({condition:!0,id:"custom_evm_api_warning",warning:"Using custom EVM API. Be sure to implement all methods to avoid issues."}),f;return w2(T)}function P2(T){return T}function w2(T){return{getBalance:iy(T)}}var tT=P(()=>{CT()});import{Chain as h,getChainConfig as j1,getRPCUrl as l2,SwapKitError as v2}from"@swapkit/helpers";async function by(T,f){let{JsonRpcProvider:X}=await import("ethers");return new X(f||await l2(T))}function DT(T){return T>0n?`0x${T.toString(16)}`:"0x0"}function of(T){let{blockExplorerUrl:f,chainId:X,rpcUrl:y}=j1(T);return()=>T===h.Ethereum?void 0:{...F2({chain:T}),blockExplorerUrls:[f],chainId:X,rpcUrls:[y]}}function mf(T){return![h.Arbitrum,h.BinanceSmartChain].includes(T)}function F2({chain:T}){let{baseDecimal:f}=j1(T);switch(T){case h.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Aurora:return{chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:T}};case h.Base:return{chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Berachain:return{chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}};case h.BinanceSmartChain:return{chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}};case h.Gnosis:return{chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}};case h.Optimism:return{chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:h.Ethereum}};case h.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:h.Polygon}};default:throw new v2("toolbox_evm_not_supported",{chain:T})}}var dy=()=>{};var h1;var p1=P(()=>{h1=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as A2,applyFeeMultiplierToBigInt as ry,Chain as o,ContractAddress as By,FeeOption as j,isGasAsset as S2,SwapKitError as n,SwapKitNumber as gT}from"@swapkit/helpers";import{erc20ABI as kT}from"@swapkit/helpers/contracts";import{BrowserProvider as V2,Contract as o1,getAddress as iT,Interface as m1}from"ethers";function ay({chain:T=o.Ethereum,provider:f,signer:X,isEIP1559Compatible:y=!0}){return{approve:n2({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),approvedAmount:g1({chain:T,provider:f}),broadcastTransaction:f.broadcastTransaction,call:rf({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),createApprovalTx:o2({chain:T,provider:f,signer:X}),createContract:gf({chain:T,provider:f}),createContractTxObject:ny({chain:T,provider:f}),createTransaction:cf({chain:T,provider:f,signer:X}),createTransferTx:cf({chain:T,provider:f,signer:X}),EIP1193SendTransaction:ey(f),estimateCall:i1({provider:f,signer:X}),estimateGasLimit:h2({chain:T,provider:f,signer:X}),estimateGasPrices:jy({chain:T,isEIP1559Compatible:y,provider:f}),estimateTransactionFee:m2({chain:T,isEIP1559Compatible:y,provider:f}),getAddress:()=>{return X?X.getAddress():void 0},isApproved:b2({chain:T,provider:f}),sendTransaction:d1({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),signMessage:X?.signMessage,transfer:j2({chain:T,isEIP1559Compatible:y,provider:f,signer:X}),validateAddress:(L)=>tf({address:L})}}function tf({address:T}){try{return iT(T),!0}catch(f){return!1}}function sy(T){return T instanceof V2}function OT(T,f,X){return new o1(T,m1.from(f),X)}function gf({provider:T}){return function(X,y){return new o1(X,m1.from(y),T)}}function df({abi:T,funcName:f}){let X=T.find((y)=>y.name===f);if(!X)throw new n("toolbox_evm_no_abi_fragment",{funcName:f});return X.stateMutability&&$2.includes(X.stateMutability)}function c1(T){return iT(T)}function ey(T){return function({value:X,...y}){if(!sy(T))throw new n("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:L,gasPrice:G,maxFeePerGas:x,maxPriorityFeePerGas:Z,...B}=y;return T.send("eth_sendTransaction",[{...B,value:DT(BigInt(X||0))}])}}function t1(T,f){let X=yT(T,f);if(X)return iT(X.toLowerCase());throw new n("toolbox_evm_invalid_gas_asset_address")}function yT({chain:T,symbol:f,ticker:X},y){try{let L=T===o.BinanceSmartChain&&f==="BNB"&&X==="BNB",G=T===y&&f===y&&X===y,x=u2.includes(T)&&f==="ETH"&&X==="ETH";if(G||L||x)return K2[y];return iT(f.slice(X.length+1).replace(/^0X/,""))}catch(L){return null}}function ny({provider:T}){return async({contractAddress:f,abi:X,funcName:y,funcParams:L=[],txOverrides:G})=>OT(f,X,T).getFunction(y).populateTransaction(...L.concat(G).filter((x)=>typeof x<"u"))}function jy({chain:T,provider:f,isEIP1559Compatible:X=!0}){if(T===o.Arbitrum)return async function(){try{let{gasPrice:L}=await f.getFeeData();if(!L)throw new n("toolbox_evm_no_fee_data");return{[j.Average]:{gasPrice:L},[j.Fast]:{gasPrice:L},[j.Fastest]:{gasPrice:L}}}catch(L){throw new n("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}};return async function(){try{let{maxFeePerGas:L,maxPriorityFeePerGas:G,gasPrice:x}=await f.getFeeData();if(X){if(L===null||G===null)throw new n("toolbox_evm_no_fee_data");return{[j.Average]:{maxFeePerGas:L,maxPriorityFeePerGas:G},[j.Fast]:{maxFeePerGas:ry(L,j.Fast),maxPriorityFeePerGas:ry(G,j.Fast)},[j.Fastest]:{maxFeePerGas:ry(L,j.Fastest),maxPriorityFeePerGas:ry(G,j.Fastest)}}}if(!x)throw new n("toolbox_evm_no_gas_price");return{[j.Average]:{gasPrice:x},[j.Fast]:{gasPrice:ry(x,j.Fast)},[j.Fastest]:{gasPrice:ry(x,j.Fastest)}}}catch(L){throw new n("toolbox_evm_gas_estimation_error",{error:L.msg??L.toString()})}}}function rf({provider:T,isEIP1559Compatible:f,signer:X,chain:y}){return async function({callProvider:G,contractAddress:x,abi:Z,funcName:B,funcParams:J=[],txOverrides:Q={},feeOption:q=j.Fast}){let z=G||T;if(!x)throw new n("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let M=df({abi:Z,funcName:B});if(M&&sy(z)&&X){let k=ny({chain:y,provider:z}),v=Q?.from||await X?.getAddress(),F=await k({abi:Z,contractAddress:x,funcName:B,funcParams:J,txOverrides:{...Q,from:v}});return ey(z)(F)}let _=OT(x,Z,z);if(M){if(!X)throw new n("toolbox_evm_no_signer");let k=Q?.from||await X.getAddress();if(!k)throw new n("toolbox_evm_no_signer_address");let v=_.connect(X),F=jy({chain:y,isEIP1559Compatible:f,provider:T}),{maxFeePerGas:b,maxPriorityFeePerGas:K,gasPrice:i}=(await F())[q],m=await _.getFunction(B).estimateGas(...J,Q),s=await v[B](...J,{...Q,gasLimit:m,gasPrice:i,maxFeePerGas:b,maxPriorityFeePerGas:K,nonce:Q?.nonce||await z.getTransactionCount(k)});return typeof s?.hash==="string"?s?.hash:s}let W=await _[B]?.(...J);return typeof W?.hash==="string"?W?.hash:W}}function g1({provider:T,chain:f}){return function({assetAddress:y,spenderAddress:L,from:G}){return rf({chain:f,isEIP1559Compatible:!0,provider:T})({abi:kT,contractAddress:y,funcName:"allowance",funcParams:[G,L]})}}function b2({provider:T,chain:f}){return async function({assetAddress:y,spenderAddress:L,from:G,amount:x=IT}){let Z=await g1({chain:f,provider:T})({assetAddress:y,from:G,spenderAddress:L});return gT.fromBigInt(Z).gte(gT.fromBigInt(BigInt(x)))}}function n2({signer:T,isEIP1559Compatible:f=!0,provider:X,chain:y}){return async function({assetAddress:G,spenderAddress:x,feeOptionKey:Z=j.Fast,amount:B,gasLimitFallback:J,from:Q,nonce:q}){let z=[x,BigInt(B||IT)],M=await T?.getAddress()||Q,_={abi:kT,contractAddress:G,funcName:"approve",funcParams:z,signer:T,txOverrides:{from:M}};if(sy(X)){let k=ny({chain:y,provider:X}),v=ey(X),F=await k(_);return v(F)}return rf({chain:y,isEIP1559Compatible:f,provider:X,signer:T})({..._,feeOption:Z,funcParams:z,txOverrides:{from:M,gasLimit:J?BigInt(J.toString()):void 0,nonce:q}})}}function j2({signer:T,isEIP1559Compatible:f=!0,provider:X}){return async function({assetValue:L,memo:G,recipient:x,feeOptionKey:Z=j.Fast,sender:B,...J}){let{hexlify:Q,toUtf8Bytes:q}=await import("ethers"),z=L.getBaseValue("bigint"),M=L.chain,_=B||await T?.getAddress(),W=d1({chain:M,isEIP1559Compatible:f,provider:X,signer:T});if(!_)throw new n("toolbox_evm_no_from_address");if(L.isGasAsset){let i={...J,data:Q(q(G||"")),feeOptionKey:Z,from:_,to:x,value:z};return W(i)}if(!yT(L,M))throw new n("toolbox_evm_no_contract_address");let{maxFeePerGas:v,maxPriorityFeePerGas:F,gasPrice:b}=(await jy({chain:M,isEIP1559Compatible:f,provider:X})())[Z],K=await cf({chain:M,provider:X,signer:T})({assetValue:L,data:Q(q(G||"")),gasPrice:b,maxFeePerGas:v,maxPriorityFeePerGas:F,memo:G,recipient:x,sender:_});return W(K)}}function i1({provider:T,signer:f}){return function({contractAddress:y,abi:L,funcName:G,funcParams:x=[],txOverrides:Z}){if(!y)throw new n("toolbox_evm_no_contract_address");let B=OT(y,L,T);return f?B.connect(f).getFunction(G).estimateGas(...x,Z):B.getFunction(G).estimateGas(...x,Z)}}function h2({provider:T,signer:f}){return async function({assetValue:y,recipient:L,memo:G,data:x,sender:Z,funcName:B,funcParams:J,txOverrides:Q}){let q=y.bigIntValue,z=y.isGasAsset?null:yT(y,y.chain);if(z&&B)return i1({provider:T,signer:f})({abi:kT,contractAddress:z,funcName:B,funcParams:J,txOverrides:Q});let{hexlify:M,toUtf8Bytes:_}=await import("ethers");return T.estimateGas({data:x?x:G?M(_(G)):void 0,from:Z,to:L,value:q})}}function d1({provider:T,signer:f,isEIP1559Compatible:X=!0,chain:y}){return async function({feeOptionKey:G=j.Fast,...x}){let{from:Z,to:B,data:J,value:Q,...q}=x;if(!f)throw new n("toolbox_evm_no_signer");if(!B)throw new n("toolbox_evm_no_to_address");let z={...q,data:J||"0x",from:Z,to:B,value:BigInt(Q||0)};if(sy(T))return ey(T)(z);let M=Z||await f.getAddress(),_=x.nonce||await T.getTransactionCount(M),W=(await T.getNetwork()).chainId,k=p2(z)||X,v=jy({chain:y,isEIP1559Compatible:X,provider:T}),F=k&&!(z.maxFeePerGas&&z.maxPriorityFeePerGas)||!z.gasPrice?Object.entries((await v())[G]).reduce((K,[i,m])=>({...K,[i]:DT(BigInt(m))}),{}):{},b;try{b=DT(z.gasLimit||await T.estimateGas(z)*11n/10n)}catch(K){throw new n("toolbox_evm_error_estimating_gas_limit",{error:K})}try{let K={...z,chainId:W,gasLimit:b,nonce:_,type:k?2:0,...F};try{return(await f.sendTransaction(K)).hash}catch(i){let m=await f.signTransaction({...K,from:M});return(await T.broadcastTransaction(m)).hash}}catch(K){throw new n("toolbox_evm_error_sending_transaction",{error:K})}}}function cf({provider:T,signer:f}){return async function({assetValue:y,memo:L,recipient:G,data:x,sender:Z,maxFeePerGas:B,maxPriorityFeePerGas:J,gasPrice:Q,...q}){let z=y.getBaseValue("bigint"),M=y.chain,_=Z||await f?.getAddress();if(!_)throw new n("toolbox_evm_no_from_address");if(S2(y)){let{hexlify:v,toUtf8Bytes:F}=await import("ethers");return{...q,data:x||v(F(L||"")),from:_,to:G,value:z}}let W=yT(y,M);if(!W)throw new n("toolbox_evm_no_contract_address");return ny({chain:y.chain,provider:T})({abi:kT,contractAddress:W,funcName:"transfer",funcParams:[G,z],txOverrides:{from:_,gasPrice:Q,maxFeePerGas:B,maxPriorityFeePerGas:J}})}}function o2({provider:T,signer:f,chain:X}){return async function({assetAddress:L,spenderAddress:G,amount:x,from:Z}){let B=await f?.getAddress()||Z,J=ny({chain:X,provider:T}),Q=["bigint","number"].includes(typeof x)?x:x||IT;return await J({abi:kT,contractAddress:L,funcName:"approve",funcParams:[G,BigInt(Q)],txOverrides:{from:B}})}}function m2({provider:T,isEIP1559Compatible:f=!0}){return async function({feeOption:y=j.Fast,chain:L,...G}){let Z=await jy({chain:L,isEIP1559Compatible:f,provider:T})(),B=await T.estimateGas(G),J=A2.from({chain:L}),{gasPrice:Q,maxFeePerGas:q,maxPriorityFeePerGas:z}=Z[y];if(!f&&Q)return J.set(gT.fromBigInt(Q*B,J.decimal));if(q&&z){let M=(q+z)*B;return J.set(gT.fromBigInt(M,J.decimal))}throw new n("toolbox_evm_no_gas_price")}}var IT,$2,K2,u2,p2=(T)=>T.type===2||!!T.maxFeePerGas||!!T.maxPriorityFeePerGas;var dT=P(()=>{dy();IT=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");$2=["payable","nonpayable"];K2={[o.Arbitrum]:By.ARB,[o.Aurora]:By.AURORA,[o.Avalanche]:By.AVAX,[o.Base]:By.BASE,[o.Berachain]:By.BERA,[o.BinanceSmartChain]:By.BSC,[o.Ethereum]:By.ETH,[o.Gnosis]:By.GNO,[o.Optimism]:By.OP,[o.Polygon]:By.MATIC},u2=[o.Arbitrum,o.Aurora,o.Base,o.Optimism]});import{Chain as Hy,FeeOption as c2,getRPCUrl as t2}from"@swapkit/helpers";import{HDNodeWallet as g2}from"ethers";import{match as i2,P as r1}from"ts-pattern";async function rT({provider:T,...f}){let X=await Wy(Hy.Ethereum)({provider:T,...f});async function y(L,G="0x5ba1e12693dc8f9c48aad8770482f4739beed696",x="aggregate",Z=c2.Fast){let B=await X.createContractTxObject({abi:h1,contractAddress:G,funcName:x,funcParams:[L]});return X.sendTransaction({...B,feeOptionKey:Z})}return{...X,multicall:y}}function Wy(T){return async function({provider:X,...y}){let L=await t2(T),G=X||await by(T,L),x=mf(T),Z=i2(y).with({phrase:r1.string},({phrase:J})=>g2.fromPhrase(J).connect(G)).with({signer:r1.any},({signer:J})=>J).otherwise(()=>{return});return{...ay({chain:T,isEIP1559Compatible:x,provider:G,signer:Z}),getBalance:RT(T).getBalance,getNetworkParams:of(T)}}}var aT,sT,eT,yf,Tf,ff,Gf,Lf;var af=P(()=>{tT();p1();dy();dT();aT=Wy(Hy.Arbitrum),sT=Wy(Hy.Aurora),eT=Wy(Hy.Avalanche),yf=Wy(Hy.Base),Tf=Wy(Hy.Berachain),ff=Wy(Hy.BinanceSmartChain),Gf=Wy(Hy.Gnosis),Lf=Wy(Hy.Polygon)});var a1;var s1=P(()=>{a1=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as TT,Chain as Xf,FeeOption as Cy,getChainConfig as d2,getRPCUrl as r2,SwapKitError as sf}from"@swapkit/helpers";import{Contract as a2,HDNodeWallet as s2}from"ethers";import{match as e2,P as e1}from"ts-pattern";function ef(T){return new a2(yL,a1,T)}function y5(T){return function(){let X=ef(T);if(X&&"l1BaseFee"in X)return X?.l1BaseFee();return}}function T5(T){return async function({from:X,to:y,nonce:L,...G}){let{Transaction:x}=await import("ethers");if(!y)throw new sf("toolbox_evm_invalid_transaction",{error:"Missing to address"});return x.from({...G,authorizationList:G.authorizationList,nonce:L?L:X?await T.getTransactionCount(X):0,to:y}).serialized}}function f5(T){return async function(X){let y=ef(T),L=await T5(T)(X);if(y&&"getL1Fee"in y)return y.getL1Fee(L)}}function G5(T){return async function(X){let y=await T.send("eth_gasPrice",[]),L=await T.estimateGas(X);return y.mul(L)}}function TL(T){return async function(X){let y=await f5(T)(X),L=await G5(T)(X);return y.add(L)}}function fL(T){return async function(X){let y=ef(T),L=await T5(T)(X);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(L)}}function GL(){let{baseDecimal:T,chainId:f,blockExplorerUrl:X,name:y,rpcUrl:L}=d2(Xf.Optimism);return{blockExplorerUrls:[X],chainId:f,chainName:y,nativeCurrency:{decimals:T,name:"Ethereum",symbol:Xf.Ethereum},rpcUrls:[L]}}async function LL(T){try{let{maxFeePerGas:f,maxPriorityFeePerGas:X,gasPrice:y}=await T.getFeeData(),L=y5(T)(),G=y;if(!(f&&X))throw new sf("toolbox_evm_no_fee_data");return{[Cy.Average]:{gasPrice:G,l1GasPrice:L,maxFeePerGas:f,maxPriorityFeePerGas:X},[Cy.Fast]:{gasPrice:TT(G,Cy.Fast),l1GasPrice:TT(L||0n,Cy.Fast),maxFeePerGas:f,maxPriorityFeePerGas:TT(X,Cy.Fast)},[Cy.Fastest]:{gasPrice:TT(G,Cy.Fastest),l1GasPrice:TT(L||0n,Cy.Fastest),maxFeePerGas:f,maxPriorityFeePerGas:TT(X,Cy.Fastest)}}}catch(f){throw new sf("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}async function xf({provider:T,...f}){let X=Xf.Optimism,y=await r2(X),L=T||await by(X,y),G=e2(f).with({phrase:e1.string},({phrase:B})=>s2.fromPhrase(B).connect(L)).with({signer:e1.any},({signer:B})=>B).otherwise(()=>{return}),x=ay({provider:L,signer:G}),Z=y5(L);return{...x,estimateGasPrices:LL(L),estimateL1Gas:fL(L),estimateL1GasCost:f5(L),estimateL2GasCost:G5(L),estimateTotalGasCost:TL(L),getBalance:RT(Xf.Optimism).getBalance,getL1GasPrice:Z,getNetworkParams:GL}}var yL="0x420000000000000000000000000000000000000f";var y0=P(()=>{tT();s1();dy();dT()});var X5={};Ly(X5,{toChecksumAddress:()=>c1,isStateChangingCall:()=>df,isBrowserProvider:()=>sy,getTokenAddress:()=>yT,getEvmToolbox:()=>L5,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>ey,getCreateContractTxObject:()=>ny,getCreateContract:()=>gf,getChecksumAddressFromAsset:()=>t1,evmValidateAddress:()=>tf,createContract:()=>OT,OPToolbox:()=>xf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>Lf,GNOToolbox:()=>Gf,ETHToolbox:()=>rT,BaseEVMToolbox:()=>ay,BSCToolbox:()=>ff,BERAToolbox:()=>Tf,BASEToolbox:()=>yf,AVAXToolbox:()=>eT,AURORAToolbox:()=>sT,ARBToolbox:()=>aT});import{Chain as Jy,SwapKitError as XL}from"@swapkit/helpers";async function L5(T,f){let X={...f,provider:f?.provider||await by(T)};switch(T){case Jy.Arbitrum:return aT(X);case Jy.Aurora:return sT(X);case Jy.Avalanche:return eT(X);case Jy.Base:return yf(X);case Jy.Berachain:return Tf(X);case Jy.BinanceSmartChain:return ff(X);case Jy.Gnosis:return Gf(X);case Jy.Optimism:return xf(X);case Jy.Polygon:return Lf(X);case Jy.Ethereum:return rT(X);default:throw new XL("toolbox_evm_not_supported",{chain:T})}}var T0=P(()=>{dy();af();y0();dT();af();y0()});var x5;var Z5=P(()=>{((X)=>{X.Test="goerli";X.Main="homestead"})(x5||={})});var B5={};Ly(B5,{toHexString:()=>DT,toChecksumAddress:()=>c1,isStateChangingCall:()=>df,isBrowserProvider:()=>sy,getTokenAddress:()=>yT,getProvider:()=>by,getNetworkParams:()=>of,getIsEIP1559Compatible:()=>mf,getEvmToolbox:()=>L5,getEvmApi:()=>RT,getEstimateGasPrices:()=>jy,getEIP1193SendTransaction:()=>ey,getCreateContractTxObject:()=>ny,getCreateContract:()=>gf,getChecksumAddressFromAsset:()=>t1,evmValidateAddress:()=>tf,createCustomEvmApi:()=>P2,createContract:()=>OT,OPToolbox:()=>xf,MAX_APPROVAL:()=>IT,MATICToolbox:()=>Lf,GNOToolbox:()=>Gf,EthNetwork:()=>x5,ETHToolbox:()=>rT,BaseEVMToolbox:()=>ay,BSCToolbox:()=>ff,BERAToolbox:()=>Tf,BASEToolbox:()=>yf,AVAXToolbox:()=>eT,AURORAToolbox:()=>sT,ARBToolbox:()=>aT});var J5=P(()=>{tT();dy();T0();Z5()});import{AssetValue as xL,Chain as ZL,SwapKitNumber as Q5}from"@swapkit/helpers";async function BL(T,f,X){try{let y=await T.query.system?.account?.(X);if(!y)return[f.set(0)];let{data:{free:L}}=y,G=Q5.fromBigInt(BigInt(L.toString()),f.decimal).getValue("string");return[f.set(G)]}catch(y){return console.error("Error fetching substrate balance:",y),[f.set(0)]}}async function JL(T,f,X){try{let y=await T.query.flip?.account?.(X);if(!y)return[f.set(0)];let L=y.balance||y.data?.balance;if(!L||L.isEmpty)return[f.set(0)];let G=Q5.fromBigInt(BigInt(L.toString()),f.decimal).getValue("string");return[f.set(G)]}catch(y){return console.error("Error fetching chainflip balance:",y),[f.set(0)]}}function q5(T,f){return function(y){let L=xL.from({chain:T});switch(T){case ZL.Chainflip:return JL(f,L,y);default:return BL(f,L,y)}}}var z5=()=>{};var QL,qL,zL,ly;var f0=P(()=>{QL={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},qL={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},zL={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},ly={DOT:QL,FLIP:qL,GENERIC:zL}});import{hexToU8a as _L,isHex as ML,u8aToHex as NL}from"@polkadot/util";import{decodeAddress as M5,encodeAddress as N5}from"@polkadot/util-crypto";import{AssetValue as YL,Chain as GT,getRPCUrl as UL,SwapKitError as Qy,SwapKitNumber as HL}from"@swapkit/helpers";import{match as WL,P as _5}from"ts-pattern";function CL(T,f){switch(T){case GT.Chainflip:return U5(f);case GT.Polkadot:return Y5(f);default:throw new Qy("toolbox_substrate_not_supported",{chain:T})}}function fT(T){return"address"in T}async function L0(T,f){let{Keyring:X}=await import("@polkadot/api"),{cryptoWaitReady:y}=await import("@polkadot/util-crypto");return await y(),new X({ss58Format:f,type:"sr25519"}).addFromUri(T)}function PL(T,f){let X=M5(T);return N5(X,f)}function H5(T,f){return ML(T)?_L(T):M5(T,void 0,f)}function W5(T,f="ss58",X){if(f==="hex")return NL(T);return N5(T,X)}async function Z0({generic:T,chain:f,...X}){let{ApiPromise:y,WsProvider:L}=await import("@polkadot/api"),G=await UL(f),x=new L(G),Z=await y.create({provider:x}),B=YL.from({chain:f}),J=T?ly.GENERIC:ly[f],Q=await WL(X).with({phrase:_5.string},({phrase:q})=>L0(q,ly[f].prefix)).with({signer:_5.any},({signer:q})=>q).otherwise(()=>{return});return C5({api:Z,chain:f,gasAsset:B,network:J,signer:Q})}var Y5=({generic:T=!1,...f}={})=>{return Z0({chain:GT.Polkadot,generic:T,...f})},U5=async({generic:T=!1,...f}={})=>{return{...await Z0({chain:GT.Chainflip,generic:T,...f})}},X0=(T,f)=>T.rpc.system.accountNextIndex(f),G0=(T,f)=>{try{let X=H5(T,f);return W5(X,"ss58",f),!0}catch(X){return!1}},x0=(T,{recipient:f,assetValue:X})=>T.tx.balances?.transferAllowDeath?.(f,X.getBaseValue("number")),RL=async(T,f,{recipient:X,assetValue:y,sender:L})=>{let G=x0(T,{assetValue:y,recipient:X});if(!G)throw new Qy("toolbox_substrate_transfer_error");let x=fT(f),Z=x?f.address:L;if(!Z)throw new Qy("core_transaction_invalid_sender_address");let B=await X0(T,Z);return(await G.signAndSend(x?f:Z,{nonce:B,signer:x?void 0:f})).toString()},DL=async(T,f,X,{recipient:y,assetValue:L,sender:G})=>{let x=x0(T,{assetValue:L,recipient:y}),Z=fT(f)?f.address:G;if(!Z)return;let B=await x?.paymentInfo(Z,{nonce:await X0(T,Z)})||{partialFee:0};return X.set(HL.fromBigInt(BigInt(B.partialFee.toString()),X.decimal).getValue("string"))},kL=async(T,f)=>{if(f)return T.send(f);return(await T.send()).toString()},IL=async(T,f)=>{return await f.signAsync(T)},OL=(T,f,X)=>{if(X)return f.signAndSend(T,X);return f.signAndSend(T).toString()},EL=async({signer:T,address:f,tx:X,callback:y,api:L})=>{let G=await X0(L,f);if(y)X.signAndSend(f,{nonce:G,signer:T},y);return X.signAndSend(f,{nonce:G,signer:T}).toString()},C5=({api:T,network:f,gasAsset:X,signer:y,chain:L})=>({api:T,broadcast:kL,convertAddress:PL,createKeyring:(G)=>L0(G,f.prefix),createTransaction:(G)=>x0(T,G),decodeAddress:H5,encodeAddress:W5,estimateTransactionFee:(G)=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");return DL(T,y,X,G)},gasAsset:X,getAddress:(G)=>{let x=G||y;if(!x)throw new Qy("core_wallet_not_keypair_wallet");return fT(x)?x.address:void 0},getBalance:q5(L||GT.Polkadot,T),network:f,sign:(G)=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");if(fT(y))return IL(y,G);throw new Qy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:G,callback:x,address:Z})=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");if(fT(y))return OL(y,G,x);if(Z)return EL({address:Z,api:T,callback:x,signer:y,tx:G});throw new Qy("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(G)=>{if(!y)throw new Qy("core_wallet_not_keypair_wallet");return RL(T,y,G)},validateAddress:(G)=>G0(G,f.prefix)}),wL=({address:T,chain:f})=>{let{prefix:X}=f===GT.Polkadot?ly.DOT:ly.FLIP;return G0(T,X)||G0(T,ly.GENERIC.prefix)};var R5=P(()=>{z5();f0()});var B0={};Ly(B0,{substrateValidateAddress:()=>wL,isKeyringPair:()=>fT,getSubstrateToolbox:()=>CL,createSubstrateToolbox:()=>Z0,createKeyring:()=>L0,SubstrateNetwork:()=>ly,PolkadotToolbox:()=>Y5,ChainflipToolbox:()=>U5,BaseSubstrateToolbox:()=>C5});var J0=P(()=>{R5();f0()});import{networks as lL}from"@bitgo/utxo-lib";import{Chain as c,getRPCUrl as vL,RequestClient as Zf,SKConfig as I5,SwapKitError as vy,warnOnce as O5}from"@swapkit/helpers";import{networks as FL}from"bitcoinjs-lib";import ET from"coininfo";async function AL({chain:T,txHash:f}){let X=`${Bf(T)}/push/transaction`,y=JSON.stringify({data:f});try{let L=await Zf.post(X,{body:y,headers:{"Content-Type":"application/json"}});if(L.context.code!==200)throw new vy("toolbox_utxo_broadcast_failed",{error:L.context.error||"Transaction broadcast failed"});return L.data?.transaction_hash||f}catch(L){let G=await vL(T);if(G){let x=JSON.stringify({id:n1(),jsonrpc:"2.0",method:"sendrawtransaction",params:[f]}),Z=await Zf.post(G,{body:x,headers:{"Content-Type":"application/json"}});if(Z.error)throw new vy("toolbox_utxo_broadcast_failed",{error:Z.error?.message});if(Z.result.includes('"code":-26'))throw new vy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return Z.result}throw L}}function Bf(T){return`https://api.blockchair.com/${SL(T)}`}function D5(T){switch(T){case c.Bitcoin:return 5;case c.Dogecoin:return 1e4;case c.Litecoin:return 1;case c.Zcash:return 1;default:return 2}}function SL(T){switch(T){case c.BitcoinCash:return"bitcoin-cash";case c.Litecoin:return"litecoin";case c.Dash:return"dash";case c.Dogecoin:return"dogecoin";case c.Zcash:return"zcash";case c.Polkadot:return"polkadot";default:return"bitcoin"}}async function VL(T){try{let{feePerKb:f}=await Zf.get(`https://app.bitgo.com/api/v2/${T.toLowerCase()}/tx/fee`),X=f/1000;return Math.max(X,D5(T))}catch(f){return D5(T)}}async function Q0(T,f){let X=await Zf.get(`${T}${f?`${T.includes("?")?"&":"?"}key=${f}`:""}`);if(!X||X.context.code!==200)throw new vy("toolbox_utxo_api_error",{error:`Failed to query ${T}`});return X.data}async function E5({address:T,chain:f,apiKey:X}){if(!T)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Q0(`${Bf(f)}/dashboards/address/${T}?transaction_details=true`,X))[T]}catch(y){return{address:{balance:0,transaction_count:0},utxo:[]}}}async function $L({address:T,chain:f,apiKey:X}){return(await E5({address:T,apiKey:X,chain:f}))?.address.balance||0}async function P5({chain:T,apiKey:f,txHash:X}){if(!X)throw new vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Q0(`${Bf(T)}/raw/transaction/${X}`,f))?.[X]?.raw_transaction||""}catch(y){return console.error("Failed to fetch raw transaction:",y),""}}async function KL({chain:T,address:f,apiKey:X,offset:y=0,limit:L=30}){return(await Q0(`${Bf(T)}/outputs?q=recipient(${f}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${L}&offset=${y}`,X)).map(({is_spent:B,script_hex:J,block_id:Q,transaction_hash:q,index:z,value:M,spending_signature_hex:_})=>({hash:q,index:z,is_confirmed:Q!==-1,is_spent:B,script_hex:J,txHex:_,value:M}))}function uL(T){return T.reduce((f,X)=>f+X.value,0)}function k5(T,f){let X=[...T].sort((y,L)=>L.value-y.value);if(f){let y=[],L=0;for(let G of X)if(y.push(G),L+=G.value,L>=f)break;return y}return X}async function w5({chain:T,address:f,apiKey:X,targetValue:y,accumulativeValue:L=0,offset:G=0,limit:x=30}){if(!f)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let Z=await KL({address:f,apiKey:X,chain:T,limit:x,offset:G,targetValue:y}),J=Z.length<x,Q=Z.filter(({is_spent:k})=>!k),q=uL(Q),z=L+q,M=y&&z>=y;if(J||M)return k5(Q,y);let _=await w5({accumulativeValue:z,address:f,apiKey:X,chain:T,limit:x,offset:G+x,targetValue:y}),W=[...Q,..._];return k5(W,y)}catch(Z){return console.error("Failed to fetch unspent UTXOs:",Z),[]}}async function bL({address:T,chain:f,apiKey:X,fetchTxHex:y=!0,targetValue:L}){let G=await w5({address:T,apiKey:X,chain:f,targetValue:L}),x=[];for(let{hash:Z,index:B,script_hex:J,value:Q}of G){let q;if(y)q=await P5({apiKey:X,chain:f,txHash:Z});x.push({address:T,hash:Z,index:B,txHex:q,value:Q,witnessUtxo:{script:Buffer.from(J,"hex"),value:Q}})}return x}function nL(T){let f=I5.get("apiKeys").blockchair||"";return O5({condition:!f,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(X)=>AL({chain:T,txHash:X}),getAddressData:(X)=>E5({address:X,apiKey:f,chain:T}),getBalance:(X)=>$L({address:X,apiKey:f,chain:T}),getRawTx:(X)=>P5({apiKey:f,chain:T,txHash:X}),getSuggestedTxFee:()=>VL(T),getUtxos:(X)=>bL({...X,apiKey:f,chain:T})}}function jL(T){return T}function e(T){let f=I5.get("apis")[T];if(f)return O5({condition:!0,id:"custom_utxo_api_warning",warning:"Using custom UTXO API. Be sure to implement all methods to avoid issues."}),f;return nL(T)}function qy(){return function(f){switch(f){case c.Bitcoin:return FL.bitcoin;case c.BitcoinCash:return ET.bitcoincash.main.toBitcoinJS();case c.Dash:return ET.dash.main.toBitcoinJS();case c.Litecoin:return ET.litecoin.main.toBitcoinJS();case c.Dogecoin:{let X={private:70615956,public:70617039},y=ET.dogecoin.test;return y.versions.bip32=X,ET.dogecoin.main.toBitcoinJS()}case c.Zcash:return lL.zcash;default:throw new vy("toolbox_utxo_not_supported",{chain:f})}}}var l5=P(()=>{CT()});import{SwapKitError as F5}from"@swapkit/helpers";import A5 from"bs58check";import S5 from"cashaddrjs";function z0(T){try{return Jf(T),!0}catch(f){return!1}}function _0(T){return Jf(T)?.network}function LT(T){let f=Jf(T);if(f?.format==="legacy")return T;return oL(f)}function PT(T){let f=Jf(T);return mL(f)}function Jf(T){try{let f=hL(T);if(f)return f}catch(f){}try{let f=pL(T);if(f)return f}catch(f){}throw new F5("toolbox_utxo_invalid_address",{address:T})}function hL(T){try{let f=A5.decode(T);if(f.length!==21)throw new F5("toolbox_utxo_invalid_address",{address:T});let X=f[0],y=Array.prototype.slice.call(f,1);switch(X){case $.legacy.mainnet.p2pkh:return{format:"legacy",hash:y,network:"mainnet",type:"p2pkh"};case $.legacy.mainnet.p2sh:return{format:"legacy",hash:y,network:"mainnet",type:"p2sh"};case $.legacy.testnet.p2pkh:return{format:"legacy",hash:y,network:"testnet",type:"p2pkh"};case $.legacy.testnet.p2sh:return{format:"legacy",hash:y,network:"testnet",type:"p2sh"};case $.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2pkh"};case $.bitpay.mainnet.p2sh:return{format:"bitpay",hash:y,network:"mainnet",type:"p2sh"};default:return}}catch(f){return}}function pL(T){if(T.indexOf(":")!==-1)try{return v5(T)}catch(f){}else{let f=["bitcoincash","bchtest","bchreg"];for(let X of f)try{return v5(`${X}:${T}`)}catch(y){}}return}function v5(T){try{let{hash:f,prefix:X,type:y}=S5.decode(T);return{format:"cashaddr",hash:Array.prototype.slice.call(f,0),network:X==="bitcoincash"?"mainnet":"testnet",type:y==="P2PKH"?"p2pkh":"p2sh"}}catch(f){return}}function oL(T){let f=$.legacy[T.network][T.type],X=Buffer.alloc(1+T.hash.length);return X[0]=f,X.set(T.hash,1),A5.encode(X)}function mL(T){let f=T.network==="mainnet"?"bitcoincash":"bchtest",X=T.type==="p2pkh"?"P2PKH":"P2SH",y=new Uint8Array(T.hash);return S5.encode(f,X,y)}var q0,$;var V5=P(()=>{((X)=>{X.Mainnet="mainnet";X.Testnet="testnet"})(q0||={});$={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as cL}from"@swapkit/helpers";import{opcodes as tL,script as gL}from"bitcoinjs-lib";function zy(T){let f=Buffer.from(T,"utf8");return gL.compile([tL.OP_RETURN,f])}var iL=1000,qf=10,$5=10,dL=41,rL=107,zf,Qf,wT,lT=(T)=>{if(T.startsWith("bc1")||T.startsWith("tb1")||T.startsWith("ltc1")||T.startsWith("tltc1"))return"P2WPKH";if(T.startsWith("1")||T.startsWith("m")||T.startsWith("n")||T.startsWith("bitcoincash:q")||T.startsWith("bitcoincash:p")||T.startsWith("q")||T.startsWith("p")||T.startsWith("L")||T.startsWith("M")||T.startsWith("3")||T.startsWith("D")||T.startsWith("A")||T.startsWith("9")||T.startsWith("X")||T.startsWith("7")||T.startsWith("y")||T.startsWith("t1")||T.startsWith("t3")||T.startsWith("tm"))return"P2PKH";throw new cL("toolbox_utxo_invalid_address",{address:T})},XT=({inputs:T,outputs:f,feeRate:X})=>{let y=T[0]&&"address"in T[0]&&T[0].address?lT(T[0].address):"P2PKH",L=T.filter((x)=>x.value>=Qf["type"in x?x.type:"P2PKH"]*Math.ceil(X)).reduce((x,Z)=>x+Fy(Z),0),G=f?.reduce((x,Z)=>x+vT(Z),0)||wT[y];return qf+L+G},Fy=(T)=>{if("type"in T)return Qf[T.type];if("address"in T&&T.address)return Qf[lT(T.address)];return dL+rL},vT=(T,f)=>{if(T?.script)return $5+T.script.length+(T.script.length>=74?2:1);if(f)return wT[f];return wT.P2PKH};var M0=P(()=>{((X)=>{X.P2PKH="P2PKH";X.P2WPKH="P2WPKH"})(zf||={});Qf={["P2PKH"]:148,["P2WPKH"]:68},wT={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as hy,SwapKitError as aL}from"@swapkit/helpers";function _f(T){switch(T){case hy.Bitcoin:case hy.BitcoinCash:return 550;case hy.Dash:case hy.Litecoin:return 5500;case hy.Dogecoin:return 1e5;case hy.Zcash:return 546;default:throw new aL("toolbox_utxo_not_supported",{chain:T})}}function _y({inputs:T,outputs:f,feeRate:X=1,chain:y=hy.Bitcoin,changeAddress:L=""}){let G=Math.ceil(X),x=T[0]&&"address"in T[0]&&T[0].address?lT(T[0].address):"P2PKH",Z=T.filter((M)=>Fy(M)*G<=M.value),B=qf+f.reduce((M,_)=>M+vT(_,x),0),J=f.reduce((M,_)=>M+_.value,0),Q=B*G,q=0,z=[];for(let M of Z){let _=Fy(M),W=G*_;Q+=W,q+=M.value,z.push(M);let k=Q+J;if(q<k)continue;let v=q-k,F=G*vT({address:"",value:0},x);if(v>F){let b=F+Q,K=q-(J+b);if(K>Math.max(Fy({})*G,_f(y)))return{fee:b,inputs:z,outputs:f.concat({address:L,value:K})}}return{fee:Q,inputs:z,outputs:f}}return{fee:G*XT({feeRate:G,inputs:T,outputs:f})}}var K5=P(()=>{M0()});var xT=P(()=>{l5();V5();K5();M0()});import{networks as sL,address as eL}from"@bitgo/utxo-lib";import y8 from"bs58check";function py(T){return T.replace(/(bchtest:|bitcoincash:)/,"")}function Ay(T){let f=py(T);return z0(f)&&_0(f)==="mainnet"}function ZT(T){try{if(T.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let f=sL.zcash;try{return eL.toOutputScript(T,f),!0}catch{let X=y8.decode(T);if(X.length<21)return!1;let y=X[0];return y===f.pubKeyHash||y===f.scriptHash}}catch{return!1}}var FT=P(()=>{xT()});import Y0 from"@bitcoinerlab/secp256k1";import{ECPair as T8,HDNode as f8}from"@psf/bitcoincashjs-lib";import{HDKey as G8}from"@scure/bip32";import{mnemonicToSeedSync as u5}from"@scure/bip39";import{AssetValue as N0,applyFeeMultiplier as b5,Chain as yy,DerivationPath as L8,derivationPathToString as X8,FeeOption as Ry,NetworkDerivationPath as x8,SwapKitError as Dy,SwapKitNumber as Z8,updateDerivationPath as B8}from"@swapkit/helpers";import{address as J8,initEccLib as j5,Psbt as Q8,payments as n5}from"bitcoinjs-lib";import{ECPairFactory as q8}from"ecpair";function h5({inputs:T,outputs:f,chain:X,psbt:y,sender:L,compiledMemo:G}){for(let x of T){let Z=!!x.witnessUtxo&&!AT.includes(X)&&{witnessUtxo:x.witnessUtxo},B=AT.includes(X)&&{nonWitnessUtxo:x.txHex?Buffer.from(x.txHex,"hex"):void 0};y.addInput({hash:x.hash,index:x.index,...Z,...B})}for(let x of f){let Z="address"in x&&x.address?x.address:L,B=x.script;if(B&&!G)continue;let J=B?{script:G,value:0}:{address:Z,value:x.value};j5(Y0),y.addOutput(J)}return{inputs:T,psbt:y}}async function p5({assetValue:T,recipient:f,memo:X,feeRate:y,sender:L,fetchTxHex:G=!1}){let x=T.chain,Z=X?await zy(X):null,B=await c5({assetValue:T,fetchTxHex:G,memo:X,recipient:f,sender:L}),{inputs:J,outputs:Q}=_y({...B,chain:x,feeRate:y});if(!(J&&Q))throw new Dy("toolbox_utxo_insufficient_balance",{assetValue:T,sender:L});let q=await qy(),z=new Q8({network:q(x)});if(x===yy.Dogecoin)z.setMaximumFeeRate(650000000);let{psbt:M,inputs:_}=await h5({chain:x,compiledMemo:Z,inputs:J,outputs:Q,psbt:z,sender:L});return{inputs:_,psbt:M,utxos:B.inputs}}async function o5(){let T=await qy();return function({address:X,chain:y}){if(y===yy.BitcoinCash)return Ay(X);if(y===yy.Zcash)return ZT(X);try{return j5(Y0),J8.toOutputScript(X,T(y)),!0}catch(L){return!1}}}async function z8({chain:T,phrase:f,derivationPath:X}){let y=(await ST(T))({derivationPath:X,phrase:f});async function L(x){return await x.signAllInputs(y),x}function G(){return U0(T)(y)}return{getAddress:G,signTransaction:L}}async function oy({chain:T,...f}){let X="phrase"in f?f.phrase:void 0,y="index"in f?f.index||0:0,L=X8("derivationPath"in f&&f.derivationPath?f.derivationPath:B8(x8[T],{index:y})),G=X?await z8({chain:T,derivationPath:L,phrase:X}):("signer"in f)?f.signer:void 0;function x(){return Promise.resolve(G?.getAddress())}let Z=await o5(),B=await ST(T);return{accumulative:_y,broadcastTx:(J)=>e(T).broadcastTx(J),calculateTxSize:XT,createKeysForPath:B,createTransaction:p5,estimateMaxSendableAmount:_8(T),estimateTransactionFee:M8(T),getAddress:x,getAddressFromKeys:U0(T),getBalance:iy(T),getFeeRates:()=>VT(T),getInputsOutputsFee:m5,getPrivateKeyFromMnemonic:(J)=>{return B(J).toWIF()},transfer:N8(G),validateAddress:(J)=>Z({address:J,chain:T})}}async function m5({assetValue:T,feeOptionKey:f=Ry.Fast,feeRate:X,memo:y,sender:L,recipient:G}){let x=T.chain,Z=await c5({assetValue:T,memo:y,recipient:G,sender:L}),B=X?Math.floor(X):(await VT(x))[f];return _y({...Z,chain:x,feeRate:B})}function _8(T){return async function({from:X,memo:y,feeRate:L,feeOptionKey:G=Ry.Fast,recipients:x=1}){let Z=await e(T).getAddressData(X),B=L?Math.ceil(L):(await VT(T))[G],J=Z?.utxo.map((_)=>({..._,hash:"",type:"P2PKH"})).filter((_)=>_.value>Math.max(_f(T),Fy(_)*B));if(!J?.length)return N0.from({chain:T});let Q=N0.from({chain:T,value:J.reduce((_,W)=>_+W.value,0)}),q=typeof x==="number"?Array.from({length:x},()=>({address:X,value:0})):x;if(y){let _=await zy(y);q.push({address:X,script:_,value:0})}let M=XT({feeRate:B,inputs:J,outputs:q})*B;return Q.sub(M)}}function M8(T){return async(f)=>{let X=await m5(f);return N0.from({chain:T,value:Z8.fromBigInt(BigInt(X.fee),8).getValue("string")})}}async function ST(T){let f=await qy();switch(T){case yy.BitcoinCash:return function({phrase:y,derivationPath:L=`${L8.BCH}/0`,wif:G}){let x=f(T);if(G)return T8.fromWIF(G,x);if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"No phrase provided"});return f8.fromSeedBuffer(Buffer.from(u5(y)),x).derivePath(L).keyPair};case yy.Bitcoin:case yy.Dogecoin:case yy.Litecoin:case yy.Zcash:case yy.Dash:return function({phrase:y,wif:L,derivationPath:G}){if(!(L||y))throw new Dy("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let x=q8(Y0),Z=f(T);if(L)return x.fromWIF(L,Z);let B=u5(y),J=G8.fromMasterSeed(B,Z).derive(G);if(!J.privateKey)throw new Dy("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return x.fromPrivateKey(Buffer.from(J.privateKey),{network:Z})};default:throw new Dy("toolbox_utxo_not_supported",{chain:T})}}function U0(T){let f=qy();return function(y){if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let L=AT.includes(T)?n5.p2pkh:n5.p2wpkh,{address:G}=L({network:f(T),pubkey:y.publicKey});if(!G)throw new Dy("toolbox_utxo_invalid_address",{error:"Address not defined"});return G}}function N8(T){return async function({memo:X,recipient:y,feeOptionKey:L,feeRate:G,assetValue:x}){let Z=await T?.getAddress(),B=x.chain;if(!(T&&Z))throw new Dy("toolbox_utxo_no_signer");if(!y)throw new Dy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let J=G||(await VT(B))[L||Ry.Fast],{psbt:Q}=await p5({assetValue:x,feeRate:J,memo:X,recipient:y,sender:Z}),q=await T.signTransaction(Q);return q.finalizeAllInputs(),e(B).broadcastTx(q.extractTransaction().toHex())}}async function VT(T){let f=await e(T).getSuggestedTxFee();return{[Ry.Average]:f,[Ry.Fast]:b5(f,Ry.Fast),[Ry.Fastest]:b5(f,Ry.Fastest)}}async function c5({assetValue:T,recipient:f,memo:X,sender:y,fetchTxHex:L=!1}){let G=T.chain,x=(await VT(G))[Ry.Fastest],Z=L||AT.includes(G),B=T.getBaseValue("number"),J=Math.ceil(B+x*5000);return{inputs:await e(G).getUtxos({address:y,fetchTxHex:Z,targetValue:J}),outputs:[{address:f,value:B},...X?[{address:"",script:await zy(X),value:0}]:[]]}}var AT;var $T=P(()=>{CT();xT();FT();AT=[yy.Dash,yy.Dogecoin,yy.Zcash,yy.BitcoinCash]});import{address as Y8,Transaction as U8,TransactionBuilder as H8}from"@psf/bitcoincashjs-lib";import{Chain as W8,derivationPathToString as C8,FeeOption as R8,NetworkDerivationPath as D8,SwapKitError as BT,updateDerivationPath as k8}from"@swapkit/helpers";import{Psbt as I8}from"bitcoinjs-lib";function my(T){return py(PT(T))}function O8(T){function f({builder:y,utxos:L}){return L.forEach((G,x)=>{y.sign(x,T,void 0,65,G.witnessUtxo?.value)}),y.build()}return{getAddress:()=>{let y=T.getAddress(0);return Promise.resolve(my(y))},signTransaction:f}}async function H0(T){let f="phrase"in T?T.phrase:void 0,X="index"in T?T.index||0:0,y=C8("derivationPath"in T&&T.derivationPath?T.derivationPath:k8(D8[xy],{index:X})),L=f?(await ST(xy))({derivationPath:y,phrase:f}):void 0,G=L?O8(L):("signer"in T)?T.signer:void 0;function x(){return Promise.resolve(G?.getAddress())}let{getBalance:Z,getFeeRates:B,broadcastTx:J,...Q}=await oy({chain:xy});function q(z,M=!0){return Z(py(PT(z)))}return{...Q,broadcastTx:J,buildTx:P8,createTransaction:t5,getAddress:x,getAddressFromKeys:w8,getBalance:q,getFeeRates:B,stripPrefix:py,stripToCashAddress:my,transfer:E8({broadcastTx:J,getFeeRates:B,signer:G}),validateAddress:Ay}}async function t5({assetValue:T,recipient:f,memo:X,feeRate:y,sender:L}){if(!Ay(f))throw new BT("toolbox_utxo_invalid_address",{address:f});let G=Math.ceil(T.getBaseValue("number")+y*7500),x=await e(xy).getUtxos({address:my(L),fetchTxHex:!0,targetValue:G}),Z=X?await zy(X):null,B=[];B.push({address:f,value:T.getBaseValue("number")});let{inputs:J,outputs:Q}=_y({chain:xy,feeRate:y,inputs:x,outputs:B});if(!(J&&Q))throw new BT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:L});let q=await qy(),z=new H8(q(xy));await Promise.all(J.map(async(M)=>{let _=await e(xy).getRawTx(M.hash);z.addInput(U8.fromBuffer(Buffer.from(_,"hex")),M.index)}));for(let M of Q){let _="address"in M&&M.address?M.address:LT(L),W=await qy(),k=Y8.toOutputScript(LT(_),W(xy));z.addOutput(k,M.value)}if(Z)z.addOutput(Z,0);return{builder:z,utxos:J}}function E8({broadcastTx:T,getFeeRates:f,signer:X}){return async function({recipient:L,assetValue:G,feeOptionKey:x=R8.Fast,...Z}){let B=await X?.getAddress();if(!(X&&B))throw new BT("toolbox_utxo_no_signer");if(!L)throw new BT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let J=Z.feeRate||(await f())[x],{builder:Q,utxos:q}=await t5({...Z,assetValue:G,feeRate:J,recipient:L,sender:B}),M=(await X.signTransaction({builder:Q,utxos:q})).toHex();return T(M)}}async function P8({assetValue:T,recipient:f,memo:X,feeRate:y,sender:L,setSigHashType:G}){let x=PT(f);if(!Ay(x))throw new BT("toolbox_utxo_invalid_address",{address:x});let Z=Math.ceil(T.getBaseValue("number")+y*7500),B=await e(xy).getUtxos({address:my(L),fetchTxHex:!1,targetValue:Z}),J=Number(y.toFixed(0)),Q=X?await zy(X):null,q=[];if(q.push({address:LT(f),value:T.getBaseValue("number")}),Q)q.push({script:Q,value:0});let{inputs:z,outputs:M}=_y({chain:xy,feeRate:J,inputs:B,outputs:q});if(!(z&&M))throw new BT("toolbox_utxo_insufficient_balance",{assetValue:T,sender:L});let _=await qy(),W=new I8({network:_(xy)});for(let{hash:k,index:v,witnessUtxo:F}of z)W.addInput({hash:k,index:v,sighashType:G?65:void 0,witnessUtxo:F});for(let k of M){let v="address"in k&&k.address?k.address:LT(L),F=k.script?Q?{script:Q,value:0}:void 0:{address:v,value:k.value};if(F)W.addOutput(F)}return{inputs:z,psbt:W,utxos:B}}function w8(T){let f=T.getAddress(0);return my(f)}var xy;var Mf=P(()=>{xT();$T();FT();xy=W8.BitcoinCash});import{bitgo as l8,crypto as v8,ECPair as i5,networks as F8,address as A8}from"@bitgo/utxo-lib";import{HDKey as d5}from"@scure/bip32";import{mnemonicToSeedSync as r5}from"@scure/bip39";import{Chain as Nf,derivationPathToString as S8,FeeOption as V8,NetworkDerivationPath as $8,SKConfig as K8,SwapKitError as Yf,updateDerivationPath as u8}from"@swapkit/helpers";import b8 from"bs58check";import{match as n8,P as W0}from"ts-pattern";function a5(){return F8.zcash}function s5(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
+ `,pubKeyHash:28,scriptHash:28,wif:128}}function j8({phrase:T,derivationPath:f}){let X=r5(T),L=d5.fromMasterSeed(X).derive(f);if(!L.privateKey)throw new Yf("toolbox_utxo_invalid_params");let G=s5(),x=i5.fromPrivateKey(Buffer.from(L.privateKey),{network:G}),Z=v8.hash160(x.publicKey),{isStagenet:B}=K8.get("envs"),J=B?Buffer.from([29,37]):Buffer.from([28,184]),Q=Buffer.concat([J,Z]),q=b8.encode(Q);return{getAddress:()=>Promise.resolve(q),signTransaction:(z)=>{let M=z.signAllInputs(x);return Promise.resolve(M)}}}function h8({inputs:T,outputs:f,psbt:X,sender:y,compiledMemo:L}){for(let G of T){let x=!!G.witnessUtxo&&{witnessUtxo:{...G.witnessUtxo,value:BigInt(G.value)}},Z=!G.witnessUtxo&&{nonWitnessUtxo:G.txHex?Buffer.from(G.txHex,"hex"):void 0};X.addInput({hash:G.hash,index:G.index,...x,...Z})}for(let G of f){let x="address"in G&&G.address?G.address:y,Z=G.script;if(Z&&!L)continue;let B=Z?{script:L,value:0n}:{script:A8.toOutputScript(x,a5()),value:BigInt(G.value)};X.addOutput(B)}return{inputs:T,psbt:X}}async function g5(T){let{assetValue:f,recipient:X,memo:y,feeRate:L,sender:G,fetchTxHex:x}=T,Z=y?zy(y):null,B=await e(Nf.Zcash).getUtxos({address:G,fetchTxHex:x!==!1}),J=[{address:X,value:Number(f.getBaseValue("string"))},...Z?[{script:Z,value:0}]:[]],{inputs:Q,outputs:q}=_y({chain:Nf.Zcash,changeAddress:G,feeRate:L,inputs:B,outputs:J});if(!(Q&&q))throw new Yf("toolbox_utxo_insufficient_balance",{assetValue:f,sender:G});let z=l8.createPsbtForNetwork({network:a5()},{version:455}),_=3268858036,W=Buffer.concat([Buffer.of(252),Buffer.of(5),Buffer.from("BITGO"),Buffer.of(0)]),k=Buffer.allocUnsafe(4);k.writeUInt32LE(_>>>0,0),z.addUnknownKeyValToGlobal({key:W,value:k});let{psbt:v,inputs:F}=await h8({compiledMemo:Z,inputs:Q,outputs:q,psbt:z,sender:G});return{inputs:F,outputs:q,psbt:v}}async function C0(T){let f=await n8(T).with({signer:W0.not(W0.nullish)},({signer:x})=>Promise.resolve(x)).with({phrase:W0.string},({phrase:x,derivationPath:Z,index:B=0})=>{let J=Z||$8[Nf.Zcash]||[44,133,0,0,0],Q=u8(J,{index:B}),q=S8(Q);return j8({derivationPath:q,phrase:x})}).otherwise(()=>Promise.resolve(void 0)),X=await oy({chain:Nf.Zcash,signer:f});async function y({recipient:x,assetValue:Z,feeOptionKey:B=V8.Fast,...J}){let Q=await f?.getAddress();if(!(f&&Q))throw new Yf("toolbox_utxo_no_signer");let q=J.feeRate||(await X.getFeeRates())[B],{psbt:z}=await g5({...J,assetValue:Z,feeRate:q,recipient:x,sender:Q}),M=await f.signTransaction(z);return M.finalizeAllInputs(),X.broadcastTx(M.extractTransaction().toHex())}function L({phrase:x,derivationPath:Z="m/44'/133'/0'/0/0"}){let B=r5(x),Q=d5.fromMasterSeed(B).derive(Z);if(!Q.privateKey)throw new Yf("toolbox_utxo_invalid_params");let q=s5();return i5.fromPrivateKey(Buffer.from(Q.privateKey),{network:q})}function G({phrase:x,derivationPath:Z="m/44'/133'/0'/0/0"}){return L({derivationPath:Z,phrase:x}).toWIF()}return{...X,createKeysForPath:L,createTransaction:g5,getPrivateKeyFromMnemonic:G,transfer:y,validateAddress:ZT}}var R0=P(()=>{xT();$T();FT()});import{Chain as JT,SwapKitError as p8}from"@swapkit/helpers";async function o8(T,f){switch(T){case JT.BitcoinCash:return await H0(f||{});case JT.Zcash:return await C0(f);case JT.Bitcoin:case JT.Dogecoin:case JT.Litecoin:case JT.Dash:return await oy({chain:T,...f});default:throw new p8("toolbox_utxo_not_supported",{chain:T})}}var e5=P(()=>{Mf();$T();R0();Mf();FT()});var D0={};Ly(D0,{validateZcashAddress:()=>ZT,toLegacyAddress:()=>LT,toCashAddress:()=>PT,stripToCashAddress:()=>my,stripPrefix:()=>py,nonSegwitChains:()=>AT,isValidAddress:()=>z0,getUtxoToolbox:()=>o8,getUtxoNetwork:()=>qy,getUtxoApi:()=>e,getUTXOAddressValidator:()=>o5,getScriptTypeForAddress:()=>lT,getOutputSize:()=>vT,getInputSize:()=>Fy,getDustThreshold:()=>_f,getCreateKeysForPath:()=>ST,detectAddressNetwork:()=>_0,createZcashToolbox:()=>C0,createUTXOToolbox:()=>oy,createCustomUtxoApi:()=>jL,createBCHToolbox:()=>H0,compileMemo:()=>zy,calculateTxSize:()=>XT,bchValidateAddress:()=>Ay,addressFromKeysGetter:()=>U0,addInputsAndOutputs:()=>h5,accumulative:()=>_y,UtxoNetwork:()=>q0,UTXOScriptType:()=>zf,TX_OVERHEAD:()=>qf,OutputSizes:()=>wT,OP_RETURN_OVERHEAD:()=>$5,MIN_TX_FEE:()=>iL,InputSizes:()=>Qf});var k0=P(()=>{xT();e5();Mf();$T();R0()});import{AssetValue as I0,Chain as ty,DerivationPath as m8,derivationPathToString as c8,getChainConfig as fG,getRPCUrl as t8,NetworkDerivationPath as g8,SwapKitError as gy,updateDerivationPath as i8}from"@swapkit/helpers";import{match as d8,P as yG}from"ts-pattern";async function r8(T){try{let f=await fetch(`https://lite-api.jup.ag/tokens/v1/token/${T}`);if(!f.ok)return null;return await f.json()}catch{return null}}async function a8(T){let f=await cy(),{PublicKey:X}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:y}=await import("@solana/spl-token"),L=new X(T),G=[],x=await f.getBalance(L);if(x>0){let{baseDecimal:B}=fG(ty.Solana);G.push(I0.from({chain:ty.Solana,fromBaseDecimal:B,value:x}))}let Z=await f.getParsedTokenAccountsByOwner(L,{programId:y});for(let{account:B}of Z.value){let J=B.data.parsed.info,Q=J.mint,q=J.tokenAmount.amount;if(Number(q)===0)continue;let z=await r8(Q),M=z?.symbol||"UNKNOWN",_=z?.decimals||J.tokenAmount.decimals;G.push(I0.from({asset:`${ty.Solana}.${M}-${Q}`,fromBaseDecimal:_,value:q}))}return G}async function P0(){let{PublicKey:T}=await import("@solana/web3.js");return(f)=>{try{let X=new T(f);return T.isOnCurve(X.toBytes())}catch(X){return!1}}}async function s8(T){let f=T&&"index"in T?T.index||0:0,X=c8(T&&"derivationPath"in T&&T.derivationPath?T.derivationPath:i8(g8[ty.Solana],{index:f})),y=await d8(T).with({phrase:yG.string},({phrase:G})=>E0({derivationPath:X,phrase:G})).with({signer:yG.any},({signer:G})=>G).otherwise(()=>{return});function L(){return y?.publicKey?TG(y.publicKey):""}return{broadcastTransaction:O0(cy),createKeysForPath:E0,createTransaction:w0(cy),createTransactionFromInstructions:fX,estimateTransactionFee:e8(cy),getAddress:L,getAddressFromPubKey:TG,getAddressValidator:P0,getBalance:(G)=>{let x=G||L();if(!x)throw new gy("core_wallet_connection_not_found");return a8(x)},getConnection:cy,getPubkeyFromAddress:l0,signTransaction:LX(cy,y),transfer:GX(cy,y)}}function e8(T){return async({recipient:f,assetValue:X,memo:y,isProgramDerivedAddress:L,sender:G})=>{let x=await T(),B=(await w0(T)({assetValue:X,isProgramDerivedAddress:L,memo:y,recipient:f,sender:G})).compileMessage(),J=await x.getFeeForMessage(B);if(J.value===null)throw new gy("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:Q}=fG(ty.Solana);return I0.from({chain:ty.Solana,fromBaseDecimal:Q,value:J.value})}}async function cy(){let{Connection:T}=await import("@solana/web3.js"),f=await t8(ty.Solana);return new T(f,"confirmed")}function yX(T){return async({assetValue:f,recipient:X,sender:y,isProgramDerivedAddress:L})=>{let G=await T(),x=await l0(y);if(f.isGasAsset){let{Transaction:Z,SystemProgram:B,PublicKey:J}=await import("@solana/web3.js");return new Z().add(B.transfer({fromPubkey:x,lamports:f.getBaseValue("number"),toPubkey:new J(X)}))}if(f.address)return TX({amount:f.getBaseValue("number"),connection:G,decimals:f.decimal,from:x,isProgramDerivedAddress:L,recipient:X,tokenAddress:f.address});return}}async function TX({tokenAddress:T,recipient:f,from:X,connection:y,amount:L,decimals:G,isProgramDerivedAddress:x}){let{getAssociatedTokenAddress:Z,getAccount:B,createAssociatedTokenAccountInstruction:J,createTransferCheckedInstruction:Q}=await import("@solana/spl-token"),{Transaction:q,PublicKey:z}=await import("@solana/web3.js"),M=new q,_=new z(T),W=await Z(_,X),k=new z(f),v=await Z(_,k,x),F=!1;try{await B(y,v),F=!0}catch(b){}if(!F)M.add(J(X,v,k,_));return M.add(Q(W,_,v,X,L,G)),M}function w0(T){return async({recipient:f,assetValue:X,memo:y,isProgramDerivedAddress:L,sender:G})=>{let{createMemoInstruction:x}=await import("@solana/spl-memo"),Z=await l0(G),B=await P0();if(!(L||B(f)))throw new gy("core_transaction_invalid_recipient_address");let J=await T(),Q=await yX(T)({assetValue:X,isProgramDerivedAddress:L,recipient:f,sender:G});if(!Q)throw new gy("core_transaction_invalid_sender_address");if(y)Q.add(x(y));let q=await J.getLatestBlockhash();return Q.recentBlockhash=q.blockhash,Q.feePayer=Z,Q}}async function fX({instructions:T}){let{Transaction:f}=await import("@solana/web3.js"),X=new f().add(...T);if(!X)throw new gy("core_transaction_invalid_sender_address");return X}function GX(T,f){return async({recipient:X,assetValue:y,memo:L,isProgramDerivedAddress:G})=>{if(!f)throw new gy("core_transaction_invalid_sender_address");let x=f.publicKey?.toString()??(await f.connect()).publicKey.toString(),Z=await w0(T)({assetValue:y,isProgramDerivedAddress:G,memo:L,recipient:X,sender:x});if("signTransaction"in f){let B=await f.signTransaction(Z);return O0(T)(B)}return Z.sign(f),O0(T)(Z)}}function O0(T){return async(f)=>{return(await T()).sendRawTransaction(f.serialize())}}function LX(T,f){return async(X)=>{let{VersionedTransaction:y}=await import("@solana/web3.js");if(!f)throw new gy("toolbox_solana_no_signer");if(!(X instanceof y)){let G=await(await T()).getLatestBlockhash();X.recentBlockhash=G.blockhash,X.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(X);return await X.sign([f]),X}}async function E0({phrase:T,derivationPath:f=m8.SOL}){let{HDKey:X}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:y}=await import("@scure/bip39"),{Keypair:L}=await import("@solana/web3.js"),G=y(T),x=X.fromMasterSeed(G);return L.fromSeed(x.derive(f,!0).privateKey)}function TG(T){return T.toString()}async function l0(T){let{PublicKey:f}=await import("@solana/web3.js");return new f(T)}var GG=()=>{};var v0={};Ly(v0,{getSolanaToolbox:()=>s8,getSolanaAddressValidator:()=>P0,createKeysForPath:()=>E0});var F0=P(()=>{GG()});import{derivationPathToString as XX,SwapKitError as xX}from"@swapkit/helpers";import{KeyPairSigner as ZX}from"near-api-js";async function KT(){let{validateAccountId:T}=await import("near-sdk-js");return(f)=>{try{return T(f)}catch{let X=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return f.length>=2&&f.length<=64&&X.test(f)}}}async function Uf(T){let{parseSeedPhrase:f}=await import("near-seed-phrase"),{KeyPair:X}=await import("near-api-js"),y=T.index||0,L=T.derivationPath?XX(T.derivationPath.slice(0,3)):`m/44'/397'/${y}'`,{secretKey:G}=f(T.phrase,L),x=X.fromString(G);return XG(x)}async function A0(T){let{KeyPair:f}=await import("near-api-js/lib/utils"),X=f.fromString(T);return XG(X)}function XG(T){return new LG(T)}async function Hf(T,f){let y=(await T.query({account_id:f,finality:"final",request_type:"view_access_key_list"})).keys.find((Z)=>Z.access_key.permission==="FullAccess");if(!y)throw new xX("toolbox_near_invalid_address");let{utils:L}=await import("near-api-js"),G=L.PublicKey.fromString(y.public_key);return{nonce:y.access_key.nonce||0,publicKey:G}}var LG;var S0=P(()=>{LG=class LG extends ZX{#y;constructor(T){super(T);this.#y=T}getAddress(){let T=this.#y.getPublicKey(),f=Buffer.from(T.data).toString("hex");return Promise.resolve(f)}}});function V0(T){return"recipient"in T&&"amount"in T&&!("contractId"in T)}function $0(T){return"contractId"in T&&"methodName"in T}function K0(T){return"actions"in T}function u0(T){return"newAccountId"in T}function b0(T){return"contractCode"in T}function n0(T){return"customEstimator"in T}function j0(T){let f=0;for(let X of T)switch(X.enum){case"transfer":f+=Number(t.SIMPLE_TRANSFER);break;case"functionCall":f+=Number(t.CONTRACT_CALL);break;case"createAccount":f+=Number(t.ACCOUNT_CREATION);break;case"deployContract":f+=Number(t.CONTRACT_DEPLOYMENT);break;case"addKey":f+=Number(t.ACCESS_KEY_ADDITION);break;case"deleteKey":f+=Number(t.ACCESS_KEY_DELETION);break;case"stake":f+=Number(t.STAKE);break;default:f+=Number(t.CONTRACT_CALL)}return f.toString()}function h0(T){if(T==="ft_transfer"||T==="ft_transfer_call")return t.TOKEN_TRANSFER;if(T==="storage_deposit")return t.STORAGE_DEPOSIT;return t.CONTRACT_CALL}function BX(T){return(BigInt(T)*BigInt(1000000000000)).toString()}function JX(T){return(BigInt(T)/BigInt(1000000000000)).toString()}var t;var p0=P(()=>{t={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function Wf({account:T,contractId:f,viewMethods:X,changeMethods:y}){let{Contract:L}=await import("near-api-js");return new L(T,f,{changeMethods:y,useLocalViewExecution:!0,viewMethods:X})}async function o0({contractId:T,account:f}){let X=(await import("bn.js")).default,y=await Wf({account:f,changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"],contractId:T,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"]}),L=async(G)=>{if(!await y.storage_balance_of({account_id:G})){let B=(await y.storage_balance_bounds())?.min||"1250000000000000000000";await y.storage_deposit({account_id:G},new X("100000000000000"),new X(B))}};return{balanceOf:(G)=>y.ft_balance_of({account_id:G}),contract:y,ensureStorage:L,metadata:()=>y.ft_metadata(),storageBalanceOf:(G)=>y.storage_balance_of({account_id:G}),storageDeposit:(G,x)=>y.storage_deposit({account_id:G},new X("100000000000000"),new X(x||"1250000000000000000000")),totalSupply:()=>y.ft_total_supply(),transfer:async(G,x,Z)=>{return await L(G),y.ft_transfer({amount:x,memo:Z,receiver_id:G},new X("100000000000000"),new X("1"))},transferCall:async(G,x,Z,B)=>{return await L(G),y.ft_transfer_call({amount:x,memo:B,msg:Z,receiver_id:G},new X("100000000000000"),new X("1"))}}}import{AssetValue as xG,Chain as QT,getChainConfig as ZG,getRPCUrl as QX,SwapKitError as g}from"@swapkit/helpers";async function qX(T){let{P:f,match:X}=await import("ts-pattern"),{providers:y}=await import("near-api-js"),L=await X(T).with({phrase:f.string},async(N)=>{return await Uf(N)}).with({signer:f.any},({signer:N})=>N).otherwise(()=>{return}),G=await QX(QT.Near),x=new y.JsonRpcProvider({url:G});async function Z(N){let{Account:Y}=await import("near-api-js"),R=N||await B();return new Y(R,x,L)}async function B(){if(!L)throw new g("toolbox_near_no_signer");return await L.getAddress()}async function J(N){if(!L)throw new g("toolbox_near_no_signer");let{recipient:Y,assetValue:R}=N;if(!(await KT())(Y))throw new g("toolbox_near_invalid_address");let E=await Z();if(R.isGasAsset===!1){let l=R.address;if(!l)throw new g("toolbox_near_missing_contract_address");let S=R.getBaseValue("string");return b({args:{amount:S,memo:N.memo,receiver_id:Y},contractId:l,methodName:"ft_transfer"})}try{let l=R.getBaseValue("string");return(await E.transfer({amount:l,receiverId:Y})).transaction_outcome.id}catch(l){throw new g("toolbox_near_transfer_failed",{error:l})}}async function Q(N){let{recipient:Y,assetValue:R,memo:O,attachedDeposit:E,sender:l,functionCall:S}=N,u=await KT();if(!u(Y))throw new g("toolbox_near_invalid_address",{recipient:Y});if(!u(l))throw new g("toolbox_near_invalid_address",{signerId:l});if(S)return z({...S,sender:l});if(!R.isGasAsset){let $y=R.address;if(!$y)throw new g("toolbox_near_missing_contract_address");return z({args:{amount:R.getBaseValue("string"),memo:O||null,receiver_id:Y},attachedDeposit:E||"1",contractId:$y,gas:"250000000000000",methodName:"ft_transfer",sender:l})}let{publicKey:V,nonce:Ty}=await Hf(x,l),fy=R.getBaseValue("bigint"),{transactions:d,utils:Ny}=await import("near-api-js"),Vy=[d.transfer(fy)];if(O&&E)Vy.push(d.functionCall("memo",{memo:O},BigInt("250000000000000"),BigInt(E)));let bT=await x.block({finality:"final"}),Cf=Ny.serialize.base_decode(bT.header.hash);return d.createTransaction(l,V,Y,Ty+1,Vy,Cf)}async function q(N){let{SCHEMA:Y}=await import("near-api-js/lib/transaction"),{utils:R}=await import("near-api-js"),O=R.serialize.serialize(Y.Transaction,N);return Buffer.from(O).toString("base64")}async function z(N){let{sender:Y}=N,{publicKey:R,nonce:O}=await Hf(x,Y),{transactions:E,utils:l}=await import("near-api-js"),S=await x.block({finality:"final"}),u=l.serialize.base_decode(S.header.hash),V=[E.functionCall(N.methodName,Buffer.from(JSON.stringify(N.args)),BigInt(N.gas),BigInt(N.attachedDeposit))];return E.createTransaction(Y,R,N.contractId,O+1,V,u)}async function M(N){let{transactions:Y}=await import("near-api-js");return Y.functionCall(N.methodName,Buffer.from(JSON.stringify(N.args)),BigInt(N.gas),BigInt(N.attachedDeposit))}async function _(N){if(!L)throw new g("toolbox_near_no_signer");let[Y,R]=await L.signTransaction(N);return R}async function W(N){return(await x.sendTransaction(N)).transaction.hash}async function k(N){if("assetValue"in N){let E=BigInt("115123062500")+BigInt("108059500000"),l=await v(),S=E*BigInt(l.toString()),{baseDecimal:u}=ZG(QT.Near);return xG.from({chain:QT.Near,fromBaseDecimal:u,value:S.toString()})}let Y=L?await Z():void 0;return s(N,Y)}async function v(){try{return await x.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function F(N,Y,R){if(!L)throw new g("toolbox_near_no_signer");let O=await Z(),{utils:E}=await import("near-api-js"),l=E.format.parseNearAmount(R)||"0";return(await O.createAccount(N,E.PublicKey.fromString(Y),BigInt(l))).transaction.hash}async function b(N){try{if(!L)throw new g("toolbox_near_no_signer");let{transactions:Y}=await import("near-api-js"),{contractId:R,methodName:O,args:E,deposit:l}=N,S=await Z(),u=await s({args:E||{},contractId:R,methodName:O}),V=Y.functionCall(O,E||{},u.getBaseValue("bigint"),BigInt(l||"1"));return(await S.signAndSendTransaction({actions:[V],receiverId:R})).transaction_outcome.id}catch(Y){throw new g("toolbox_near_transfer_failed",{error:Y})}}async function K(N){let Y=await Z();return Wf({account:Y,changeMethods:N.changeMethods,contractId:N.contractId,viewMethods:N.viewMethods})}async function i(N){if(!L)throw new g("toolbox_near_no_signer");if(N.actions.length===0)throw new g("toolbox_near_empty_batch");return(await(await Z()).signAndSendTransaction({actions:N.actions,receiverId:N.receiverId})).transaction.hash}async function m(N){let Y=await Z();return o0({account:Y,contractId:N})}async function s(N,Y){let{baseDecimal:R}=ZG(QT.Near),O=await X(N).when(V0,()=>t.SIMPLE_TRANSFER).when($0,(S)=>h0(S.methodName)).when(K0,(S)=>j0(S.actions)).when(u0,()=>t.ACCOUNT_CREATION).when(b0,()=>t.CONTRACT_DEPLOYMENT).when(n0,(S)=>{if(!Y)throw new g("toolbox_near_no_account");return S.customEstimator(Y)}).otherwise(()=>{throw new g("toolbox_near_invalid_gas_params")}),l=BigInt(O)*BigInt(1000000000000);return xG.from({chain:QT.Near,fromBaseDecimal:R,value:l})}async function uT(){try{return(await x.gasPrice(null)).gas_price||"100000000"}catch(N){return"100000000"}}return{broadcastTransaction:W,callFunction:b,createAction:M,createContract:K,createContractFunctionCall:z,createSubAccount:F,createTransaction:Q,estimateGas:s,estimateTransactionFee:k,executeBatchTransaction:i,getAddress:B,getBalance:iy(QT.Near),getGasPrice:uT,getPublicKey:async()=>L?(await L.getPublicKey()).toString():"",getSignerFromPhrase:(N)=>Uf(N),getSignerFromPrivateKey:A0,nep141:m,provider:x,serializeTransaction:q,signTransaction:_,transfer:J,validateAddress:await KT()}}var m0=P(()=>{CT();S0();p0()});var BG=P(()=>{m0()});var c0={};Ly(c0,{tgasToGas:()=>BX,isSimpleTransfer:()=>V0,isCustomEstimator:()=>n0,isContractDeployment:()=>b0,isContractCall:()=>$0,isBatchTransaction:()=>K0,isAccountCreation:()=>u0,getValidateNearAddress:()=>KT,getNearToolbox:()=>qX,getNearSignerFromPrivateKey:()=>A0,getNearSignerFromPhrase:()=>Uf,getFullAccessPublicKey:()=>Hf,getContractMethodGas:()=>h0,gasToTGas:()=>JX,estimateBatchGas:()=>j0,createNearContract:()=>Wf,createNEP141Token:()=>o0,GAS_COSTS:()=>t});var t0=P(()=>{S0();p0();m0();BG()});var d0={};Ly(d0,{rippleValidateAddress:()=>i0,hashes:()=>CX,getRippleToolbox:()=>WX});import{AssetValue as g0,Chain as ky,getChainConfig as JG,getRPCUrl as zX,SwapKitError as Sy,SwapKitNumber as _X}from"@swapkit/helpers";import{Client as MX,isValidAddress as NX,Wallet as YX,xrpToDrops as UX}from"xrpl";import{hashes as CX}from"xrpl";function QG(T){let f=YX.fromMnemonic(T);return{getAddress:()=>Promise.resolve(f.address),signTransaction:(X)=>Promise.resolve(f.sign(X))}}function i0(T){return NX(T)}var HX,WX=async(T={})=>{let f="signer"in T&&T.signer?T.signer:("phrase"in T)&&T.phrase?QG(T.phrase):void 0,X=await zX(ky.Ripple);if(!X)throw new Sy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:ky.Ripple}});let y=new MX(X);await y.connect();let L=()=>{if(!f)throw new Sy({errorKey:"toolbox_ripple_signer_not_found"});return f.getAddress()},G=async(z)=>{let M=z||await L(),{baseDecimal:_}=JG(ky.Ripple);try{let k=(await y.request({account:M,command:"account_info"})).result.account_data.Balance;return[g0.from({chain:ky.Ripple,fromBaseDecimal:_,value:k})]}catch(W){if(W.data.error_code===HX.ACCOUNT_NOT_FOUND)return[g0.from({chain:ky.Ripple,value:0})];throw new Sy("toolbox_ripple_get_balance_error",{info:{address:M,error:W}})}},x=async()=>{let M=(await y.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:_}=JG(ky.Ripple);return g0.from({chain:ky.Ripple,fromBaseDecimal:_,value:_X.fromBigInt(BigInt(M),_)})},Z=async({assetValue:z,recipient:M,memo:_,sender:W})=>{if(!i0(M))throw new Sy({errorKey:"core_transaction_invalid_recipient_address"});let k=W||await L();if(!z.isGasAsset||z.chain!==ky.Ripple)throw new Sy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:z.toString()}});let v={Account:k,Amount:UX(z.getValue("string")),Destination:M,TransactionType:"Payment"};if(_)v.Memos=[{Memo:{MemoData:Buffer.from(_).toString("hex")}}];return await y.autofill(v)},B=(z)=>{if(!f)throw new Sy({errorKey:"toolbox_ripple_signer_not_found"});return f.signTransaction(z)},J=async(z)=>{let _=(await y.submitAndWait(z)).result;if(_.validated)return _.hash;throw new Sy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:ky.Ripple}})};return{broadcastTransaction:J,createSigner:QG,createTransaction:Z,disconnect:()=>y.disconnect(),estimateTransactionFee:x,getAddress:L,getBalance:G,signer:f,signTransaction:B,transfer:async(z)=>{if(!f)throw new Sy({errorKey:"toolbox_ripple_signer_not_found"});let M=await f.getAddress(),_=await Z({...z,sender:M}),W=await B(_);return J(W.tx_blob)},validateAddress:i0}};var r0=P(()=>{HX={ACCOUNT_NOT_FOUND:19}});var a0={};Ly(a0,{radixValidateAddress:()=>zG,RadixToolbox:()=>wX});import{AssetValue as RX,Chain as qG,SKConfig as DX,SwapKitError as kX}from"@swapkit/helpers";function zG(T){return T.startsWith("account_rdx1")&&T.length===66}function IX({networkApi:T}){return async function(X){let y=await OX({address:X,networkApi:T});return EX({networkApi:T,resources:y})}}async function OX({address:T,networkApi:f}){let X=!0,y,L=[],G=await PX(f);while(X){let x={address:T,at_ledger_state:{state_version:G},cursor:y,limit_per_page:100},Z=await f.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:x});if(L=L.concat(Z.items),Z.next_cursor)y=Z.next_cursor;else X=!1}return L}async function EX({resources:T,networkApi:f}){let X=[],y=50,L=[];for(let G=0;G<T.length;G+=50)L.push(T.slice(G,G+50));for(let G of L){let x=G.map((J)=>J.resource_address),Z=await f.state.getEntityDetailsVaultAggregated(x),B=new Map;for(let J of Z)if(J.details!==void 0){let Q=J.metadata?.items.find((z)=>z.key==="symbol"),q=Q?.value.typed.type==="String"?Q.value.typed.value:"?";if(J.details.type==="FungibleResource")B.set(J.address,{decimals:J.details.divisibility,symbol:q})}for(let J of G)if(J.aggregation_level==="Global"){let Q=B.get(J.resource_address)||{decimals:0,symbol:"?"},q=RX.from({asset:Q.symbol!==qG.Radix?`${qG.Radix}.${Q.symbol}-${J.resource_address}`:"XRD.XRD",value:J.amount});X.push(q)}}return X}function PX(T){return T.status.getCurrent().then((f)=>f.ledger_state.state_version)}var wX=async({dappConfig:T}={})=>{let{RadixDappToolkit:f}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:X}=await import("@radixdlt/babylon-gateway-api-sdk"),y=T||DX.get("integrations").radix,L=f({...y,networkId:y.network?.networkId||1}),G=X.initialize(L.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:IX({networkApi:G}),networkApi:G,signAndBroadcast:()=>{throw new kX("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:zG}};var s0=()=>{};var qT;var e0=P(()=>{qT=[{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}]});import{SwapKitError as lX}from"@swapkit/helpers";async function _G(T){let f=await import("tronweb"),X=f.TronWeb??f.default?.TronWeb;try{let y=await fetch(`${vX}/v1/accounts/${T}`);if(!y.ok)throw Error(`TronGrid API error: ${y.status} ${y.statusText}`);let L=await y.json();if(!(L.success&&L.data)||L.data.length===0)throw Error("Invalid response from TronGrid API");let G;try{G=X.address.toHex(T).toLowerCase()}catch{G=T.toLowerCase()}let x=L.data.find((Z)=>{return Z.address.toLowerCase()===G});if(!x)return;return{balance:x.balance,trc20:x.trc20||[]}}catch(y){throw new lX("toolbox_tron_trongrid_api_error",{address:T,message:y instanceof Error?y.message:"Unknown error"})}}var vX="https://api.trongrid.io";var MG=()=>{};import{AssetValue as Iy,BaseDecimal as NG,Chain as My,derivationPathToString as HG,getRPCUrl as FX,NetworkDerivationPath as WG,SwapKitError as a,updateDerivationPath as CG,warnOnce as y1}from"@swapkit/helpers";import{match as AX,P as YG}from"ts-pattern";async function T1(){let T=await import("tronweb"),f=T.TronWeb??T.default?.TronWeb;return(X)=>{return f.isAddress(X)}}async function RG({phrase:T,derivationPath:f,index:X}){let y=f||HG(CG(WG[My.Tron],{index:X||0})),{HDKey:L}=await import("@scure/bip32"),{mnemonicToSeedSync:G}=await import("@scure/bip39"),x=G(T),B=L.fromMasterSeed(x).derive(y);if(!B.privateKey)throw new a("toolbox_tron_no_signer");return Buffer.from(B.privateKey).toString("hex")}async function uX({phrase:T,derivationPath:f,tronWeb:X}){let{HDKey:y}=await import("@scure/bip32"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),G=L(T),Z=y.fromMasterSeed(G).derive(f);if(!Z.privateKey)throw new a("toolbox_tron_no_signer");let B=Buffer.from(Z.privateKey).toString("hex");X.setPrivateKey(B);let J=X?.address.fromPrivateKey(B);return{getAddress:()=>Promise.resolve(typeof J==="string"?J:""),signTransaction:async(Q)=>{return await X.trx.sign(Q,B)}}}var SX=268,VX=13000,$X=345,UG="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",KX="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",DG=async(T={})=>{let f=await import("tronweb"),X=f.TronWeb??f.default?.TronWeb,y=await FX(My.Tron),L=void 0,G=new X({fullHost:y,headers:void 0}),x="index"in T?T.index||0:0,Z=HG("derivationPath"in T&&T.derivationPath?T.derivationPath:CG(WG[My.Tron],{index:x})),B=await AX(T).with({phrase:YG.string},async({phrase:N})=>uX({derivationPath:Z,phrase:N,tronWeb:G})).with({signer:YG.any},({signer:N})=>Promise.resolve(N)).otherwise(()=>Promise.resolve(void 0)),J=async()=>{if(!B)throw new a("toolbox_tron_no_signer");return await B.getAddress()},Q=()=>{return 1e8},q=async()=>{try{let N=await G.trx.getChainParameters(),Y={};for(let R of N)Y[R.key]=R.value;return{bandwidthFee:Y.getTransactionFee||1000,createAccountFee:Y.getCreateAccountFee||1e5,energyFee:Y.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},z=async(N)=>{try{let Y=await G.trx.getAccount(N);return Y&&Object.keys(Y).length>0}catch{return!1}},M=async(N)=>{try{let Y=await G.trx.getAccountResources(N);return{bandwidth:{free:Y.freeNetLimit-Y.freeNetUsed,total:Y.NetLimit||0,used:Y.NetUsed||0},energy:{total:Y.EnergyLimit||0,used:Y.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},_=async(N,Y)=>{try{let R=G.contract(qT,Y);if(!R.methods?.balanceOf)return 0n;let[O]=await R.methods.balanceOf(N).call();return O?typeof O==="bigint"?O:BigInt(O):0n}catch(R){return console.warn(`balanceOf() failed for ${Y}:`,R),0n}},W=async(N,Y)=>{try{G.setAddress(Y);let R=G.contract(qT,N),[O,E]=await Promise.all([R.symbol().call().catch(()=>"UNKNOWN"),R.decimals().call().catch(()=>"18")]);return{decimals:Number(E??18),symbol:O??"UNKNOWN"}}catch(R){return y1({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${N}: ${R instanceof Error?R.message:R}`}),null}},k=async(N,Y=!0)=>{let R=[Iy.from({chain:My.Tron})];try{let O=await _G(N);if(O){let E=[];E.push(Iy.from({chain:My.Tron,fromBaseDecimal:6,value:O.balance}));for(let l of O.trc20){let[S,u]=Object.entries(l)[0]||[];if(!(S&&u))continue;let V=await W(S,N);if(!V)continue;E.push(Iy.from({asset:`TRON.${V.symbol}-${S}`,fromBaseDecimal:V.decimals,value:BigInt(u||0)}))}return E}return R}catch(O){y1({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${O instanceof Error?O.message:O}`});let E=[],l=await G.trx.getBalance(N);if(l&&Number(l)>0)E.push(Iy.from({chain:My.Tron,fromBaseDecimal:6,value:l}));let S=await _(N,UG);if(S)E.push(Iy.from({asset:`TRON.USDT-${UG}`,fromBaseDecimal:6,value:S}));return E}},v=async({recipient:N,assetValue:Y,memo:R})=>{if(!B)throw new a("toolbox_tron_no_signer");let O=await J();if(G.setAddress(O),Y.isGasAsset){let V=await G.transactionBuilder.sendTrx(N,Y.getBaseValue("number"),O);if(R){let d=await G.transactionBuilder.addUpdateData(V,R,"utf8"),Ny=await B.signTransaction(d),{txid:Vy}=await G.trx.sendRawTransaction(Ny);return Vy}let Ty=await B.signTransaction(V),{txid:fy}=await G.trx.sendRawTransaction(Ty);return fy}let l=await b({assetValue:Y,memo:R,recipient:N,sender:O}),S=await B.signTransaction(l),{txid:u}=await G.trx.sendRawTransaction(S);if(!u)throw new a("toolbox_tron_token_transfer_failed");return u},F=async({assetValue:N,recipient:Y,sender:R})=>{let O=N.isGasAsset;try{let E=R?R:B?await J():void 0;if(!E)return O?Iy.from({chain:My.Tron,fromBaseDecimal:0,value:0.1}):Iy.from({chain:My.Tron,fromBaseDecimal:0,value:15});let l=await q(),u=await z(Y)?0:l.createAccountFee,V=await M(E);if(O){let $y=SX,L1=V.bandwidth.free+(V.bandwidth.total-V.bandwidth.used),X1=0;if($y>L1)X1=($y-L1)*l.bandwidthFee;let OG=u+X1;return Iy.from({chain:My.Tron,fromBaseDecimal:NG.TRON,value:OG})}let Ty=$X,fy=VX,d=V.bandwidth.free+(V.bandwidth.total-V.bandwidth.used),Ny=V.energy.total-V.energy.used,Vy=0;if(Ty>d)Vy=(Ty-d)*l.bandwidthFee;let bT=0;if(fy>Ny)bT=(fy-Ny)*l.energyFee;let Cf=u+Vy+bT;return Iy.from({chain:My.Tron,fromBaseDecimal:NG.TRON,value:Cf})}catch(E){throw y1({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${E instanceof Error?E.message:E}`}),new a("toolbox_tron_fee_estimation_failed",{error:E})}},b=async(N)=>{let{recipient:Y,assetValue:R,memo:O,sender:E,expiration:l}=N;if(R.isGasAsset){let V=await G.transactionBuilder.sendTrx(Y,R.getBaseValue("number"),E);if(O)return G.transactionBuilder.addUpdateData(V,O,"utf8");if(l)G.transactionBuilder.extendExpiration(V,l);return V}G.setAddress(E);let u=R.address;if(!u)throw new a("toolbox_tron_invalid_token_identifier",{identifier:R.toString()});try{let Ty=[{type:"address",value:Y},{type:"uint256",value:R.getBaseValue("string")}],fy={callValue:0,feeLimit:Q()},d=await G.transactionBuilder.triggerSmartContract(u,"transfer(address,uint256)",fy,Ty,E);if(O)return G.transactionBuilder.addUpdateData(d.transaction,O,"utf8");if(l)G.transactionBuilder.extendExpiration(d.transaction,l);return d.transaction}catch(V){throw new a("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction. This might be due to TronWeb 6.0.3 bug. Use the transfer method directly instead.",originalError:V instanceof Error?V.message:String(V)})}},K=async(N)=>{if(!B)throw new a("toolbox_tron_no_signer");return await B.signTransaction(N)},i=async(N)=>{let{txid:Y}=await G.trx.sendRawTransaction(N);return Y},m=async({assetAddress:N,spenderAddress:Y,from:R})=>{try{let O=G.contract(qT,N);if(!O.methods?.allowance)throw new a("toolbox_tron_invalid_token_contract");let[E]=await O.methods.allowance(R,Y).call();return E?typeof E==="bigint"?E:BigInt(E):0n}catch(O){throw new a("toolbox_tron_allowance_check_failed",{error:O})}};return{approve:async({assetAddress:N,spenderAddress:Y,amount:R,from:O})=>{if(!B)throw new a("toolbox_tron_no_signer");let E=O||await J(),l=R!==void 0?BigInt(R).toString():KX,S="approve(address,uint256)",u=[{type:"address",value:Y},{type:"uint256",value:l}],Ty={callValue:0,feeLimit:Q()};try{let{transaction:fy}=await G.transactionBuilder.triggerSmartContract(N,S,Ty,u,E),d=await B.signTransaction(fy),{txid:Ny}=await G.trx.sendRawTransaction(d);if(!Ny)throw new a("toolbox_tron_approve_failed");return Ny}catch(fy){throw new a("toolbox_tron_approve_failed",{error:fy})}},broadcastTransaction:i,createTransaction:b,estimateTransactionFee:F,getAddress:J,getApprovedAmount:m,getBalance:k,isApproved:async({assetAddress:N,spenderAddress:Y,from:R,amount:O})=>{let E=await m({assetAddress:N,from:R,spenderAddress:Y});if(!O)return E>0n;let l=BigInt(O);return E>=l},signTransaction:K,transfer:v,tronWeb:G,validateAddress:await T1()}};var kG=P(()=>{e0();MG()});var f1={};Ly(f1,{trc20ABI:()=>qT,getTronPrivateKeyFromMnemonic:()=>RG,getTronAddressValidator:()=>T1,createTronToolbox:()=>DG});var G1=P(()=>{e0();kG()});import{AssetValue as bX,Chain as D,EVMChains as nX,FeeOption as jX,SwapKitError as hX,UTXOChains as pX}from"@swapkit/helpers";async function S4(){let{match:T}=await import("ts-pattern"),{cosmosValidateAddress:f}=await Promise.resolve().then(() => (cT(),mT)),{evmValidateAddress:X}=await Promise.resolve().then(() => (J5(),B5)),{substrateValidateAddress:y}=await Promise.resolve().then(() => (J0(),B0)),{getUTXOAddressValidator:L}=await Promise.resolve().then(() => (k0(),D0)),{getSolanaAddressValidator:G}=await Promise.resolve().then(() => (F0(),v0)),{getValidateNearAddress:x}=await Promise.resolve().then(() => (t0(),c0)),{rippleValidateAddress:Z}=await Promise.resolve().then(() => (r0(),d0)),{radixValidateAddress:B}=await Promise.resolve().then(() => (s0(),a0)),{getTronAddressValidator:J}=await Promise.resolve().then(() => (G1(),f1)),Q=await G(),q=await L(),z=await J(),M=await x();return function({address:W,chain:k}){return T(k).with(...nX,()=>X({address:W})).with(...pX,()=>q({address:W,chain:k})).with(D.Cosmos,D.Kujira,D.Noble,D.Maya,D.THORChain,()=>f({address:W,chain:k})).with(D.Chainflip,D.Polkadot,()=>y({address:W,chain:k})).with(D.Radix,()=>B(W)).with(D.Near,()=>M(W)).with(D.Ripple,()=>Z(W)).with(D.Solana,()=>Q(W)).with(D.Tron,()=>z(W)).otherwise(()=>!1)}}function V4(T){return async function(X){let{match:y}=await import("ts-pattern");return y(T).returnType().with(D.Arbitrum,D.Aurora,D.Avalanche,D.Base,D.Berachain,D.BinanceSmartChain,D.Ethereum,D.Gnosis,D.Optimism,D.Polygon,async(L)=>{let G=await IG(L),x=await G.createTransaction(X);return G.estimateTransactionFee({...x,chain:L,feeOption:X.feeOptionKey||jX.Fast})}).with(D.Bitcoin,D.BitcoinCash,D.Dogecoin,D.Dash,D.Litecoin,D.Polkadot,D.Solana,D.Ripple,D.Tron,D.Near,async(L)=>{return(await IG(L)).estimateTransactionFee(X)}).with(D.THORChain,D.Maya,D.Kujira,D.Noble,D.Cosmos,async()=>{let{estimateTransactionFee:L}=await Promise.resolve().then(() => (cT(),mT));return L(X)}).otherwise(async()=>bX.from({chain:T}))}}async function IG(T,f){let{match:X}=await import("ts-pattern");return X(T).returnType().with(D.Arbitrum,D.Aurora,D.Avalanche,D.Base,D.Berachain,D.BinanceSmartChain,D.Ethereum,D.Gnosis,D.Optimism,D.Polygon,async()=>{let{getEvmToolbox:y}=await Promise.resolve().then(() => (T0(),X5));return await y(T,f)}).with(D.Litecoin,D.Dash,D.Dogecoin,D.BitcoinCash,D.Bitcoin,D.Zcash,async()=>{let{getUtxoToolbox:y}=await Promise.resolve().then(() => (k0(),D0));return await y(T,f)}).with(D.Cosmos,D.Kujira,D.Noble,D.Maya,D.THORChain,async()=>{let{getCosmosToolbox:y}=await Promise.resolve().then(() => (cT(),mT));return await y(T,f)}).with(D.Chainflip,D.Polkadot,async()=>{let{getSubstrateToolbox:y}=await Promise.resolve().then(() => (J0(),B0));return await y(T,f)}).with(D.Radix,async()=>{let{RadixToolbox:y}=await Promise.resolve().then(() => (s0(),a0));return await y(f)}).with(D.Ripple,async()=>{let{getRippleToolbox:y}=await Promise.resolve().then(() => (r0(),d0));return await y(f)}).with(D.Solana,async()=>{let{getSolanaToolbox:y}=await Promise.resolve().then(() => (F0(),v0));return await y(f)}).with(D.Tron,async()=>{let{createTronToolbox:y}=await Promise.resolve().then(() => (G1(),f1));return await y(f)}).with(D.Near,async()=>{let{getNearToolbox:y}=await Promise.resolve().then(() => (t0(),c0));return await y(f)}).otherwise(()=>{throw new hX("toolbox_not_supported",{chain:T})})}export{IG as getToolbox,V4 as getFeeEstimator,S4 as getAddressValidator};
3
3
 
4
- //# debugId=DB6E705EBA2D1B4564756E2164756E21
4
+ //# debugId=E3E62FA07A482B1A64756E2164756E21
5
5
  //# sourceMappingURL=index.js.map