@swapkit/toolboxes 4.28.4 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +17 -20
  2. package/dist/chunk-55jkfkar.js +2 -0
  3. package/dist/{chunk-ap5mzmjf.js → chunk-v9dcj9m7.js} +1 -1
  4. package/dist/src/aptos/index.js +1 -1
  5. package/dist/src/cosmos/index.js +1 -1
  6. package/dist/src/evm/index.js +1 -1
  7. package/dist/src/hypercore/index.js +1 -1
  8. package/dist/src/index.js +1 -1
  9. package/dist/src/near/index.js +1 -1
  10. package/dist/src/ripple/index.js +1 -1
  11. package/dist/src/solana/index.js +1 -1
  12. package/dist/src/stellar/index.js +1 -1
  13. package/dist/src/ton/index.js +1 -1
  14. package/dist/src/tron/index.js +1 -1
  15. package/dist/src/utxo/index.js +1 -1
  16. package/dist/types/aptos/toolbox.d.ts +5 -5
  17. package/dist/types/aptos/types.d.ts +4 -0
  18. package/dist/types/cosmos/thorchainUtils/messages.d.ts +30 -6
  19. package/dist/types/cosmos/thorchainUtils/registry.d.ts +72 -2
  20. package/dist/types/cosmos/thorchainUtils/types/client-types.d.ts +6 -1
  21. package/dist/types/cosmos/toolbox/cosmos.d.ts +9 -11
  22. package/dist/types/cosmos/toolbox/thorchain.d.ts +83 -14
  23. package/dist/types/cosmos/types.d.ts +69 -3
  24. package/dist/types/cosmos/util.d.ts +150 -6
  25. package/dist/types/hypercore/__tests__/fixtures.d.ts +40 -0
  26. package/dist/types/hypercore/helpers.d.ts +12 -1
  27. package/dist/types/hypercore/index.d.ts +1 -0
  28. package/dist/types/hypercore/payin.d.ts +16 -0
  29. package/dist/types/hypercore/signing.d.ts +91 -0
  30. package/dist/types/hypercore/toolbox.d.ts +69 -6
  31. package/dist/types/hypercore/types.d.ts +25 -5
  32. package/dist/types/ripple/index.d.ts +5 -1
  33. package/dist/types/solana/index.d.ts +2 -0
  34. package/dist/types/solana/toolbox.d.ts +1 -1
  35. package/dist/types/ton/toolbox.d.ts +2 -0
  36. package/dist/types/tron/toolbox.d.ts +1 -1
  37. package/dist/types/tron/types.d.ts +2 -0
  38. package/package.json +22 -96
  39. package/dist/chunk-btth5bse.js +0 -1
  40. package/dist/chunk-z61r1327.js +0 -2
  41. package/dist/src/aleo/index.cjs +0 -1
  42. package/dist/src/aptos/index.cjs +0 -1
  43. package/dist/src/cardano/index.cjs +0 -1
  44. package/dist/src/cosmos/index.cjs +0 -1
  45. package/dist/src/evm/index.cjs +0 -1
  46. package/dist/src/hypercore/index.cjs +0 -1
  47. package/dist/src/index.cjs +0 -1
  48. package/dist/src/near/index.cjs +0 -1
  49. package/dist/src/radix/index.cjs +0 -1
  50. package/dist/src/ripple/index.cjs +0 -1
  51. package/dist/src/solana/index.cjs +0 -1
  52. package/dist/src/starknet/index.cjs +0 -1
  53. package/dist/src/stellar/index.cjs +0 -1
  54. package/dist/src/substrate/index.cjs +0 -1
  55. package/dist/src/sui/index.cjs +0 -1
  56. package/dist/src/ton/index.cjs +0 -1
  57. package/dist/src/tron/index.cjs +0 -1
  58. package/dist/src/utxo/index.cjs +0 -1
package/CHANGELOG.md CHANGED
@@ -1,30 +1,27 @@
1
1
  # @swapkit/toolboxes
2
2
 
3
- ## 4.28.4
3
+ ## 5.1.0
4
4
 
5
- ### Patch Changes
6
-
7
- - [`ef0c115`](https://github.com/swapkit/sdk/commit/ef0c11521563e781f5dc8846c96931e7e436c22c) Thanks [@towanTG](https://github.com/towanTG)! - Drop `HYPE.*` identifiers carrying an EVM address. Hypercore assets are addressed by Hyperliquid `NAME:tokenId` — `spotSend` puts that value straight into its `token` field — so an entry like `HYPE.USDC-0xb88339CB…` describes an asset that does not exist on Hypercore (no Hyperliquid spot token backs that contract) and cannot be sent. Near Intents tags HyperEVM tokens onto its `hypercore` chain, which is where these came from. Genuine `HYPEREVM.*` tokens and flashnet's real Hypercore assets are unaffected. (via @swapkit/helpers@4.20.5)
8
-
9
- ## 4.28.3
10
-
11
- ### Patch Changes
12
-
13
- - [`c357b3b`](https://github.com/swapkit/sdk/commit/c357b3bc1a384d9ebdf1b4da2f4b94542636538e) Thanks [@towanTG](https://github.com/towanTG)! - Hypercore balances take their decimals from Hyperliquid's `weiDecimals` instead of a hardcoded ticker table. USDC is 8 decimals on Hypercore (it is 6 only on EVM chains), so the old `{ USDC: 6 }` fallback truncated spot balances; the table now applies only when spot metadata is unavailable.
14
- - [#358](https://github.com/swapkit/sdk/pull/358) [`6734cab`](https://github.com/swapkit/sdk/commit/6734cab233f17b6e5372519fe43e029477117827) Thanks [@github-actions](https://github.com/apps/github-actions)! - Correct flashnet's Hypercore assets in the dev list. The api collapses flashnet's two Hyperliquid chains and emitted Hypercore USDC carrying HyperEVM USDC's contract address (`HYPE.USDC-0xb88339CB…`) — an EVM address is not a valid Hypercore asset id, so `spotSend` built from it was rejected. Hypercore entries are now generated in Hyperliquid `NAME:tokenId` form, matching what the hypercore toolbox builds at runtime: `HYPE.USDC-USDC:0x6d1e7cde…` and `HYPE.USDE-USDE:0x2e6d84f2…`, both 8 decimals (`weiDecimals`). `HYPEREVM.*` assets are untouched. (via @swapkit/helpers@4.20.4)
15
-
16
- ## 4.28.2
17
-
18
- ### Patch Changes
5
+ ### Minor Changes
19
6
 
20
- - [`bca217f`](https://github.com/swapkit/sdk/commit/bca217f89314ac520eae2d5eeeee027f125c4262) Thanks [@towanTG](https://github.com/towanTG)! - Refresh generated token lists and restore faithful provider mirroring. The `HYPE.*` filter added in 4.5.0 is removed: `HYPE.USDC-0xb88339CB…` is the identifier the api actually routes on (it is the only HYPE-family buy asset `/swapTo` returns on prod), so dropping it removed the static entry for a routable token. Dev flashnet now carries `HYPE.USDC` alongside its `HYPEREVM.*` assets, exactly as the provider serves them. (via @swapkit/helpers@4.20.3)
7
+ - [#363](https://github.com/swapkit/sdk/pull/363) [`7b9f214`](https://github.com/swapkit/sdk/commit/7b9f2145e8644975620db1f2b39775c33cb40d20) Thanks [@towanTG](https://github.com/towanTG)! - HyperCore balances are now API-first: `getBalance` queries the SwapKit
8
+ - [#366](https://github.com/swapkit/sdk/pull/366) [`c64be1d`](https://github.com/swapkit/sdk/commit/c64be1d700ef8855495ca9d7ef0ebe18f46687ee) Thanks [@towanTG](https://github.com/towanTG)! - HyperCore chain-query balances take decimals from Hyperliquid spotMeta
9
+ - Update generated token lists. (via @swapkit/helpers@5.0.1)
10
+ - [#363](https://github.com/swapkit/sdk/pull/363) [`7b9f214`](https://github.com/swapkit/sdk/commit/7b9f2145e8644975620db1f2b39775c33cb40d20) Thanks [@towanTG](https://github.com/towanTG)! - Correct the Hyperliquid chain display names: `Chain.Hyperevm`'s config is now (via @swapkit/helpers@5.0.1)
21
11
 
22
- ## 4.28.1
12
+ ## 5.0.0
23
13
 
24
- ### Patch Changes
14
+ ### Major Changes
25
15
 
26
- - [`f90fa82`](https://github.com/swapkit/sdk/commit/f90fa826d1e56dba934ee968ec31a94ae20399fd) Thanks [@towanTG](https://github.com/towanTG)! - Update generated token lists (prod and dev). Remove the hand-maintained hypercore token list and its `hype`/`hypercore` list names — the api serves no HYPE provider, so the documented exception from 4.4.0 is retired and static lists are again 100% provider-generated. (via @swapkit/helpers@4.20.2)
27
- - [`c3ef809`](https://github.com/swapkit/sdk/commit/c3ef80967cab859310aa7e20e6f0aeb817027bb7) Thanks [@towanTG](https://github.com/towanTG)! - Refresh generated token lists — flashnet now carries the HyperEVM assets (HYPEREVM.HYPE, USDC, USDe, USDT0). The generator drops non-native `HYPE.*` identifiers misfiled by providers: HyperEVM assets belong on `HYPEREVM.*`, and the HYPE (Hypercore) chain keeps only native HYPE. (via @swapkit/helpers@4.20.2)
16
+ - [#249](https://github.com/swapkit/sdk/pull/249) [`41505dc`](https://github.com/swapkit/sdk/commit/41505dc0f4f77dd301cfced063013efb6307b9bb) Thanks [@ice-chillios](https://github.com/ice-chillios)! - Replace `@cosmjs/{amino,crypto,proto-signing,stargate}@0.39.0` with native `@swapkit/cosmos-signer` package. The new signer is ESM-native (no CJS↔ESM-only-noble breakage), uses only `@noble/curves`, `@noble/hashes`, `@scure/{base,bip32,bip39}` + `cosmjs-types` for proto encoders. **No `@cosmjs/*` runtime dependency.**
17
+ - [#344](https://github.com/swapkit/sdk/pull/344) [`7f99d74`](https://github.com/swapkit/sdk/commit/7f99d74ec21d58d07b2cccc5b111f8fdae6c7afb) Thanks [@ice-chillios](https://github.com/ice-chillios)! - **ESM-only packages.** CommonJS output (`.cjs`) and `require` export conditions have been removed; every package now ships ESM only (code-splitting stays enabled), with a uniform `{ default, types }` exports shape. `buildPackage` from `@swapkit/tools-builder` no longer emits CJS and the unused `esmOnly` option has been removed.
18
+ - [#298](https://github.com/swapkit/sdk/pull/298) [`3017621`](https://github.com/swapkit/sdk/commit/3017621ee5c2da15550036853df74d81f59d6ffb) Thanks [@ice-chillios](https://github.com/ice-chillios)! - Speed up `createTransaction` across toolboxes by removing serial and redundant network round-trips from the build path. Two techniques, both backward-compatible:
19
+ - [#360](https://github.com/swapkit/sdk/pull/360) [`d6061d5`](https://github.com/swapkit/sdk/commit/d6061d58367cdf077acf60421a1e8b448363f486) Thanks [@ice-chillios](https://github.com/ice-chillios)! - Add HyperCore `sendAsset` payin support.
20
+ - [#295](https://github.com/swapkit/sdk/pull/295) [`fd1d5d7`](https://github.com/swapkit/sdk/commit/fd1d5d7304eda3ff20c53b14d0eb5998fb6b8250) Thanks [@ice-chillios](https://github.com/ice-chillios)! - Remove `ethers` and `@near-js/providers` from `@swapkit/helpers`. EVM address checksum/validation now uses an in-house EIP-55 implementation backed by `@noble/hashes`, ERC-20 symbol decoding reuses the existing dynamic-string ABI decoder, and NEAR token metadata is fetched via JSON-RPC through `RequestClient`. Public behaviour is preserved (ethers-parity semantics, including throw-on-bad-checksum). (via @swapkit/helpers@5.0.0)
21
+ - [#295](https://github.com/swapkit/sdk/pull/295) [`fd1d5d7`](https://github.com/swapkit/sdk/commit/fd1d5d7304eda3ff20c53b14d0eb5998fb6b8250) Thanks [@ice-chillios](https://github.com/ice-chillios)! - Consolidate scattered helper utility modules (explorer URLs, validators, widget auth, TNS cost helpers) into grouped homes. Pure internal relocation — the public export surface is unchanged. (via @swapkit/helpers@5.0.0)
22
+ - [#353](https://github.com/swapkit/sdk/pull/353) [`2d00760`](https://github.com/swapkit/sdk/commit/2d0076010f56b843295fa814922b46385d3fc52b) Thanks [@towanTG](https://github.com/towanTG)! - Update generated token lists (prod and dev). Remove the hand-maintained hypercore token list and its `hype`/`hypercore` list names — the api serves no HYPE provider, so the documented exception from 4.4.0 is retired and static lists are again 100% provider-generated. (via @swapkit/helpers@5.0.0)
23
+ - Update generated token lists. (via @swapkit/helpers@5.0.0)
24
+ - [#354](https://github.com/swapkit/sdk/pull/354) [`8d21eef`](https://github.com/swapkit/sdk/commit/8d21eefe8a5379347a6a9b92978b0336e1a155a4) Thanks [@towanTG](https://github.com/towanTG)! - Refresh generated token lists (prod and dev) — dev flashnet now carries the HyperEVM assets (`HYPEREVM.HYPE`, `USDC`, `USDe`, `USDT0`) alongside `HYPE.USDC`. Lists mirror provider output verbatim; no identifiers are filtered. (via @swapkit/helpers@5.0.0)
28
25
 
29
26
  ## 4.28.0
30
27
 
@@ -0,0 +1,2 @@
1
+ import{fa as Ny}from"./chunk-nvfkjbyq.js";import{ga as Uy}from"./chunk-xbdjxeqd.js";import{Chain as H}from"@swapkit/helpers";import{match as b5}from"ts-pattern";import{Chain as $,getChainConfig as p,getRPCUrl as Wu,SKConfig as Qu,SwapKitError as c}from"@swapkit/helpers";import{FallbackProvider as Xu,getAddress as Hy,Interface as Yu,JsonRpcProvider as ty,Network as Zu}from"ethers";import{match as Ry}from"ts-pattern";function $u(y){return new ty(y)}async function X5(y,u){return $u(u||await Wu(y))}function ky(y){let u=Qu.get("rpcUrls")[y]?.filter(Boolean)??[];if(u.length===0)throw new c("helpers_chain_no_public_or_set_rpc_url",{chain:y});let{chainId:n}=p(y),t=Zu.from(Number(n)),[T]=u;if(u.length===1)return new ty(T,t,{staticNetwork:t});return new Xu(u.map((M,b)=>({priority:b+1,provider:new ty(M,t,{staticNetwork:t}),stallTimeout:2000})),t,{quorum:1})}function l(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function Dy(y){let{explorerUrl:u,chainIdHex:n,rpcUrls:t}=p(y);return function(){return y!==$.Ethereum?{...Bu({chain:y}),blockExplorerUrls:[u],chainId:n,rpcUrls:t}:void 0}}function Ly(y){return![$.Adi,$.Arbitrum,$.BinanceSmartChain,$.Robinhood].includes(y)}function Bu({chain:y}){let{name:u,nativeCurrency:n,baseDecimal:t}=p(y);return Ry(y).with($.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:t,name:"Ethereum",symbol:$.Ethereum}})).with($.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:t,name:"Ethereum",symbol:$.Ethereum}})).with($.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:t,name:"Avalanche",symbol:y}})).with($.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:t,name:"Ethereum",symbol:$.Ethereum}})).with($.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:t,name:"Berachain",symbol:"BERA"}})).with($.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:t,name:"OKB",symbol:"OKB"}})).with($.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:t,name:"Binance Coin",symbol:"BNB"}})).with($.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:t,name:"xDAI",symbol:"XDAI"}})).with($.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:t,name:"Ethereum",symbol:$.Ethereum}})).with($.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:t,name:"Polygon",symbol:$.Polygon}})).with($.Robinhood,()=>({chainName:"Robinhood Chain",nativeCurrency:{decimals:t,name:"Ethereum",symbol:$.Ethereum}})).otherwise(()=>({chainName:u,nativeCurrency:{decimals:t,name:n,symbol:n}}))}async function zy(y,u){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let n={...u,nonce:u.nonce!==void 0?BigInt(u.nonce):void 0};return await y.authorize(n)}var Jy=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),Ju=(y)=>{try{return typeof y==="string"&&!!Hy(y)}catch{return!1}};function Hu(y,u){let n=u!==void 0?`index ${u}: `:"",t=(T,M)=>{throw new c({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:T,message:`${n}${M}`}})};Ry(y).when(({chainId:T})=>typeof T!=="bigint",()=>t("chainId","chainId must be a bigint")).when(({address:T})=>!Ju(T),()=>t("address","address must be a valid checksummed address")).when(({nonce:T})=>typeof T!=="bigint"||T<0n,()=>t("nonce","nonce must be a non-negative bigint")).when(({signature:T})=>!T,()=>t("signature","signature is required")).when(({signature:T})=>typeof T?.yParity!=="number"||![0,1].includes(T.yParity),()=>t("signature.yParity","yParity must be 0 or 1")).when(({signature:T})=>!Jy(T?.r),()=>t("signature.r","r must be a 32-byte hex string")).when(({signature:T})=>!Jy(T?.s),()=>t("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function Ru(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:u})=>y[u]!=null).map(({key:u,type:n})=>({name:u,type:n}))}function Ty(y){return y.charAt(0).toUpperCase()+y.slice(1)}function My(y,u){if(y.isTuple()&&y.components){let n=Ty(y.name);return u[n]=y.components.map((t)=>({name:t.name,type:My(t,u)})),n}if(y.isArray()){let n=y.arrayChildren;if(n?.isTuple()&&n.components){let t=Ty(y.name.replace(/s$/,""));return u[t]=n.components.map((T)=>({name:T.name,type:My(T,u)})),`${t}[]`}return`${n?.type??"bytes"}[]`}return y.type}function by(y,u){if(typeof y==="bigint")return y;if(u?.isTuple()&&typeof y?.toObject==="function"){let n=y.toObject(),t={};for(let[T,M]of(u.components??[]).entries())t[M.name]=by(n[M.name]??y[T],M);return t}if(Array.isArray(y)){let n=u?.arrayChildren;return y.map((t)=>by(t,n??void 0))}return y}function Y5({chain:y,abi:u,data:n,to:t}){let M=new Yu(u).parseTransaction({data:n});if(!M)throw new c({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let b={},q=Ty(M.name);b[q]=M.fragment.inputs.map((X)=>({name:X.name,type:My(X,b)}));let W={};for(let[X,B]of M.fragment.inputs.entries())W[B.name]=by(M.args[X],B);let{chainId:Q}=p(y),U={chainId:Number(Q),verifyingContract:Hy(t)},k=Ru(U);return{domain:U,message:W,primaryType:q,types:{EIP712Domain:k,...b}}}function jy(y,u){if(!Array.isArray(y)||y.length===0)throw new c({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[n,t]of y.entries())if(Hu(t,n),u!==void 0&&t.chainId!==u)throw new c({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${n}: authorization chainId (${t.chainId}) does not match transaction chainId (${u})`}})}import{Chain as R,FeeOption as n5}from"@swapkit/helpers";import{HDNodeWallet as t5}from"ethers";import{match as T5,P as oy}from"ts-pattern";var Gy=[{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 ku,applyFeeMultiplierToBigInt as j,Chain as K,EVMChains as Du,FeeOption as Y,isGasAsset as Lu,SwapKitError as Z,SwapKitNumber as s}from"@swapkit/helpers";import{erc20ABI as C}from"@swapkit/helpers/contracts";import{BrowserProvider as zu,Contract as _y,getAddress as i,getBytes as ju,Interface as Vy}from"ethers";import{match as wy}from"ts-pattern";function d(y){return{getBalance:Ny(y)}}function J5(y){return y}var Wy=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function a({chain:y=K.Ethereum,provider:u,signer:n,isEIP1559Compatible:t=!0,estimateGasPrices:T,estimateAdditionalFee:M}){let b=T??m({chain:y,isEIP1559Compatible:t,provider:u}),q=fy({chain:y,estimateAdditionalFee:M,estimateGasPrices:b,isEIP1559Compatible:t,provider:u,signer:n});return{approve:Ou({chain:y,isEIP1559Compatible:t,provider:u,signer:n}),approvedAmount:ly({chain:y,provider:u}),broadcastTransaction:u.broadcastTransaction,call:yy({chain:y,isEIP1559Compatible:t,provider:u,signer:n}),createApprovalTx:hu({chain:y,provider:u,signer:n}),createContract:Nu({chain:y,provider:u}),createContractTxObject:h({chain:y,provider:u}),createTransaction:q,createTransferTx:q,EIP1193SendTransaction:r(u),estimateCall:Sy({provider:u,signer:n}),estimateGasLimit:xu({chain:y,provider:u,signer:n}),estimateGasPrices:b,estimateTransactionFee:mu({chain:y,isEIP1559Compatible:t,provider:u}),getAddress:()=>{return n?n.getAddress():void 0},getBalance:d(y).getBalance,getNetworkParams:Dy(y),isApproved:Ku({chain:y,provider:u}),sendTransaction:Oy({chain:y,estimateGasPrices:b,isEIP1559Compatible:t,provider:u,signer:n}),signAuthorization:Fu({signer:n}),signMessage:n?(W)=>n.signMessage(W):void 0,signTypedData:n?({domain:W,types:Q,value:U})=>n.signTypedData(W,Q,U):void 0,transfer:fu({chain:y,estimateAdditionalFee:M,estimateGasPrices:b,isEIP1559Compatible:t,provider:u,signer:n}),validateAddress:Gu}}function Gu(y){try{return i(y),!0}catch{return!1}}function e(y){return y instanceof zu}function Qy(y,u,n){return new _y(y,Vy.from(u),n)}function Nu({provider:y}){return function(n,t){return new _y(n,Vy.from(t),y)}}var _u=["payable","nonpayable"];function Vu({abi:y,funcName:u}){let n=y.find((t)=>t.name===u);if(!n)throw new Z("toolbox_evm_no_abi_fragment",{funcName:u});return n.stateMutability&&_u.includes(n.stateMutability)}function G5(y){return i(y)}function r(y,u=!1){return function({value:t,...T}){if(!e(y))throw new Z("toolbox_evm_provider_not_eip1193_compatible");let M={...T,gasPrice:"gasPrice"in T?T.gasPrice:void 0,maxFeePerGas:"maxFeePerGas"in T?T.maxFeePerGas:void 0,maxPriorityFeePerGas:"maxPriorityFeePerGas"in T?T.maxPriorityFeePerGas:void 0},{gasLimit:b,gasPrice:q,maxFeePerGas:W,maxPriorityFeePerGas:Q,...U}=M,k={...U,...u&&b!==void 0&&{gas:l(BigInt(b))},...u&&q!==void 0&&{gasPrice:l(BigInt(q))},...u&&W!==void 0&&{maxFeePerGas:l(BigInt(W))},...u&&Q!==void 0&&{maxPriorityFeePerGas:l(BigInt(Q))},value:l(BigInt(t||0))};return y.send("eth_sendTransaction",[k])}}function N5(y,u){let n=Xy(y,u);if(n)return i(n.toLowerCase());throw new Z("toolbox_evm_invalid_gas_asset_address")}var wu=Du.reduce((y,u)=>{return y[u]="0x0000000000000000000000000000000000000000",y},{}),lu={...wu,[K.Optimism]:"0x4200000000000000000000000000000000000042",[K.Polygon]:"0x0000000000000000000000000000000000001010"},Su=[K.Arbitrum,K.Aurora,K.Base,K.Optimism,K.Robinhood];function Xy({chain:y,symbol:u,ticker:n},t){try{let T=y===K.BinanceSmartChain&&u==="BNB"&&n==="BNB",M=y===K.Hyperevm&&u==="HYPE"&&n==="HYPE",b=y===t&&u===t&&n===t,q=Su.includes(y)&&u==="ETH"&&n==="ETH";if(b||T||M||q)return lu[t];return i(u.slice(n.length+1).replace(/^0X/,""))}catch{return null}}function h({provider:y}){return async({contractAddress:u,abi:n,funcName:t,funcParams:T=[],txOverrides:M})=>{let b=await Qy(u,n,y).getFunction(t).populateTransaction(...T.concat(M).filter((q)=>typeof q<"u"));return{...b,value:l(BigInt(b.value||0))}}}function m({chain:y,provider:u,isEIP1559Compatible:n=!0}){return wy(y).with(K.Gnosis,()=>{return async function(){try{let{gasPrice:T,maxPriorityFeePerGas:M}=await u.getFeeData();if(!T||M===null)throw new Z("toolbox_evm_no_fee_data");return{[Y.Average]:{maxFeePerGas:j(T,Y.Average),maxPriorityFeePerGas:j(M,Y.Average)},[Y.Fast]:{maxFeePerGas:j(T,Y.Fast),maxPriorityFeePerGas:j(M,Y.Fast)},[Y.Fastest]:{maxFeePerGas:j(T,Y.Fastest),maxPriorityFeePerGas:j(M,Y.Fastest)}}}catch(T){throw new Z("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).with(K.Arbitrum,()=>{return async function(){try{let{gasPrice:T}=await u.getFeeData();if(!T)throw new Z("toolbox_evm_no_fee_data");let M=T*12n/10n;return{[Y.Average]:{gasPrice:M},[Y.Fast]:{gasPrice:j(M,Y.Fast)},[Y.Fastest]:{gasPrice:j(M,Y.Fastest)}}}catch(T){throw new Z("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:M,gasPrice:b}=await u.getFeeData();if(n){if(T===null||M===null)throw new Z("toolbox_evm_no_fee_data");return{[Y.Average]:{maxFeePerGas:T,maxPriorityFeePerGas:M},[Y.Fast]:{maxFeePerGas:j(T,Y.Fast),maxPriorityFeePerGas:j(M,Y.Fast)},[Y.Fastest]:{maxFeePerGas:j(T,Y.Fastest),maxPriorityFeePerGas:j(M,Y.Fastest)}}}if(!b)throw new Z("toolbox_evm_no_gas_price");return{[Y.Average]:{gasPrice:b},[Y.Fast]:{gasPrice:j(b,Y.Fast)},[Y.Fastest]:{gasPrice:j(b,Y.Fastest)}}}catch(T){throw new Z("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}})}function yy({provider:y,isEIP1559Compatible:u,signer:n,chain:t}){return async function({callProvider:M,contractAddress:b,abi:q,funcName:W,funcParams:Q=[],txOverrides:U={},feeOption:k=Y.Fast}){let X=M||y;if(!b)throw new Z("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let B=Vu({abi:q,funcName:W});if(B&&e(X)&&n){let z=h({chain:t,provider:X}),O=U?.from||await n?.getAddress(),G=await z({abi:q,contractAddress:b,funcName:W,funcParams:Q,txOverrides:{...U,from:O}});return r(X)(G)}let J=Qy(b,q,X);if(B){if(!n)throw new Z("toolbox_evm_no_signer");let z=U?.from||await n.getAddress();if(!z)throw new Z("toolbox_evm_no_signer_address");let O=J.connect(n),G=m({chain:t,isEIP1559Compatible:u,provider:y}),[{maxFeePerGas:N,maxPriorityFeePerGas:I,gasPrice:x},_,F]=await Promise.all([G().then((V)=>V[k]),J.getFunction(W).estimateGas(...Q,U),U?.nonce!==void 0?Promise.resolve(U.nonce):X.getTransactionCount(z)]),S=await O[W](...Q,{...U,gasLimit:_,gasPrice:x,maxFeePerGas:N,maxPriorityFeePerGas:I,nonce:F});return typeof S?.hash==="string"?S?.hash:S}let D=await J[W]?.(...Q);return typeof D?.hash==="string"?D?.hash:D}}function ly({provider:y,chain:u}){return function({assetAddress:t,spenderAddress:T,from:M}){return yy({chain:u,isEIP1559Compatible:!0,provider:y})({abi:C,contractAddress:t,funcName:"allowance",funcParams:[M,T]})}}function Ku({provider:y,chain:u}){return async function({assetAddress:t,spenderAddress:T,from:M,amount:b=Wy}){let q=await ly({chain:u,provider:y})({assetAddress:t,from:M,spenderAddress:T});return s.fromBigInt(q).gte(s.fromBigInt(BigInt(b)))}}function Ou({signer:y,isEIP1559Compatible:u=!0,provider:n,chain:t}){return async function({assetAddress:M,spenderAddress:b,feeOptionKey:q=Y.Fast,amount:W,gasLimitFallback:Q,from:U,nonce:k}){let X=[b,BigInt(W||Wy)],B=await y?.getAddress()||U,J={abi:C,contractAddress:M,funcName:"approve",funcParams:X,signer:y,txOverrides:{from:B}};if(e(n)){let z=h({chain:t,provider:n}),O=r(n),G=await z(J);return O(G)}return yy({chain:t,isEIP1559Compatible:u,provider:n,signer:y})({...J,feeOption:q,funcParams:X,txOverrides:{from:B,gasLimit:Q?BigInt(Q.toString()):void 0,nonce:k}})}}function fu({chain:y,estimateGasPrices:u,estimateAdditionalFee:n,signer:t,isEIP1559Compatible:T=!0,provider:M}){return async function({assetValue:q,memo:W,recipient:Q,feeOptionKey:U=Y.Fast,sender:k,sweep:X,...B}){let J=k||await t?.getAddress(),D=Oy({chain:y,estimateGasPrices:u,isEIP1559Compatible:T,provider:M,signer:t});if(!J)throw new Z("toolbox_evm_no_from_address");let z=await fy({chain:y,estimateAdditionalFee:n,estimateGasPrices:u,isEIP1559Compatible:T,provider:M,signer:t})({assetValue:q,feeOptionKey:U,memo:W,recipient:Q,sender:J,sweep:X,...B});return D({...z,feeOptionKey:U,sweep:X})}}function Sy({provider:y,signer:u}){return function({contractAddress:t,abi:T,funcName:M,funcParams:b=[],txOverrides:q}){if(!t)throw new Z("toolbox_evm_no_contract_address");let W=Qy(t,T,y);return u?W.connect(u).getFunction(M).estimateGas(...b,q):W.getFunction(M).estimateGas(...b,q)}}function xu({provider:y,signer:u}){return async function({assetValue:t,recipient:T,memo:M,data:b,sender:q,funcName:W,funcParams:Q,txOverrides:U}){let k=t.bigIntValue,X=t.isGasAsset?null:Xy(t,t.chain);if(X&&W)return Sy({provider:y,signer:u})({abi:C,contractAddress:X,funcName:W,funcParams:Q,txOverrides:U});let{hexlify:B,toUtf8Bytes:J}=await import("ethers");return y.estimateGas({data:b?b:M?B(J(M)):void 0,from:q,to:T,value:k})}}function Fu({signer:y}){if(!y)return;return(u)=>zy(y,u)}var Ky=(y)=>y.type===4||(y.authorizations?.length??0)>0,Iu=(y)=>!Ky(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),Eu=(y,u=!0)=>{if(Ky(y))return"eip7702";if(Iu(y)||u)return"eip1559";return"legacy"};function Au(y,u){if(y==="legacy"){if(u.gasPrice===void 0)throw new Z("toolbox_evm_no_fee_data");return{gasPrice:l(u.gasPrice)}}if(u.maxFeePerGas===void 0||u.maxPriorityFeePerGas===void 0)throw new Z("toolbox_evm_no_fee_data");return{maxFeePerGas:l(u.maxFeePerGas),maxPriorityFeePerGas:l(u.maxPriorityFeePerGas)}}function Oy({chain:y,estimateGasPrices:u,provider:n,signer:t,isEIP1559Compatible:T=!0}){return async function({feeOptionKey:b=Y.Fast,sweep:q,...W}){let{from:Q,to:U,data:k,value:X,...B}=W;if(!t)throw new Z("toolbox_evm_no_signer");if(!U)throw new Z("toolbox_evm_no_to_address");let J={...B,data:k||"0x",from:Q,to:U,value:BigInt(X||0)};if(e(n))return r(n,q)(J);let D=Q||await t.getAddress(),[z,O]=await Promise.all([W.nonce!==void 0?Promise.resolve(W.nonce):n.getTransactionCount(D),n.getNetwork()]),G=O.chainId,N=Eu(J,T);if(N==="eip7702")jy(J.authorizations||[],G);let I=wy(N).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),x={...J,chainId:G,nonce:z,type:I,...N==="eip7702"&&{authorizationList:J.authorizations}},_=u??m({chain:y,isEIP1559Compatible:T,provider:n}),S=(N==="legacy"?J.gasPrice!==void 0:J.maxFeePerGas!==void 0&&J.maxPriorityFeePerGas!==void 0)?{}:Au(N,(await _())[b]),V;try{V=l(J.gasLimit?BigInt(J.gasLimit):await n.estimateGas(x)*11n/10n)}catch(w){throw new Z("toolbox_evm_error_estimating_gas_limit",{error:w})}try{let w={...x,gasLimit:V,...S};try{return(await t.sendTransaction(w)).hash}catch{let E=await t.signTransaction({...w,from:D});return(await n.broadcastTransaction(E)).hash}}catch(w){throw new Z("toolbox_evm_error_sending_transaction",{error:w})}}}function A(y,u){throw new Z({errorKey:"toolbox_sweep_amount_too_low",info:{balance:y.toString(),fee:u.toString()}})}function Pu(y,u){if(u){if(y.maxFeePerGas===void 0||y.maxPriorityFeePerGas===void 0)throw new Z("toolbox_evm_no_fee_data");return{feeFields:{maxFeePerGas:y.maxFeePerGas,maxPriorityFeePerGas:y.maxPriorityFeePerGas},feePerGas:y.maxFeePerGas}}if(y.gasPrice===void 0)throw new Z("toolbox_evm_no_fee_data");return{feeFields:{gasPrice:y.gasPrice},feePerGas:y.gasPrice}}function Cu(y,u){if(y>u)return y;return u}function ou(y){return ju(y).reduce((u,n)=>u+(n===0?4n:16n),21000n)}function qy(y){let n=(y instanceof Error?y.message:String(y)).toLowerCase();return n.includes("insufficient funds")||n.includes("insufficient balance")||n.includes("gas required exceeds allowance")}async function gu({balance:y,estimateAdditionalFee:u,feeOptionKey:n,l2Reserve:t,sweepTx:T,valueBeforeL1Fee:M}){if(!u)return 0n;let b=await u({...T,value:M})??0n,q=j(b,n),W=M-q;if(W<=0n)A(y,t+q);let Q=await u({...T,value:W})??b;return j(Cu(b,Q),n)}async function vu({chain:y,data:u,estimateGasPrices:n,estimateAdditionalFee:t,feeOptionKey:T,from:M,isEIP1559Compatible:b,provider:q,recipient:W,transaction:Q}){let U=await q.getBalance(M),k=n??m({chain:y,isEIP1559Compatible:b,provider:q}),{feeFields:X,feePerGas:B}=Pu((await k())[T],b),D={...t&&Q.nonce===void 0?{...Q,nonce:await q.getTransactionCount(M)}:Q,...X,data:u,from:M,to:W},z=ou(u)*B;if(U-z<=0n)A(U,z);let O=(U-z)/2n,G;try{G=await q.estimateGas({...D,value:O})}catch(v){if(!qy(v))throw v;try{G=await q.estimateGas({...D,value:0n})}catch(By){if(qy(By))A(U,z);throw By}}let N=G*B;if(U-N<=0n)A(U,N);let _=G*11n/10n*B,F=U>_?U-_:0n,S;try{S=await q.estimateGas({...D,value:F})}catch(v){if(!qy(v))throw v;A(U,_)}let V=S*B,w=U-V;if(w<=0n)A(U,V);let E=await gu({balance:U,estimateAdditionalFee:t,feeOptionKey:T,l2Reserve:V,sweepTx:{...D,gasLimit:S},valueBeforeL1Fee:w}),P=w-E;if(P<=0n)A(U,V+E);return{...D,gasLimit:S,value:l(P)}}async function cu({chain:y,contractAddress:u,from:n,provider:t}){let T=await yy({chain:y,provider:t})({abi:C,contractAddress:u,funcName:"balanceOf",funcParams:[n]});if(typeof T!=="bigint")throw new Z({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid ERC20 balance"}});return T}function fy({chain:y,estimateAdditionalFee:u,estimateGasPrices:n,isEIP1559Compatible:t=!0,provider:T,signer:M}){return async function({assetValue:q,authorizations:W,memo:Q,recipient:U,data:k,feeOptionKey:X=Y.Fast,gasLimit:B,sender:J,sweep:D,type:z,maxFeePerGas:O,maxPriorityFeePerGas:G,gasPrice:N,...I}){let x=q.getBaseValue("bigint"),_=J||await M?.getAddress();if(!_)throw new Z("toolbox_evm_no_from_address");if(D&&(z===4||(W?.length??0)>0))throw new Z({errorKey:"toolbox_not_supported",info:{chain:y,reason:"EIP-7702 sweep transactions are not supported"}});if(Lu(q)){let{hexlify:w,toUtf8Bytes:E}=await import("ethers"),P=k||w(E(Q||""));if(!D)return{...I,...W!==void 0&&{authorizations:W},data:P,from:_,...B!==void 0&&{gasLimit:B},to:U,...z!==void 0&&{type:z},value:l(x)};return vu({chain:y,data:P,estimateAdditionalFee:u,estimateGasPrices:n,feeOptionKey:X,from:_,isEIP1559Compatible:t,provider:T,recipient:U,transaction:{nonce:I.nonce,type:z}})}let F=Xy(q,y);if(!F)throw new Z("toolbox_evm_no_contract_address");let S=h({chain:y,provider:T}),V=D?await cu({chain:y,contractAddress:F,from:_,provider:T}):x;if(D&&V<=0n)throw new Z({errorKey:"toolbox_sweep_amount_too_low",info:{asset:q.toString(),balance:V.toString()}});return S({abi:C,contractAddress:F,funcName:"transfer",funcParams:[U,V],txOverrides:{from:_,gasLimit:B,gasPrice:N,maxFeePerGas:O,maxPriorityFeePerGas:G}})}}function hu({provider:y,signer:u,chain:n}){return async function({assetAddress:T,spenderAddress:M,amount:b,from:q}){let W=await u?.getAddress()||q,Q=h({chain:n,provider:y}),U=["bigint","number"].includes(typeof b)?b:b||Wy;return await Q({abi:C,contractAddress:T,funcName:"approve",funcParams:[M,BigInt(U)],txOverrides:{from:W}})}}function mu({provider:y,isEIP1559Compatible:u=!0,chain:n}){return async function({feeOption:T=Y.Fast,...M}){let q=await m({chain:n,isEIP1559Compatible:u,provider:y})(),W=await y.estimateGas(M),Q=ku.from({chain:n}),{gasPrice:U,maxFeePerGas:k,maxPriorityFeePerGas:X}=q[T];if(!u&&U)return Q.set(s.fromBigInt(U*W,Q.decimal));if(k&&X){let B=(k+X)*W;return Q.set(s.fromBigInt(B,Q.decimal))}throw new Z("toolbox_evm_no_gas_price")}}import{applyFeeMultiplierToBigInt as o,Chain as Iy,FeeOption as f,getChainConfig as pu,SwapKitError as g}from"@swapkit/helpers";import{Contract as du,HDNodeWallet as su}from"ethers";import{match as iu,P as Fy}from"ts-pattern";var xy=[{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:[{internalType:"uint256",name:"_gasUsed",type:"uint256"}],name:"getOperatorFee",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"}];var au="0x420000000000000000000000000000000000000f";function uy(y){return new du(au,xy,y)}function Ey(y){return async function(){let n=uy(y);if(n&&"l1BaseFee"in n)return await n?.l1BaseFee();return}}function Ay(y){return async function({from:n,to:t,nonce:T,...M}){let{Transaction:b}=await import("ethers");if(!t)throw new g("toolbox_evm_invalid_transaction",{error:"Missing to address"});return b.from({...M,authorizationList:M.authorizationList,nonce:T??(n?await y.getTransactionCount(n):0),to:t}).unsignedSerialized}}function Yy(y,u){return async function(t){let T=uy(y),M=t.chainId??u??(await y.getNetwork()).chainId,b=await Ay(y)({...t,chainId:M});if(T&&"getL1Fee"in T){let q=await T.getL1Fee(b);if(typeof q!=="bigint")throw new g({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid OP-stack L1 fee"}});return q}return}}function Zy(y){return async function(n){let t=uy(y);if(t&&"getOperatorFee"in t){let T=await t.getOperatorFee(n);if(typeof T!=="bigint")throw new g({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid OP-stack operator fee"}});return T}return 0n}}function eu(y,u){let n=Yy(y,u),t=Zy(y);return async function(M){if(M.gasLimit===void 0||M.gasLimit===null)throw new g({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Missing gas limit for OP-stack fee estimation"}});let[b,q]=await Promise.all([n(M),t(BigInt(M.gasLimit.toString()))]);return(b??0n)+q}}function Py(y){return async function(n){let T=(await y.getFeeData()).gasPrice??0n,M=await y.estimateGas(n);return T*M}}function ru(y){return async function(n){let t=await Yy(y)(n)??0n,T=await Py(y)(n),M=n.gasLimit??await y.estimateGas(n),b=await Zy(y)(BigInt(M.toString()));return t+T+b}}function y5(y){return async function(n){let t=uy(y),T=await Ay(y)(n);if(t&&"getL1GasUsed"in t)return t.getL1GasUsed(T)}}function u5(y){return async function(){try{let{maxFeePerGas:n,maxPriorityFeePerGas:t,gasPrice:T}=await y.getFeeData(),M=await Ey(y)(),b=T;if(!(n&&t))throw new g("toolbox_evm_no_fee_data");return{[f.Average]:{gasPrice:b,l1GasPrice:M,maxFeePerGas:n,maxPriorityFeePerGas:t},[f.Fast]:{gasPrice:o(b,f.Fast),l1GasPrice:o(M||0n,f.Fast),maxFeePerGas:n,maxPriorityFeePerGas:o(t,f.Fast)},[f.Fastest]:{gasPrice:o(b,f.Fastest),l1GasPrice:o(M||0n,f.Fastest),maxFeePerGas:n,maxPriorityFeePerGas:o(t,f.Fastest)}}}catch(n){throw new g("toolbox_evm_gas_estimation_error",{error:n.msg??n.toString()})}}}function ny(y){return function({provider:n,...t}){let T=iu(t).with({phrase:Fy.string},({phrase:X})=>su.fromPhrase(X).connect(n)).with({signer:Fy.any},({signer:X})=>X).otherwise(()=>{return}),M=Ey(n),b=BigInt(pu(y).chainId),q=Yy(n,b),W=eu(n,b),Q=Zy(n),U=y===Iy.Optimism?u5(n):void 0;return{...a({chain:y,estimateAdditionalFee:W,estimateGasPrices:U,provider:n,signer:T}),estimateL1Gas:y5(n),estimateL1GasCost:q,estimateL2GasCost:Py(n),estimateOperatorFee:Q,estimateTotalGasCost:ru(n),getBalance:d(y).getBalance,getL1GasPrice:M}}}var Cy=ny(Iy.Optimism);function gy(y){let u=L(R.Ethereum)(y);async function n(t,T="0x5ba1e12693dc8f9c48aad8770482f4739beed696",M="aggregate",b=n5.Fast){let q=await u.createContractTxObject({abi:Gy,contractAddress:T,funcName:M,funcParams:[t]});return u.sendTransaction({...q,feeOptionKey:b})}return{...u,multicall:n}}var vy=L(R.Adi),cy=L(R.Arbitrum),hy=L(R.Aurora),my=L(R.Avalanche),py=ny(R.Base),dy=L(R.Berachain),sy=L(R.BinanceSmartChain),g5=L(R.Botanix),iy=L(R.Core),ay=L(R.Corn),ey=L(R.Cronos),ry=L(R.Gnosis),yu=L(R.Robinhood),uu=L(R.Hyperevm),nu=L(R.Linea),tu=L(R.Polygon),Tu=L(R.MegaETH),Mu=L(R.Monad),bu=L(R.Plasma),$y=L(R.Sonic),qu=ny(R.Unichain),Uu=L(R.XLayer);function L(y){return function({provider:n,...t}){let T=Ly(y),M=T5(t).with({phrase:oy.string},({phrase:q})=>t5.fromPhrase(q).connect(n)).with({signer:oy.any},({signer:q})=>q).otherwise(()=>{return});return a({chain:y,isEIP1559Compatible:T,provider:n,signer:M})}}function q5(y,u){return b5(y).with(H.Adi,()=>vy(u)).with(H.Arbitrum,()=>cy(u)).with(H.Aurora,()=>hy(u)).with(H.Avalanche,()=>my(u)).with(H.Base,()=>py(u)).with(H.Berachain,()=>dy(u)).with(H.BinanceSmartChain,()=>sy(u)).with(H.Botanix,()=>$y(u)).with(H.Core,()=>iy(u)).with(H.Corn,()=>ay(u)).with(H.Cronos,()=>ey(u)).with(H.Ethereum,()=>gy(u)).with(H.Gnosis,()=>ry(u)).with(H.Hyperevm,()=>uu(u)).with(H.Linea,()=>nu(u)).with(H.MegaETH,()=>Tu(u)).with(H.Monad,()=>Mu(u)).with(H.Optimism,()=>Cy(u)).with(H.Plasma,()=>bu(u)).with(H.Polygon,()=>tu(u)).with(H.Robinhood,()=>yu(u)).with(H.Sonic,()=>$y(u)).with(H.Unichain,()=>qu(u)).with(H.XLayer,()=>Uu(u)).exhaustive()}async function p5(y,u){let n={...u,provider:u?.provider||ky(y)};return q5(y,n)}
2
+ export{d as b,J5 as c,$u as d,X5 as e,ky as f,l as g,Dy as h,Ly as i,zy as j,Hu as k,Ru as l,Y5 as m,jy as n,Wy as o,a as p,Gu as q,e as r,Qy as s,Nu as t,Vu as u,G5 as v,r as w,N5 as x,lu as y,Xy as z,h as A,m as B,Ky as C,Iu as D,Eu as E,ny as F,Cy as G,gy as H,vy as I,cy as J,hy as K,my as L,py as M,dy as N,sy as O,g5 as P,iy as Q,ay as R,ey as S,ry as T,yu as U,uu as V,nu as W,tu as X,Tu as Y,Mu as Z,bu as _,$y as $,qu as aa,Uu as ba,q5 as ca,p5 as da};
@@ -1 +1 @@
1
- import{$ as N,A as m,B as n,C as o,D as p,E as q,F as r,G as s,H as t,I as u,J as v,K as w,L as x,M as y,N as z,O as A,P as B,Q as C,R as D,S as E,T as F,U as G,V as H,W as I,X as J,Y as K,Z as L,_ as M,aa as O,ba as P,ca as Q,da as R,o as a,p as b,q as c,r as d,s as e,t as f,u as g,v as h,w as i,x as j,y as k,z as l}from"./chunk-z61r1327.js";import"./chunk-nvfkjbyq.js";import"./chunk-xbdjxeqd.js";export{c as validateEVMAddress,h as toChecksumAddress,g as isStateChangingCall,o as isEIP7702Transaction,p as isEIP1559Transaction,d as isBrowserProvider,l as getTokenAddress,R as getEvmToolboxAsync,Q as getEvmToolbox,n as getEstimateGasPrices,q as getEVMTxType,i as getEIP1193SendTransaction,m as getCreateContractTxObject,f as getCreateContract,j as getChecksumAddressFromAsset,r as createOPStackToolbox,e as createContract,P as XLayerToolbox,O as UNIToolbox,N as SONICToolbox,M as PLASMAToolbox,s as OPToolbox,L as MONADToolbox,K as MEGAETHToolbox,a as MAX_APPROVAL,J as MATICToolbox,I as LINEAToolbox,H as HYPEREVMToolbox,G as HOODToolbox,F as GNOToolbox,t as ETHToolbox,k as ContractAddress,E as CROToolbox,D as CORNToolbox,C as COREToolbox,B as BotanixToolbox,b as BaseEVMToolbox,A as BSCToolbox,z as BERAToolbox,y as BASEToolbox,x as AVAXToolbox,w as AURORAToolbox,v as ARBToolbox,u as ADIToolbox};
1
+ import{$ as N,A as m,B as n,C as o,D as p,E as q,F as r,G as s,H as t,I as u,J as v,K as w,L as x,M as y,N as z,O as A,P as B,Q as C,R as D,S as E,T as F,U as G,V as H,W as I,X as J,Y as K,Z as L,_ as M,aa as O,ba as P,ca as Q,da as R,o as a,p as b,q as c,r as d,s as e,t as f,u as g,v as h,w as i,x as j,y as k,z as l}from"./chunk-55jkfkar.js";import"./chunk-nvfkjbyq.js";import"./chunk-xbdjxeqd.js";export{c as validateEVMAddress,h as toChecksumAddress,g as isStateChangingCall,o as isEIP7702Transaction,p as isEIP1559Transaction,d as isBrowserProvider,l as getTokenAddress,R as getEvmToolboxAsync,Q as getEvmToolbox,n as getEstimateGasPrices,q as getEVMTxType,i as getEIP1193SendTransaction,m as getCreateContractTxObject,f as getCreateContract,j as getChecksumAddressFromAsset,r as createOPStackToolbox,e as createContract,P as XLayerToolbox,O as UNIToolbox,N as SONICToolbox,M as PLASMAToolbox,s as OPToolbox,L as MONADToolbox,K as MEGAETHToolbox,a as MAX_APPROVAL,J as MATICToolbox,I as LINEAToolbox,H as HYPEREVMToolbox,G as HOODToolbox,F as GNOToolbox,t as ETHToolbox,k as ContractAddress,E as CROToolbox,D as CORNToolbox,C as COREToolbox,B as BotanixToolbox,b as BaseEVMToolbox,A as BSCToolbox,z as BERAToolbox,y as BASEToolbox,x as AVAXToolbox,w as AURORAToolbox,v as ARBToolbox,u as ADIToolbox};
@@ -1 +1 @@
1
- import{ga as x}from"../../chunk-xbdjxeqd.js";import{AssetValue as P,Chain as Q,derivationPathToString as t,getChainConfig as v,getRPCUrlSync as l,NetworkDerivationPath as a,SwapKitError as z}from"@swapkit/helpers";import{match as p,P as G}from"ts-pattern";var N={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},s=2000,e=/^[0-9a-fA-F]+$/;function B(J){if(!J||typeof J!=="string"||!J.startsWith("0x"))return!1;let Z=J.slice(2);if(Z.length===0||Z.length>64)return!1;return e.test(Z)}function c(J,Z,L){if(J<=0n)throw new z({errorKey:"toolbox_sweep_amount_too_low",info:{amount:J.toString(),asset:Z.toString(),...L}});return J}async function jj({aptos:J,assetValue:Z,senderAddress:L}){let $=Z.address;if(!$)throw new z("toolbox_aptos_missing_asset_type");let[M]=await J.getCurrentFungibleAssetBalances({options:{limit:1,where:{asset_type:{_eq:$},is_primary:{_eq:!0},owner_address:{_eq:L}}}});return c(BigInt(M?.amount??0),Z)}function qj({derivationPath:J,provider:Z,...L}={}){let $,M=t(J||a[Q.Aptos],{allHardened:!0});async function y(){if($)return $;return $=await p(L).with({phrase:G.string},async({phrase:q})=>{let{Ed25519Account:j}=await import("@aptos-labs/ts-sdk");return j.fromDerivationPath({mnemonic:q,path:M})}).with({signer:G.any},({signer:q})=>q).otherwise(()=>{return}),$}async function D(){let{Aptos:q,AptosConfig:j,Network:H}=await import("@aptos-labs/ts-sdk"),W=new j({clientConfig:{http2:!1},fullnode:Z||l(Q.Aptos),network:H.MAINNET});return new q(W)}async function _(){return(await y())?.accountAddress.toString()||""}async function h(q){let j=q||await _();if(!j)throw new z("toolbox_aptos_address_required");let{baseDecimal:H,chain:W}=v(Q.Aptos);try{let X=await D(),R=await X.getAccountAPTAmount({accountAddress:j}),k=[P.from({chain:W,fromBaseDecimal:H,value:R.toString()})],F=await X.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:j}}}});for(let Y of F){if(Y.asset_type===N.COIN_TYPE||Number(Y.amount)<=0)continue;let I=Y.asset_type;if(I){let U=("metadata"in Y&&typeof Y.metadata==="object"&&Y.metadata!==null?Y.metadata:void 0)?.decimals??H;k.push(P.from({asset:`${Q.Aptos}.APT-${I}`,fromBaseDecimal:U,value:String(Y.amount)}))}}return k}catch{return[P.from({chain:W})]}}async function u(q){if(!q){let{baseDecimal:k}=v(Q.Aptos),F=Z||l(Q.Aptos),Y=await fetch(`${F}/estimate_gas_price`),{gas_estimate:I}=await Y.json();return P.from({chain:Q.Aptos,fromBaseDecimal:k,value:String(I)})}let j=await O(q),H=await D(),[W]=await H.transaction.simulate.simple({transaction:j});if(!W)throw new z("toolbox_aptos_transaction_creation_error");let X=BigInt(W.gas_used)*BigInt(W.gas_unit_price),{baseDecimal:R}=v(Q.Aptos);return P.from({chain:Q.Aptos,fromBaseDecimal:R,value:X.toString()})}async function O({recipient:q,assetValue:j,maxGasAmount:H,sender:W,sweep:X}){if(!B(q))throw new z("core_transaction_invalid_recipient_address");let R=W||await _();if(!R)throw new z("toolbox_aptos_no_sender");let{AccountAddress:k}=await import("@aptos-labs/ts-sdk"),F=await D(),Y=k.from(R);try{let I=j.isGasAsset?N.TRANSFER:N.FUNGIBLE_STORE_TRANSFER,E=j.address,U=(f,b)=>{let m=p({address:E,isGasAsset:j.isGasAsset}).with({isGasAsset:!0},()=>[k.from(q),f]).with({address:G.string},({address:r})=>[k.from(r),k.from(q),f]).otherwise(()=>null);if(!m)throw new z("toolbox_aptos_missing_asset_type");let A=b?.maxGasAmount??H;return F.transaction.build.simple({data:{function:I,functionArguments:m,typeArguments:j.isGasAsset?[]:[N.FUNGIBLE_ASSET_METADATA]},options:A!==void 0||b?.gasUnitPrice!==void 0?{gasUnitPrice:b?.gasUnitPrice,maxGasAmount:A}:void 0,sender:Y})};if(!X)return U(j.getBaseValue("bigint"));if(!j.isGasAsset){let f=await jj({aptos:F,assetValue:j,senderAddress:R});return U(f)}let w=BigInt(await F.getAccountAPTAmount({accountAddress:R})),i=await U(1n,{maxGasAmount:H??s}),[C]=await F.transaction.simulate.simple({options:{estimateMaxGasAmount:H===void 0},transaction:i});if(!C)throw new z("toolbox_aptos_transaction_creation_error");if(!C.success)throw new z({errorKey:"toolbox_aptos_transaction_creation_error",info:{vmStatus:C.vm_status}});let S=BigInt(C.gas_used),V=S>0n?(S*6n+4n)/5n:1n,g=V*BigInt(C.gas_unit_price),n=c(w-g,j,{balance:w.toString(),fee:g.toString()});return U(n,{gasUnitPrice:Number(C.gas_unit_price),maxGasAmount:Number(V)})}catch(I){if(I instanceof z)throw I;throw new z("toolbox_aptos_transaction_creation_error",I)}}async function T(q){let j=await y();if(!j)throw new z("toolbox_aptos_no_signer");return(await D()).transaction.sign({signer:j,transaction:q})}async function d({assetValue:q,maxGasAmount:j,recipient:H,sweep:W}){let X=await y();if(!X)throw new z("toolbox_aptos_no_signer");if(!B(H))throw new z("core_transaction_invalid_recipient_address");try{let R=X.accountAddress.toString(),k=await O({assetValue:q,maxGasAmount:j,recipient:H,sender:R,sweep:W});return(await(await D()).signAndSubmitTransaction({signer:X,transaction:k})).hash}catch(R){if(R instanceof z)throw R;throw new z("toolbox_aptos_transaction_creation_error",R)}}async function K({senderAuthenticator:q,transaction:j}){try{return(await(await D()).transaction.submit.simple({senderAuthenticator:q,transaction:j})).hash}catch(H){throw new z("toolbox_aptos_broadcast_error",H)}}async function o(q){let j=await T(q);return K({senderAuthenticator:j,transaction:q})}return{broadcastTransaction:K,createTransaction:O,estimateTransactionFee:u,getAddress:_,getBalance:h,signAndBroadcastTransaction:o,signTransaction:T,transfer:d,validateAddress:B}}function zj({provider:J}){return async function({assetValue:L,recipient:$,sweep:M}){if(M)throw new z({errorKey:"toolbox_not_supported",info:{chain:Q.Aptos,feature:"extension_provider_sweep",reason:"Aptos extension providers cannot query balances or simulate transactions"}});if(!B($))throw new z("core_transaction_invalid_recipient_address");let{AccountAddress:y}=await import("@aptos-labs/ts-sdk");if(L.isGasAsset)return(await J.signAndSubmitTransaction({arguments:[y.from($).toString(),L.getBaseValue("string")],function:N.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let D=L.address;if(!D)throw new z("toolbox_aptos_missing_asset_type");return(await J.signAndSubmitTransaction({arguments:[D,y.from($).toString(),L.getBaseValue("string")],function:N.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[N.FUNGIBLE_ASSET_METADATA]})).hash}}export{B as validateAptosAddress,qj as getAptosToolbox,zj as createAptosExtensionTransfer};
1
+ import{ga as v}from"../../chunk-xbdjxeqd.js";import{AssetValue as N,Chain as I,derivationPathToString as e,getChainConfig as b,getRPCUrlSync as c,NetworkDerivationPath as jj,SwapKitError as H}from"@swapkit/helpers";import{match as d,P as G}from"ts-pattern";var C={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},zj=2000,Hj=/^[0-9a-fA-F]+$/;function _(W){if(!W||typeof W!=="string"||!W.startsWith("0x"))return!1;let Z=W.slice(2);if(Z.length===0||Z.length>64)return!1;return Hj.test(Z)}function u(W,Z,X){if(W<=0n)throw new H({errorKey:"toolbox_sweep_amount_too_low",info:{amount:W.toString(),asset:Z.toString(),...X}});return W}async function Jj({aptos:W,assetValue:Z,senderAddress:X}){let $=Z.address;if(!$)throw new H("toolbox_aptos_missing_asset_type");let[B]=await W.getCurrentFungibleAssetBalances({options:{limit:1,where:{asset_type:{_eq:$},is_primary:{_eq:!0},owner_address:{_eq:X}}}});return u(BigInt(B?.amount??0),Z)}function Rj({derivationPath:W,provider:Z,...X}={}){let $,B=e(W||jj[I.Aptos],{allHardened:!0});async function M(){if($)return $;return $=await d(X).with({phrase:G.string},async({phrase:z})=>{let{Ed25519Account:j}=await import("@aptos-labs/ts-sdk");return j.fromDerivationPath({mnemonic:z,path:B})}).with({signer:G.any},({signer:z})=>z).otherwise(()=>{return}),$}async function Q(){let{Aptos:z,AptosConfig:j,Network:J}=await import("@aptos-labs/ts-sdk"),Y=new j({clientConfig:{http2:!1},fullnode:Z||c(I.Aptos),network:J.MAINNET});return new z(Y)}async function f(){return(await M())?.accountAddress.toString()||""}async function h(z){let j=z||await f();if(!j)throw new H("toolbox_aptos_address_required");let{baseDecimal:J,chain:Y}=b(I.Aptos);try{let k=await Q(),L=await k.getAccountAPTAmount({accountAddress:j}),F=[N.from({chain:Y,fromBaseDecimal:J,value:L.toString()})],q=await k.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:j}}}});for(let R of q){if(R.asset_type===C.COIN_TYPE||Number(R.amount)<=0)continue;let D=R.asset_type;if(D){let y=("metadata"in R&&typeof R.metadata==="object"&&R.metadata!==null?R.metadata:void 0)?.decimals??J;F.push(N.from({asset:`${I.Aptos}.APT-${D}`,fromBaseDecimal:y,value:String(R.amount)}))}}return F}catch{return[N.from({chain:Y})]}}async function o(z){if(!z){let{baseDecimal:F}=b(I.Aptos),q=Z||c(I.Aptos),R=await fetch(`${q}/estimate_gas_price`),{gas_estimate:D}=await R.json();return N.from({chain:I.Aptos,fromBaseDecimal:F,value:String(D)})}let j=await P(z),J=await Q(),[Y]=await J.transaction.simulate.simple({transaction:j});if(!Y)throw new H("toolbox_aptos_transaction_creation_error");let k=BigInt(Y.gas_used)*BigInt(Y.gas_unit_price),{baseDecimal:L}=b(I.Aptos);return N.from({chain:I.Aptos,fromBaseDecimal:L,value:k.toString()})}async function P({recipient:z,assetValue:j,maxGasAmount:J,sender:Y,accountSequenceNumber:k,gasUnitPrice:L,sweep:F}){if(!_(z))throw new H("core_transaction_invalid_recipient_address");let q=Y||await f();if(!q)throw new H("toolbox_aptos_no_sender");let{AccountAddress:R}=await import("@aptos-labs/ts-sdk"),D=await Q(),E=R.from(q);try{let y=j.isGasAsset?C.TRANSFER:C.FUNGIBLE_STORE_TRANSFER,r=j.address,x=(U,A)=>{let m=d({address:r,isGasAsset:j.isGasAsset}).with({isGasAsset:!0},()=>[R.from(z),U]).with({address:G.string},({address:a})=>[R.from(a),R.from(z),U]).otherwise(()=>null);if(!m)throw new H("toolbox_aptos_missing_asset_type");let l=A?.maxGasAmount??J,p=A?.gasUnitPrice??L;return D.transaction.build.simple({data:{function:y,functionArguments:m,typeArguments:j.isGasAsset?[]:[C.FUNGIBLE_ASSET_METADATA]},options:l!==void 0||p!==void 0||k!==void 0?{accountSequenceNumber:k,gasUnitPrice:p,maxGasAmount:l}:void 0,sender:E})};if(!F)return x(j.getBaseValue("bigint"));if(!j.isGasAsset){let U=await Jj({aptos:D,assetValue:j,senderAddress:q});return x(U)}let w=BigInt(await D.getAccountAPTAmount({accountAddress:q})),t=await x(1n,{maxGasAmount:J??zj}),[O]=await D.transaction.simulate.simple({options:{estimateMaxGasAmount:J===void 0},transaction:t});if(!O)throw new H("toolbox_aptos_transaction_creation_error");if(!O.success)throw new H({errorKey:"toolbox_aptos_transaction_creation_error",info:{vmStatus:O.vm_status}});let V=BigInt(O.gas_used),S=V>0n?(V*6n+4n)/5n:1n,g=S*BigInt(O.gas_unit_price),s=u(w-g,j,{balance:w.toString(),fee:g.toString()});return x(s,{gasUnitPrice:Number(O.gas_unit_price),maxGasAmount:Number(S)})}catch(y){if(y instanceof H)throw y;throw new H("toolbox_aptos_transaction_creation_error",y)}}async function T(z){let j=await M();if(!j)throw new H("toolbox_aptos_no_signer");return(await Q()).transaction.sign({signer:j,transaction:z})}async function i({assetValue:z,maxGasAmount:j,recipient:J,sweep:Y}){let k=await M();if(!k)throw new H("toolbox_aptos_no_signer");if(!_(J))throw new H("core_transaction_invalid_recipient_address");try{let L=k.accountAddress.toString(),F=await P({assetValue:z,maxGasAmount:j,recipient:J,sender:L,sweep:Y});return(await(await Q()).signAndSubmitTransaction({signer:k,transaction:F})).hash}catch(L){if(L instanceof H)throw L;throw new H("toolbox_aptos_transaction_creation_error",L)}}async function K({senderAuthenticator:z,transaction:j}){try{return(await(await Q()).transaction.submit.simple({senderAuthenticator:z,transaction:j})).hash}catch(J){throw new H("toolbox_aptos_broadcast_error",J)}}async function n(z){let j=await T(z);return K({senderAuthenticator:j,transaction:z})}return{broadcastTransaction:K,createTransaction:P,estimateTransactionFee:o,getAddress:f,getBalance:h,signAndBroadcastTransaction:n,signTransaction:T,transfer:i,validateAddress:_}}function Wj({provider:W}){return async function({assetValue:X,recipient:$,sweep:B}){if(B)throw new H({errorKey:"toolbox_not_supported",info:{chain:I.Aptos,feature:"extension_provider_sweep",reason:"Aptos extension providers cannot query balances or simulate transactions"}});if(!_($))throw new H("core_transaction_invalid_recipient_address");let{AccountAddress:M}=await import("@aptos-labs/ts-sdk");if(X.isGasAsset)return(await W.signAndSubmitTransaction({arguments:[M.from($).toString(),X.getBaseValue("string")],function:C.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let Q=X.address;if(!Q)throw new H("toolbox_aptos_missing_asset_type");return(await W.signAndSubmitTransaction({arguments:[Q,M.from($).toString(),X.getBaseValue("string")],function:C.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[C.FUNGIBLE_ASSET_METADATA]})).hash}}export{_ as validateAptosAddress,Rj as getAptosToolbox,Wj as createAptosExtensionTransfer};
@@ -1 +1 @@
1
- import{ga as u}from"../../chunk-xbdjxeqd.js";import{base64 as b,bech32 as E}from"@scure/base";import{SwapKitError as Eo}from"@swapkit/helpers";function M(o){return b.encode(Uint8Array.from(E.fromWords(E.decode(o).words)))}function l(o,t="thor"){return E.encode(t,E.toWords(b.decode(o)))}function Qt(o){return b.encode(o)}function St(o){if(!o.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new Eo("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return b.decode(o)}import{AssetValue as ao,Chain as h,getChainConfig as Lo,getRPCUrl as co,SwapKitError as ot}from"@swapkit/helpers";import{AssetValue as po,Chain as n,getChainConfig as L,getRPCUrl as bo,RequestClient as Mo,SKConfig as Io,SwapKitError as g,SwapKitNumber as fo}from"@swapkit/helpers";var Ro="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",lo="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",go={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},Vo={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},so={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};function i(o){switch(o){case n.Maya:return{amount:[],gas:"10000000000"};case n.THORChain:return{amount:[],gas:"500000000"};case n.Kujira:return Vo;case n.Noble:return so;default:return go}}async function V(o){let{isStagenet:t}=Io.get("envs"),p=Io.get("thornodeUrls"),r=o===n.Maya,y=`${r?t?p.MAYA_STAGENET:p.MAYA:t?p.THOR_STAGENET:p.THOR}/${r?"mayachain":"thorchain"}/constants`,c=L(o).baseDecimal;try{let{int_64_values:{NativeTransactionFee:w}}=await Mo.get(y);if(!Number.isInteger(w)||w<=0)throw new g("toolbox_cosmos_invalid_fee",{nativeFee:w.toString()});return fo.fromBigInt(BigInt(w),c)}catch{let w=r?10000000000n:2000000n;return fo.fromBigInt(w,c)}}var Z=(o,t=!1)=>{if(t)return o.toLowerCase();switch(o){case"uUSK":case"USK":return Ro;case"uYUM":case"YUM":return lo;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":case"NOBLE":return"uusdc";default:return o}},s=({symbol:o,chain:t})=>{if(t===n.Maya)return(o.toUpperCase()!=="CACAO"?o:`${n.Maya}.${o}`).toUpperCase();if(t===n.THORChain)return(["RUNE","TCY","RUJI"].includes(o.toUpperCase())?`${n.THORChain}.${o}`:o).toUpperCase();return Z(o,!1)};async function G(o){let t=await import("@cosmjs/stargate"),p=t.StargateClient??t.default?.StargateClient,r=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return p.connect({headers:r,url:o})}async function Y(o,t,p={}){let r=await import("@cosmjs/stargate"),f=r.SigningStargateClient??r.default?.SigningStargateClient,y=r.GasPrice??r.default?.GasPrice,c=typeof p==="string"?p:"0.0003uatom",w=typeof p==="string"?{}:p;return f.connectWithSigner(o,t,{gasPrice:y.fromString(c),...w})}async function _o(o,t){let p=await import("@cosmjs/stargate");return(p.SigningStargateClient??p.default?.SigningStargateClient).offline(o,t)}var ho=(o)=>{switch(o){case n.Maya:case n.THORChain:return"/types.MsgSend";case n.Cosmos:case n.Kujira:case n.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new g("toolbox_cosmos_not_supported",{chain:o})}};async function $o({sender:o,recipient:t,assetValue:p,memo:r="",feeRate:f,sequence:y,accountNumber:c,sweep:w}){let{chain:k,chainId:_}=p,I=await bo(k),R=await G(I),$=await R.getAccount(o);if(!$)throw new g("toolbox_cosmos_account_not_found",{sender:o});let x=po.from({chain:k}),v=Z(x.symbol),T=i(k),W=v&&f?{amount:[{amount:f.toString(),denom:v}],gas:T.gas}:T,H=Z(p.symbol),C={amount:[{amount:(w?K({assetValue:p,balances:await R.getAllBalances(o),denom:H,feeAmount:yo(W.amount,H)}):p).getBaseValue("string"),denom:H}],fromAddress:o,toAddress:t};return{accountNumber:c??Number($.accountNumber),chainId:_,fee:W,memo:r,msgs:[{typeUrl:ho(k),value:C}],sequence:y??$.sequence}}function yo(o,t){let p=t.toLowerCase();return o.reduce((r,f)=>f.denom.toLowerCase()===p?r+BigInt(f.amount):r,0n)}function K({assetValue:o,balances:t,denom:p,feeAmount:r=0n}){let f=p.toLowerCase(),y=t.find(({denom:k})=>k.toLowerCase()===f),c=BigInt(y?.amount??"0"),w=c-r;if(w<=0n)throw new g("toolbox_sweep_amount_too_low",{asset:o.toString(),balance:c.toString(),fee:r.toString()});return o.set(fo.fromBigInt(w,o.decimal))}var eo={atom:{chain:n.Cosmos,decimals:L(n.Cosmos).baseDecimal},cacao:{chain:n.Maya,decimals:10},kuji:{chain:n.Kujira,decimals:L(n.Kujira).baseDecimal},maya:{asset:`${n.Maya}.${n.Maya}`,decimals:4},rune:{chain:n.THORChain,decimals:L(n.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:L(n.THORChain).baseDecimal},uatom:{chain:n.Cosmos,decimals:L(n.Cosmos).baseDecimal},ukuji:{chain:n.Kujira,decimals:L(n.Kujira).baseDecimal},usdc:{chain:n.Noble,decimals:L(n.Noble).baseDecimal},uusdc:{chain:n.Noble,decimals:L(n.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:L(n.THORChain).baseDecimal},[Ro.toLowerCase()]:{asset:`${n.Kujira}.USK`,decimals:L(n.Kujira).baseDecimal}},mo=(o,t)=>{let p=eo[o.toLowerCase()];if(!p)return po.from({asset:o,fromBaseDecimal:8,value:t});let{chain:r,asset:f,decimals:y}=p,c=r?{chain:r}:{asset:f};return po.from({...c,fromBaseDecimal:y,value:t})};import{Chain as Co}from"@swapkit/helpers";async function D(){let{$root:o}=await import("../../chunk-btth5bse.js"),t=await import("@cosmjs/proto-signing"),p=await import("@cosmjs/stargate"),r=t.Registry??t.default?.Registry,f=p.defaultRegistryTypes??p.default?.defaultRegistryTypes;return new r([...f,["/types.MsgSend",o.types.MsgSend],["/types.MsgDeposit",o.types.MsgDeposit]])}async function Q(o,t=o===Co.THORChain?"thor":"maya"){let p=await import("@cosmjs/stargate"),r=p.AminoTypes??p.default?.AminoTypes,f=o===Co.THORChain?"thorchain":"mayachain";return new r({"/types.MsgDeposit":{aminoType:`${f}/MsgDeposit`,fromAmino:({signer:y,...c})=>({...c,signer:M(y)}),toAmino:({signer:y,...c})=>({...c,signer:l(y,t)})},"/types.MsgSend":{aminoType:`${f}/MsgSend`,fromAmino:({from_address:y,to_address:c,...w})=>({...w,fromAddress:M(y),toAddress:M(c)}),toAmino:({fromAddress:y,toAddress:c,...w})=>({...w,from_address:l(y,t),to_address:l(c,t)})}})}var Ot=i(h.THORChain).gas,Nt=i(h.Maya).gas,io=({sender:o,recipient:t,assetValue:p})=>{return{type:`${p.chain===h.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:p.getBaseValue("string"),denom:Z(p.symbol,!0)}],from_address:o,to_address:t}}},jo=({sender:o,assetValue:t,memo:p=""})=>{return{type:`${t.chain===h.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:t.getBaseValue("string"),asset:s(t)}],memo:p,signer:o}}},wo=({sender:o,recipient:t,assetValue:p,memo:r})=>{return!t?jo({assetValue:p,memo:r,sender:o}):io({assetValue:p,recipient:t,sender:o})},S=async(o,t)=>{return(await Q(t)).fromAmino(o)},zo=async({rpcUrl:o,sender:t})=>{let r=await(await G(o)).getAccount(t);if(!r)throw new ot("toolbox_cosmos_account_not_found",{sender:t});return r};async function Go(o){let{assetValue:t,recipient:p,memo:r,sender:f,asSignable:y,asAminoMessage:c}=o,w=o.sweep?await To({assetValue:t,sender:f}):t;if(p)return tt({asAminoMessage:c,asSignable:y,assetValue:w,memo:r,recipient:p,sender:f});return rt({asAminoMessage:c,asSignable:y,assetValue:w,memo:r,sender:f})}async function To({assetValue:o,sender:t}){let p=o.chain,r=await co(p),y=await(await G(r)).getAllBalances(t),c=o.isGasAsset?(await V(p)).getBaseValue("bigint"):0n;return K({assetValue:o,balances:y,denom:Z(o.symbol,!0),feeAmount:c})}async function tt({sender:o,recipient:t,assetValue:p,memo:r="",asSignable:f=!0,asAminoMessage:y=!1,sequence:c,accountNumber:w}){let k=p.chain,_=await co(k),I=await zo({rpcUrl:_,sender:o}),{chainId:R}=Lo(k),$=io({assetValue:p,recipient:t,sender:o}),x=f?await S(y?$:X($),k):$;return{accountNumber:w||Number(I.accountNumber),chainId:R,fee:i(k),memo:r,msgs:[x],sequence:c||I.sequence}}async function rt({sender:o,assetValue:t,memo:p="",asSignable:r=!0,asAminoMessage:f=!1,sequence:y,accountNumber:c}){let w=t.chain,k=await co(w),_=await zo({rpcUrl:k,sender:o}),{chainId:I}=Lo(w),R=jo({assetValue:t,memo:p,sender:o}),$=r?await S(f?R:X(R),w):R;return{accountNumber:c||Number(_.accountNumber),chainId:I,fee:i(w),memo:p,msgs:[$],sequence:y||_.sequence}}function X(o){if(o.type==="thorchain/MsgSend"||o.type==="mayachain/MsgSend")return o;return{...o,value:{...o.value,coins:o.value.coins.map((t)=>{let p=ao.from({asset:t.asset}),r=(p.isSynthetic?p.symbol.split("/")?.[1]:p.symbol)?.toUpperCase(),f=(p.isSynthetic?p.symbol.split("/")?.[0]:p.chain)?.toUpperCase();return{...t,asset:{chain:f,symbol:r,synth:p.isSynthetic,ticker:p.ticker}}})}}}async function e({chain:o,memo:t,msgs:p}){let r=await D(),f=await Q(o),y={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:t,messages:p.map((c)=>f.fromAmino(c))}};return r.encode(y)}import{Chain as U,SwapKitError as jt}from"@swapkit/helpers";import{base64 as vo,bech32 as xo}from"@scure/base";import{AssetValue as Wo,applyFeeMultiplier as Zo,Chain as m,CosmosChainPrefixes as Yo,DerivationPath as pt,derivationPathToString as Qo,FeeOption as Ho,getChainConfig as ft,getRPCUrl as O,NetworkDerivationPath as yt,SwapKitError as d,SwapKitNumber as no,updateDerivationPath as ct}from"@swapkit/helpers";import{SwapKitApi as Do}from"@swapkit/helpers/api";import{match as wt,P as So}from"ts-pattern";async function qo(o,t){try{let r=(await Do.getGasRate()).find((f)=>f.chainId===o)?.value;return r?Number.parseFloat(r):t}catch{return t}}async function Xo({phrase:o,prefix:t,...p}){let r=await import("@cosmjs/proto-signing"),f=await import("@cosmjs/crypto"),y=r.DirectSecp256k1HdWallet??r.default?.DirectSecp256k1HdWallet,c=f.stringToPath??f.default?.stringToPath,w="derivationPath"in p?p.derivationPath:`${pt[p.chain]}/${p.index}`;return await y.fromMnemonic(o,{hdPaths:[c(w)],prefix:t})}async function or({privateKey:o,prefix:t}){let p=await import("@cosmjs/proto-signing");return(p.DirectSecp256k1Wallet??p.default?.DirectSecp256k1Wallet).fromKey(o,t)}var Po={[m.Cosmos]:1000,[m.Kujira]:1000,[m.Noble]:1000,[m.THORChain]:5000000,[m.Maya]:5000000,[m.Harbor]:5000000};function Tt(o){return async function({signature:p,message:r,address:f}){let y=await o(f);if(!y?.pubkey)throw new d("toolbox_cosmos_verify_signature_no_pubkey");let c=await import("@cosmjs/crypto"),w=c.Secp256k1Signature??c.default?.Secp256k1Signature,k=c.Secp256k1??c.default?.Secp256k1,_=w.fromFixedLength(vo.decode(p));return k.verifySignature(_,vo.decode(r),y.pubkey.value)}}function a({chain:o,...t}){let p=Yo[o],r="index"in t?t.index||0:0,f=Qo("derivationPath"in t&&t.derivationPath?t.derivationPath:ct(yt[o],{index:r})),y;async function c(){if(y)return y;return y=await wt(t).with({phrase:So.string},({phrase:x})=>Xo({derivationPath:f,phrase:x,prefix:p})).with({signer:So.any},({signer:x})=>x).otherwise(()=>{return}),y}async function w(x){let v=await O(o);return(await G(v)).getAccount(x)}async function k(){let x=await c(),[v]=await x?.getAccounts()||[];return v?.address}async function _(){let x=await c(),[v]=await x?.getAccounts()||[];if(!v?.pubkey)throw new d("toolbox_cosmos_signer_not_defined");return vo.encode(v?.pubkey)}async function I(x){let v=await c(),T=await k(),W=await O(o);if(!(v&&T))throw new d("toolbox_cosmos_signer_not_defined");return await(await Y(W,v)).sign(T,x.msgs,x.fee,x.memo,{accountNumber:BigInt(x.accountNumber),chainId:x.chainId,sequence:x.sequence})}async function R(x){let v=await c(),T=await k(),W=await O(o);if(!(v&&T))throw new d("toolbox_cosmos_signer_not_defined");let B=await(await Y(W,v)).signAndBroadcast(T,x.msgs,x.fee,x.memo);if(B.code!==0)throw new d("core_swap_transaction_error",{code:B.code,message:B.rawLog});return B.transactionHash}async function $({recipient:x,assetValue:v,memo:T="",feeRate:W,feeOptionKey:H=Ho.Fast,sweep:B}){let C=await c(),j=await k();if(!(C&&j))throw new d("toolbox_cosmos_signer_not_defined");let z=await O(o),J=Wo.from({chain:o}),oo=s(J),A=xt(W||(await Jo(o,Po[o]))[H],oo,o),q=await Y(z,C),F=Z(v.symbol),to=[{amount:(B?K({assetValue:v,balances:await ko(o)(j),denom:F,feeAmount:yo(A.amount,F)}):v).getBaseValue("string"),denom:F}],{transactionHash:ro}=await q.sendTokens(j,x,to,A,T);return ro}return{createPrivateKeyFromPhrase:vt(f),createTransaction:$o,fetchFeeRateFromSwapKit:qo,getAccount:w,getAddress:k,getBalance:async(x,v)=>{let T=await ko(o)(x),W=await Promise.all(T.filter(({denom:H})=>H&&!H.includes("IBC/")&&!([m.THORChain,m.Maya].includes(o)&&H.split("-").length>2)).map(({denom:H,amount:B})=>{let C=[m.THORChain,m.Maya].includes(o)&&(H.includes("/")||H.includes("˜"))?`${o}.${H}`:H;return mo(C,B)}));if(W.length===0)return[Wo.from({chain:o})];return W},getBalanceAsDenoms:ko(o),getFees:()=>Jo(o,Po[o]),getPubKey:_,getSignerFromPhrase:({phrase:x,derivationPath:v})=>Xo({derivationPath:Qo(v),index:r,phrase:x,prefix:p}),getSignerFromPrivateKey:async(x)=>{let v=await import("@cosmjs/proto-signing");return(v.DirectSecp256k1Wallet??v.default?.DirectSecp256k1Wallet).fromKey(x,p)},signAndBroadcastTransaction:R,signTransaction:I,transfer:$,validateAddress:kt(o),verifySignature:Tt(w)}}async function tr(o,t){try{let r=(await Do.getGasRate()).find((f)=>f.chainId===o)?.value;return r?Number.parseFloat(r):t}catch{return t}}function rr({assetValue:{chain:o}}){return Wo.from({chain:o,value:nt(o)})}async function Jo(o,t){let{chainId:p,baseDecimal:r}=ft(o),f=await qo(p,t);return{average:no.fromBigInt(BigInt(f),r),fast:no.fromBigInt(BigInt(Zo(f,Ho.Fast,!0)),r),fastest:no.fromBigInt(BigInt(Zo(f,Ho.Fastest,!0)),r)}}function xt(o,t,p){return{amount:[{amount:typeof o==="number"?o.toString():o.getBaseValue("string"),denom:t}],gas:i(p).gas}}function nt(o){return{[m.Cosmos]:0.007,[m.Kujira]:0.02,[m.Noble]:0.01,[m.THORChain]:0.02,[m.Maya]:0.02,[m.Harbor]:0.02}[o]||0}function kt(o){let t=Yo[o];return function(r){if(!r.startsWith(t))return!1;try{let{prefix:f,words:y}=xo.decode(r);return xo.encode(f,y)===r.toLocaleLowerCase()}catch{return!1}}}function ko(o){return async function(p){let r=await O(o);return(await(await G(r)).getAllBalances(p)).map((w)=>({...w,denom:w.denom.includes("/")?w.denom.toUpperCase():w.denom}))}}function vt(o){return async function(p){let r=await import("@cosmjs/crypto"),f=r.stringToPath??r.default?.stringToPath,y=r.Slip10Curve??r.default?.Slip10Curve,c=r.Slip10??r.default?.Slip10,w=r.EnglishMnemonic??r.default?.EnglishMnemonic,k=r.Bip39??r.default?.Bip39,_=new w(p),I=await k.mnemonicToSeed(_),{privkey:R}=c.derivePath(y.Secp256k1,I,f(o));return R}}import{base64 as P}from"@scure/base";import{CosmosChainPrefixes as Wt,derivationPathToString as Ht,FeeOption as Bo,getRPCUrl as Ko,NetworkDerivationPath as Bt,SKConfig as ut,SwapKitError as N,updateDerivationPath as It}from"@swapkit/helpers";import{match as Rt,P as Fo}from"ts-pattern";function _t({prefix:o,derivationPath:t}){return async function(r,f=0){let y=await import("@cosmjs/amino"),c=y.Secp256k1HdWallet??y.default?.Secp256k1HdWallet,w=await import("@cosmjs/crypto"),k=w.stringToPath??w.default?.stringToPath;return c.fromMnemonic(r,{hdPaths:[k(`${t}/${f}`)],prefix:o})}}function $t(o){return P.encode(o)}function mt(o,t){return async function({wallet:r,tx:f}){let{msgs:y,accountNumber:c,sequence:w,chainId:k,fee:_,memo:I}=typeof f==="string"?JSON.parse(f):f,R=(await r.getAccounts())?.[0]?.address||"",$=await Q(o,t),x=await D(),v=await _o(r,{aminoTypes:$,registry:x}),T=[];for(let B of y){let C=await S(B,o);T.push(C)}let{signatures:[W]}=await v.sign(R,T,_,I,{accountNumber:BigInt(c),chainId:k,sequence:w});return{bodyBytes:await e({chain:o,memo:I,msgs:y.map(X)}),signature:$t(W)}}}function Ct({prefix:o,chain:t}){return async function(r,f,y,c,w){let k=await Ko(t),{encodeSecp256k1Pubkey:_,pubkeyToAddress:I}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:R}=(await import("@cosmjs/stargate")).default,{sequence:$,fee:x}=JSON.parse(r),v=await Oo(y,c),T=f.map((B)=>[I(_(P.decode(B.pubKey)),o),P.decode(B.signature)]),W=await G(k),{transactionHash:H}=await W.broadcastTx(R(v,$,x,w,new Map(T)));return H}}async function Oo(o,t,p=!0){let{createMultisigThresholdPubkey:r,encodeSecp256k1Pubkey:f}=(await import("@cosmjs/amino")).default;return r(o.map((y)=>f(P.decode(y))),t,p)}function Lt(o){return P.decode(o)}async function it({privateKey:o,message:t}){let{Secp256k1:p}=(await import("@cosmjs/crypto")).default,r=await p.createSignature(P.decode(t),o);return P.encode(Buffer.concat([r.r(32),r.s(32)]))}function No({chain:o,...t}){let{isStagenet:p}=ut.get("envs"),r=`${p?"s":""}${Wt[o]}`,f="index"in t?t.index||0:0,y="derivationPath"in t&&t.derivationPath?t.derivationPath:It(Bt[o],{index:f}),c=a({chain:o,...t}),w=i(o),k;function _(){return k??=Rt(t).with({phrase:Fo.string},({phrase:T})=>c.getSignerFromPhrase({derivationPath:y,phrase:T})).with({signer:Fo.any},({signer:T})=>Promise.resolve(T)).otherwise(()=>Promise.resolve(void 0)),k}async function I(){let T=await Ko(o),W=await _();if(!W)throw new N("toolbox_cosmos_no_signer");let H=await D(),B=await Q(o,r),C=await Y(T,W,{aminoTypes:B,registry:H});return{signer:W,signingClient:C}}async function R({fee:T,memo:W,msgs:H}){let{signer:B,signingClient:C}=await I(),j=(await B.getAccounts())?.[0]?.address;if(!j)throw new N("toolbox_cosmos_signer_not_defined");let z=await C.signAndBroadcast(j,H,T,W);if(z.code!==0)throw new N("core_swap_transaction_error",{code:z.code,message:z.rawLog});return z.transactionHash}async function $(){let T=await V(o);return{[Bo.Average]:T,[Bo.Fast]:T,[Bo.Fastest]:T}}async function x({assetValue:T,memo:W="",recipient:H,sweep:B}){let{TxRaw:C}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:j,signingClient:z}=await I(),J=(await j.getAccounts())?.[0]?.address;if(!J)throw new N("toolbox_cosmos_no_signer");let oo="signAmino"in j,A=B?await To({assetValue:T,sender:J}):T,q=wo({assetValue:A,memo:W,recipient:H,sender:J});if(oo){let to=await S(q,o),{signatures:ro,authInfoBytes:Uo}=await z.sign(J,[to],w,W),Ao=C.encode({authInfoBytes:Uo,bodyBytes:await e({chain:o,memo:W,msgs:[q].map(X)}),signatures:ro}).finish();return(await z.broadcastTx(Ao)).transactionHash}let F=X(q),uo=await S(F,o);return R({fee:w,memo:W,msgs:[uo]})}async function v(T){let{signer:W,signingClient:H}=await I(),B=(await W.getAccounts())?.[0]?.address;if(!B)throw new N("toolbox_cosmos_signer_not_defined");return H.sign(B,T.msgs,T.fee,T.memo,{accountNumber:BigInt(T.accountNumber),chainId:T.chainId,sequence:T.sequence})}return{...c,broadcastMultisigTx:Ct({chain:o,prefix:r}),buildAminoMsg:wo,buildEncodedTxBody:e,convertToSignable:S,createDefaultAminoTypes:()=>Q(o,r),createDefaultRegistry:D,createMultisig:Oo,createTransaction:Go,deposit:x,getFees:$,importSignature:Lt,parseAminoMessageForDirectSigning:X,pubkeyToAddress:async(T)=>{let{pubkeyToAddress:W}=(await import("@cosmjs/amino")).default;return W(T,r)},secp256k1HdWalletFromMnemonic:_t({derivationPath:Ht(y),prefix:r}),signAndBroadcastTransaction:R,signMultisigTx:mt(o,r),signTransaction:v,signWithPrivateKey:it,transfer:x}}var Hr=(o,t)=>{switch(o){case U.Cosmos:case U.Kujira:case U.Noble:return a({chain:o,...t});case U.Maya:case U.THORChain:return No({chain:o,...t});default:throw new jt("toolbox_cosmos_not_supported",{chain:o})}};export{Tt as verifySignature,io as transferMsgAmino,Qt as toBase64,To as resolveThorchainSweepAssetValue,X as parseAminoMessageForDirectSigning,V as getThorchainNativeFee,K as getSweepAssetValue,or as getSignerFromPrivateKey,Xo as getSignerFromPhrase,Z as getMsgSendDenom,tr as getFeeRateFromSwapKit,yo as getFeeAmountForDenom,s as getDenomWithChain,i as getDefaultChainFee,Hr as getCosmosToolbox,kt as getCosmosAddressValidator,mo as getAssetFromDenom,St as fromBase64,qo as fetchFeeRateFromSwapKit,rr as estimateTransactionFee,jo as depositMsgAmino,Go as createTransaction,No as createThorchainToolbox,G as createStargateClient,Y as createSigningStargateClient,_o as createOfflineStargateClient,D as createDefaultRegistry,Q as createDefaultAminoTypes,a as createCosmosToolbox,$o as cosmosCreateTransaction,S as convertToSignable,tt as buildTransferTx,e as buildEncodedTxBody,rt as buildDepositTx,wo as buildAminoMsg,M as bech32ToBase64,l as base64ToBech32,lo as YUM_KUJIRA_FACTORY_DENOM,Ro as USK_KUJIRA_FACTORY_DENOM,Ot as THORCHAIN_GAS_VALUE,Nt as MAYA_GAS_VALUE,so as DEFAULT_NOBLE_FEE_MAINNET,Vo as DEFAULT_KUJI_FEE_MAINNET,go as DEFAULT_COSMOS_FEE_MAINNET};
1
+ import"../../chunk-xbdjxeqd.js";import{base64 as o,bech32 as i}from"@scure/base";import{SwapKitError as L0}from"@swapkit/helpers";function t(Y){return o.encode(Uint8Array.from(i.fromWords(i.decode(Y).words)))}function r(Y,z="thor"){return i.encode(z,i.toWords(o.decode(Y)))}function P8(Y){return o.encode(Y)}function A8(Y){if(!Y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new L0("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return o.decode(Y)}import{encodeMessage as f0,encodeTxBody as w0}from"@swapkit/cosmos-signer";import{AssetValue as j0,Chain as Z6,getChainConfig as h6,getRPCUrl as N6,SwapKitError as B6}from"@swapkit/helpers";import{base64 as G6}from"@scure/base";import{broadcastTx as a,getAccount as P6,getBalances as J0,createTendermintRpc as G0,defaultEncoders as q0,encodeAuthInfo as F6,encodeMessage as _0,encodePubkey as W0,encodeTxBody as O0,encodeTxRaw as v6,makeStdSignDoc as N0}from"@swapkit/cosmos-signer";import{AssetValue as q6,Chain as K,getChainConfig as S,getRPCUrl as B0,RequestClient as I0,SKConfig as D6,SwapKitError as D,SwapKitNumber as _6}from"@swapkit/helpers";var A6="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",E0="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",U0={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},K0={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},R0={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};function C(Y){switch(Y){case K.Maya:return{amount:[],gas:"10000000000"};case K.THORChain:return{amount:[],gas:"500000000"};case K.Kujira:return K0;case K.Noble:return R0;default:return U0}}async function s(Y){let{isStagenet:z}=D6.get("envs"),H=D6.get("thornodeUrls"),Z=Y===K.Maya,X=`${Z?z?H.MAYA_STAGENET:H.MAYA:z?H.THOR_STAGENET:H.THOR}/${Z?"mayachain":"thorchain"}/constants`,L=S(Y).baseDecimal;try{let{int_64_values:{NativeTransactionFee:J}}=await I0.get(X);if(!Number.isInteger(J)||J<=0)throw new D("toolbox_cosmos_invalid_fee",{nativeFee:J.toString()});return _6.fromBigInt(BigInt(J),L)}catch{let J=Z?10000000000n:2000000n;return _6.fromBigInt(J,L)}}var y=(Y,z=!1)=>{if(z)return Y.toLowerCase();switch(Y){case"uUSK":case"USK":return A6;case"uYUM":case"YUM":return E0;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":case"NOBLE":return"uusdc";default:return Y}},e=({symbol:Y,chain:z})=>{if(z===K.Maya)return(Y.toUpperCase()!=="CACAO"?Y:`${K.Maya}.${Y}`).toUpperCase();if(z===K.THORChain)return(["RUNE","TCY","RUJI"].includes(Y.toUpperCase())?`${K.THORChain}.${Y}`:Y).toUpperCase();return y(Y,!1)},V0=()=>typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};function S6(Y){return G0(Y,{headers:V0()})}function C6(Y){return{amount:Y.amount,denom:Y.denom}}function M0(Y,z){if(!Y)return null;if("toAmino"in Y&&typeof Y.toAmino==="function")return null;let Z=Y[z];return Z?{aminoType:Z.aminoType,toAmino:Z.toAmino}:null}async function $(Y){let z=S6(Y);return{async broadcastTx(H){let Z=await a(z,H,"sync");if(Z.code!==0)throw new D("core_swap_transaction_error",{code:Z.code,message:Z.log});return{code:Z.code,rawLog:Z.log,transactionHash:Z.hash}},async getAccount(H){let Z=await P6(z,H);if(!Z)return null;return{accountNumber:Number(Z.accountNumber),address:Z.address,pubkey:Z.pubKey?{type:Z.pubKey.typeUrl,value:Z.pubKey.key}:null,sequence:Number(Z.sequence)}},async getAllBalances(H){return(await J0(z,H)).map((Q)=>({amount:Q.amount,denom:Q.denom}))}}}function $6(Y,z={}){let H=T0(Y);async function Z(Q,X,L,J,G){let U=(await Y.getAccounts()).find((E)=>E.address===Q);if(!U)throw new D("toolbox_cosmos_signer_not_defined");let V=D0({memo:J,messages:X,registry:z.registry}),T=W0({type:"tendermint/PubKeySecp256k1",value:G6.encode(U.pubkey)});if(H){let E=X.map((v)=>v0(v,z.aminoTypes)),R=N0({accountNumber:G.accountNumber,chainId:G.chainId,fee:x0(L),memo:J,msgs:E,sequence:G.sequence}),M=await Y.signAmino(Q,R),x=F6({fee:F0(M.signed.fee,L),signerInfos:[{mode:"amino",pubkey:T,sequence:BigInt(M.signed.sequence)}]}),A=G6.decode(M.signature.signature);return{authInfoBytes:x,bodyBytes:V,signatures:[A]}}let N=F6({fee:k0(L),signerInfos:[{mode:"direct",pubkey:T,sequence:BigInt(G.sequence)}]}),I=await Y.signDirect(Q,{accountNumber:G.accountNumber,authInfoBytes:N,bodyBytes:V,chainId:G.chainId}),W=G6.decode(I.signature.signature);return{authInfoBytes:N,bodyBytes:V,signatures:[W]}}return{signWithRegistry:Z}}function T0(Y){return typeof Y.signAmino==="function"}function x0(Y){return{amount:Y.amount.map((z)=>({amount:z.amount,denom:z.denom})),gas:Y.gas,...Y.granter?{granter:Y.granter}:{},...Y.payer?{payer:Y.payer}:{}}}function k0(Y){return{amount:Y.amount.map(C6),gasLimit:BigInt(Y.gas),...Y.granter?{granter:Y.granter}:{},...Y.payer?{payer:Y.payer}:{}}}function F0(Y,z){return{amount:Y.amount.map(C6),gasLimit:BigInt(Y.gas),...Y.granter??z.granter?{granter:Y.granter??z.granter}:{},...Y.payer??z.payer?{payer:Y.payer??z.payer}:{}}}function v0(Y,z){if(z&&"toAmino"in z&&typeof z.toAmino==="function")return z.toAmino(Y);let H=M0(z,Y.typeUrl);if(!H){if(Y.typeUrl==="/cosmos.bank.v1beta1.MsgSend"){let Z=Y.value;return{type:"cosmos-sdk/MsgSend",value:{amount:Z.amount,from_address:Z.fromAddress,to_address:Z.toAddress}}}throw new D("toolbox_cosmos_invalid_params",{error:`No amino converter for ${Y.typeUrl}`})}return{type:H.aminoType,value:H.toAmino(Y.value)}}function D0(Y){let{memo:z,messages:H,registry:Z}=Y;if(Z&&"encode"in Z&&typeof Z.encode==="function")return Z.encode({typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:z,messages:H}});let Q={...q0,...Z??{}},X=H.map((L)=>_0(L,Q));return O0({memo:z,messages:X})}async function p(Y,z,H={}){let Z=typeof H==="string"?{}:H,Q=S6(Y),X=$6(z,Z);async function L(J,G){let B=await P6(Q,J);if(!B)throw new D("toolbox_cosmos_account_not_found",{sender:J});let U=G?.chainId??(await Q.status()).chainId;return{accountNumber:G?.accountNumber??B.accountNumber,chainId:U,sequence:G?.sequence??B.sequence}}return{async broadcastTx(J){let G=await a(Q,J,"sync");if(G.code!==0)throw new D("core_swap_transaction_error",{code:G.code,message:G.log});return{code:G.code,rawLog:G.log,transactionHash:G.hash}},async sendTokens(J,G,B,U,V=""){let T=[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:{amount:B.map((R)=>({amount:R.amount,denom:R.denom})),fromAddress:J,toAddress:G}}],N=await L(J),I=await X.signWithRegistry(J,T,U,V,N),W=v6({authInfoBytes:I.authInfoBytes,bodyBytes:I.bodyBytes,signatures:I.signatures}),E=await a(Q,W,"sync");if(E.code!==0)throw new D("core_swap_transaction_error",{code:E.code,message:E.log});return{code:E.code,rawLog:E.log,transactionHash:E.hash}},async sign(J,G,B,U,V){let T=V??await L(J);return X.signWithRegistry(J,G,B,U,T)},async signAndBroadcast(J,G,B,U=""){let V=await L(J),T=await X.signWithRegistry(J,G,B,U,V),N=v6({authInfoBytes:T.authInfoBytes,bodyBytes:T.bodyBytes,signatures:T.signatures}),I=await a(Q,N,"sync");return{code:I.code,rawLog:I.log,transactionHash:I.hash}}}}async function y6(Y,z){let H=$6(Y,z??{});return{sign(Z,Q,X,L,J){if(!J)throw new D("toolbox_cosmos_invalid_params",{error:"createOfflineStargateClient.sign requires signerData"});return H.signWithRegistry(Z,Q,X,L,J)}}}var P0=(Y)=>{switch(Y){case K.Maya:case K.THORChain:return"/types.MsgSend";case K.Cosmos:case K.Kujira:case K.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new D("toolbox_cosmos_not_supported",{chain:Y})}};async function A0({client:Y,sender:z}){let H=await Y.getAccount(z);if(!H)throw new D("toolbox_cosmos_account_not_found",{sender:z});return H}async function f6({sender:Y,recipient:z,assetValue:H,memo:Z="",feeRate:Q,sequence:X,accountNumber:L,sweep:J}){let{chain:G,chainId:B}=H,U=L===void 0||X===void 0,V=J||U?await $(await B0(G)):void 0,T=U&&V?await A0({client:V,sender:Y}):void 0,N=q6.from({chain:G}),I=y(N.symbol),W=C(G),E=I&&Q?{amount:[{amount:Q.toString(),denom:I}],gas:W.gas}:W,R=y(H.symbol),M=H;if(J){if(!V)throw new D("toolbox_cosmos_account_not_found",{sender:Y});M=m({assetValue:H,balances:await V.getAllBalances(Y),denom:R,feeAmount:W6(E.amount,R)})}let x={amount:[{amount:M.getBaseValue("string"),denom:R}],fromAddress:Y,toAddress:z};return{accountNumber:L??Number(T?.accountNumber),chainId:B,fee:E,memo:Z,msgs:[{typeUrl:P0(G),value:x}],sequence:X??Number(T?.sequence)}}function W6(Y,z){let H=z.toLowerCase();return Y.reduce((Z,Q)=>Q.denom.toLowerCase()===H?Z+BigInt(Q.amount):Z,0n)}function m({assetValue:Y,balances:z,denom:H,feeAmount:Z=0n}){let Q=H.toLowerCase(),X=z.find(({denom:G})=>G.toLowerCase()===Q),L=BigInt(X?.amount??"0"),J=L-Z;if(J<=0n)throw new D("toolbox_sweep_amount_too_low",{asset:Y.toString(),balance:L.toString(),fee:Z.toString()});return Y.set(_6.fromBigInt(J,Y.decimal))}var S0={atom:{chain:K.Cosmos,decimals:S(K.Cosmos).baseDecimal},cacao:{chain:K.Maya,decimals:10},kuji:{chain:K.Kujira,decimals:S(K.Kujira).baseDecimal},maya:{asset:`${K.Maya}.${K.Maya}`,decimals:4},rune:{chain:K.THORChain,decimals:S(K.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:S(K.THORChain).baseDecimal},uatom:{chain:K.Cosmos,decimals:S(K.Cosmos).baseDecimal},ukuji:{chain:K.Kujira,decimals:S(K.Kujira).baseDecimal},usdc:{chain:K.Noble,decimals:S(K.Noble).baseDecimal},uusdc:{chain:K.Noble,decimals:S(K.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:S(K.THORChain).baseDecimal},[A6.toLowerCase()]:{asset:`${K.Kujira}.USK`,decimals:S(K.Kujira).baseDecimal}},w6=(Y,z)=>{let H=S0[Y.toLowerCase()];if(!H)return q6.from({asset:Y,fromBaseDecimal:8,value:z});let{chain:Z,asset:Q,decimals:X}=H,L=Z?{chain:Z}:{asset:Q};return q6.from({...L,fromBaseDecimal:X,value:z})};import{defaultEncoders as C0}from"@swapkit/cosmos-signer";import{Chain as j6}from"@swapkit/helpers";import k from"protobufjs/minimal.js";var O=k.Reader,P=k.Writer,_=k.util,q=k.roots.default||(k.roots.default={});q.common=(()=>{let Y={};return Y.Asset=(()=>{function z(H){if(H){for(let Z=Object.keys(H),Q=0;Q<Z.length;++Q)if(H[Z[Q]]!=null)this[Z[Q]]=H[Z[Q]]}}return z.prototype.chain="",z.prototype.symbol="",z.prototype.ticker="",z.prototype.synth=!1,z.create=function(Z){return new z(Z)},z.encode=function(Z,Q){if(!Q)Q=P.create();if(Z.chain!=null&&Object.hasOwnProperty.call(Z,"chain"))Q.uint32(10).string(Z.chain);if(Z.symbol!=null&&Object.hasOwnProperty.call(Z,"symbol"))Q.uint32(18).string(Z.symbol);if(Z.ticker!=null&&Object.hasOwnProperty.call(Z,"ticker"))Q.uint32(26).string(Z.ticker);if(Z.synth!=null&&Object.hasOwnProperty.call(Z,"synth"))Q.uint32(32).bool(Z.synth);return Q},z.encodeDelimited=function(Z,Q){return this.encode(Z,Q).ldelim()},z.decode=function(Z,Q){if(!(Z instanceof O))Z=O.create(Z);let X=Q===void 0?Z.len:Z.pos+Q,L=new q.common.Asset;while(Z.pos<X){let J=Z.uint32();switch(J>>>3){case 1:L.chain=Z.string();break;case 2:L.symbol=Z.string();break;case 3:L.ticker=Z.string();break;case 4:L.synth=Z.bool();break;default:Z.skipType(J&7);break}}return L},z.decodeDelimited=function(Z){if(!(Z instanceof O))Z=new O(Z);return this.decode(Z,Z.uint32())},z.verify=function(Z){if(typeof Z!=="object"||Z===null)return"object expected";if(Z.chain!=null&&Z.hasOwnProperty("chain")){if(!_.isString(Z.chain))return"chain: string expected"}if(Z.symbol!=null&&Z.hasOwnProperty("symbol")){if(!_.isString(Z.symbol))return"symbol: string expected"}if(Z.ticker!=null&&Z.hasOwnProperty("ticker")){if(!_.isString(Z.ticker))return"ticker: string expected"}if(Z.synth!=null&&Z.hasOwnProperty("synth")){if(typeof Z.synth!=="boolean")return"synth: boolean expected"}return null},z.fromObject=function(Z){if(Z instanceof q.common.Asset)return Z;let Q=new q.common.Asset;if(Z.chain!=null)Q.chain=String(Z.chain);if(Z.symbol!=null)Q.symbol=String(Z.symbol);if(Z.ticker!=null)Q.ticker=String(Z.ticker);if(Z.synth!=null)Q.synth=Boolean(Z.synth);return Q},z.toObject=function(Z,Q){if(!Q)Q={};let X={};if(Q.defaults)X.chain="",X.symbol="",X.ticker="",X.synth=!1;if(Z.chain!=null&&Z.hasOwnProperty("chain"))X.chain=Z.chain;if(Z.symbol!=null&&Z.hasOwnProperty("symbol"))X.symbol=Z.symbol;if(Z.ticker!=null&&Z.hasOwnProperty("ticker"))X.ticker=Z.ticker;if(Z.synth!=null&&Z.hasOwnProperty("synth"))X.synth=Z.synth;return X},z.prototype.toJSON=function(){return this.constructor.toObject(this,k.util.toJSONOptions)},z})(),Y.Coin=(()=>{function z(H){if(H){for(let Z=Object.keys(H),Q=0;Q<Z.length;++Q)if(H[Z[Q]]!=null)this[Z[Q]]=H[Z[Q]]}}return z.prototype.asset=null,z.prototype.amount="",z.prototype.decimals=_.Long?_.Long.fromBits(0,0,!1):0,z.create=function(Z){return new z(Z)},z.encode=function(Z,Q){if(!Q)Q=P.create();if(Z.asset!=null&&Object.hasOwnProperty.call(Z,"asset"))q.common.Asset.encode(Z.asset,Q.uint32(10).fork()).ldelim();if(Z.amount!=null&&Object.hasOwnProperty.call(Z,"amount"))Q.uint32(18).string(Z.amount);if(Z.decimals!=null&&Object.hasOwnProperty.call(Z,"decimals"))Q.uint32(24).int64(Z.decimals);return Q},z.encodeDelimited=function(Z,Q){return this.encode(Z,Q).ldelim()},z.decode=function(Z,Q){if(!(Z instanceof O))Z=O.create(Z);let X=Q===void 0?Z.len:Z.pos+Q,L=new q.common.Coin;while(Z.pos<X){let J=Z.uint32();switch(J>>>3){case 1:L.asset=q.common.Asset.decode(Z,Z.uint32());break;case 2:L.amount=Z.string();break;case 3:L.decimals=Z.int64();break;default:Z.skipType(J&7);break}}return L},z.decodeDelimited=function(Z){if(!(Z instanceof O))Z=new O(Z);return this.decode(Z,Z.uint32())},z.verify=function(Z){if(typeof Z!=="object"||Z===null)return"object expected";if(Z.asset!=null&&Z.hasOwnProperty("asset")){let Q=q.common.Asset.verify(Z.asset);if(Q)return"asset."+Q}if(Z.amount!=null&&Z.hasOwnProperty("amount")){if(!_.isString(Z.amount))return"amount: string expected"}if(Z.decimals!=null&&Z.hasOwnProperty("decimals")){if(!_.isInteger(Z.decimals)&&!(Z.decimals&&_.isInteger(Z.decimals.low)&&_.isInteger(Z.decimals.high)))return"decimals: integer|Long expected"}return null},z.fromObject=function(Z){if(Z instanceof q.common.Coin)return Z;let Q=new q.common.Coin;if(Z.asset!=null){if(typeof Z.asset!=="object")throw TypeError(".common.Coin.asset: object expected");Q.asset=q.common.Asset.fromObject(Z.asset)}if(Z.amount!=null)Q.amount=String(Z.amount);if(Z.decimals!=null){if(_.Long)(Q.decimals=_.Long.fromValue(Z.decimals)).unsigned=!1;else if(typeof Z.decimals==="string")Q.decimals=Number.parseInt(Z.decimals,10);else if(typeof Z.decimals==="number")Q.decimals=Z.decimals;else if(typeof Z.decimals==="object")Q.decimals=new _.LongBits(Z.decimals.low>>>0,Z.decimals.high>>>0).toNumber()}return Q},z.toObject=function(Z,Q){if(!Q)Q={};let X={};if(Q.defaults)if(X.asset=null,X.amount="",_.Long){let L=new _.Long(0,0,!1);X.decimals=Q.longs===String?L.toString():Q.longs===Number?L.toNumber():L}else X.decimals=Q.longs===String?"0":0;if(Z.asset!=null&&Z.hasOwnProperty("asset"))X.asset=q.common.Asset.toObject(Z.asset,Q);if(Z.amount!=null&&Z.hasOwnProperty("amount"))X.amount=Z.amount;if(Z.decimals!=null&&Z.hasOwnProperty("decimals"))if(typeof Z.decimals==="number")X.decimals=Q.longs===String?String(Z.decimals):Z.decimals;else X.decimals=Q.longs===String?_.Long.prototype.toString.call(Z.decimals):Q.longs===Number?new _.LongBits(Z.decimals.low>>>0,Z.decimals.high>>>0).toNumber():Z.decimals;return X},z.prototype.toJSON=function(){return this.constructor.toObject(this,k.util.toJSONOptions)},z})(),Y.PubKeySet=(()=>{function z(H){if(H){for(let Z=Object.keys(H),Q=0;Q<Z.length;++Q)if(H[Z[Q]]!=null)this[Z[Q]]=H[Z[Q]]}}return z.prototype.secp256k1="",z.prototype.ed25519="",z.create=function(Z){return new z(Z)},z.encode=function(Z,Q){if(!Q)Q=P.create();if(Z.secp256k1!=null&&Object.hasOwnProperty.call(Z,"secp256k1"))Q.uint32(10).string(Z.secp256k1);if(Z.ed25519!=null&&Object.hasOwnProperty.call(Z,"ed25519"))Q.uint32(18).string(Z.ed25519);return Q},z.encodeDelimited=function(Z,Q){return this.encode(Z,Q).ldelim()},z.decode=function(Z,Q){if(!(Z instanceof O))Z=O.create(Z);let X=Q===void 0?Z.len:Z.pos+Q,L=new q.common.PubKeySet;while(Z.pos<X){let J=Z.uint32();switch(J>>>3){case 1:L.secp256k1=Z.string();break;case 2:L.ed25519=Z.string();break;default:Z.skipType(J&7);break}}return L},z.decodeDelimited=function(Z){if(!(Z instanceof O))Z=new O(Z);return this.decode(Z,Z.uint32())},z.verify=function(Z){if(typeof Z!=="object"||Z===null)return"object expected";if(Z.secp256k1!=null&&Z.hasOwnProperty("secp256k1")){if(!_.isString(Z.secp256k1))return"secp256k1: string expected"}if(Z.ed25519!=null&&Z.hasOwnProperty("ed25519")){if(!_.isString(Z.ed25519))return"ed25519: string expected"}return null},z.fromObject=function(Z){if(Z instanceof q.common.PubKeySet)return Z;let Q=new q.common.PubKeySet;if(Z.secp256k1!=null)Q.secp256k1=String(Z.secp256k1);if(Z.ed25519!=null)Q.ed25519=String(Z.ed25519);return Q},z.toObject=function(Z,Q){if(!Q)Q={};let X={};if(Q.defaults)X.secp256k1="",X.ed25519="";if(Z.secp256k1!=null&&Z.hasOwnProperty("secp256k1"))X.secp256k1=Z.secp256k1;if(Z.ed25519!=null&&Z.hasOwnProperty("ed25519"))X.ed25519=Z.ed25519;return X},z.prototype.toJSON=function(){return this.constructor.toObject(this,k.util.toJSONOptions)},z})(),Y.Tx=(()=>{function z(H){if(this.coins=[],this.gas=[],H){for(let Z=Object.keys(H),Q=0;Q<Z.length;++Q)if(H[Z[Q]]!=null)this[Z[Q]]=H[Z[Q]]}}return z.prototype.id="",z.prototype.chain="",z.prototype.fromAddress="",z.prototype.toAddress="",z.prototype.coins=_.emptyArray,z.prototype.gas=_.emptyArray,z.prototype.memo="",z.create=function(Z){return new z(Z)},z.encode=function(Z,Q){if(!Q)Q=P.create();if(Z.id!=null&&Object.hasOwnProperty.call(Z,"id"))Q.uint32(10).string(Z.id);if(Z.chain!=null&&Object.hasOwnProperty.call(Z,"chain"))Q.uint32(18).string(Z.chain);if(Z.fromAddress!=null&&Object.hasOwnProperty.call(Z,"fromAddress"))Q.uint32(26).string(Z.fromAddress);if(Z.toAddress!=null&&Object.hasOwnProperty.call(Z,"toAddress"))Q.uint32(34).string(Z.toAddress);if(Z.coins?.length)for(let X=0;X<Z.coins.length;++X)q.common.Coin.encode(Z.coins[X],Q.uint32(42).fork()).ldelim();if(Z.gas?.length)for(let X=0;X<Z.gas.length;++X)q.common.Coin.encode(Z.gas[X],Q.uint32(50).fork()).ldelim();if(Z.memo!=null&&Object.hasOwnProperty.call(Z,"memo"))Q.uint32(58).string(Z.memo);return Q},z.encodeDelimited=function(Z,Q){return this.encode(Z,Q).ldelim()},z.decode=function(Z,Q){if(!(Z instanceof O))Z=O.create(Z);let X=Q===void 0?Z.len:Z.pos+Q,L=new q.common.Tx;while(Z.pos<X){let J=Z.uint32();switch(J>>>3){case 1:L.id=Z.string();break;case 2:L.chain=Z.string();break;case 3:L.fromAddress=Z.string();break;case 4:L.toAddress=Z.string();break;case 5:if(!L.coins?.length)L.coins=[];L.coins.push(q.common.Coin.decode(Z,Z.uint32()));break;case 6:if(!L.gas?.length)L.gas=[];L.gas.push(q.common.Coin.decode(Z,Z.uint32()));break;case 7:L.memo=Z.string();break;default:Z.skipType(J&7);break}}return L},z.decodeDelimited=function(Z){if(!(Z instanceof O))Z=new O(Z);return this.decode(Z,Z.uint32())},z.verify=function(Z){if(typeof Z!=="object"||Z===null)return"object expected";if(Z.id!=null&&Z.hasOwnProperty("id")){if(!_.isString(Z.id))return"id: string expected"}if(Z.chain!=null&&Z.hasOwnProperty("chain")){if(!_.isString(Z.chain))return"chain: string expected"}if(Z.fromAddress!=null&&Z.hasOwnProperty("fromAddress")){if(!_.isString(Z.fromAddress))return"fromAddress: string expected"}if(Z.toAddress!=null&&Z.hasOwnProperty("toAddress")){if(!_.isString(Z.toAddress))return"toAddress: string expected"}if(Z.coins!=null&&Z.hasOwnProperty("coins")){if(!Array.isArray(Z.coins))return"coins: array expected";for(let Q=0;Q<Z.coins.length;++Q){let X=q.common.Coin.verify(Z.coins[Q]);if(X)return"coins."+X}}if(Z.gas!=null&&Z.hasOwnProperty("gas")){if(!Array.isArray(Z.gas))return"gas: array expected";for(let Q=0;Q<Z.gas.length;++Q){let X=q.common.Coin.verify(Z.gas[Q]);if(X)return"gas."+X}}if(Z.memo!=null&&Z.hasOwnProperty("memo")){if(!_.isString(Z.memo))return"memo: string expected"}return null},z.fromObject=function(Z){if(Z instanceof q.common.Tx)return Z;let Q=new q.common.Tx;if(Z.id!=null)Q.id=String(Z.id);if(Z.chain!=null)Q.chain=String(Z.chain);if(Z.fromAddress!=null)Q.fromAddress=String(Z.fromAddress);if(Z.toAddress!=null)Q.toAddress=String(Z.toAddress);if(Z.coins){if(!Array.isArray(Z.coins))throw TypeError(".common.Tx.coins: array expected");Q.coins=[];for(let X=0;X<Z.coins.length;++X){if(typeof Z.coins[X]!=="object")throw TypeError(".common.Tx.coins: object expected");Q.coins[X]=q.common.Coin.fromObject(Z.coins[X])}}if(Z.gas){if(!Array.isArray(Z.gas))throw TypeError(".common.Tx.gas: array expected");Q.gas=[];for(let X=0;X<Z.gas.length;++X){if(typeof Z.gas[X]!=="object")throw TypeError(".common.Tx.gas: object expected");Q.gas[X]=q.common.Coin.fromObject(Z.gas[X])}}if(Z.memo!=null)Q.memo=String(Z.memo);return Q},z.toObject=function(Z,Q){if(!Q)Q={};let X={};if(Q.arrays||Q.defaults)X.coins=[],X.gas=[];if(Q.defaults)X.id="",X.chain="",X.fromAddress="",X.toAddress="",X.memo="";if(Z.id!=null&&Z.hasOwnProperty("id"))X.id=Z.id;if(Z.chain!=null&&Z.hasOwnProperty("chain"))X.chain=Z.chain;if(Z.fromAddress!=null&&Z.hasOwnProperty("fromAddress"))X.fromAddress=Z.fromAddress;if(Z.toAddress!=null&&Z.hasOwnProperty("toAddress"))X.toAddress=Z.toAddress;if(Z.coins?.length){X.coins=[];for(let L=0;L<Z.coins.length;++L)X.coins[L]=q.common.Coin.toObject(Z.coins[L],Q)}if(Z.gas?.length){X.gas=[];for(let L=0;L<Z.gas.length;++L)X.gas[L]=q.common.Coin.toObject(Z.gas[L],Q)}if(Z.memo!=null&&Z.hasOwnProperty("memo"))X.memo=Z.memo;return X},z.prototype.toJSON=function(){return this.constructor.toObject(this,k.util.toJSONOptions)},z})(),Y.Fee=(()=>{function z(H){if(this.coins=[],H){for(let Z=Object.keys(H),Q=0;Q<Z.length;++Q)if(H[Z[Q]]!=null)this[Z[Q]]=H[Z[Q]]}}return z.prototype.coins=_.emptyArray,z.prototype.poolDeduct="",z.create=function(Z){return new z(Z)},z.encode=function(Z,Q){if(!Q)Q=P.create();if(Z.coins?.length)for(let X=0;X<Z.coins.length;++X)q.common.Coin.encode(Z.coins[X],Q.uint32(10).fork()).ldelim();if(Z.poolDeduct!=null&&Object.hasOwnProperty.call(Z,"poolDeduct"))Q.uint32(18).string(Z.poolDeduct);return Q},z.encodeDelimited=function(Z,Q){return this.encode(Z,Q).ldelim()},z.decode=function(Z,Q){if(!(Z instanceof O))Z=O.create(Z);let X=Q===void 0?Z.len:Z.pos+Q,L=new q.common.Fee;while(Z.pos<X){let J=Z.uint32();switch(J>>>3){case 1:if(!L.coins?.length)L.coins=[];L.coins.push(q.common.Coin.decode(Z,Z.uint32()));break;case 2:L.poolDeduct=Z.string();break;default:Z.skipType(J&7);break}}return L},z.decodeDelimited=function(Z){if(!(Z instanceof O))Z=new O(Z);return this.decode(Z,Z.uint32())},z.verify=function(Z){if(typeof Z!=="object"||Z===null)return"object expected";if(Z.coins!=null&&Z.hasOwnProperty("coins")){if(!Array.isArray(Z.coins))return"coins: array expected";for(let Q=0;Q<Z.coins.length;++Q){let X=q.common.Coin.verify(Z.coins[Q]);if(X)return"coins."+X}}if(Z.poolDeduct!=null&&Z.hasOwnProperty("poolDeduct")){if(!_.isString(Z.poolDeduct))return"poolDeduct: string expected"}return null},z.fromObject=function(Z){if(Z instanceof q.common.Fee)return Z;let Q=new q.common.Fee;if(Z.coins){if(!Array.isArray(Z.coins))throw TypeError(".common.Fee.coins: array expected");Q.coins=[];for(let X=0;X<Z.coins.length;++X){if(typeof Z.coins[X]!=="object")throw TypeError(".common.Fee.coins: object expected");Q.coins[X]=q.common.Coin.fromObject(Z.coins[X])}}if(Z.poolDeduct!=null)Q.poolDeduct=String(Z.poolDeduct);return Q},z.toObject=function(Z,Q){if(!Q)Q={};let X={};if(Q.arrays||Q.defaults)X.coins=[];if(Q.defaults)X.poolDeduct="";if(Z.coins?.length){X.coins=[];for(let L=0;L<Z.coins.length;++L)X.coins[L]=q.common.Coin.toObject(Z.coins[L],Q)}if(Z.poolDeduct!=null&&Z.hasOwnProperty("poolDeduct"))X.poolDeduct=Z.poolDeduct;return X},z.prototype.toJSON=function(){return this.constructor.toObject(this,k.util.toJSONOptions)},z})(),Y.ProtoUint=(()=>{function z(H){if(H){for(let Z=Object.keys(H),Q=0;Q<Z.length;++Q)if(H[Z[Q]]!=null)this[Z[Q]]=H[Z[Q]]}}return z.prototype.value="",z.create=function(Z){return new z(Z)},z.encode=function(Z,Q){if(!Q)Q=P.create();if(Z.value!=null&&Object.hasOwnProperty.call(Z,"value"))Q.uint32(10).string(Z.value);return Q},z.encodeDelimited=function(Z,Q){return this.encode(Z,Q).ldelim()},z.decode=function(Z,Q){if(!(Z instanceof O))Z=O.create(Z);let X=Q===void 0?Z.len:Z.pos+Q,L=new q.common.ProtoUint;while(Z.pos<X){let J=Z.uint32();switch(J>>>3){case 1:L.value=Z.string();break;default:Z.skipType(J&7);break}}return L},z.decodeDelimited=function(Z){if(!(Z instanceof O))Z=new O(Z);return this.decode(Z,Z.uint32())},z.verify=function(Z){if(typeof Z!=="object"||Z===null)return"object expected";if(Z.value!=null&&Z.hasOwnProperty("value")){if(!_.isString(Z.value))return"value: string expected"}return null},z.fromObject=function(Z){if(Z instanceof q.common.ProtoUint)return Z;let Q=new q.common.ProtoUint;if(Z.value!=null)Q.value=String(Z.value);return Q},z.toObject=function(Z,Q){if(!Q)Q={};let X={};if(Q.defaults)X.value="";if(Z.value!=null&&Z.hasOwnProperty("value"))X.value=Z.value;return X},z.prototype.toJSON=function(){return this.constructor.toObject(this,k.util.toJSONOptions)},z})(),Y})();q.types=(()=>{let Y={};return Y.MsgDeposit=(()=>{function z(H){if(this.coins=[],H){for(let Z=Object.keys(H),Q=0;Q<Z.length;++Q)if(H[Z[Q]]!=null)this[Z[Q]]=H[Z[Q]]}}return z.prototype.coins=_.emptyArray,z.prototype.memo="",z.prototype.signer=_.newBuffer([]),z.create=function(Z){return new z(Z)},z.encode=function(Z,Q){if(!Q)Q=P.create();if(Z.coins?.length)for(let X=0;X<Z.coins.length;++X)q.common.Coin.encode(Z.coins[X],Q.uint32(10).fork()).ldelim();if(Z.memo!=null&&Object.hasOwnProperty.call(Z,"memo"))Q.uint32(18).string(Z.memo);if(Z.signer!=null&&Object.hasOwnProperty.call(Z,"signer"))Q.uint32(26).bytes(Z.signer);return Q},z.encodeDelimited=function(Z,Q){return this.encode(Z,Q).ldelim()},z.decode=function(Z,Q){if(!(Z instanceof O))Z=O.create(Z);let X=Q===void 0?Z.len:Z.pos+Q,L=new q.types.MsgDeposit;while(Z.pos<X){let J=Z.uint32();switch(J>>>3){case 1:if(!L.coins?.length)L.coins=[];L.coins.push(q.common.Coin.decode(Z,Z.uint32()));break;case 2:L.memo=Z.string();break;case 3:L.signer=Z.bytes();break;default:Z.skipType(J&7);break}}return L},z.decodeDelimited=function(Z){if(!(Z instanceof O))Z=new O(Z);return this.decode(Z,Z.uint32())},z.verify=function(Z){if(typeof Z!=="object"||Z===null)return"object expected";if(Z.coins!=null&&Z.hasOwnProperty("coins")){if(!Array.isArray(Z.coins))return"coins: array expected";for(let Q=0;Q<Z.coins.length;++Q){let X=q.common.Coin.verify(Z.coins[Q]);if(X)return"coins."+X}}if(Z.memo!=null&&Z.hasOwnProperty("memo")){if(!_.isString(Z.memo))return"memo: string expected"}if(Z.signer!=null&&Z.hasOwnProperty("signer")){if(!(Z.signer&&typeof Z.signer.length==="number"||_.isString(Z.signer)))return"signer: buffer expected"}return null},z.fromObject=function(Z){if(Z instanceof q.types.MsgDeposit)return Z;let Q=new q.types.MsgDeposit;if(Z.coins){if(!Array.isArray(Z.coins))throw TypeError(".types.MsgDeposit.coins: array expected");Q.coins=[];for(let X=0;X<Z.coins.length;++X){if(typeof Z.coins[X]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");Q.coins[X]=q.common.Coin.fromObject(Z.coins[X])}}if(Z.memo!=null)Q.memo=String(Z.memo);if(Z.signer!=null){if(typeof Z.signer==="string")_.base64.decode(Z.signer,Q.signer=_.newBuffer(_.base64.length(Z.signer)),0);else if(Z.signer.length)Q.signer=Z.signer}return Q},z.toObject=function(Z,Q){if(!Q)Q={};let X={};if(Q.arrays||Q.defaults)X.coins=[];if(Q.defaults){if(X.memo="",Q.bytes===String)X.signer="";else if(X.signer=[],Q.bytes!==Array)X.signer=_.newBuffer(X.signer)}if(Z.coins?.length){X.coins=[];for(let L=0;L<Z.coins.length;++L)X.coins[L]=q.common.Coin.toObject(Z.coins[L],Q)}if(Z.memo!=null&&Z.hasOwnProperty("memo"))X.memo=Z.memo;if(Z.signer!=null&&Z.hasOwnProperty("signer"))X.signer=Q.bytes===String?_.base64.encode(Z.signer,0,Z.signer.length):Q.bytes===Array?Array.prototype.slice.call(Z.signer):Z.signer;return X},z.prototype.toJSON=function(){return this.constructor.toObject(this,k.util.toJSONOptions)},z})(),Y.MsgSend=(()=>{function z(H){if(this.amount=[],H){for(let Z=Object.keys(H),Q=0;Q<Z.length;++Q)if(H[Z[Q]]!=null)this[Z[Q]]=H[Z[Q]]}}return z.prototype.fromAddress=_.newBuffer([]),z.prototype.toAddress=_.newBuffer([]),z.prototype.amount=_.emptyArray,z.create=function(Z){return new z(Z)},z.encode=function(Z,Q){if(!Q)Q=P.create();if(Z.fromAddress!=null&&Object.hasOwnProperty.call(Z,"fromAddress"))Q.uint32(10).bytes(Z.fromAddress);if(Z.toAddress!=null&&Object.hasOwnProperty.call(Z,"toAddress"))Q.uint32(18).bytes(Z.toAddress);if(Z.amount?.length)for(let X=0;X<Z.amount.length;++X)q.cosmos.base.v1beta1.Coin.encode(Z.amount[X],Q.uint32(26).fork()).ldelim();return Q},z.encodeDelimited=function(Z,Q){return this.encode(Z,Q).ldelim()},z.decode=function(Z,Q){if(!(Z instanceof O))Z=O.create(Z);let X=Q===void 0?Z.len:Z.pos+Q,L=new q.types.MsgSend;while(Z.pos<X){let J=Z.uint32();switch(J>>>3){case 1:L.fromAddress=Z.bytes();break;case 2:L.toAddress=Z.bytes();break;case 3:if(!L.amount?.length)L.amount=[];L.amount.push(q.cosmos.base.v1beta1.Coin.decode(Z,Z.uint32()));break;default:Z.skipType(J&7);break}}return L},z.decodeDelimited=function(Z){if(!(Z instanceof O))Z=new O(Z);return this.decode(Z,Z.uint32())},z.verify=function(Z){if(typeof Z!=="object"||Z===null)return"object expected";if(Z.fromAddress!=null&&Z.hasOwnProperty("fromAddress")){if(!(Z.fromAddress&&typeof Z.fromAddress.length==="number"||_.isString(Z.fromAddress)))return"fromAddress: buffer expected"}if(Z.toAddress!=null&&Z.hasOwnProperty("toAddress")){if(!(Z.toAddress&&typeof Z.toAddress.length==="number"||_.isString(Z.toAddress)))return"toAddress: buffer expected"}if(Z.amount!=null&&Z.hasOwnProperty("amount")){if(!Array.isArray(Z.amount))return"amount: array expected";for(let Q=0;Q<Z.amount.length;++Q){let X=q.cosmos.base.v1beta1.Coin.verify(Z.amount[Q]);if(X)return"amount."+X}}return null},z.fromObject=function(Z){if(Z instanceof q.types.MsgSend)return Z;let Q=new q.types.MsgSend;if(Z.fromAddress!=null){if(typeof Z.fromAddress==="string")_.base64.decode(Z.fromAddress,Q.fromAddress=_.newBuffer(_.base64.length(Z.fromAddress)),0);else if(Z.fromAddress.length)Q.fromAddress=Z.fromAddress}if(Z.toAddress!=null){if(typeof Z.toAddress==="string")_.base64.decode(Z.toAddress,Q.toAddress=_.newBuffer(_.base64.length(Z.toAddress)),0);else if(Z.toAddress.length)Q.toAddress=Z.toAddress}if(Z.amount){if(!Array.isArray(Z.amount))throw TypeError(".types.MsgSend.amount: array expected");Q.amount=[];for(let X=0;X<Z.amount.length;++X){if(typeof Z.amount[X]!=="object")throw TypeError(".types.MsgSend.amount: object expected");Q.amount[X]=q.cosmos.base.v1beta1.Coin.fromObject(Z.amount[X])}}return Q},z.toObject=function(Z,Q){if(!Q)Q={};let X={};if(Q.arrays||Q.defaults)X.amount=[];if(Q.defaults){if(Q.bytes===String)X.fromAddress="";else if(X.fromAddress=[],Q.bytes!==Array)X.fromAddress=_.newBuffer(X.fromAddress);if(Q.bytes===String)X.toAddress="";else if(X.toAddress=[],Q.bytes!==Array)X.toAddress=_.newBuffer(X.toAddress)}if(Z.fromAddress!=null&&Z.hasOwnProperty("fromAddress"))X.fromAddress=Q.bytes===String?_.base64.encode(Z.fromAddress,0,Z.fromAddress.length):Q.bytes===Array?Array.prototype.slice.call(Z.fromAddress):Z.fromAddress;if(Z.toAddress!=null&&Z.hasOwnProperty("toAddress"))X.toAddress=Q.bytes===String?_.base64.encode(Z.toAddress,0,Z.toAddress.length):Q.bytes===Array?Array.prototype.slice.call(Z.toAddress):Z.toAddress;if(Z.amount?.length){X.amount=[];for(let L=0;L<Z.amount.length;++L)X.amount[L]=q.cosmos.base.v1beta1.Coin.toObject(Z.amount[L],Q)}return X},z.prototype.toJSON=function(){return this.constructor.toObject(this,k.util.toJSONOptions)},z})(),Y})();q.cosmos=(()=>{let Y={};return Y.base=(()=>{let z={};return z.v1beta1=(()=>{let H={};return H.Coin=(()=>{function Z(Q){if(Q){for(let X=Object.keys(Q),L=0;L<X.length;++L)if(Q[X[L]]!=null)this[X[L]]=Q[X[L]]}}return Z.prototype.denom="",Z.prototype.amount="",Z.create=function(X){return new Z(X)},Z.encode=function(X,L){if(!L)L=P.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))L.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))L.uint32(18).string(X.amount);return L},Z.encodeDelimited=function(X,L){return this.encode(X,L).ldelim()},Z.decode=function(X,L){if(!(X instanceof O))X=O.create(X);let J=L===void 0?X.len:X.pos+L,G=new q.cosmos.base.v1beta1.Coin;while(X.pos<J){let B=X.uint32();switch(B>>>3){case 1:G.denom=X.string();break;case 2:G.amount=X.string();break;default:X.skipType(B&7);break}}return G},Z.decodeDelimited=function(X){if(!(X instanceof O))X=new O(X);return this.decode(X,X.uint32())},Z.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!_.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!_.isString(X.amount))return"amount: string expected"}return null},Z.fromObject=function(X){if(X instanceof q.cosmos.base.v1beta1.Coin)return X;let L=new q.cosmos.base.v1beta1.Coin;if(X.denom!=null)L.denom=String(X.denom);if(X.amount!=null)L.amount=String(X.amount);return L},Z.toObject=function(X,L){if(!L)L={};let J={};if(L.defaults)J.denom="",J.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))J.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))J.amount=X.amount;return J},Z.prototype.toJSON=function(){return this.constructor.toObject(this,k.util.toJSONOptions)},Z})(),H.DecCoin=(()=>{function Z(Q){if(Q){for(let X=Object.keys(Q),L=0;L<X.length;++L)if(Q[X[L]]!=null)this[X[L]]=Q[X[L]]}}return Z.prototype.denom="",Z.prototype.amount="",Z.create=function(X){return new Z(X)},Z.encode=function(X,L){if(!L)L=P.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))L.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))L.uint32(18).string(X.amount);return L},Z.encodeDelimited=function(X,L){return this.encode(X,L).ldelim()},Z.decode=function(X,L){if(!(X instanceof O))X=O.create(X);let J=L===void 0?X.len:X.pos+L,G=new q.cosmos.base.v1beta1.DecCoin;while(X.pos<J){let B=X.uint32();switch(B>>>3){case 1:G.denom=X.string();break;case 2:G.amount=X.string();break;default:X.skipType(B&7);break}}return G},Z.decodeDelimited=function(X){if(!(X instanceof O))X=new O(X);return this.decode(X,X.uint32())},Z.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!_.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!_.isString(X.amount))return"amount: string expected"}return null},Z.fromObject=function(X){if(X instanceof q.cosmos.base.v1beta1.DecCoin)return X;let L=new q.cosmos.base.v1beta1.DecCoin;if(X.denom!=null)L.denom=String(X.denom);if(X.amount!=null)L.amount=String(X.amount);return L},Z.toObject=function(X,L){if(!L)L={};let J={};if(L.defaults)J.denom="",J.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))J.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))J.amount=X.amount;return J},Z.prototype.toJSON=function(){return this.constructor.toObject(this,k.util.toJSONOptions)},Z})(),H.IntProto=(()=>{function Z(Q){if(Q){for(let X=Object.keys(Q),L=0;L<X.length;++L)if(Q[X[L]]!=null)this[X[L]]=Q[X[L]]}}return Z.prototype.int="",Z.create=function(X){return new Z(X)},Z.encode=function(X,L){if(!L)L=P.create();if(X.int!=null&&Object.hasOwnProperty.call(X,"int"))L.uint32(10).string(X.int);return L},Z.encodeDelimited=function(X,L){return this.encode(X,L).ldelim()},Z.decode=function(X,L){if(!(X instanceof O))X=O.create(X);let J=L===void 0?X.len:X.pos+L,G=new q.cosmos.base.v1beta1.IntProto;while(X.pos<J){let B=X.uint32();switch(B>>>3){case 1:G.int=X.string();break;default:X.skipType(B&7);break}}return G},Z.decodeDelimited=function(X){if(!(X instanceof O))X=new O(X);return this.decode(X,X.uint32())},Z.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.int!=null&&X.hasOwnProperty("int")){if(!_.isString(X.int))return"int: string expected"}return null},Z.fromObject=function(X){if(X instanceof q.cosmos.base.v1beta1.IntProto)return X;let L=new q.cosmos.base.v1beta1.IntProto;if(X.int!=null)L.int=String(X.int);return L},Z.toObject=function(X,L){if(!L)L={};let J={};if(L.defaults)J.int="";if(X.int!=null&&X.hasOwnProperty("int"))J.int=X.int;return J},Z.prototype.toJSON=function(){return this.constructor.toObject(this,k.util.toJSONOptions)},Z})(),H.DecProto=(()=>{function Z(Q){if(Q){for(let X=Object.keys(Q),L=0;L<X.length;++L)if(Q[X[L]]!=null)this[X[L]]=Q[X[L]]}}return Z.prototype.dec="",Z.create=function(X){return new Z(X)},Z.encode=function(X,L){if(!L)L=P.create();if(X.dec!=null&&Object.hasOwnProperty.call(X,"dec"))L.uint32(10).string(X.dec);return L},Z.encodeDelimited=function(X,L){return this.encode(X,L).ldelim()},Z.decode=function(X,L){if(!(X instanceof O))X=O.create(X);let J=L===void 0?X.len:X.pos+L,G=new q.cosmos.base.v1beta1.DecProto;while(X.pos<J){let B=X.uint32();switch(B>>>3){case 1:G.dec=X.string();break;default:X.skipType(B&7);break}}return G},Z.decodeDelimited=function(X){if(!(X instanceof O))X=new O(X);return this.decode(X,X.uint32())},Z.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.dec!=null&&X.hasOwnProperty("dec")){if(!_.isString(X.dec))return"dec: string expected"}return null},Z.fromObject=function(X){if(X instanceof q.cosmos.base.v1beta1.DecProto)return X;let L=new q.cosmos.base.v1beta1.DecProto;if(X.dec!=null)L.dec=String(X.dec);return L},Z.toObject=function(X,L){if(!L)L={};let J={};if(L.defaults)J.dec="";if(X.dec!=null&&X.hasOwnProperty("dec"))J.dec=X.dec;return J},Z.prototype.toJSON=function(){return this.constructor.toObject(this,k.util.toJSONOptions)},Z})(),H})(),z})(),Y})();function O6(Y){if(Y instanceof Uint8Array)return Y;if(typeof Y==="string")return Uint8Array.from(globalThis.atob(Y),(H)=>H.charCodeAt(0));throw TypeError("address must be Uint8Array or base64 string")}var $0=(Y)=>{let z=Y;return q.types.MsgSend.encode({amount:z.amount,fromAddress:O6(z.fromAddress),toAddress:O6(z.toAddress)}).finish()},y0=(Y)=>{let z=Y;return q.types.MsgDeposit.encode({coins:z.coins.map((H)=>({amount:H.amount,asset:H.asset})),memo:z.memo,signer:O6(z.signer)}).finish()};function d(){return{...C0,"/types.MsgDeposit":y0,"/types.MsgSend":$0}}function j(Y,z=Y===j6.THORChain?"thor":"maya"){let H=Y===j6.THORChain?"thorchain":"mayachain",Z={"/types.MsgDeposit":{aminoType:`${H}/MsgDeposit`,fromAmino:({signer:Q,...X})=>({...X,signer:t(Q)}),toAmino:({signer:Q,...X})=>({...X,signer:typeof Q==="string"?r(Q,z):Q})},"/types.MsgSend":{aminoType:`${H}/MsgSend`,fromAmino:({from_address:Q,to_address:X,...L})=>({...L,fromAddress:t(Q),toAddress:t(X)}),toAmino:({fromAddress:Q,toAddress:X,...L})=>({...L,from_address:typeof Q==="string"?r(Q,z):Q,to_address:typeof X==="string"?r(X,z):X})}};return Object.assign(Z,{fromAmino(Q){let X=Object.entries(Z).find(([,G])=>G.aminoType===Q.type);if(!X)throw TypeError(`No converter for amino type ${Q.type}`);let[L,J]=X;return{typeUrl:L,value:J.fromAmino(Q.value)}},toAmino(Q){let X=Z[Q.typeUrl];if(!X)throw TypeError(`No converter for type URL ${Q.typeUrl}`);return{type:X.aminoType,value:X.toAmino(Q.value)}}})}var g8=C(Z6.THORChain).gas,i8=C(Z6.Maya).gas,u6=({sender:Y,recipient:z,assetValue:H})=>{return{type:`${H.chain===Z6.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:H.getBaseValue("string"),denom:y(H.symbol,!0)}],from_address:Y,to_address:z}}},l6=({sender:Y,assetValue:z,memo:H=""})=>{return{type:`${z.chain===Z6.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:z.getBaseValue("string"),asset:e(z)}],memo:H,signer:Y}}},I6=({sender:Y,recipient:z,assetValue:H,memo:Z})=>{return!z?l6({assetValue:H,memo:Z,sender:Y}):u6({assetValue:H,recipient:z,sender:Y})};function b6(Y,z){for(let H of["/types.MsgDeposit","/types.MsgSend"]){let Z=Y[H];if(Z.aminoType===z)return{fromAmino:Z.fromAmino,typeUrl:H}}return null}var h=(Y,z)=>{let H=j(z),Z=b6(H,Y.type);if(!Z)throw new B6("toolbox_cosmos_invalid_params",{error:`No converter for amino type ${Y.type}`});return{typeUrl:Z.typeUrl,value:Z.fromAmino(Y.value)}},p6=async({rpcUrl:Y,sender:z})=>{let Z=await(await $(Y)).getAccount(z);if(!Z)throw new B6("toolbox_cosmos_account_not_found",{sender:z});return Z};async function d6(Y){let{assetValue:z,recipient:H,memo:Z,sender:Q,asSignable:X,asAminoMessage:L,sequence:J,accountNumber:G}=Y,B=Y.sweep?await E6({assetValue:z,sender:Q}):z;if(H)return h0({accountNumber:G,asAminoMessage:L,asSignable:X,assetValue:B,memo:Z,recipient:H,sender:Q,sequence:J});return u0({accountNumber:G,asAminoMessage:L,asSignable:X,assetValue:B,memo:Z,sender:Q,sequence:J})}async function E6({assetValue:Y,sender:z}){let H=Y.chain,Z=await N6(H),X=await(await $(Z)).getAllBalances(z),L=Y.isGasAsset?(await s(H)).getBaseValue("bigint"):0n;return m({assetValue:Y,balances:X,denom:y(Y.symbol,!0),feeAmount:L})}async function h0({sender:Y,recipient:z,assetValue:H,memo:Z="",asSignable:Q=!0,asAminoMessage:X=!1,sequence:L,accountNumber:J}){let G=H.chain,B=J!==void 0&&L!==void 0?void 0:await p6({rpcUrl:await N6(G),sender:Y}),{chainId:U}=h6(G),V=u6({assetValue:H,recipient:z,sender:Y}),T=Q?h(X?V:u(V),G):V;return{accountNumber:J??Number(B?.accountNumber),chainId:U,fee:C(G),memo:Z,msgs:[T],sequence:L??Number(B?.sequence)}}async function u0({sender:Y,assetValue:z,memo:H="",asSignable:Z=!0,asAminoMessage:Q=!1,sequence:X,accountNumber:L}){let J=z.chain,G=L!==void 0&&X!==void 0?void 0:await p6({rpcUrl:await N6(J),sender:Y}),{chainId:B}=h6(J),U=l6({assetValue:z,memo:H,sender:Y}),V=Z?h(Q?U:u(U),J):U;return{accountNumber:L??Number(G?.accountNumber),chainId:B,fee:C(J),memo:H,msgs:[V],sequence:X??Number(G?.sequence)}}function u(Y){if(Y.type==="thorchain/MsgSend"||Y.type==="mayachain/MsgSend")return Y;return{...Y,value:{...Y.value,coins:Y.value.coins.map((z)=>{let H=j0.from({asset:z.asset}),Z=(H.isSynthetic?H.symbol.split("/")?.[1]:H.symbol)?.toUpperCase(),Q=(H.isSynthetic?H.symbol.split("/")?.[0]:H.chain)?.toUpperCase();return{...z,asset:{chain:Q,symbol:Z,synth:H.isSynthetic,ticker:H.ticker}}})}}}function Q6({chain:Y,memo:z,msgs:H}){let Z=d(),Q=j(Y),L=H.map((J)=>{let G=b6(Q,J.type);if(!G)throw new B6("toolbox_cosmos_invalid_params",{error:`No converter for amino type ${J.type}`});return{typeUrl:G.typeUrl,value:G.fromAmino(J.value)}}).map((J)=>f0(J,Z));return w0({memo:z,messages:L})}import{Chain as g,SwapKitError as k8}from"@swapkit/helpers";import{secp256k1 as l0}from"@noble/curves/secp256k1.js";import{base64 as V6,bech32 as U6}from"@scure/base";import{HDKey as b0}from"@scure/bip32";import{verifySignature as p0,createWalletFromMnemonic as d0,createWalletFromPrivateKey as c0,mnemonicToSeed as m0,signDirect as n0}from"@swapkit/cosmos-signer";import{AssetValue as M6,applyFeeMultiplier as c6,Chain as F,CosmosChainPrefixes as t6,DerivationPath as g0,derivationPathToString as m6,FeeOption as T6,getChainConfig as i0,getRPCUrl as n,NetworkDerivationPath as o0,SwapKitError as f,SwapKitNumber as K6,updateDerivationPath as t0}from"@swapkit/helpers";import{SwapKitApi as r6}from"@swapkit/helpers/api";import{PubKey as r0}from"cosmjs-types/cosmos/crypto/secp256k1/keys";import{match as a0,P as n6}from"ts-pattern";async function a6(Y,z){try{let Z=(await r6.getGasRate()).find((Q)=>Q.chainId===Y)?.value;return Z?Number.parseFloat(Z):z}catch{return z}}function s6(Y){let z=[{address:Y.address,algo:"secp256k1",pubkey:Y.publicKey}];return{getAccounts:()=>Promise.resolve(z),async signDirect(H,Z){if(H!==Y.address)throw new f("toolbox_cosmos_signer_not_defined");let Q=await n0(Y.privateKey,Y.publicKey,{accountNumber:Z.accountNumber,authInfoBytes:Z.authInfoBytes,bodyBytes:Z.bodyBytes,chainId:Z.chainId});return{signature:Q.signature,signed:{accountNumber:Q.signed.accountNumber,authInfoBytes:Q.signed.authInfoBytes,bodyBytes:Q.signed.bodyBytes,chainId:Q.signed.chainId}}}}}async function g6({phrase:Y,prefix:z,...H}){let Z="derivationPath"in H?H.derivationPath:`${g0[H.chain]}/${H.index}`,Q=await d0({hdPath:Z,mnemonic:Y,prefix:z??""});return s6(Q)}async function s0({privateKey:Y,prefix:z}){let H=c0({prefix:z,privateKey:Y});return s6(H)}var i6={[F.Cosmos]:1000,[F.Kujira]:1000,[F.Noble]:1000,[F.THORChain]:5000000,[F.Maya]:5000000,[F.Harbor]:5000000};function e0(Y){return async function({signature:H,message:Z,address:Q}){let X=await Y(Q);if(!X?.pubkey)throw new f("toolbox_cosmos_verify_signature_no_pubkey");let L=X.pubkey.type==="/cosmos.crypto.secp256k1.PubKey"?r0.decode(X.pubkey.value).key:X.pubkey.value;return p0(V6.decode(Z),V6.decode(H),L)}}function X6({chain:Y,...z}){let H=t6[Y],Z="index"in z?z.index||0:0,Q=m6("derivationPath"in z&&z.derivationPath?z.derivationPath:t0(o0[Y],{index:Z})),X;async function L(){if(X)return X;return X=await a0(z).with({phrase:n6.string},({phrase:N})=>g6({derivationPath:Q,phrase:N,prefix:H})).with({signer:n6.any},({signer:N})=>N).otherwise(()=>{return}),X}async function J(N){let I=await n(Y);return(await $(I)).getAccount(N)}async function G(){let N=await L(),[I]=await N?.getAccounts()||[];return I?.address}async function B(){let N=await L(),[I]=await N?.getAccounts()||[];if(!I?.pubkey)throw new f("toolbox_cosmos_signer_not_defined");return V6.encode(I?.pubkey)}async function U(N){let I=await L(),W=await G(),E=await n(Y);if(!(I&&W))throw new f("toolbox_cosmos_signer_not_defined");return(await p(E,I)).sign(W,N.msgs,N.fee,N.memo,{accountNumber:BigInt(N.accountNumber),chainId:N.chainId,sequence:N.sequence})}async function V(N){let I=await L(),W=await G(),E=await n(Y);if(!(I&&W))throw new f("toolbox_cosmos_signer_not_defined");let M=await(await p(E,I)).signAndBroadcast(W,N.msgs,N.fee,N.memo);if(M.code!==0)throw new f("core_swap_transaction_error",{code:M.code,message:M.rawLog});return M.transactionHash}async function T({recipient:N,assetValue:I,memo:W="",feeRate:E,feeOptionKey:R=T6.Fast,sweep:M}){let x=await L(),A=await G();if(!(x&&A))throw new f("toolbox_cosmos_signer_not_defined");let v=await n(Y),z6=M6.from({chain:Y}),Y6=e(z6),b=Z8(E||(await o6(Y,i6[Y]))[R],Y6,Y),H6=await p(v,x),c=y(I.symbol),L6=[{amount:(M?m({assetValue:I,balances:await R6(Y)(A),denom:c,feeAmount:W6(b.amount,c)}):I).getBaseValue("string"),denom:c}],{transactionHash:J6}=await H6.sendTokens(A,N,L6,b,W);return J6}return{createPrivateKeyFromPhrase:z8(Q),createTransaction:f6,fetchFeeRateFromSwapKit:a6,getAccount:J,getAddress:G,getBalance:async(N,I)=>{let W=await R6(Y)(N),E=await Promise.all(W.filter(({denom:R})=>R&&!R.includes("IBC/")&&!([F.THORChain,F.Maya].includes(Y)&&R.split("-").length>2)).map(({denom:R,amount:M})=>{let x=[F.THORChain,F.Maya].includes(Y)&&(R.includes("/")||R.includes("˜"))?`${Y}.${R}`:R;return w6(x,M)}));if(E.length===0)return[M6.from({chain:Y})];return E},getBalanceAsDenoms:R6(Y),getFees:()=>o6(Y,i6[Y]),getPubKey:B,getSignerFromPhrase:({phrase:N,derivationPath:I})=>g6({derivationPath:m6(I),index:Z,phrase:N,prefix:H}),getSignerFromPrivateKey:(N)=>s0({prefix:H,privateKey:N}),signAndBroadcastTransaction:V,signTransaction:U,transfer:T,validateAddress:X8(Y),verifySignature:e0(J)}}async function _Z(Y,z){try{let Z=(await r6.getGasRate()).find((Q)=>Q.chainId===Y)?.value;return Z?Number.parseFloat(Z):z}catch{return z}}function WZ({assetValue:{chain:Y}}){return M6.from({chain:Y,value:Q8(Y)})}async function o6(Y,z){let{chainId:H,baseDecimal:Z}=i0(Y),Q=await a6(H,z);return{average:K6.fromBigInt(BigInt(Q),Z),fast:K6.fromBigInt(BigInt(c6(Q,T6.Fast,!0)),Z),fastest:K6.fromBigInt(BigInt(c6(Q,T6.Fastest,!0)),Z)}}function Z8(Y,z,H){return{amount:[{amount:typeof Y==="number"?Y.toString():Y.getBaseValue("string"),denom:z}],gas:C(H).gas}}function Q8(Y){return{[F.Cosmos]:0.007,[F.Kujira]:0.02,[F.Noble]:0.01,[F.THORChain]:0.02,[F.Maya]:0.02,[F.Harbor]:0.02}[Y]||0}function X8(Y){let z=t6[Y];return function(Z){if(!Z.startsWith(z))return!1;try{let{prefix:Q,words:X}=U6.decode(Z);return U6.encode(Q,X)===Z.toLocaleLowerCase()}catch{return!1}}}function R6(Y){return async function(H){let Z=await n(Y);return(await(await $(Z)).getAllBalances(H)).map((J)=>({...J,denom:J.denom.includes("/")?J.denom.toUpperCase():J.denom}))}}function z8(Y){return async function(H){let Z=await m0(H),X=b0.fromMasterSeed(Z).derive(Y);if(!X.privateKey)throw new f("toolbox_cosmos_invalid_params",{error:"HDKey derivation produced no private key"});return l0.getPublicKey(X.privateKey,!0),Uint8Array.from(X.privateKey)}}import{secp256k1 as Y8}from"@noble/curves/secp256k1.js";import{base64 as w}from"@scure/base";import{buildMultisignedTx as H8,createMultisigThresholdPubkey as L8,signAmino as J8,createWalletFromMnemonic as G8,encodeTxRaw as q8,multisigPubkeyToAddress as _8,singlePubkeyToAddress as Z0}from"@swapkit/cosmos-signer";import{CosmosChainPrefixes as W8,derivationPathToString as O8,FeeOption as x6,getRPCUrl as Q0,NetworkDerivationPath as N8,SKConfig as B8,SwapKitError as l,updateDerivationPath as I8}from"@swapkit/helpers";import{match as E8,P as e6}from"ts-pattern";function U8(Y){let z=[{address:Y.address,algo:"secp256k1",pubkey:Y.publicKey}];return{accounts:z,getAccounts:()=>Promise.resolve(z),async signAmino(H,Z){if(H!==Y.address)throw new l("toolbox_cosmos_signer_not_defined");let Q=await J8(Y.privateKey,Y.publicKey,{signDoc:Z});return{signature:Q.signature,signed:Q.signed}}}}function K8({prefix:Y,derivationPath:z}){return async function(Z,Q=0){let X=await G8({hdPath:`${z}/${Q}`,mnemonic:Z,prefix:Y});return U8(X)}}function R8(Y){return w.encode(Y)}function V8(Y,z){return async function({wallet:Z,tx:Q}){let{msgs:X,accountNumber:L,sequence:J,chainId:G,fee:B,memo:U}=typeof Q==="string"?JSON.parse(Q):Q,V=(await Z.getAccounts())?.[0]?.address||"",T=j(Y,z),N=d(),I=await y6(Z,{aminoTypes:T,registry:N}),W=[];for(let M of X){let x=h(M,Y);W.push(x)}let{signatures:[E]}=await I.sign(V,W,B,U,{accountNumber:BigInt(L),chainId:G,sequence:J});return{bodyBytes:Q6({chain:Y,memo:U,msgs:X.map(u)}),signature:R8(E)}}}function X0(Y){if(Y.length!==33||Y[0]!==2&&Y[0]!==3)throw new l("toolbox_cosmos_invalid_params",{error:"Invalid compressed secp256k1 pubkey (must be 33 bytes starting with 0x02 or 0x03)"});return{type:"tendermint/PubKeySecp256k1",value:w.encode(Y)}}function M8({prefix:Y,chain:z}){return async function(Z,Q,X,L,J){let G=await Q0(z),{sequence:B,fee:U}=JSON.parse(Z),V=z0(X,L),T=Q.map((W)=>[Z0(X0(w.decode(W.pubKey)),Y),w.decode(W.signature)]),N=await $(G),{transactionHash:I}=await N.broadcastTx(H8({bodyBytes:J,fee:{amount:U.amount,gasLimit:BigInt(U.gas),...U.payer?{payer:U.payer}:{},...U.granter?{granter:U.granter}:{}},multisigPubkey:V,prefix:Y,sequence:B,signatures:new Map(T)}));return I}}function z0(Y,z,H=!0){return L8(Y.map((Z)=>X0(w.decode(Z))),z,H)}function T8(Y){return w.decode(Y)}function x8({privateKey:Y,message:z}){let H=Y8.sign(w.decode(z),Y,{lowS:!0,prehash:!1});return Promise.resolve(w.encode(H))}function Y0({chain:Y,...z}){let{isStagenet:H}=B8.get("envs"),Z=`${H?"s":""}${W8[Y]}`,Q="index"in z?z.index||0:0,X="derivationPath"in z&&z.derivationPath?z.derivationPath:I8(N8[Y],{index:Q}),L=X6({chain:Y,...z}),J=C(Y),G;function B(){return G??=E8(z).with({phrase:e6.string},({phrase:W})=>L.getSignerFromPhrase({derivationPath:X,phrase:W})).with({signer:e6.any},({signer:W})=>Promise.resolve(W)).otherwise(()=>Promise.resolve(void 0)),G}async function U(){let W=await Q0(Y),E=await B();if(!E)throw new l("toolbox_cosmos_no_signer");let R=d(),M=j(Y,Z),x=await p(W,E,{aminoTypes:M,registry:R});return{signer:E,signingClient:x}}async function V({fee:W,memo:E,msgs:R}){let{signer:M,signingClient:x}=await U(),A=(await M.getAccounts())?.[0]?.address;if(!A)throw new l("toolbox_cosmos_signer_not_defined");let v=await x.signAndBroadcast(A,R,W,E);if(v.code!==0)throw new l("core_swap_transaction_error",{code:v.code,message:v.rawLog});return v.transactionHash}async function T(){let W=await s(Y);return{[x6.Average]:W,[x6.Fast]:W,[x6.Fastest]:W}}async function N({assetValue:W,memo:E="",recipient:R,sweep:M}){let{signer:x,signingClient:A}=await U(),v=(await x.getAccounts())?.[0]?.address;if(!v)throw new l("toolbox_cosmos_no_signer");let z6="signAmino"in x,Y6=M?await E6({assetValue:W,sender:v}):W,b=I6({assetValue:Y6,memo:E,recipient:R,sender:v});if(z6){let k6=h(b,Y),{signatures:L6,authInfoBytes:J6}=await A.sign(v,[k6],J,E),H0=q8({authInfoBytes:J6,bodyBytes:Q6({chain:Y,memo:E,msgs:[b].map(u)}),signatures:L6});return(await A.broadcastTx(H0)).transactionHash}let H6=u(b),c=h(H6,Y);return V({fee:J,memo:E,msgs:[c]})}async function I(W){let{signer:E,signingClient:R}=await U(),M=(await E.getAccounts())?.[0]?.address;if(!M)throw new l("toolbox_cosmos_signer_not_defined");return R.sign(M,W.msgs,W.fee,W.memo,{accountNumber:BigInt(W.accountNumber),chainId:W.chainId,sequence:W.sequence})}return{...L,broadcastMultisigTx:M8({chain:Y,prefix:Z}),buildAminoMsg:I6,buildEncodedTxBody:Q6,convertToSignable:h,createDefaultAminoTypes:()=>j(Y,Z),createDefaultRegistry:d,createMultisig:z0,createTransaction:d6,deposit:N,getFees:T,importSignature:T8,parseAminoMessageForDirectSigning:u,pubkeyToAddress:(W)=>{if(W.type==="tendermint/PubKeyMultisigThreshold")return _8(W,Z);return Z0(W,Z)},secp256k1HdWalletFromMnemonic:K8({derivationPath:O8(X),prefix:Z}),signAndBroadcastTransaction:V,signMultisigTx:V8(Y,Z),signTransaction:I,signWithPrivateKey:x8,transfer:N}}var FZ=(Y,z)=>{switch(Y){case g.Cosmos:case g.Kujira:case g.Noble:return X6({chain:Y,...z});case g.Maya:case g.THORChain:return Y0({chain:Y,...z});default:throw new k8("toolbox_cosmos_not_supported",{chain:Y})}};export{e0 as verifySignature,u6 as transferMsgAmino,P8 as toBase64,E6 as resolveThorchainSweepAssetValue,u as parseAminoMessageForDirectSigning,s as getThorchainNativeFee,m as getSweepAssetValue,s0 as getSignerFromPrivateKey,g6 as getSignerFromPhrase,y as getMsgSendDenom,_Z as getFeeRateFromSwapKit,W6 as getFeeAmountForDenom,e as getDenomWithChain,C as getDefaultChainFee,FZ as getCosmosToolbox,X8 as getCosmosAddressValidator,w6 as getAssetFromDenom,A8 as fromBase64,a6 as fetchFeeRateFromSwapKit,WZ as estimateTransactionFee,l6 as depositMsgAmino,d6 as createTransaction,Y0 as createThorchainToolbox,$ as createStargateClient,p as createSigningStargateClient,y6 as createOfflineStargateClient,d as createDefaultRegistry,j as createDefaultAminoTypes,X6 as createCosmosToolbox,f6 as cosmosCreateTransaction,h as convertToSignable,h0 as buildTransferTx,Q6 as buildEncodedTxBody,u0 as buildDepositTx,I6 as buildAminoMsg,t as bech32ToBase64,r as base64ToBech32,E0 as YUM_KUJIRA_FACTORY_DENOM,A6 as USK_KUJIRA_FACTORY_DENOM,g8 as THORCHAIN_GAS_VALUE,i8 as MAYA_GAS_VALUE,R0 as DEFAULT_NOBLE_FEE_MAINNET,K0 as DEFAULT_KUJI_FEE_MAINNET,U0 as DEFAULT_COSMOS_FEE_MAINNET};
@@ -1 +1 @@
1
- import{a as da}from"../../chunk-44m22jy1.js";import{$ as _,A as z,B as A,C as B,D as C,E as D,F as E,G as F,H as G,I as H,J as I,K as J,L as K,M as L,N as M,O as N,P as O,Q as P,R as Q,S as R,T as S,U as T,V as U,W as V,X as W,Y as X,Z as Y,_ as Z,aa as $,b as a,ba as aa,c as b,ca as ba,d as c,da as ca,e as d,f as e,g as f,h as g,i as h,j as i,k as j,l as k,m as l,n as m,o as n,p as o,q as p,r as q,s as r,t as s,u as t,v as u,w as v,x as w,y as x,z as y}from"../../chunk-z61r1327.js";import"../../chunk-nvfkjbyq.js";import"../../chunk-xbdjxeqd.js";export{p as validateEVMAddress,m as validateAuthorizations,j as validateAuthorization,f as toHexString,u as toChecksumAddress,i as signAuthorization,l as parseEIP712FromEVMTx,t as isStateChangingCall,B as isEIP7702Transaction,C as isEIP1559Transaction,q as isBrowserProvider,y as getTokenAddress,c as getProviderSync,d as getProvider,g as getNetworkParams,h as getIsEIP1559Compatible,e as getFallbackProvider,ca as getEvmToolboxAsync,ba as getEvmToolbox,a as getEvmApi,A as getEstimateGasPrices,D as getEVMTxType,v as getEIP1193SendTransaction,z as getCreateContractTxObject,s as getCreateContract,w as getChecksumAddressFromAsset,E as createOPStackToolbox,b as createCustomEvmApi,r as createContract,k as buildEIP712DomainType,aa as XLayerToolbox,$ as UNIToolbox,_ as SONICToolbox,Z as PLASMAToolbox,F as OPToolbox,Y as MONADToolbox,X as MEGAETHToolbox,n as MAX_APPROVAL,W as MATICToolbox,V as LINEAToolbox,U as HYPEREVMToolbox,T as HOODToolbox,S as GNOToolbox,da as EthNetwork,G as ETHToolbox,x as ContractAddress,R as CROToolbox,Q as CORNToolbox,P as COREToolbox,O as BotanixToolbox,o as BaseEVMToolbox,N as BSCToolbox,M as BERAToolbox,L as BASEToolbox,K as AVAXToolbox,J as AURORAToolbox,I as ARBToolbox,H as ADIToolbox};
1
+ import{a as da}from"../../chunk-44m22jy1.js";import{$ as _,A as z,B as A,C as B,D as C,E as D,F as E,G as F,H as G,I as H,J as I,K as J,L as K,M as L,N as M,O as N,P as O,Q as P,R as Q,S as R,T as S,U as T,V as U,W as V,X as W,Y as X,Z as Y,_ as Z,aa as $,b as a,ba as aa,c as b,ca as ba,d as c,da as ca,e as d,f as e,g as f,h as g,i as h,j as i,k as j,l as k,m as l,n as m,o as n,p as o,q as p,r as q,s as r,t as s,u as t,v as u,w as v,x as w,y as x,z as y}from"../../chunk-55jkfkar.js";import"../../chunk-nvfkjbyq.js";import"../../chunk-xbdjxeqd.js";export{p as validateEVMAddress,m as validateAuthorizations,j as validateAuthorization,f as toHexString,u as toChecksumAddress,i as signAuthorization,l as parseEIP712FromEVMTx,t as isStateChangingCall,B as isEIP7702Transaction,C as isEIP1559Transaction,q as isBrowserProvider,y as getTokenAddress,c as getProviderSync,d as getProvider,g as getNetworkParams,h as getIsEIP1559Compatible,e as getFallbackProvider,ca as getEvmToolboxAsync,ba as getEvmToolbox,a as getEvmApi,A as getEstimateGasPrices,D as getEVMTxType,v as getEIP1193SendTransaction,z as getCreateContractTxObject,s as getCreateContract,w as getChecksumAddressFromAsset,E as createOPStackToolbox,b as createCustomEvmApi,r as createContract,k as buildEIP712DomainType,aa as XLayerToolbox,$ as UNIToolbox,_ as SONICToolbox,Z as PLASMAToolbox,F as OPToolbox,Y as MONADToolbox,X as MEGAETHToolbox,n as MAX_APPROVAL,W as MATICToolbox,V as LINEAToolbox,U as HYPEREVMToolbox,T as HOODToolbox,S as GNOToolbox,da as EthNetwork,G as ETHToolbox,x as ContractAddress,R as CROToolbox,Q as CORNToolbox,P as COREToolbox,O as BotanixToolbox,o as BaseEVMToolbox,N as BSCToolbox,M as BERAToolbox,L as BASEToolbox,K as AVAXToolbox,J as AURORAToolbox,I as ARBToolbox,H as ADIToolbox};
@@ -1 +1 @@
1
- import"../../chunk-44m22jy1.js";import{q as z}from"../../chunk-z61r1327.js";import{fa as q}from"../../chunk-nvfkjbyq.js";import"../../chunk-xbdjxeqd.js";function Xn({builder:n,grouping:r="na",orders:t}){return{builder:n,grouping:r,orders:t,type:"order"}}function Yn({cancels:n}){return{cancels:n,type:"cancel"}}function Zn({cancels:n}){return{cancels:n,type:"cancelByCloid"}}function kn({oid:n,order:r}){return{oid:n,order:r,type:"modify"}}function Bn({modifies:n}){return{modifies:n,type:"batchModify"}}function Rn({asset:n,isCross:r,leverage:t}){return{asset:n,isCross:r,leverage:t,type:"updateLeverage"}}function Sn({asset:n,isBuy:r,ntli:t}){return{asset:n,isBuy:r,ntli:t,type:"updateIsolatedMargin"}}function Kn({asset:n,leverage:r}){return{asset:n,leverage:r,type:"topUpIsolatedOnlyMargin"}}function En({time:n}){return{time:n,type:"scheduleCancel"}}function qn({amount:n,hyperliquidChain:r,nonce:t,signatureChainId:y,toPerp:i}){return{amount:n,hyperliquidChain:r,nonce:t,signatureChainId:y,toPerp:i,type:"usdClassTransfer"}}function zn({amount:n,destination:r,destinationDex:t,fromSubAccount:y,hyperliquidChain:i,nonce:e,signatureChainId:o,sourceDex:f,token:c}){return{amount:n,destination:r,destinationDex:t,fromSubAccount:y,hyperliquidChain:i,nonce:e,signatureChainId:o,sourceDex:f,token:c,type:"sendAsset"}}function Vn({agentAddress:n,agentName:r,hyperliquidChain:t,nonce:y,signatureChainId:i}){return{agentAddress:n,agentName:r,hyperliquidChain:t,nonce:y,signatureChainId:i,type:"approveAgent"}}function Pn({builder:n,hyperliquidChain:r,maxFeeRate:t,nonce:y,signatureChainId:i}){return{builder:n,hyperliquidChain:r,maxFeeRate:t,nonce:y,signatureChainId:i,type:"approveBuilderFee"}}function ln({hyperliquidChain:n,isUndelegate:r,nonce:t,signatureChainId:y,validator:i,wei:e}){return{hyperliquidChain:n,isUndelegate:r,nonce:t,signatureChainId:y,type:"tokenDelegate",validator:i,wei:e}}import{AssetValue as j,Chain as xn,derivationPathToString as Hn,getChainConfig as V,getRPCUrl as Un,NetworkDerivationPath as wn,RequestClient as g,SwapKitError as d,updateDerivationPath as dn}from"@swapkit/helpers";import{HDNodeWallet as Tn}from"ethers";import{match as bn,P as _}from"ts-pattern";import{SwapKitError as m}from"@swapkit/helpers";import{keccak256 as nn,Signature as rn}from"ethers";var Q="0x0000000000000000000000000000000000000000",tn={chainId:1337,name:"Exchange",verifyingContract:Q,version:"1"},yn={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},W="Mainnet",en={approveAgent:[{name:"hyperliquidChain",type:"string"},{name:"agentAddress",type:"address"},{name:"agentName",type:"string"},{name:"nonce",type:"uint64"}],approveBuilderFee:[{name:"hyperliquidChain",type:"string"},{name:"maxFeeRate",type:"string"},{name:"builder",type:"address"},{name:"nonce",type:"uint64"}],sendAsset:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"sourceDex",type:"string"},{name:"destinationDex",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"fromSubAccount",type:"string"},{name:"nonce",type:"uint64"}],tokenDelegate:[{name:"hyperliquidChain",type:"string"},{name:"validator",type:"address"},{name:"wei",type:"uint64"},{name:"isUndelegate",type:"bool"},{name:"nonce",type:"uint64"}],usdClassTransfer:[{name:"hyperliquidChain",type:"string"},{name:"amount",type:"string"},{name:"toPerp",type:"bool"},{name:"nonce",type:"uint64"}]},pn={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},fn=new TextEncoder;function A(...n){let r=n.reduce((i,e)=>i+e.length,0),t=new Uint8Array(r),y=0;for(let i of n)t.set(i,y),y+=i.length;return t}function on(n,r,t){if(t<r)return new Uint8Array([n+t]);if(t<=255)return new Uint8Array([n+r,t]);if(t<=65535)return new Uint8Array([n+r+1,t>>8,t&255]);return new Uint8Array([n+r+2,t>>>24&255,t>>>16&255,t>>>8&255,t&255])}function w(n,r){let t=new Uint8Array(r),y=n;for(let i=r-1;i>=0;i-=1)t[i]=Number(y&0xffn),y>>=8n;return t}function L(n){if(n>=0n){if(n<=0x7fn)return new Uint8Array([Number(n)]);if(n<=0xffn)return new Uint8Array([204,Number(n)]);if(n<=0xffffn)return A(new Uint8Array([205]),w(n,2));if(n<=0xffffffffn)return A(new Uint8Array([206]),w(n,4));return A(new Uint8Array([207]),w(n,8))}if(n>=-32n)return new Uint8Array([256+Number(n)]);if(n>=-128n)return new Uint8Array([208,256+Number(n)]);if(n>=-32768n)return A(new Uint8Array([209]),w(BigInt.asUintN(16,n),2));if(n>=-2147483648n)return A(new Uint8Array([210]),w(BigInt.asUintN(32,n),4));return A(new Uint8Array([211]),w(BigInt.asUintN(64,n),8))}function X(n){let r=fn.encode(n);if(r.length<32)return A(new Uint8Array([160+r.length]),r);return A(on(217,0,r.length),r)}function An(n){let r=n.map((y)=>N(y)),t=n.length<16?new Uint8Array([144+n.length]):n.length<=65535?new Uint8Array([220,n.length>>8,n.length&255]):new Uint8Array([221,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return A(t,...r)}function cn(n){let r=Object.entries(n).filter(([,y])=>typeof y<"u"),t=r.length<16?new Uint8Array([128+r.length]):r.length<=65535?new Uint8Array([222,r.length>>8,r.length&255]):new Uint8Array([223,r.length>>>24&255,r.length>>>16&255,r.length>>>8&255,r.length&255]);return A(t,...r.flatMap(([y,i])=>[X(y),N(i)]))}function N(n){if(n===null)return new Uint8Array([192]);if(typeof n==="boolean")return new Uint8Array([n?195:194]);if(typeof n==="string")return X(n);if(typeof n==="number"){if(!Number.isFinite(n)||!Number.isInteger(n))throw new m("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return L(BigInt(n))}if(typeof n==="bigint")return L(n);if(n instanceof Uint8Array){let r=n.length<=255?new Uint8Array([196,n.length]):n.length<=65535?new Uint8Array([197,n.length>>8,n.length&255]):new Uint8Array([198,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return A(r,n)}if(Array.isArray(n))return An(n);if(typeof n==="object")return cn(n);throw new m("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(n)}`})}function Cn(n){let r=n.startsWith("0x")?n.slice(2):n;if(r.length%2!==0||/[^a-fA-F0-9]/u.test(r))throw new m("helpers_invalid_params",{hexValue:n});let t=new Uint8Array(r.length/2);for(let y=0;y<r.length;y+=2)t[y/2]=Number.parseInt(r.slice(y,y+2),16);return t}function Y(n){return{domain:tn,message:{connectionId:n,source:"a"},primaryType:"Agent",types:{Agent:[...yn.Agent]}}}function Z(n){let r=pn[n.type],t=en[n.type],{type:y,...i}=n;return{domain:{chainId:Number.parseInt(i.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:Q,version:"1"},message:{...i,hyperliquidChain:i.hyperliquidChain||W},primaryType:r,types:{[r]:t}}}function k(n){let r=rn.from(n);return{r:r.r,s:r.s,v:r.v}}function B(n,r,{expiresAfter:t,vaultAddress:y}={}){let i=N(n),e=w(BigInt(r),8),o=y?A(new Uint8Array([1]),Cn(y.toLowerCase())):new Uint8Array([0]),f=typeof t==="number"?A(new Uint8Array([0]),w(BigInt(t),8)):new Uint8Array;return nn(A(i,e,o,f))}function R(n){let r=n.hyperliquidChain||W;switch(n.type){case"approveAgent":return{...n,agentAddress:n.agentAddress.toLowerCase(),hyperliquidChain:r};case"approveBuilderFee":return{...n,builder:n.builder.toLowerCase(),hyperliquidChain:r};case"sendAsset":return{...n,destination:n.destination.toLowerCase(),fromSubAccount:n.fromSubAccount.toLowerCase(),hyperliquidChain:r};case"tokenDelegate":return{...n,hyperliquidChain:r,validator:n.validator.toLowerCase()};case"usdClassTransfer":return{...n,hyperliquidChain:r};default:return n}}var H=xn.Hype,{baseDecimal:P}=V(H),gn={HYPE:P,USDC:6,USDT:6},hn="Mainnet",Dn="0xa4b1",Mn="0x0000000000000000000000000000000000000000",On={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},un={spotSend:"HyperliquidTransaction:SpotSend"};function C(n,r){if(!v(n))throw new d(r,{address:n});return n.toLowerCase()}async function T(n){let r=await O();return g.post(`${r}/info`,{json:n})}function Fn({dex:n,user:r}){return T({...n?{dex:n}:{},type:"clearinghouseState",user:C(r,"helpers_invalid_params")})}function l({user:n}){return T({type:"spotClearinghouseState",user:C(n,"helpers_invalid_params")})}function In({dex:n,user:r}){return T({...n?{dex:n}:{},type:"openOrders",user:C(r,"helpers_invalid_params")})}function mn({dex:n,user:r}){return T({...n?{dex:n}:{},type:"frontendOpenOrders",user:C(r,"helpers_invalid_params")})}function Nn({oidOrCloid:n,user:r}){return T({oid:n,type:"orderStatus",user:C(r,"helpers_invalid_params")})}function _n({aggregateByTime:n,user:r}){return T({...typeof n==="boolean"?{aggregateByTime:n}:{},type:"userFills",user:C(r,"helpers_invalid_params")})}function jn({aggregateByTime:n,endTime:r,startTime:t,user:y}){return T({...typeof n==="boolean"?{aggregateByTime:n}:{},...typeof r==="number"?{endTime:r}:{},startTime:t,type:"userFillsByTime",user:C(y,"helpers_invalid_params")})}function S({coin:n,token:r,value:t,spotMeta:y}){if(!t||Number(t)<=0)return null;let i=n?.toUpperCase()||`TOKEN-${r||"UNKNOWN"}`,e=y?.tokens?.find((c)=>c.name===n||r!==void 0&&c.index===Number(r)),o=e?.weiDecimals??gn[i]??P,f=e?`${H}.${i}-${e.name}:${e.tokenId}`:`${H}.${i}`;return new j({decimal:o,identifier:f,value:t})}function $n(n){let r=new Map;for(let t of n){let y=t.toString({includeSynthProtocol:!0}),i=r.get(y);r.set(y,i?i.add(t):t)}if(![...r.values()].some((t)=>t.isGasAsset||t.ticker==="HYPE")){let t=j.from({chain:H,value:0});r.set(t.toString({includeSynthProtocol:!0}),t)}return[...r.values()]}async function O(){try{return await Un(H)}catch{let[n]=V(H).rpcUrls;if(!n)throw new d("helpers_chain_no_public_or_set_rpc_url",{chain:H});return n}}async function $(){return`${await O()}/exchange`}function Gn(n){let r=un[n.type],{type:t,...y}=n,i=On[t];return{domain:{chainId:Number.parseInt(n.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:Mn,version:"1"},message:y,primaryType:r,types:{[r]:i}}}async function Jn({action:n,expiresAfter:r,nonce:t,vaultAddress:y}){let i=t||Date.now(),e=y?C(y,"helpers_invalid_params"):void 0,o=await $(),f=B(n,i,{expiresAfter:r,vaultAddress:e});return{action:n,endpoint:o,expiresAfter:r,nonce:i,typedData:Y(f),vaultAddress:e}}async function Ln({action:n,nonce:r,signatureChainId:t}){let y=r||n.nonce||Date.now(),i=t||n.signatureChainId||"0xa4b1",e=R({...n,nonce:y,signatureChainId:i});return{action:e,endpoint:await $(),nonce:y,typedData:Z(e)}}async function Qn({assetValue:n,sender:r,token:t}){let y=await l({user:r}),i=(y.spotState?.balances||y.balances||[]).find(({coin:e})=>e&&t.startsWith(`${e}:`))?.total;if(!i||Number(i)<=0)throw new d("toolbox_sweep_amount_too_low",{asset:n.toString(),balance:i||"0"});return i}async function K({assetValue:n,recipient:r,sender:t,signatureChainId:y,sweep:i,time:e}){let o=C(r,"core_transaction_invalid_recipient_address"),f=C(t,"core_transaction_invalid_sender_address"),c=n.address;if(!c)throw new d("helpers_invalid_params",{asset:n.toString(),from:f});let u=i?await Qn({assetValue:n,sender:f,token:c}):n.getValue("string"),F=await $(),D=e||Date.now(),p={amount:u,destination:o,hyperliquidChain:hn,signatureChainId:y||Dn,time:D,token:c,type:"spotSend"};return{action:p,endpoint:F,nonce:D,typedData:Gn(p)}}async function E(n){let r=await g.post(n.endpoint,{json:{action:n.action,...typeof n.expiresAfter==="number"?{expiresAfter:n.expiresAfter}:{},nonce:n.nonce,signature:n.signature,...n.vaultAddress?{vaultAddress:n.vaultAddress}:{}}});if(r.status!=="ok")throw new d("core_transaction_failed",{response:r});return r}async function Wn(n,r){let t=await O(),y=r-5000;for(let i=0;i<5;i++){if(i>0)await new Promise((e)=>setTimeout(e,1000));try{let e=await g.post(`${t}/info`,{json:{startTime:y,type:"userNonFundingLedgerUpdates",user:n}}),o=Array.isArray(e)?e.find((f)=>f.time&&f.time>=r&&(f.delta?.type==="spotTransfer"||f.delta?.type==="internalTransfer")):void 0;if(o?.hash)return o.hash}catch{}}return""}function v(n){return n.startsWith("0x")&&z(n)}function fr(n){let r=q(H),t=n&&"index"in n?n.index||0:0,y=Hn(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:dn(wn[H],{index:t})),i,e=!1;function o(){if(e)return i;return i=bn(n).with({phrase:_.string},({phrase:p})=>{return Tn.fromPhrase(p,void 0,y)}).with({signer:_.not(_.nullish)},({signer:p})=>p).otherwise(()=>{return}),e=!0,i}async function f(){let p=o();return p?await p.getAddress():""}async function c(p){let x=o();if(!x)throw new d("toolbox_hypercore_no_signer");let U=await x.signTypedData(p.typedData.domain,p.typedData.types,p.typedData.message);return{action:p.action,endpoint:p.endpoint,nonce:p.nonce,signature:k(U),..."expiresAfter"in p?{expiresAfter:p.expiresAfter}:{},..."vaultAddress"in p?{vaultAddress:p.vaultAddress}:{}}}async function u(p){let x=C(p,"helpers_invalid_params");try{let U=await O(),[h,b,M]=await Promise.all([g.post(`${U}/info`,{json:{type:"spotClearinghouseState",user:x}}),g.post(`${U}/info`,{json:{type:"clearinghouseState",user:x}}),g.post(`${U}/info`,{json:{type:"spotMeta"}})]),G=(h.spotState?.balances||h.balances||[]).map(({coin:I,token:s,total:a})=>S({coin:I,spotMeta:M,token:s,value:a})).filter((I)=>!!I),J=S({coin:"USDC",spotMeta:M,value:b.withdrawable||b.marginSummary?.accountValue||b.marginSummary?.totalRawUsd});return $n(J?[...G,J]:G)}catch{return r(x)}}async function F({sweep:p,...x}){let U=o();if(!U)throw new d("toolbox_hypercore_no_signer");let h=x.sender||await U.getAddress(),b=await K({...x,feeRate:0,sender:h,sweep:p}),M=await c(b);return await E(M),Wn(h,b.nonce)}function D(){return j.from({chain:H,value:0})}return{broadcastTransaction:E,createL1ActionRequest:Jn,createTransaction:K,createUserSignedActionRequest:Ln,estimateTransactionFee:D,getAddress:f,getBalance:u,getState:{clearinghouse:Fn,frontendOpenOrders:mn,openOrders:In,orderStatus:Nn,spotClearinghouse:l,userFills:_n,userFillsByTime:jn},signTransaction:c,transfer:F,validateAddress:v}}export{v as validateHyperCoreAddress,fr as getHyperCoreToolbox,Ln as createUserSignedActionRequest,K as createTransaction,Jn as createL1ActionRequest,qn as buildUsdClassTransferAction,Rn as buildUpdateLeverageAction,Sn as buildUpdateIsolatedMarginAction,Kn as buildTopUpIsolatedOnlyMarginAction,ln as buildTokenDelegateAction,zn as buildSendAssetAction,En as buildScheduleCancelAction,Xn as buildOrderAction,kn as buildModifyAction,Zn as buildCancelByCloidAction,Yn as buildCancelAction,Bn as buildBatchModifyAction,Pn as buildApproveBuilderFeeAction,Vn as buildApproveAgentAction};
1
+ import"../../chunk-44m22jy1.js";import{q as KH}from"../../chunk-55jkfkar.js";import"../../chunk-nvfkjbyq.js";import"../../chunk-xbdjxeqd.js";function zM({builder:H,grouping:M="na",orders:G}){return{builder:H,grouping:M,orders:G,type:"order"}}function FM({cancels:H}){return{cancels:H,type:"cancel"}}function VM({cancels:H}){return{cancels:H,type:"cancelByCloid"}}function KM({oid:H,order:M}){return{oid:H,order:M,type:"modify"}}function EM({modifies:H}){return{modifies:H,type:"batchModify"}}function BM({asset:H,isCross:M,leverage:G}){return{asset:H,isCross:M,leverage:G,type:"updateLeverage"}}function PM({asset:H,isBuy:M,ntli:G}){return{asset:H,isBuy:M,ntli:G,type:"updateIsolatedMargin"}}function wM({asset:H,leverage:M}){return{asset:H,leverage:M,type:"topUpIsolatedOnlyMargin"}}function TM({time:H}){return{time:H,type:"scheduleCancel"}}function DM({amount:H,hyperliquidChain:M,nonce:G,signatureChainId:J,toPerp:X}){return{amount:H,hyperliquidChain:M,nonce:G,signatureChainId:J,toPerp:X,type:"usdClassTransfer"}}function XH({amount:H,destination:M,destinationDex:G,fromSubAccount:J,hyperliquidChain:X,nonce:Z,signatureChainId:$,sourceDex:Q,token:C}){return{amount:H,destination:M,destinationDex:G,fromSubAccount:J,hyperliquidChain:X,nonce:Z,signatureChainId:$,sourceDex:Q,token:C,type:"sendAsset"}}function AM({agentAddress:H,agentName:M,hyperliquidChain:G,nonce:J,signatureChainId:X}){return{agentAddress:H,agentName:M,hyperliquidChain:G,nonce:J,signatureChainId:X,type:"approveAgent"}}function bM({builder:H,hyperliquidChain:M,maxFeeRate:G,nonce:J,signatureChainId:X}){return{builder:H,hyperliquidChain:M,maxFeeRate:G,nonce:J,signatureChainId:X,type:"approveBuilderFee"}}function yM({hyperliquidChain:H,isUndelegate:M,nonce:G,signatureChainId:J,validator:X,wei:Z}){return{hyperliquidChain:H,isUndelegate:M,nonce:G,signatureChainId:J,type:"tokenDelegate",validator:X,wei:Z}}import{SwapKitError as rH,SwapKitNumber as oH}from"@swapkit/helpers";import{HYPERCORE_USDC_TOKEN_ID as x}from"@swapkit/helpers/api";import{SwapKitError as o}from"@swapkit/helpers";import{keccak256 as hH,Signature as gH}from"ethers";var k="0x0000000000000000000000000000000000000000",w="0xa4b1",S={name:"HyperliquidSignTransaction",verifyingContract:k,version:"1"},vH={chainId:1337,name:"Exchange",verifyingContract:k,version:"1"},pH={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},$H="Mainnet",i={approveAgent:[{name:"hyperliquidChain",type:"string"},{name:"agentAddress",type:"address"},{name:"agentName",type:"string"},{name:"nonce",type:"uint64"}],approveBuilderFee:[{name:"hyperliquidChain",type:"string"},{name:"maxFeeRate",type:"string"},{name:"builder",type:"address"},{name:"nonce",type:"uint64"}],sendAsset:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"sourceDex",type:"string"},{name:"destinationDex",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"fromSubAccount",type:"string"},{name:"nonce",type:"uint64"}],tokenDelegate:[{name:"hyperliquidChain",type:"string"},{name:"validator",type:"address"},{name:"wei",type:"uint64"},{name:"isUndelegate",type:"bool"},{name:"nonce",type:"uint64"}],usdClassTransfer:[{name:"hyperliquidChain",type:"string"},{name:"amount",type:"string"},{name:"toPerp",type:"bool"},{name:"nonce",type:"uint64"}]},s={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},mH=new TextEncoder;function F(...H){let M=H.reduce((X,Z)=>X+Z.length,0),G=new Uint8Array(M),J=0;for(let X of H)G.set(X,J),J+=X.length;return G}function lH(H,M,G){if(G<M)return new Uint8Array([H+G]);if(G<=255)return new Uint8Array([H+M,G]);if(G<=65535)return new Uint8Array([H+M+1,G>>8,G&255]);return new Uint8Array([H+M+2,G>>>24&255,G>>>16&255,G>>>8&255,G&255])}function b(H,M){let G=new Uint8Array(M),J=H;for(let X=M-1;X>=0;X-=1)G[X]=Number(J&0xffn),J>>=8n;return G}function ZH(H){if(H>=0n){if(H<=0x7fn)return new Uint8Array([Number(H)]);if(H<=0xffn)return new Uint8Array([204,Number(H)]);if(H<=0xffffn)return F(new Uint8Array([205]),b(H,2));if(H<=0xffffffffn)return F(new Uint8Array([206]),b(H,4));return F(new Uint8Array([207]),b(H,8))}if(H>=-32n)return new Uint8Array([256+Number(H)]);if(H>=-128n)return new Uint8Array([208,256+Number(H)]);if(H>=-32768n)return F(new Uint8Array([209]),b(BigInt.asUintN(16,H),2));if(H>=-2147483648n)return F(new Uint8Array([210]),b(BigInt.asUintN(32,H),4));return F(new Uint8Array([211]),b(BigInt.asUintN(64,H),8))}function OH(H){let M=mH.encode(H);if(M.length<32)return F(new Uint8Array([160+M.length]),M);return F(lH(217,0,M.length),M)}function uH(H){let M=H.map((J)=>n(J)),G=H.length<16?new Uint8Array([144+H.length]):H.length<=65535?new Uint8Array([220,H.length>>8,H.length&255]):new Uint8Array([221,H.length>>>24&255,H.length>>>16&255,H.length>>>8&255,H.length&255]);return F(G,...M)}function cH(H){let M=Object.entries(H).filter(([,J])=>typeof J<"u"),G=M.length<16?new Uint8Array([128+M.length]):M.length<=65535?new Uint8Array([222,M.length>>8,M.length&255]):new Uint8Array([223,M.length>>>24&255,M.length>>>16&255,M.length>>>8&255,M.length&255]);return F(G,...M.flatMap(([J,X])=>[OH(J),n(X)]))}function n(H){if(H===null)return new Uint8Array([192]);if(typeof H==="boolean")return new Uint8Array([H?195:194]);if(typeof H==="string")return OH(H);if(typeof H==="number"){if(!Number.isFinite(H)||!Number.isInteger(H))throw new o("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return ZH(BigInt(H))}if(typeof H==="bigint")return ZH(H);if(H instanceof Uint8Array){let M=H.length<=255?new Uint8Array([196,H.length]):H.length<=65535?new Uint8Array([197,H.length>>8,H.length&255]):new Uint8Array([198,H.length>>>24&255,H.length>>>16&255,H.length>>>8&255,H.length&255]);return F(M,H)}if(Array.isArray(H))return uH(H);if(typeof H==="object")return cH(H);throw new o("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(H)}`})}function dH(H){let M=H.startsWith("0x")?H.slice(2):H;if(M.length%2!==0||/[^a-fA-F0-9]/u.test(M))throw new o("helpers_invalid_params",{hexValue:H});let G=new Uint8Array(M.length/2);for(let J=0;J<M.length;J+=2)G[J/2]=Number.parseInt(M.slice(J,J+2),16);return G}function QH(H){return{domain:vH,message:{connectionId:H,source:"a"},primaryType:"Agent",types:{Agent:[...pH.Agent]}}}function YH(H){let M=s[H.type],G=i[H.type],{signatureChainId:J,type:X,...Z}=H,$=Number.parseInt(J||w,16);return{domain:{...S,chainId:$},message:{...Z,hyperliquidChain:Z.hyperliquidChain||$H},primaryType:M,types:{[M]:G}}}function WH(H){let M=gH.from(H);return{r:M.r,s:M.s,v:M.v}}function _H(H,M,{expiresAfter:G,vaultAddress:J}={}){let X=n(H),Z=b(BigInt(M),8),$=J?F(new Uint8Array([1]),dH(J.toLowerCase())):new Uint8Array([0]),Q=typeof G==="number"?F(new Uint8Array([0]),b(BigInt(G),8)):new Uint8Array;return hH(F(X,Z,$,Q))}function CH(H){let M=H.hyperliquidChain||$H;switch(H.type){case"approveAgent":return{...H,agentAddress:H.agentAddress.toLowerCase(),hyperliquidChain:M};case"approveBuilderFee":return{...H,builder:H.builder.toLowerCase(),hyperliquidChain:M};case"sendAsset":return{...H,destination:H.destination.toLowerCase(),fromSubAccount:H.fromSubAccount.toLowerCase(),hyperliquidChain:M};case"tokenDelegate":return{...H,hyperliquidChain:M,validator:H.validator.toLowerCase()};case"usdClassTransfer":return{...H,hyperliquidChain:M};default:return H}}var RH=Number.parseInt(w,16),iH=new Set(["chainId","name","verifyingContract","version"]),NH=/^0x[0-9a-fA-F]{40}$/,t=i.sendAsset;var Y=(H)=>{throw new rH("toolbox_hypercore_payload_mismatch",{problems:[H]})};function UH(H){try{return new URL(H)}catch{return}}function jH(H){if(!("EIP712Domain"in H.types))return H;let{EIP712Domain:M,...G}=H.types;return{...H,types:G}}function IH({action:H,allowedEndpoints:M,expectedAmount:G,expectedDestination:J,expectedFromSubAccount:X,expectedSourceDex:Z,expectedToken:$,submitTo:Q,typedData:C}){let{domain:U,message:K,primaryType:j,types:q}=C,O=s.sendAsset;if(j!==O)Y(`primaryType is ${JSON.stringify(j)}, expected "${O}"`);if(H.type!=="sendAsset")Y(`action.type is ${JSON.stringify(H.type)}, expected "sendAsset"`);let _=t.map(({name:W})=>W),I=new Set([..._,"signatureChainId","type"]),z=Object.keys(H).filter((W)=>!I.has(W));if(z.length)Y(`action carries unexpected keys: ${z.join(", ")}`);for(let{name:W}of t)if(K[W]!==H[W])Y(`${W}: signed ${JSON.stringify(K[W])} != submitted ${JSON.stringify(H[W])}`);let f=Object.keys(K),R=f.filter((W)=>!_.includes(W)),V=_.filter((W)=>!f.includes(W));if(R.length||V.length){let W=[R.length?`declares undeclared keys [${R.join(",")}]`:"",V.length?`is missing keys [${V.join(",")}]`:""].filter(Boolean).join(" / ");Y(`message ${W}`)}let P=t.map(({name:W,type:r})=>`${W}:${r}`).join(","),E=(q[O]??[]).map(({name:W,type:r})=>`${W}:${r}`).join(",");if(E!==P)Y(`types.${O} is [${E}], expected [${P}]`);let y=Object.keys(q).filter((W)=>W!==O&&W!=="EIP712Domain");if(y.length)Y(`types carries unexpected entries: ${y.join(", ")}`);if(Number(U.chainId)!==RH)Y(`domain.chainId is ${U.chainId}, expected ${RH} (Arbitrum)`);if(U.name!==S.name)Y(`domain.name is ${JSON.stringify(U.name)}, expected "${S.name}"`);if(U.version!==S.version)Y(`domain.version is ${JSON.stringify(U.version)}, expected "${S.version}"`);if(U.verifyingContract!==k)Y(`domain.verifyingContract is ${U.verifyingContract}, expected the zero address`);let A=Object.keys(U).filter((W)=>!iH.has(W));if(A.length)Y(`domain carries unexpected keys: ${A.join(", ")}`);if(typeof H.signatureChainId!=="string"||H.signatureChainId.toLowerCase()!==w)Y(`action.signatureChainId is ${JSON.stringify(H.signatureChainId)}, expected "${w}"`);if(H.hyperliquidChain!=="Mainnet")Y(`action.hyperliquidChain is ${JSON.stringify(H.hyperliquidChain)}, expected "Mainnet"`);if(typeof H.nonce!=="number"||!Number.isSafeInteger(H.nonce)||H.nonce<=0)Y(`action.nonce is ${JSON.stringify(H.nonce)}, expected a positive safe integer`);if(H.destinationDex!=="")Y(`action.destinationDex is ${JSON.stringify(H.destinationDex)}, expected ""`);if($!==x)Y(`route sell token is ${JSON.stringify($)}, expected "${x}"`);if(H.token!==$)Y(`action.token is ${JSON.stringify(H.token)}, expected route sell token "${$}"`);if(H.sourceDex!==""&&H.sourceDex!=="spot")Y(`action.sourceDex is ${JSON.stringify(H.sourceDex)}, expected "" or "spot"`);if(typeof H.sourceDex!=="string"||H.sourceDex!==Z)Y(`action.sourceDex is ${JSON.stringify(H.sourceDex)}, expected route sourceDex ${JSON.stringify(Z)}`);let p=H.fromSubAccount;if(typeof p!=="string"||typeof X!=="string"||p.toLowerCase()!==X.toLowerCase())Y(`action.fromSubAccount is ${JSON.stringify(H.fromSubAccount)}, expected ${JSON.stringify(X)}`);if(X&&!NH.test(X))Y(`expectedFromSubAccount ${JSON.stringify(X)} is not a well-formed 0x address`);if(!G)Y("expectedAmount is missing — cannot verify action.amount");let m=!1;try{m=new oH(String(H.amount)).eqValue(G)}catch{Y(`action.amount ${JSON.stringify(H.amount)} is not comparable to ${G}`)}if(!m)Y(`action.amount ${JSON.stringify(H.amount)} != route sell amount ${G}`);let c=typeof H.destination==="string"?H.destination:"";if(!NH.test(c))Y(`action.destination ${JSON.stringify(H.destination)} is not a well-formed 0x address`);if(!J)Y("expectedDestination is missing — cannot verify action.destination");if(c.toLowerCase()!==J.toLowerCase())Y(`action.destination ${c} != expected destination ${J}`);let GH=UH(Q),d=GH?.origin,JH=M.flatMap((W)=>UH(W)?.origin??[]);if(GH?.protocol!=="https:")Y(`submitTo ${JSON.stringify(Q)} must be an https URL`);if(!d||!JH.includes(d))Y(`submitTo origin ${d} is not one of the allowed exchange origins [${JH.join(", ")}]`)}import{AssetValue as g,Chain as sH,derivationPathToString as nH,getChainConfig as EH,getRPCUrl as tH,NetworkDerivationPath as aH,RequestClient as h,SwapKitError as N,SwapKitNumber as T,updateDerivationPath as eH}from"@swapkit/helpers";import{SwapKitApi as HM}from"@swapkit/helpers/api";import{HDNodeWallet as MM}from"ethers";import{match as GM,P as a}from"ts-pattern";var B=sH.Hype,{baseDecimal:e,rpcUrls:fH}=EH(B),JM=fH[0]?`${fH[0]}/exchange`:void 0,XM={HYPE:e,USDC:6,USDT:6},BH="Mainnet",ZM=/^\d+(?:\.\d+)?$/,$M=/^[^:]+:0x[0-9a-fA-F]+$/,OM={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},QM={spotSend:"HyperliquidTransaction:SpotSend"};function L(H,M){if(!xH(H))throw new N(M,{address:H});return H.toLowerCase()}function v(H){if(H===void 0)return;try{return new T(H)}catch{return}}var PH={retry:{maxRetries:0},timeoutMs:5000};async function D({requestOptions:H,...M}){let G=await l();return h.post(`${G}/info`,{json:M,...H})}function HH({dex:H,user:M}){return D({...H?{dex:H}:{},type:"clearinghouseState",user:L(M,"helpers_invalid_params")})}function wH({user:H}){return D({type:"spotClearinghouseState",user:L(H,"helpers_invalid_params")})}function YM({destination:H,sender:M}){let G=L(M,"helpers_invalid_params"),J=L(H,"helpers_invalid_params");return D({requestOptions:PH,source:G,type:"preTransferCheck",user:J})}function WM({dex:H,user:M}){return D({...H?{dex:H}:{},type:"openOrders",user:L(M,"helpers_invalid_params")})}function _M({dex:H,user:M}){return D({...H?{dex:H}:{},type:"frontendOpenOrders",user:L(M,"helpers_invalid_params")})}function CM({oidOrCloid:H,user:M}){return D({oid:H,type:"orderStatus",user:L(M,"helpers_invalid_params")})}function RM({aggregateByTime:H,user:M}){return D({...typeof H==="boolean"?{aggregateByTime:H}:{},type:"userFills",user:L(M,"helpers_invalid_params")})}function NM({aggregateByTime:H,endTime:M,startTime:G,user:J}){return D({...typeof H==="boolean"?{aggregateByTime:H}:{},...typeof M==="number"?{endTime:M}:{},startTime:G,type:"userFillsByTime",user:L(J,"helpers_invalid_params")})}function LH({coin:H,token:M,value:G,spotMeta:J}){if(!G||Number(G)<=0)return null;let X=H?.toUpperCase()||`TOKEN-${M||"UNKNOWN"}`,Z=J?.tokens?.find((C)=>C.name===H||M!==void 0&&C.index===Number(M)),$=Z?.weiDecimals??XM[X]??e,Q=Z?`${B}.${X}-${Z.name}:${Z.tokenId}`:`${B}.${X}`;return new g({decimal:$,identifier:Q,value:G})}function UM(H){let M=new Map;for(let G of H){let J=G.toString({includeSynthProtocol:!0}),X=M.get(J);M.set(J,X?X.add(G):G)}if(![...M.values()].some((G)=>G.isGasAsset||G.ticker==="HYPE")){let G=g.from({chain:B,value:0});M.set(G.toString({includeSynthProtocol:!0}),G)}return[...M.values()]}async function l(){try{return await tH(B)}catch{let[H]=EH(B).rpcUrls;if(!H)throw new N("helpers_chain_no_public_or_set_rpc_url",{chain:B});return H}}async function u(){return`${await l()}/exchange`}function jM(H){let M=QM[H.type],{type:G,...J}=H;return{domain:{chainId:Number.parseInt(H.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:k,version:"1"},message:J,primaryType:M,types:{[M]:OM[G]}}}async function IM({action:H,expiresAfter:M,nonce:G,vaultAddress:J}){let X=G||Date.now(),Z=J?L(J,"helpers_invalid_params"):void 0,$=await u(),Q=_H(H,X,{expiresAfter:M,vaultAddress:Z});return{action:H,endpoint:$,expiresAfter:M,nonce:X,typedData:QH(Q),vaultAddress:Z}}async function TH({action:H,endpoint:M,nonce:G,signatureChainId:J}){let X=G||H.nonce||Date.now(),Z=J||H.signatureChainId||w,$=CH({...H,nonce:X,signatureChainId:Z});return{action:$,endpoint:M??await u(),nonce:X,typedData:YH($)}}async function MH({token:H,user:M}){let G=await wH({user:M}),X=(G.spotState?.balances||G.balances||[]).find(({coin:Q})=>Q&&H.startsWith(`${Q}:`)),Z=v(X?.total||0),$=v(X?.hold||0);return Z&&$?Z.sub($):void 0}async function DH({assetValue:H,sender:M,token:G}){let J=(await MH({token:G,user:M}))?.getValue("string");if(!J||Number(J)<=0)throw new N("toolbox_sweep_amount_too_low",{asset:H.toString(),balance:J||"0"});return J}async function fM(H){if(H.address&&$M.test(H.address))return H.address;let G=(await D({type:"spotMeta"}))?.tokens?.find(({name:J})=>J?.toUpperCase()===H.ticker.toUpperCase());if(G)return`${G.name}:${G.tokenId}`;throw new N("helpers_invalid_params",{asset:H.toString(),message:"Unable to resolve the HyperCore spot token id"})}async function AH({destination:H,sender:M}){let G;try{G=await YM({destination:H,sender:M})}catch(Z){throw new N("toolbox_hypercore_pre_transfer_check_failed",Z)}if(typeof G?.isSanctioned!=="boolean"||typeof G.userExists!=="boolean")throw new N("toolbox_hypercore_pre_transfer_check_failed",{response:G});let{fee:J}=G,X=typeof J==="string"&&ZM.test(J)?Number(J):Number.NaN;if(!Number.isFinite(X))throw new N("toolbox_hypercore_pre_transfer_check_failed",{response:G});if(G.isSanctioned)throw new N("toolbox_hypercore_destination_sanctioned",{destination:H,sender:M});return X}function bH(H){return H.toUpperCase().startsWith("USDC:")}async function yH({activationFee:H,token:M,user:G}){if(H<=0)return;let[J,X]=await Promise.all([HH({user:G}),MH({token:x,user:G})]),Z=v(J.withdrawable||"0")??new T(0),$=X??new T(0);if(new T(H).lte(Z)||new T(H).lte($))return;throw new N("toolbox_hypercore_insufficient_balance",{activationFee:H,feeToken:x,perpsWithdrawable:Z.getValue("string"),spotAvailable:$.getValue("string"),token:M})}async function kH({activationFee:H,amount:M,sourceDex:G,token:J,user:X}){let Z=bH(J),$=Z?new T(M).add(H):new T(M);if(G!==void 0&&G!==""&&G!=="spot")throw new N("helpers_invalid_params",{message:"Unsupported HyperCore sourceDex",sourceDex:G});if(!Z&&G==="")throw new N("helpers_invalid_params",{message:"Only a collateral token can be sent from a perp DEX",sourceDex:G,token:J});let Q="0";if(Z&&G!=="spot"){if(Q=(await HH({user:X})).withdrawable||"0",$.lte(v(Q)??0))return"";if(G==="")throw new N("toolbox_hypercore_insufficient_balance",{amountRequired:$.getValue("string"),perpsWithdrawable:Q,spotAvailable:"0",token:J})}let C=await MH({token:J,user:X})??new T(0);if(C.gte($)){if(!Z)await yH({activationFee:H,token:J,user:X});return"spot"}throw new N("toolbox_hypercore_insufficient_balance",{amountRequired:$.getValue("string"),perpsWithdrawable:Q,spotAvailable:C.getValue("string"),token:J})}async function LM({amount:H,destination:M,sender:G,sourceDex:J,sweep:X,token:Z}){if(X&&J!==void 0&&J!=="spot")throw new N("helpers_invalid_params",{message:"HyperCore sweep drains spot and requires sourceDex spot",sourceDex:J});let $=await AH({destination:M,sender:G});if(!X){let C=await kH({activationFee:$,amount:H,sourceDex:J,token:Z,user:G});return{amount:H,sourceDex:C}}if(!bH(Z))return await yH({activationFee:$,token:Z,user:G}),{amount:H,sourceDex:"spot"};if($<=0)return{amount:H,sourceDex:"spot"};let Q=new T(H).sub($);if(Q.lte(0))throw new N("toolbox_hypercore_insufficient_balance",{activationFee:$,spotAvailable:H,token:Z});return{amount:Q.getValue("string"),sourceDex:"spot"}}async function qM({assetValue:H,recipient:M,sender:G,signatureChainId:J,sweep:X,time:Z,endpoint:$}){let Q=L(M,"core_transaction_invalid_recipient_address"),C=L(G,"core_transaction_invalid_sender_address"),U=H.address;if(!U)throw new N("helpers_invalid_params",{asset:H.toString(),from:C});let K=X?await DH({assetValue:H,sender:C,token:U}):H.getValue("string"),j=$??await u(),q=Z||Date.now(),O={amount:K,destination:Q,hyperliquidChain:BH,signatureChainId:J||w,time:q,token:U,type:"spotSend"};return{action:O,endpoint:j,nonce:q,typedData:jM(O)}}async function qH({assetValue:H,destinationDex:M,endpoint:G,fromSubAccount:J,recipient:X,sender:Z,signatureChainId:$,sourceDex:Q,sweep:C,time:U}){let K=L(X,"core_transaction_invalid_recipient_address"),j=L(Z,"core_transaction_invalid_sender_address"),q=J?L(J,"helpers_invalid_params"):"",O=q||j,_=await fM(H),I=C?await DH({assetValue:H,sender:O,token:_}):H.getValue("string"),{amount:z,sourceDex:f}=await LM({amount:I,destination:K,sender:O,sourceDex:Q,sweep:C,token:_}),R=XH({amount:z,destination:K,destinationDex:M??"spot",fromSubAccount:q,hyperliquidChain:BH,nonce:U||Date.now(),signatureChainId:$||w,sourceDex:f,token:_});return TH({action:R,endpoint:G})}async function SH(H){let M=await h.post(H.endpoint,{json:{action:H.action,...typeof H.expiresAfter==="number"?{expiresAfter:H.expiresAfter}:{},nonce:H.nonce,signature:H.signature,vaultAddress:H.vaultAddress??null},retry:{maxRetries:0}});if(M?.status!=="ok")throw new N("core_transaction_failed",{definitive:M?.status==="err",response:M});return M}async function zH({amount:H,destination:M,nonce:G,token:J,user:X}){let Z=L(X,"helpers_invalid_params"),$=await l(),Q=G-5000,C=M?.toLowerCase(),U=J?.toUpperCase(),K=({delta:j,time:q})=>{if(!(q&&q>=Q&&j?.type==="send"&&j.nonce===G))return!1;if(C&&j?.destination?.toLowerCase()!==C)return!1;let O=v(j?.amount);if(H!==void 0&&!O?.eqValue(H))return!1;if(U!==void 0){if(!j?.token)return!1;let _=j.token.toUpperCase();if(_!==U&&!U.startsWith(`${_}:`))return!1}return!0};for(let j=0;j<8;j++){if(j>0)await new Promise((q)=>setTimeout(q,1500));try{let q=await h.post(`${$}/info`,{json:{startTime:Q,type:"userNonFundingLedgerUpdates",user:Z},...PH}),O=Array.isArray(q)?q.find(K):void 0;if(O?.hash)return O.hash}catch{}}return""}async function FH({kind:H,lookup:M,signed:G}){try{await SH(G)}catch(X){if(X instanceof N&&X.errorKey==="core_transaction_failed"&&X.cause?.definitive===!0)throw X;let $=await zH(M);if($)return $;throw new N("toolbox_hypercore_transfer_hash_not_found",{broadcast:"unknown",guidance:"Delivery of this broadcast is unknown and the nonce is single-use — do not retry or re-sign; check the account ledger for the transfer first.",nonce:M.nonce,transportError:String(X)})}let J=await zH(M);if(!J)throw new N("toolbox_hypercore_transfer_hash_not_found",{broadcast:"accepted",guidance:`Do not retry or re-sign — the exchange accepted this nonce, so re-submitting risks a duplicate ${H}. Check the account ledger for the transfer first.`,nonce:M.nonce});return J}function VH({action:H,nonce:M,user:G}){return{amount:H.amount,destination:H.destination,nonce:M,token:H.token,user:G}}function xH(H){return H.startsWith("0x")&&KH(H)}function nM(H){let M=H&&"index"in H?H.index||0:0,G=nH(H&&"derivationPath"in H&&H.derivationPath?H.derivationPath:eH(aH[B],{index:M})),J,X=!1;function Z(){if(X)return J;return J=GM(H).with({phrase:a.string},({phrase:O})=>{return MM.fromPhrase(O,void 0,G)}).with({signer:a.not(a.nullish)},({signer:O})=>O).otherwise(()=>{return}),X=!0,J}async function $(){let O=Z();return O?await O.getAddress():""}async function Q(O){let _=Z();if(!_)throw new N("toolbox_hypercore_no_signer");let I=jH(O.typedData),z=await _.signTypedData(I.domain,I.types,I.message);return{action:O.action,endpoint:O.endpoint,nonce:O.nonce,signature:WH(z),..."expiresAfter"in O?{expiresAfter:O.expiresAfter}:{},..."vaultAddress"in O?{vaultAddress:O.vaultAddress}:{}}}async function C(O){let _=L(O,"helpers_invalid_params"),I=await l(),[z,f,R]=await Promise.all([h.post(`${I}/info`,{json:{type:"spotClearinghouseState",user:_}}),h.post(`${I}/info`,{json:{type:"clearinghouseState",user:_}}),h.post(`${I}/info`,{json:{type:"spotMeta"}})]),V=(z.spotState?.balances||z.balances||[]).map(({coin:E,token:y,total:A})=>LH({coin:E,spotMeta:R,token:y,value:A})).filter((E)=>!!E),P=LH({coin:"USDC",spotMeta:R,value:f.withdrawable||f.marginSummary?.accountValue||f.marginSummary?.totalRawUsd});return UM(P?[...V,P]:V)}async function U(O,_=!0){let I=L(O,"helpers_invalid_params");try{let z=await HM.getChainBalance({address:I,chain:B,scamFilter:_});if(z.length){let f=z.map(({identifier:V,value:P,decimal:E})=>new g({decimal:E||e,identifier:V,value:P}));return f.some((V)=>V.isGasAsset)?f:[g.from({chain:B}),...f]}}catch{}return C(I)}async function K({sweep:O,..._}){let I=Z();if(!I)throw new N("toolbox_hypercore_no_signer");let z=_.sender||await I.getAddress(),f=await qH({..._,feeRate:0,sender:z,sweep:O}),R=await Q(f);return FH({kind:"transfer",lookup:VH({action:f.action,nonce:f.nonce,user:f.action.fromSubAccount||z}),signed:R})}async function j(O){let _=Z();if(!_)throw new N("toolbox_hypercore_no_signer");let{action:I,typedData:z,...f}=O,R=structuredClone(I),V=structuredClone(z),P=await _.getAddress(),E=await u(),y=[...new Set([E,JM??E])];IH({...f,action:R,allowedEndpoints:y,typedData:V});let A=R.fromSubAccount?L(R.fromSubAccount,"helpers_invalid_params"):P,p=await AH({destination:R.destination,sender:A});await kH({activationFee:p,amount:R.amount,sourceDex:R.sourceDex,token:R.token,user:A});let m=await Q({action:R,endpoint:E,nonce:R.nonce,typedData:V});return FH({kind:"payin",lookup:VH({action:R,nonce:R.nonce,user:A}),signed:m})}function q(){return g.from({chain:B,value:0})}return{broadcastTransaction:SH,createL1ActionRequest:IM,createSendAssetTransaction:qH,createTransaction:qM,createUserSignedActionRequest:TH,estimateTransactionFee:q,getAddress:$,getBalance:U,getBalanceFromChain:C,getState:{clearinghouse:HH,frontendOpenOrders:_M,openOrders:WM,orderStatus:CM,spotClearinghouse:wH,userFills:RM,userFillsByTime:NM},signAndBroadcastSendAsset:j,signTransaction:Q,transfer:K,validateAddress:xH}}export{xH as validateHyperCoreAddress,nM as getHyperCoreToolbox,TH as createUserSignedActionRequest,qM as createTransaction,qH as createSendAssetTransaction,IM as createL1ActionRequest,DM as buildUsdClassTransferAction,BM as buildUpdateLeverageAction,PM as buildUpdateIsolatedMarginAction,wM as buildTopUpIsolatedOnlyMarginAction,yM as buildTokenDelegateAction,XH as buildSendAssetAction,TM as buildScheduleCancelAction,zM as buildOrderAction,KM as buildModifyAction,VM as buildCancelByCloidAction,FM as buildCancelAction,EM as buildBatchModifyAction,bM as buildApproveBuilderFeeAction,AM as buildApproveAgentAction,x as HYPERCORE_USDC_TOKEN_ID};
package/dist/src/index.js CHANGED
@@ -1 +1 @@
1
- import{ga as t}from"../chunk-xbdjxeqd.js";import{AssetValue as W,Chain as o,CosmosChains as x,EVMChains as c,FeeOption as k,SwapKitError as v,UTXOChains as b}from"@swapkit/helpers";async function E(){let{match:l}=await import("ts-pattern"),{validateAleoAddress:r}=await import("./aleo/index.js"),{validateAptosAddress:i}=await import("./aptos/index.js"),{validateEVMAddress:e}=await import("./evm/index.js"),{validateCardanoAddress:a}=await import("./cardano/index.js"),{getCosmosAddressValidator:s}=await import("./cosmos/index.js"),{validateHyperCoreAddress:T}=await import("./hypercore/index.js"),{validateSolanaAddress:p}=await import("./solana/index.js"),{validateStarknetAddress:C}=await import("./starknet/index.js"),{validateSuiAddress:h}=await import("./sui/index.js"),{validateTonAddress:u}=await import("./ton/index.js"),{getUTXOAddressValidator:d}=await import("./utxo/index.js"),{validateNearAddress:f}=await import("./near/index.js"),{validateRadixAddress:g}=await import("./radix/index.js"),{validateRippleAddress:w}=await import("./ripple/index.js"),{validateTronAddress:S}=await import("./tron/index.js"),{validateStellarAddress:P}=await import("./stellar/index.js");return function({address:n,chain:A}){return l(A).with(...c,()=>e(n)).with(...b,(m)=>{return d(m)(n)}).with(...x,(m)=>{return s(m)(n)}).with(o.Aleo,()=>r(n)).with(o.Aptos,()=>i(n)).with(o.Radix,()=>g(n)).with(o.Hype,()=>T(n)).with(o.Near,()=>f(n)).with(o.Ripple,()=>w(n)).with(o.Solana,()=>p(n)).with(o.Stellar,()=>P(n)).with(o.Starknet,()=>C(n)).with(o.Sui,()=>h(n)).with(o.Ton,()=>u(n)).with(o.Tron,()=>S(n)).with(o.Cardano,()=>a(n)).otherwise(()=>!1)}}function H(l){return async function(i){let{match:e}=await import("ts-pattern");return e(l).returnType().with(...c,async(a)=>{let s=await y(a),T=await s.createTransaction(i),p="feeOptionKey"in i?i.feeOptionKey:k.Fast;return s.estimateTransactionFee({...T,feeOption:p})}).with(o.Bitcoin,o.BitcoinCash,o.Dogecoin,o.Dash,o.Litecoin,o.Solana,o.Ripple,o.Tron,o.Near,o.Cardano,o.Hype,async(a)=>{return(await y(a)).estimateTransactionFee(i)}).with(o.Aptos,async()=>{let{getAptosToolbox:a}=await import("./aptos/index.js");return a().estimateTransactionFee(i)}).with(o.Aleo,async()=>{let{getAleoToolbox:a}=await import("./aleo/index.js");return a().estimateTransactionFee(i)}).with(o.Starknet,async()=>{let{getStarknetToolbox:a}=await import("./starknet/index.js");return(await a()).estimateTransactionFee(i)}).with(o.Stellar,async()=>{let{getStellarToolbox:a}=await import("./stellar/index.js");return a().estimateTransactionFee()}).with(o.Sui,async()=>{let{getSuiToolbox:a}=await import("./sui/index.js");return a().estimateTransactionFee(i)}).with(o.Ton,async()=>{let{getTONToolbox:a}=await import("./ton/index.js");return a().estimateTransactionFee(i)}).with(...x,async()=>{let{estimateTransactionFee:a}=await import("./cosmos/index.js");return a(i)}).otherwise(async()=>W.from({chain:l}))}}async function y(l,r){let{match:i}=await import("ts-pattern");return i(l).returnType().with(...c,async()=>{let{getEvmToolboxAsync:e}=await import("../chunk-ap5mzmjf.js");return await e(l,r)}).with(...b,async()=>{let{getUtxoToolbox:e}=await import("./utxo/index.js");return e(l,r)}).with(...x,async()=>{let{getCosmosToolbox:e}=await import("./cosmos/index.js");return e(l,r)}).with(o.Aleo,async()=>{let{getAleoToolbox:e}=await import("./aleo/index.js");return e(r)}).with(o.Aptos,async()=>{let{getAptosToolbox:e}=await import("./aptos/index.js");return e(r)}).with(o.Hype,async()=>{let{getHyperCoreToolbox:e}=await import("./hypercore/index.js");return e(r)}).with(o.Radix,async()=>{let{getRadixToolbox:e}=await import("./radix/index.js");return e(r)}).with(o.Ripple,async()=>{let{getRippleToolbox:e}=await import("./ripple/index.js");return e(r)}).with(o.Solana,async()=>{let{getSolanaToolbox:e}=await import("./solana/index.js");return e(r)}).with(o.Stellar,async()=>{let{getStellarToolbox:e}=await import("./stellar/index.js");return e(r)}).with(o.Starknet,async()=>{let{getStarknetToolbox:e}=await import("./starknet/index.js");return e(r)}).with(o.Sui,async()=>{let{getSuiToolbox:e}=await import("./sui/index.js");return e(r)}).with(o.Tron,async()=>{let{getTronToolbox:e}=await import("./tron/index.js");return e(r)}).with(o.Near,async()=>{let{getNearToolbox:e}=await import("./near/index.js");return e(r)}).with(o.Cardano,async()=>{let{getCardanoToolbox:e}=await import("./cardano/index.js");return e(r)}).with(o.Ton,async()=>{let{getTONToolbox:e}=await import("./ton/index.js");return e(r)}).otherwise(()=>{throw new v("toolbox_not_supported",{chain:l})})}export{y as getToolbox,H as getFeeEstimator,E as getAddressValidator};
1
+ import{ga as t}from"../chunk-xbdjxeqd.js";import{AssetValue as W,Chain as o,CosmosChains as x,EVMChains as c,FeeOption as k,SwapKitError as v,UTXOChains as b}from"@swapkit/helpers";async function E(){let{match:l}=await import("ts-pattern"),{validateAleoAddress:r}=await import("./aleo/index.js"),{validateAptosAddress:i}=await import("./aptos/index.js"),{validateEVMAddress:e}=await import("./evm/index.js"),{validateCardanoAddress:a}=await import("./cardano/index.js"),{getCosmosAddressValidator:s}=await import("./cosmos/index.js"),{validateHyperCoreAddress:T}=await import("./hypercore/index.js"),{validateSolanaAddress:p}=await import("./solana/index.js"),{validateStarknetAddress:C}=await import("./starknet/index.js"),{validateSuiAddress:h}=await import("./sui/index.js"),{validateTonAddress:u}=await import("./ton/index.js"),{getUTXOAddressValidator:d}=await import("./utxo/index.js"),{validateNearAddress:f}=await import("./near/index.js"),{validateRadixAddress:g}=await import("./radix/index.js"),{validateRippleAddress:w}=await import("./ripple/index.js"),{validateTronAddress:S}=await import("./tron/index.js"),{validateStellarAddress:P}=await import("./stellar/index.js");return function({address:n,chain:A}){return l(A).with(...c,()=>e(n)).with(...b,(m)=>{return d(m)(n)}).with(...x,(m)=>{return s(m)(n)}).with(o.Aleo,()=>r(n)).with(o.Aptos,()=>i(n)).with(o.Radix,()=>g(n)).with(o.Hype,()=>T(n)).with(o.Near,()=>f(n)).with(o.Ripple,()=>w(n)).with(o.Solana,()=>p(n)).with(o.Stellar,()=>P(n)).with(o.Starknet,()=>C(n)).with(o.Sui,()=>h(n)).with(o.Ton,()=>u(n)).with(o.Tron,()=>S(n)).with(o.Cardano,()=>a(n)).otherwise(()=>!1)}}function H(l){return async function(i){let{match:e}=await import("ts-pattern");return e(l).returnType().with(...c,async(a)=>{let s=await y(a),T=await s.createTransaction(i),p="feeOptionKey"in i?i.feeOptionKey:k.Fast;return s.estimateTransactionFee({...T,feeOption:p})}).with(o.Bitcoin,o.BitcoinCash,o.Dogecoin,o.Dash,o.Litecoin,o.Solana,o.Ripple,o.Tron,o.Near,o.Cardano,o.Hype,async(a)=>{return(await y(a)).estimateTransactionFee(i)}).with(o.Aptos,async()=>{let{getAptosToolbox:a}=await import("./aptos/index.js");return a().estimateTransactionFee(i)}).with(o.Aleo,async()=>{let{getAleoToolbox:a}=await import("./aleo/index.js");return a().estimateTransactionFee(i)}).with(o.Starknet,async()=>{let{getStarknetToolbox:a}=await import("./starknet/index.js");return(await a()).estimateTransactionFee(i)}).with(o.Stellar,async()=>{let{getStellarToolbox:a}=await import("./stellar/index.js");return a().estimateTransactionFee()}).with(o.Sui,async()=>{let{getSuiToolbox:a}=await import("./sui/index.js");return a().estimateTransactionFee(i)}).with(o.Ton,async()=>{let{getTONToolbox:a}=await import("./ton/index.js");return a().estimateTransactionFee(i)}).with(...x,async()=>{let{estimateTransactionFee:a}=await import("./cosmos/index.js");return a(i)}).otherwise(async()=>W.from({chain:l}))}}async function y(l,r){let{match:i}=await import("ts-pattern");return i(l).returnType().with(...c,async()=>{let{getEvmToolboxAsync:e}=await import("../chunk-v9dcj9m7.js");return await e(l,r)}).with(...b,async()=>{let{getUtxoToolbox:e}=await import("./utxo/index.js");return e(l,r)}).with(...x,async()=>{let{getCosmosToolbox:e}=await import("./cosmos/index.js");return e(l,r)}).with(o.Aleo,async()=>{let{getAleoToolbox:e}=await import("./aleo/index.js");return e(r)}).with(o.Aptos,async()=>{let{getAptosToolbox:e}=await import("./aptos/index.js");return e(r)}).with(o.Hype,async()=>{let{getHyperCoreToolbox:e}=await import("./hypercore/index.js");return e(r)}).with(o.Radix,async()=>{let{getRadixToolbox:e}=await import("./radix/index.js");return e(r)}).with(o.Ripple,async()=>{let{getRippleToolbox:e}=await import("./ripple/index.js");return e(r)}).with(o.Solana,async()=>{let{getSolanaToolbox:e}=await import("./solana/index.js");return e(r)}).with(o.Stellar,async()=>{let{getStellarToolbox:e}=await import("./stellar/index.js");return e(r)}).with(o.Starknet,async()=>{let{getStarknetToolbox:e}=await import("./starknet/index.js");return e(r)}).with(o.Sui,async()=>{let{getSuiToolbox:e}=await import("./sui/index.js");return e(r)}).with(o.Tron,async()=>{let{getTronToolbox:e}=await import("./tron/index.js");return e(r)}).with(o.Near,async()=>{let{getNearToolbox:e}=await import("./near/index.js");return e(r)}).with(o.Cardano,async()=>{let{getCardanoToolbox:e}=await import("./cardano/index.js");return e(r)}).with(o.Ton,async()=>{let{getTONToolbox:e}=await import("./ton/index.js");return e(r)}).otherwise(()=>{throw new v("toolbox_not_supported",{chain:l})})}export{y as getToolbox,H as getFeeEstimator,E as getAddressValidator};