graz 0.0.26 → 0.0.28

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.
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { SigningCosmWasmClientOptions, CosmWasmClient, SigningCosmWasmClient } from '@cosmjs/cosmwasm-stargate';
1
+ import * as _cosmjs_cosmwasm_stargate from '@cosmjs/cosmwasm-stargate';
2
+ import { SigningCosmWasmClientOptions, CosmWasmClient, SigningCosmWasmClient, InstantiateOptions, InstantiateResult, ExecuteResult } from '@cosmjs/cosmwasm-stargate';
2
3
  import { ChainInfo, AppCurrency, Key, Keplr } from '@keplr-wallet/types';
3
4
  import * as _cosmjs_proto_signing from '@cosmjs/proto-signing';
4
5
  import { Coin, OfflineSigner, OfflineDirectSigner } from '@cosmjs/proto-signing';
5
- import * as _cosmjs_stargate from '@cosmjs/stargate';
6
6
  import { QueryClient, StargateClient, SigningStargateClient, SigningStargateClientOptions, StdFee, DeliverTxResponse, StakingExtension } from '@cosmjs/stargate';
7
7
  import { Tendermint34Client } from '@cosmjs/tendermint-rpc';
8
8
  import { Height } from 'cosmjs-types/ibc/core/client/v1/client';
@@ -10,6 +10,7 @@ import * as _tanstack_react_query from '@tanstack/react-query';
10
10
  import { UseQueryResult, QueryClientProviderProps } from '@tanstack/react-query';
11
11
  import { BondStatusString } from '@cosmjs/stargate/build/modules/staking/queries';
12
12
  import { QueryValidatorsResponse } from 'cosmjs-types/cosmos/staking/v1beta1/query';
13
+ import { FC } from 'react';
13
14
 
14
15
  declare type Dictionary<T = string> = Record<string, T>;
15
16
  declare type Maybe<T> = T | undefined;
@@ -52,7 +53,7 @@ interface GrazChain {
52
53
  * connect(myChains.cosmoshub);
53
54
  * ```
54
55
  */
55
- declare function defineChains<T extends Dictionary<GrazChain>>(chains: T): T;
56
+ declare const defineChains: <T extends Dictionary<GrazChain>>(chains: T) => T;
56
57
  /**
57
58
  * Helper function to define chain information object.
58
59
  *
@@ -73,7 +74,7 @@ declare function defineChains<T extends Dictionary<GrazChain>>(chains: T): T;
73
74
  * connect(cosmoshub);
74
75
  * ```
75
76
  */
76
- declare function defineChain<T extends GrazChain>(chain: T): T;
77
+ declare const defineChain: <T extends GrazChain>(chain: T) => T;
77
78
  /**
78
79
  * Helper function to define Keplr's `ChainInfo` object.
79
80
  *
@@ -94,7 +95,7 @@ declare function defineChain<T extends GrazChain>(chain: T): T;
94
95
  * });
95
96
  * ```
96
97
  */
97
- declare function defineChainInfo<T extends ChainInfo | ChainInfoWithPath>(chain: T): T;
98
+ declare const defineChainInfo: <T extends ChainInfoWithPath | ChainInfo>(chain: T) => T;
98
99
  /**
99
100
  * Provided mainnet chains
100
101
  *
@@ -154,31 +155,34 @@ declare type ConnectArgs = Maybe<GrazChain & {
154
155
  signerOpts?: SigningCosmWasmClientOptions;
155
156
  walletType?: WalletType;
156
157
  }>;
157
- declare function connect(args?: ConnectArgs): Promise<Key>;
158
- declare function disconnect(clearRecentChain?: boolean): Promise<void>;
159
- declare function reconnect(): void;
158
+ declare const connect: (args?: ConnectArgs) => Promise<Key>;
159
+ declare const disconnect: (clearRecentChain?: boolean) => Promise<void>;
160
+ declare const reconnect: () => void;
160
161
 
161
162
  declare type ExtensionSetup<P extends object = object> = (queryClient: QueryClient) => P;
162
163
 
164
+ interface CreateQueryClient {
165
+ (): QueryClient;
166
+ <A extends object>(setupA: ExtensionSetup<A>): QueryClient & A;
167
+ <A extends object, B extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>): QueryClient & A & B;
168
+ <A extends object, B extends object, C extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>): QueryClient & A & B & C;
169
+ <A extends object, B extends object, C extends object, D extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>): QueryClient & A & B & C & D;
170
+ <A extends object, B extends object, C extends object, D extends object, E extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>): QueryClient & A & B & C & D & E;
171
+ <A extends object, B extends object, C extends object, D extends object, E extends object, F extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>): QueryClient & A & B & C & D & E & F;
172
+ <A extends object, B extends object, C extends object, D extends object, E extends object, F extends object, G extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>, setupG: ExtensionSetup<G>): QueryClient & A & B & C & D & E & F & G;
173
+ <A extends object, B extends object, C extends object, D extends object, E extends object, F extends object, G extends object, H extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>, setupG: ExtensionSetup<G>, setupH: ExtensionSetup<H>): QueryClient & A & B & C & D & E & F & G & H;
174
+ <A extends object, B extends object, C extends object, D extends object, E extends object, F extends object, G extends object, H extends object, I extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>, setupG: ExtensionSetup<G>, setupH: ExtensionSetup<H>, setupI: ExtensionSetup<I>): QueryClient & A & B & C & D & E & F & G & H & I;
175
+ }
163
176
  /**
164
177
  * Note: `createQueryClient` creates \@cosmjs/stargate's {@link QueryClient},
165
178
  * NOT to be confused with \@tanstack/react-query query client
166
179
  */
167
- declare function createQueryClient(): QueryClient;
168
- declare function createQueryClient<A extends object>(setupA: ExtensionSetup<A>): QueryClient & A;
169
- declare function createQueryClient<A extends object, B extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>): QueryClient & A & B;
170
- declare function createQueryClient<A extends object, B extends object, C extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>): QueryClient & A & B & C;
171
- declare function createQueryClient<A extends object, B extends object, C extends object, D extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>): QueryClient & A & B & C & D;
172
- declare function createQueryClient<A extends object, B extends object, C extends object, D extends object, E extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>): QueryClient & A & B & C & D & E;
173
- declare function createQueryClient<A extends object, B extends object, C extends object, D extends object, E extends object, F extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>): QueryClient & A & B & C & D & E & F;
174
- declare function createQueryClient<A extends object, B extends object, C extends object, D extends object, E extends object, F extends object, G extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>, setupG: ExtensionSetup<G>): QueryClient & A & B & C & D & E & F & G;
175
- declare function createQueryClient<A extends object, B extends object, C extends object, D extends object, E extends object, F extends object, G extends object, H extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>, setupG: ExtensionSetup<G>, setupH: ExtensionSetup<H>): QueryClient & A & B & C & D & E & F & G & H;
176
- declare function createQueryClient<A extends object, B extends object, C extends object, D extends object, E extends object, F extends object, G extends object, H extends object, I extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>, setupG: ExtensionSetup<G>, setupH: ExtensionSetup<H>, setupI: ExtensionSetup<I>): QueryClient & A & B & C & D & E & F & G & H & I;
180
+ declare const createQueryClient: CreateQueryClient;
177
181
 
178
- declare function clearRecentChain(): void;
179
- declare function getActiveChainCurrency(denom: string): AppCurrency | undefined;
180
- declare function getRecentChain(): GrazChain | null;
181
- declare function suggestChain(chainInfo: ChainInfo): Promise<ChainInfo>;
182
+ declare const clearRecentChain: () => void;
183
+ declare const getActiveChainCurrency: (denom: string) => AppCurrency | undefined;
184
+ declare const getRecentChain: () => GrazChain | null;
185
+ declare const suggestChain: (chainInfo: ChainInfo) => Promise<ChainInfo>;
182
186
  interface SuggestChainAndConnectArgs {
183
187
  chainInfo: ChainInfo;
184
188
  signerOpts?: SigningCosmWasmClientOptions;
@@ -190,7 +194,7 @@ interface SuggestChainAndConnectArgs {
190
194
  rpcHeaders?: Dictionary;
191
195
  path?: string;
192
196
  }
193
- declare function suggestChainAndConnect({ chainInfo, ...rest }: SuggestChainAndConnectArgs): Promise<{
197
+ declare const suggestChainAndConnect: ({ chainInfo, ...rest }: SuggestChainAndConnectArgs) => Promise<{
194
198
  account: Key;
195
199
  chain: ChainInfo;
196
200
  }>;
@@ -221,13 +225,13 @@ interface GrazStore {
221
225
  }
222
226
 
223
227
  declare type CreateClientArgs = Pick<GrazChain, "rpc" | "rpcHeaders">;
224
- declare function createClients({ rpc, rpcHeaders }: CreateClientArgs): Promise<GrazStore["clients"]>;
228
+ declare const createClients: ({ rpc, rpcHeaders }: CreateClientArgs) => Promise<GrazStore["clients"]>;
225
229
  declare type CreateSigningClientArgs = CreateClientArgs & {
226
230
  offlineSignerAuto: OfflineSigner | OfflineDirectSigner;
227
231
  cosmWasmSignerOptions?: SigningCosmWasmClientOptions;
228
232
  stargateSignerOptions?: SigningStargateClientOptions;
229
233
  };
230
- declare function createSigningClients(args: CreateSigningClientArgs): Promise<GrazStore["signingClients"]>;
234
+ declare const createSigningClients: (args: CreateSigningClientArgs) => Promise<GrazStore["signingClients"]>;
231
235
 
232
236
  interface ConfigureGrazArgs {
233
237
  defaultChain?: GrazChain;
@@ -235,10 +239,10 @@ interface ConfigureGrazArgs {
235
239
  defaultWallet?: WalletType;
236
240
  onNotFound?: () => void;
237
241
  }
238
- declare function configureGraz(args?: ConfigureGrazArgs): ConfigureGrazArgs;
242
+ declare const configureGraz: (args?: ConfigureGrazArgs) => ConfigureGrazArgs;
239
243
 
240
- declare function getBalances(bech32Address: string): Promise<Coin[]>;
241
- declare function getStakedBalances(bech32Address: string): Promise<Coin | null>;
244
+ declare const getBalances: (bech32Address: string) => Promise<Coin[]>;
245
+ declare const getBalanceStaked: (bech32Address: string) => Promise<Coin | null>;
242
246
  interface SendTokensArgs {
243
247
  senderAddress?: string;
244
248
  recipientAddress: string;
@@ -246,7 +250,7 @@ interface SendTokensArgs {
246
250
  fee: number | StdFee | "auto";
247
251
  memo?: string;
248
252
  }
249
- declare function sendTokens({ senderAddress, recipientAddress, amount, fee, memo, }: SendTokensArgs): Promise<DeliverTxResponse>;
253
+ declare const sendTokens: ({ senderAddress, recipientAddress, amount, fee, memo, }: SendTokensArgs) => Promise<DeliverTxResponse>;
250
254
  interface SendIbcTokensArgs {
251
255
  senderAddress?: string;
252
256
  recipientAddress: string;
@@ -258,7 +262,31 @@ interface SendIbcTokensArgs {
258
262
  fee: number | StdFee | "auto";
259
263
  memo: string;
260
264
  }
261
- declare function sendIbcTokens({ senderAddress, recipientAddress, transferAmount, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, fee, memo, }: SendIbcTokensArgs): Promise<DeliverTxResponse>;
265
+ declare const sendIbcTokens: ({ senderAddress, recipientAddress, transferAmount, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, fee, memo, }: SendIbcTokensArgs) => Promise<DeliverTxResponse>;
266
+ interface InstantiateContractArgs<Message extends Record<string, unknown>> {
267
+ msg: Message;
268
+ label: string;
269
+ fee: StdFee | "auto" | number;
270
+ options?: InstantiateOptions;
271
+ senderAddress: string;
272
+ codeId: number;
273
+ }
274
+ declare type InstantiateContractMutationArgs<Message extends Record<string, unknown>> = Omit<InstantiateContractArgs<Message>, "codeId" | "senderAddress" | "fee"> & {
275
+ fee?: StdFee | "auto" | number;
276
+ };
277
+ declare const instantiateContract: <Message extends Record<string, unknown>>({ senderAddress, msg, fee, options, label, codeId, }: InstantiateContractArgs<Message>) => Promise<_cosmjs_cosmwasm_stargate.InstantiateResult>;
278
+ interface ExecuteContractArgs<Message extends Record<string, unknown>> {
279
+ msg: Message;
280
+ fee: StdFee | "auto" | number;
281
+ senderAddress: string;
282
+ contractAddress: string;
283
+ }
284
+ declare type ExecuteContractMutationArgs<Message extends Record<string, unknown>> = Omit<ExecuteContractArgs<Message>, "contractAddress" | "senderAddress" | "fee"> & {
285
+ fee?: StdFee | "auto" | number;
286
+ };
287
+ declare const executeContract: <Message extends Record<string, unknown>>({ senderAddress, msg, fee, contractAddress, }: ExecuteContractArgs<Message>) => Promise<_cosmjs_cosmwasm_stargate.ExecuteResult>;
288
+ declare const getQuerySmart: <TData>(address: string, queryMsg: Record<string, unknown>) => Promise<TData>;
289
+ declare const getQueryRaw: (address: string, keyStr: string) => Promise<Uint8Array | null>;
262
290
 
263
291
  /**
264
292
  * Function to check whether given {@link WalletType} or default configured wallet exists.
@@ -269,7 +297,7 @@ declare function sendIbcTokens({ senderAddress, recipientAddress, transferAmount
269
297
  * const isKeplrSupported = checkWallet("keplr");
270
298
  * ```
271
299
  */
272
- declare function checkWallet(type?: WalletType): boolean;
300
+ declare const checkWallet: (type?: WalletType) => boolean;
273
301
  /**
274
302
  * Function to return {@link Keplr} object and throws and error if it does not exist on `window`.
275
303
  *
@@ -284,7 +312,7 @@ declare function checkWallet(type?: WalletType): boolean;
284
312
  *
285
313
  * @see https://docs.keplr.app
286
314
  */
287
- declare function getKeplr(): Keplr;
315
+ declare const getKeplr: () => Keplr;
288
316
  /**
289
317
  * Function to return Leap object (which is {@link Keplr}) and throws and error if it does not exist on `window`.
290
318
  *
@@ -299,7 +327,7 @@ declare function getKeplr(): Keplr;
299
327
  *
300
328
  * @see https://docs.keplr.app
301
329
  */
302
- declare function getLeap(): Keplr;
330
+ declare const getLeap: () => Keplr;
303
331
  /**
304
332
  * Function to return wallet object based on given {@link WalletType} or from store and throws an error if it does not
305
333
  * exist on `window` or unknown wallet type.
@@ -312,8 +340,8 @@ declare function getLeap(): Keplr;
312
340
  *
313
341
  * @see {@link getKeplr}
314
342
  */
315
- declare function getWallet(type?: WalletType): Keplr;
316
- declare function getAvailableWallets(): Record<WalletType, boolean>;
343
+ declare const getWallet: (type?: WalletType) => Keplr;
344
+ declare const getAvailableWallets: () => Record<WalletType, boolean>;
317
345
 
318
346
  interface GrazAdapter {
319
347
  name: string;
@@ -351,13 +379,13 @@ interface UseAccountArgs {
351
379
  * });
352
380
  * ```
353
381
  */
354
- declare function useAccount({ onConnect, onDisconnect }?: UseAccountArgs): {
382
+ declare const useAccount: ({ onConnect, onDisconnect }?: UseAccountArgs) => {
355
383
  data: Key | null;
356
384
  isConnected: boolean;
357
385
  isConnecting: boolean;
358
386
  isDisconnected: boolean;
359
387
  isReconnecting: boolean;
360
- reconnect: typeof reconnect;
388
+ reconnect: () => void;
361
389
  status: "connected" | "connecting" | "reconnecting" | "disconnected";
362
390
  };
363
391
  /**
@@ -376,7 +404,7 @@ declare function useAccount({ onConnect, onDisconnect }?: UseAccountArgs): {
376
404
  * useBalances("cosmos1kpzxx2lxg05xxn8mfygrerhmkj0ypn8edmu2pu");
377
405
  * ```
378
406
  */
379
- declare function useBalances(bech32Address?: string): UseQueryResult<Coin[]>;
407
+ declare const useBalances: (bech32Address?: string) => UseQueryResult<Coin[]>;
380
408
  /**
381
409
  * graz query hook to retrieve specific asset balance from current account or given address.
382
410
  *
@@ -394,7 +422,7 @@ declare function useBalances(bech32Address?: string): UseQueryResult<Coin[]>;
394
422
  * useBalance("atom", "cosmos1kpzxx2lxg05xxn8mfygrerhmkj0ypn8edmu2pu");
395
423
  * ```
396
424
  */
397
- declare function useBalance(denom: string, bech32Address?: string): UseQueryResult<Coin | undefined>;
425
+ declare const useBalance: (denom: string, bech32Address?: string) => UseQueryResult<Coin | undefined>;
398
426
  declare type UseConnectChainArgs = MutationEventArgs<ConnectArgs, Key>;
399
427
  /**
400
428
  * graz mutation hook to execute wallet connection with optional arguments to
@@ -428,7 +456,7 @@ declare type UseConnectChainArgs = MutationEventArgs<ConnectArgs, Key>;
428
456
  *
429
457
  * @see {@link connect}
430
458
  */
431
- declare function useConnect({ onError, onLoading, onSuccess }?: UseConnectChainArgs): {
459
+ declare const useConnect: ({ onError, onLoading, onSuccess }?: UseConnectChainArgs) => {
432
460
  connect: (args?: ConnectArgs) => void;
433
461
  connectAsync: (args?: ConnectArgs) => Promise<Key>;
434
462
  error: unknown;
@@ -461,7 +489,7 @@ declare function useConnect({ onError, onLoading, onSuccess }?: UseConnectChainA
461
489
  *
462
490
  * @see {@link disconnect}
463
491
  */
464
- declare function useDisconnect({ onError, onLoading, onSuccess }?: MutationEventArgs): {
492
+ declare const useDisconnect: ({ onError, onLoading, onSuccess }?: MutationEventArgs) => {
465
493
  disconnect: (forget?: boolean) => void;
466
494
  disconnectAsync: (forget?: boolean) => Promise<void>;
467
495
  error: unknown;
@@ -480,7 +508,7 @@ declare function useDisconnect({ onError, onLoading, onSuccess }?: MutationEvent
480
508
  * const { signer, signerAmino, signerAuto } = useOfflineSigners();
481
509
  * ```
482
510
  */
483
- declare function useOfflineSigners(): {
511
+ declare const useOfflineSigners: () => {
484
512
  signer: (_cosmjs_proto_signing.OfflineSigner & _cosmjs_proto_signing.OfflineDirectSigner) | null;
485
513
  signerAmino: _cosmjs_proto_signing.OfflineSigner | null;
486
514
  signerAuto: _cosmjs_proto_signing.OfflineSigner | null;
@@ -491,7 +519,7 @@ declare function useOfflineSigners(): {
491
519
  * @deprecated prefer using {@link useOfflineSigners}
492
520
  * @see {@link useOfflineSigners}
493
521
  */
494
- declare function useSigners(): {
522
+ declare const useSigners: () => {
495
523
  signer: (_cosmjs_proto_signing.OfflineSigner & _cosmjs_proto_signing.OfflineDirectSigner) | null;
496
524
  signerAmino: _cosmjs_proto_signing.OfflineSigner | null;
497
525
  signerAuto: _cosmjs_proto_signing.OfflineSigner | null;
@@ -503,16 +531,16 @@ declare function useSigners(): {
503
531
  *
504
532
  * @example
505
533
  * ```ts
506
- * import { useStakedBalances } from "graz";
534
+ * import { useBalanceStaked } from "graz";
507
535
  *
508
536
  * // basic example
509
- * const { data, isFetching, refetch, ... } = useStakedBalances();
537
+ * const { data, isFetching, refetch, ... } = useBalanceStaked();
510
538
  *
511
539
  * // with custom bech32 address
512
- * useStakedBalances("cosmos1kpzxx2lxg05xxn8mfygrerhmkj0ypn8edmu2pu");
540
+ * useBalanceStaked("cosmos1kpzxx2lxg05xxn8mfygrerhmkj0ypn8edmu2pu");
513
541
  * ```
514
542
  */
515
- declare function useStakedBalances(bech32Address?: string): UseQueryResult<Coin | null>;
543
+ declare const useBalanceStaked: (bech32Address?: string) => UseQueryResult<Coin | null>;
516
544
 
517
545
  /**
518
546
  * graz hook to retrieve connected account's active chain
@@ -523,7 +551,7 @@ declare function useStakedBalances(bech32Address?: string): UseQueryResult<Coin
523
551
  * const { rpc, rest, chainId, currencies } = useActiveChain();
524
552
  * ```
525
553
  */
526
- declare function useActiveChain(): GrazChain | null;
554
+ declare const useActiveChain: () => GrazChain | null;
527
555
  /**
528
556
  * graz hook to retrieve specific connected account's currency
529
557
  *
@@ -535,7 +563,7 @@ declare function useActiveChain(): GrazChain | null;
535
563
  * const { data: currency, ... } = useActiveChainCurrency("juno");
536
564
  * ```
537
565
  */
538
- declare function useActiveChainCurrency(denom: string): UseQueryResult<AppCurrency | undefined>;
566
+ declare const useActiveChainCurrency: (denom: string) => UseQueryResult<AppCurrency | undefined>;
539
567
  /**
540
568
  * graz hook to retrieve active chain validators with given query client and optional bond status
541
569
  *
@@ -551,30 +579,30 @@ declare function useActiveChainCurrency(denom: string): UseQueryResult<AppCurren
551
579
  * const { data: response, ... } = useActiveChainValidators(queryClient);
552
580
  * ```
553
581
  */
554
- declare function useActiveChainValidators<T extends QueryClient & StakingExtension>(queryClient: T | undefined, status?: BondStatusString): UseQueryResult<QueryValidatorsResponse>;
582
+ declare const useActiveChainValidators: <T extends QueryClient & StakingExtension>(queryClient: T | undefined, status?: BondStatusString) => UseQueryResult<QueryValidatorsResponse>;
555
583
  /**
556
584
  * graz hook to retrieve last connected chain info
557
585
  *
558
586
  * @example
559
587
  * ```ts
560
588
  * import { useRecentChain, connect, mainnetChains } from "graz";
561
- * const recentChain = useRecentChain();
589
+ * const { data: recentChain, clear } = useRecentChain();
562
590
  * try {
563
- * connect();
564
- * } catch {
565
591
  * connect(mainnetChains.cosmos);
592
+ * } catch {
593
+ * connect(recentChain);
566
594
  * }
567
595
  * ```
568
596
  *
569
597
  * @see {@link useActiveChain}
570
598
  */
571
- declare function useRecentChain(): {
599
+ declare const useRecentChain: () => {
572
600
  data: GrazChain | null;
573
- clear: typeof clearRecentChain;
601
+ clear: () => void;
574
602
  };
575
603
  declare type UseSuggestChainArgs = MutationEventArgs<ChainInfo>;
576
604
  /**
577
- * graz mutation hook to suggest chain to Keplr Wallet
605
+ * graz mutation hook to suggest chain to a Wallet
578
606
  *
579
607
  * @example
580
608
  * ```ts
@@ -589,7 +617,7 @@ declare type UseSuggestChainArgs = MutationEventArgs<ChainInfo>;
589
617
  * });
590
618
  * ```
591
619
  */
592
- declare function useSuggestChain({ onError, onLoading, onSuccess }?: UseSuggestChainArgs): {
620
+ declare const useSuggestChain: ({ onError, onLoading, onSuccess }?: UseSuggestChainArgs) => {
593
621
  error: unknown;
594
622
  isLoading: boolean;
595
623
  isSuccess: boolean;
@@ -602,7 +630,7 @@ declare type UseSuggestChainAndConnectArgs = MutationEventArgs<SuggestChainAndCo
602
630
  account: Key;
603
631
  }>;
604
632
  /**
605
- * graz mutation hook to suggest chain to Keplr Wallet and connect account
633
+ * graz mutation hook to suggest chain to a Wallet and connect account
606
634
  * afterwards
607
635
  *
608
636
  * @example
@@ -631,7 +659,7 @@ declare type UseSuggestChainAndConnectArgs = MutationEventArgs<SuggestChainAndCo
631
659
  * });
632
660
  * ```
633
661
  */
634
- declare function useSuggestChainAndConnect({ onError, onLoading, onSuccess }?: UseSuggestChainAndConnectArgs): {
662
+ declare const useSuggestChainAndConnect: ({ onError, onLoading, onSuccess }?: UseSuggestChainAndConnectArgs) => {
635
663
  error: unknown;
636
664
  isLoading: boolean;
637
665
  isSuccess: boolean;
@@ -647,6 +675,18 @@ declare function useSuggestChainAndConnect({ onError, onLoading, onSuccess }?: U
647
675
  }, unknown, SuggestChainAndConnectArgs, unknown>;
648
676
  };
649
677
 
678
+ interface UseQueryClient {
679
+ (): UseQueryResult<QueryClient>;
680
+ <A extends object>(setupA: ExtensionSetup<A>): UseQueryResult<QueryClient & A>;
681
+ <A extends object, B extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>): UseQueryResult<QueryClient & A & B>;
682
+ <A extends object, B extends object, C extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>): UseQueryResult<QueryClient & A & B & C>;
683
+ <A extends object, B extends object, C extends object, D extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>): UseQueryResult<QueryClient & A & B & C & D>;
684
+ <A extends object, B extends object, C extends object, D extends object, E extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>): UseQueryResult<QueryClient & A & B & C & D & E>;
685
+ <A extends object, B extends object, C extends object, D extends object, E extends object, F extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>): UseQueryResult<QueryClient & A & B & C & D & E & F>;
686
+ <A extends object, B extends object, C extends object, D extends object, E extends object, F extends object, G extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>, setupG: ExtensionSetup<G>): UseQueryResult<QueryClient & A & B & C & D & E & F & G>;
687
+ <A extends object, B extends object, C extends object, D extends object, E extends object, F extends object, G extends object, H extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>, setupG: ExtensionSetup<G>, setupH: ExtensionSetup<H>): UseQueryResult<QueryClient & A & B & C & D & E & F & G & H>;
688
+ <A extends object, B extends object, C extends object, D extends object, E extends object, F extends object, G extends object, H extends object, I extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>, setupG: ExtensionSetup<G>, setupH: ExtensionSetup<H>, setupI: ExtensionSetup<I>): UseQueryResult<QueryClient & A & B & C & D & E & F & G & H & I>;
689
+ }
650
690
  /**
651
691
  * graz query hook to create and use {@link QueryClient} similar when using {@link QueryClient.withExtensions}.
652
692
  *
@@ -669,19 +709,10 @@ declare function useSuggestChainAndConnect({ onError, onLoading, onSuccess }?: U
669
709
  *
670
710
  * @see {@link createQueryClient}
671
711
  */
672
- declare function useQueryClient(): UseQueryResult<QueryClient>;
673
- declare function useQueryClient<A extends object>(setupA: ExtensionSetup<A>): UseQueryResult<QueryClient & A>;
674
- declare function useQueryClient<A extends object, B extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>): UseQueryResult<QueryClient & A & B>;
675
- declare function useQueryClient<A extends object, B extends object, C extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>): UseQueryResult<QueryClient & A & B & C>;
676
- declare function useQueryClient<A extends object, B extends object, C extends object, D extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>): UseQueryResult<QueryClient & A & B & C & D>;
677
- declare function useQueryClient<A extends object, B extends object, C extends object, D extends object, E extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>): UseQueryResult<QueryClient & A & B & C & D & E>;
678
- declare function useQueryClient<A extends object, B extends object, C extends object, D extends object, E extends object, F extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>): UseQueryResult<QueryClient & A & B & C & D & E & F>;
679
- declare function useQueryClient<A extends object, B extends object, C extends object, D extends object, E extends object, F extends object, G extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>, setupG: ExtensionSetup<G>): UseQueryResult<QueryClient & A & B & C & D & E & F & G>;
680
- declare function useQueryClient<A extends object, B extends object, C extends object, D extends object, E extends object, F extends object, G extends object, H extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>, setupG: ExtensionSetup<G>, setupH: ExtensionSetup<H>): UseQueryResult<QueryClient & A & B & C & D & E & F & G & H>;
681
- declare function useQueryClient<A extends object, B extends object, C extends object, D extends object, E extends object, F extends object, G extends object, H extends object, I extends object>(setupA: ExtensionSetup<A>, setupB: ExtensionSetup<B>, setupC: ExtensionSetup<C>, setupD: ExtensionSetup<D>, setupE: ExtensionSetup<E>, setupF: ExtensionSetup<F>, setupG: ExtensionSetup<G>, setupH: ExtensionSetup<H>, setupI: ExtensionSetup<I>): UseQueryResult<QueryClient & A & B & C & D & E & F & G & H & I>;
712
+ declare const useQueryClient: UseQueryClient;
682
713
 
683
714
  /**
684
- * graz query hook to retrieve a CosmWasmClient. If there's no given arguments it will be using the current connected client
715
+ * graz query hook to retrieve a CosmWasmClient, StargateClient and Tendermint34Client. If there's no given arguments it will be using the current connected client
685
716
  *
686
717
  * @example
687
718
  * ```ts
@@ -694,7 +725,7 @@ declare function useQueryClient<A extends object, B extends object, C extends ob
694
725
  * useClient({ rpc: "https://rpc.cosmoshub.strange.love", });
695
726
  * ```
696
727
  */
697
- declare function useClients(args?: CreateClientArgs): UseQueryResult<GrazStore["clients"]>;
728
+ declare const useClients: (args?: CreateClientArgs) => UseQueryResult<GrazStore["clients"]>;
698
729
  /**
699
730
  * graz query hook to retrieve a SigningCosmWasmClient. If there's no given args it will be using the current connected signer
700
731
  *
@@ -713,7 +744,7 @@ declare function useClients(args?: CreateClientArgs): UseQueryResult<GrazStore["
713
744
  * });
714
745
  * ```
715
746
  */
716
- declare function useSigningClients(args?: CreateSigningClientArgs): UseQueryResult<GrazStore["signingClients"]>;
747
+ declare const useSigningClients: (args?: CreateSigningClientArgs) => UseQueryResult<GrazStore["signingClients"]>;
717
748
 
718
749
  /**
719
750
  * graz mutation hook to send tokens. Note: if `senderAddress` undefined, it will use current connected account address.
@@ -734,12 +765,12 @@ declare function useSigningClients(args?: CreateSigningClientArgs): UseQueryResu
734
765
  *
735
766
  * @see {@link sendTokens}
736
767
  */
737
- declare function useSendTokens({ onError, onLoading, onSuccess }?: MutationEventArgs): {
768
+ declare const useSendTokens: ({ onError, onLoading, onSuccess, }?: MutationEventArgs<SendTokensArgs, DeliverTxResponse>) => {
738
769
  error: unknown;
739
770
  isLoading: boolean;
740
771
  isSuccess: boolean;
741
- sendTokens: _tanstack_react_query.UseMutateFunction<_cosmjs_stargate.DeliverTxResponse, unknown, SendTokensArgs, unknown>;
742
- sendTokensAsync: _tanstack_react_query.UseMutateAsyncFunction<_cosmjs_stargate.DeliverTxResponse, unknown, SendTokensArgs, unknown>;
772
+ sendTokens: _tanstack_react_query.UseMutateFunction<DeliverTxResponse, unknown, SendTokensArgs, unknown>;
773
+ sendTokensAsync: _tanstack_react_query.UseMutateAsyncFunction<DeliverTxResponse, unknown, SendTokensArgs, unknown>;
743
774
  status: "error" | "idle" | "loading" | "success";
744
775
  };
745
776
  /**
@@ -760,14 +791,92 @@ declare function useSendTokens({ onError, onLoading, onSuccess }?: MutationEvent
760
791
  * })
761
792
  * ```
762
793
  */
763
- declare function useSendIbcTokens({ onError, onLoading, onSuccess }?: MutationEventArgs): {
794
+ declare const useSendIbcTokens: ({ onError, onLoading, onSuccess, }?: MutationEventArgs<SendIbcTokensArgs, DeliverTxResponse>) => {
764
795
  error: unknown;
765
796
  isLoading: boolean;
766
797
  isSuccess: boolean;
767
- sendIbcTokens: _tanstack_react_query.UseMutateFunction<_cosmjs_stargate.DeliverTxResponse, unknown, SendIbcTokensArgs, unknown>;
768
- sendIbcTokensAsync: _tanstack_react_query.UseMutateAsyncFunction<_cosmjs_stargate.DeliverTxResponse, unknown, SendIbcTokensArgs, unknown>;
798
+ sendIbcTokens: _tanstack_react_query.UseMutateFunction<DeliverTxResponse, unknown, SendIbcTokensArgs, unknown>;
799
+ sendIbcTokensAsync: _tanstack_react_query.UseMutateAsyncFunction<DeliverTxResponse, unknown, SendIbcTokensArgs, unknown>;
769
800
  status: "error" | "idle" | "loading" | "success";
770
801
  };
802
+ declare type UseInstantiateContractArgs<Message extends Record<string, unknown>> = {
803
+ codeId: number;
804
+ } & MutationEventArgs<InstantiateContractMutationArgs<Message>, InstantiateResult>;
805
+ /**
806
+ * graz mutation hook to instantiate a CosmWasm smart contract when supported.
807
+ *
808
+ * @example
809
+ * ```ts
810
+ * import { useInstantiateContract } from "graz"
811
+ *
812
+ * const { instantiateContract: instantiateMyContract } = useInstantiateContract({
813
+ * codeId: 4,
814
+ * onSuccess: ({ contractAddress }) => console.log('Address:', contractAddress)
815
+ * })
816
+ *
817
+ * const instantiateMessage = { foo: 'bar' };
818
+ * instantiateMyContract(instantiateMessage);
819
+ * ```
820
+ */
821
+ declare const useInstantiateContract: <Message extends Record<string, unknown>>({ codeId, onError, onLoading, onSuccess, }: UseInstantiateContractArgs<Message>) => {
822
+ error: unknown;
823
+ isLoading: boolean;
824
+ isSuccess: boolean;
825
+ instantiateContract: _tanstack_react_query.UseMutateFunction<InstantiateResult, unknown, InstantiateContractMutationArgs<Message>, unknown>;
826
+ instantiateContractAsync: _tanstack_react_query.UseMutateAsyncFunction<InstantiateResult, unknown, InstantiateContractMutationArgs<Message>, unknown>;
827
+ status: "error" | "idle" | "loading" | "success";
828
+ };
829
+ declare type UseExecuteContractArgs<Message extends Record<string, unknown>> = {
830
+ contractAddress: string;
831
+ } & MutationEventArgs<ExecuteContractMutationArgs<Message>, ExecuteResult>;
832
+ /**
833
+ * graz mutation hook for executing transactions against a CosmWasm smart
834
+ * contract.
835
+ *
836
+ * @example
837
+ * ```ts
838
+ * import { useExecuteContract } from "graz"
839
+ *
840
+ * interface GreetMessage {
841
+ * name: string;
842
+ * }
843
+ *
844
+ * interface GreetResponse {
845
+ * message: string;
846
+ * }
847
+ *
848
+ * const contractAddress = "cosmosfoobarbaz";
849
+ * const { executeContract } = useExecuteContract<ExecuteMessage>({ contractAddress });
850
+ * executeContract({ name: 'CosmWasm' }, {
851
+ * onSuccess: (data: GreetResponse) => console.log('Got message:', data.message);
852
+ * });
853
+ * ```
854
+ */
855
+ declare const useExecuteContract: <Message extends Record<string, unknown>>({ contractAddress, onError, onLoading, onSuccess, }: UseExecuteContractArgs<Message>) => {
856
+ error: unknown;
857
+ isLoading: boolean;
858
+ isSuccess: boolean;
859
+ executeContract: _tanstack_react_query.UseMutateFunction<ExecuteResult, unknown, ExecuteContractMutationArgs<Message>, unknown>;
860
+ executeContractAsync: _tanstack_react_query.UseMutateAsyncFunction<ExecuteResult, unknown, ExecuteContractMutationArgs<Message>, unknown>;
861
+ status: "error" | "idle" | "loading" | "success";
862
+ };
863
+ /**
864
+ * graz query hook for dispatching a "smart" query to a CosmWasm smart
865
+ * contract.
866
+ *
867
+ * @param address - The address of the contract to query
868
+ * @param queryMsg - The query message to send to the contract
869
+ * @returns A query result with the result returned by the smart contract.
870
+ */
871
+ declare const useQuerySmart: <TData, TError>(address?: string, queryMsg?: Record<string, unknown>) => UseQueryResult<TData, TError>;
872
+ /**
873
+ * graz query hook for dispatching a "raw" query to a CosmWasm smart contract.
874
+ *
875
+ * @param address - The address of the contract to query
876
+ * @param key - The key to lookup in the contract storage
877
+ * @returns A query result with raw byte array stored at the key queried.
878
+ */
879
+ declare const useQueryRaw: <TError>(address?: string, key?: string) => UseQueryResult<Uint8Array | null, TError>;
771
880
 
772
881
  /**
773
882
  * graz hook which returns boolean whether Keplr Wallet is supported
@@ -781,7 +890,7 @@ declare function useSendIbcTokens({ onError, onLoading, onSuccess }?: MutationEv
781
890
  *
782
891
  * @deprecated prefer using {@link useCheckWallet}
783
892
  */
784
- declare function useCheckKeplr(): UseQueryResult<boolean>;
893
+ declare const useCheckKeplr: () => UseQueryResult<boolean>;
785
894
  /**
786
895
  * graz query hook to check whether given {@link WalletType} or default configured wallet is supported
787
896
  *
@@ -793,7 +902,7 @@ declare function useCheckKeplr(): UseQueryResult<boolean>;
793
902
  * const { data: isKeplrSupported } = useCheckWallet("keplr");
794
903
  * ```
795
904
  */
796
- declare function useCheckWallet(type?: WalletType): UseQueryResult<boolean>;
905
+ declare const useCheckWallet: (type?: WalletType) => UseQueryResult<boolean>;
797
906
 
798
907
  declare type GrazProviderProps = Partial<QueryClientProviderProps> & {
799
908
  grazOptions?: ConfigureGrazArgs;
@@ -816,19 +925,19 @@ declare type GrazProviderProps = Partial<QueryClientProviderProps> & {
816
925
  *
817
926
  * @see https://tanstack.com/query
818
927
  */
819
- declare function GrazProvider({ children, grazOptions, ...props }: GrazProviderProps): JSX.Element;
928
+ declare const GrazProvider: FC<GrazProviderProps>;
820
929
 
821
930
  /**
822
931
  * Graz custom hook to track `keplr_keystorechange` event and reconnect state
823
932
  *
824
933
  * **Note: only use this hook if not using graz's provider component.**
825
934
  */
826
- declare function useGrazEvents(): null;
935
+ declare const useGrazEvents: () => null;
827
936
  /**
828
937
  * Null component to run {@link useGrazEvents} without affecting component tree.
829
938
  *
830
939
  * **Note: only use this component if not using graz's provider component.**
831
940
  */
832
- declare function GrazEvents(): null;
941
+ declare const GrazEvents: FC;
833
942
 
834
- export { ChainInfoWithPath, ConfigureGrazArgs, ConnectArgs, CreateClientArgs, CreateSigningClientArgs, Dictionary, GrazAdapter, GrazChain, GrazEvents, GrazProvider, GrazProviderProps, Maybe, SendIbcTokensArgs, SendTokensArgs, SuggestChainAndConnectArgs, UseAccountArgs, UseConnectChainArgs, UseSuggestChainAndConnectArgs, UseSuggestChainArgs, WALLET_TYPES, WalletType, checkWallet, clearRecentChain, configureGraz, connect, createClients, createQueryClient, createSigningClients, defineChain, defineChainInfo, defineChains, disconnect, getActiveChainCurrency, getAvailableWallets, getBalances, getKeplr, getLeap, getRecentChain, getStakedBalances, getWallet, mainnetChains, mainnetChainsArray, reconnect, sendIbcTokens, sendTokens, suggestChain, suggestChainAndConnect, testnetChains, testnetChainsArray, useAccount, useActiveChain, useActiveChainCurrency, useActiveChainValidators, useBalance, useBalances, useCheckKeplr, useCheckWallet, useClients, useConnect, useDisconnect, useGrazEvents, useOfflineSigners, useQueryClient, useRecentChain, useSendIbcTokens, useSendTokens, useSigners, useSigningClients, useStakedBalances, useSuggestChain, useSuggestChainAndConnect };
943
+ export { ChainInfoWithPath, ConfigureGrazArgs, ConnectArgs, CreateClientArgs, CreateQueryClient, CreateSigningClientArgs, Dictionary, ExecuteContractArgs, ExecuteContractMutationArgs, GrazAdapter, GrazChain, GrazEvents, GrazProvider, GrazProviderProps, InstantiateContractArgs, InstantiateContractMutationArgs, Maybe, SendIbcTokensArgs, SendTokensArgs, SuggestChainAndConnectArgs, UseAccountArgs, UseConnectChainArgs, UseExecuteContractArgs, UseInstantiateContractArgs, UseQueryClient, UseSuggestChainAndConnectArgs, UseSuggestChainArgs, WALLET_TYPES, WalletType, checkWallet, clearRecentChain, configureGraz, connect, createClients, createQueryClient, createSigningClients, defineChain, defineChainInfo, defineChains, disconnect, executeContract, getActiveChainCurrency, getAvailableWallets, getBalanceStaked, getBalances, getKeplr, getLeap, getQueryRaw, getQuerySmart, getRecentChain, getWallet, instantiateContract, mainnetChains, mainnetChainsArray, reconnect, sendIbcTokens, sendTokens, suggestChain, suggestChainAndConnect, testnetChains, testnetChainsArray, useAccount, useActiveChain, useActiveChainCurrency, useActiveChainValidators, useBalance, useBalanceStaked, useBalances, useCheckKeplr, useCheckWallet, useClients, useConnect, useDisconnect, useExecuteContract, useGrazEvents, useInstantiateContract, useOfflineSigners, useQueryClient, useQueryRaw, useQuerySmart, useRecentChain, useSendIbcTokens, useSendTokens, useSigners, useSigningClients, useSuggestChain, useSuggestChainAndConnect };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var Ne=Object.create;var E=Object.defineProperty;var _e=Object.getOwnPropertyDescriptor;var He=Object.getOwnPropertyNames;var Le=Object.getPrototypeOf,Ve=Object.prototype.hasOwnProperty;var Je=(e,t)=>{for(var o in t)E(e,o,{get:t[o],enumerable:!0})},re=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of He(t))!Ve.call(e,n)&&n!==o&&E(e,n,{get:()=>t[n],enumerable:!(i=_e(t,n))||i.enumerable});return e};var se=(e,t,o)=>(o=e!=null?Ne(Le(e)):{},re(t||!e||!e.__esModule?E(o,"default",{value:e,enumerable:!0}):o,e)),Ye=e=>re(E({},"__esModule",{value:!0}),e);var Nt={};Je(Nt,{GrazEvents:()=>te,GrazProvider:()=>Ft,WALLET_TYPES:()=>B,WalletType:()=>T,checkWallet:()=>j,clearRecentChain:()=>z,configureGraz:()=>P,connect:()=>C,createClients:()=>S,createQueryClient:()=>v,createSigningClients:()=>A,defineChain:()=>xt,defineChainInfo:()=>St,defineChains:()=>ht,disconnect:()=>U,getActiveChainCurrency:()=>K,getAvailableWallets:()=>Xe,getBalances:()=>W,getKeplr:()=>ue,getLeap:()=>pe,getRecentChain:()=>Ze,getStakedBalances:()=>M,getWallet:()=>f,mainnetChains:()=>At,mainnetChainsArray:()=>Et,reconnect:()=>l,sendIbcTokens:()=>F,sendTokens:()=>R,suggestChain:()=>w,suggestChainAndConnect:()=>O,testnetChains:()=>bt,testnetChainsArray:()=>jt,useAccount:()=>h,useActiveChain:()=>Gt,useActiveChainCurrency:()=>vt,useActiveChainValidators:()=>qt,useBalance:()=>Dt,useBalances:()=>Ue,useCheckKeplr:()=>wt,useCheckWallet:()=>d,useClients:()=>Ot,useConnect:()=>kt,useDisconnect:()=>It,useGrazEvents:()=>Pe,useOfflineSigners:()=>ze,useQueryClient:()=>Kt,useRecentChain:()=>Qt,useSendIbcTokens:()=>Mt,useSendTokens:()=>Wt,useSigners:()=>Tt,useSigningClients:()=>Pt,useStakedBalances:()=>Bt,useSuggestChain:()=>Ut,useSuggestChainAndConnect:()=>zt});module.exports=Ye(Nt);var me=require("@cosmjs/stargate");var ie=se(require("zustand")),b=require("zustand/middleware");var T=(o=>(o.KEPLR="keplr",o.LEAP="leap",o))(T||{}),B=["keplr","leap"];var G={account:null,activeChain:null,balances:null,clients:null,defaultChain:null,defaultSigningClient:"stargate",offlineSigner:null,offlineSignerAmino:null,offlineSignerAuto:null,recentChain:null,signingClients:null,status:"disconnected",walletType:"keplr",_notFoundFn:()=>null,_reconnect:!1},$e={name:"graz",partialize:e=>({activeChain:e.activeChain,recentChain:e.recentChain,_reconnect:e._reconnect}),version:1},c=(0,ie.default)((0,b.subscribeWithSelector)((0,b.persist)(()=>G,$e)));var q=require("@cosmjs/cosmwasm-stargate"),Q=require("@cosmjs/stargate"),ae=require("@cosmjs/tendermint-rpc");var ce=require("@cosmjs/stargate"),g=require("@cosmjs/utils");function v(...e){let{tendermint:t}=c.getState().clients,o=new ce.QueryClient(t),i=e.map(n=>n(o));for(let n of i){(0,g.assert)((0,g.isNonNullObject)(n),"Extension must be a non-null object");for(let[s,r]of Object.entries(n)){(0,g.assert)((0,g.isNonNullObject)(r),`Module must be a non-null object. Found type ${typeof r} for module "${s}".`);let u=o[s]||{};o[s]={...u,...r}}}return o}async function S({rpc:e,rpcHeaders:t}){let o={url:e,headers:{...t||{}}},[i,n,s]=await Promise.all([q.SigningCosmWasmClient.connect(o),Q.SigningStargateClient.connect(o),ae.Tendermint34Client.connect(e)]);return{cosmWasm:i,stargate:n,tendermint:s}}async function A(e){let{rpc:t,rpcHeaders:o,offlineSignerAuto:i,cosmWasmSignerOptions:n={},stargateSignerOptions:s={}}=e,r={url:t,headers:{...o||{}}},[u,p]=await Promise.all([q.SigningCosmWasmClient.connectWithSigner(r,i,n),Q.SigningStargateClient.connectWithSigner(r,i,s)]);return{cosmWasm:u,stargate:p}}function j(e=c.getState().walletType){try{return f(e),!0}catch(t){return console.error(t),!1}}function ue(){if(typeof window.keplr<"u")return window.keplr;throw c.getState()._notFoundFn(),new Error("window.keplr is not defined")}function pe(){if(typeof window.leap<"u")return window.leap;throw c.getState()._notFoundFn(),new Error("window.leap is not defined")}function f(e=c.getState().walletType){switch(e){case"keplr":return ue();case"leap":return pe();default:throw new Error("Unknown wallet type")}}function Xe(){return Object.fromEntries(B.map(e=>[e,j(e)]))}async function C(e){try{let{defaultChain:t,recentChain:o,walletType:i}=c.getState(),n=(e==null?void 0:e.walletType)||i,s=f(n),r=e||o||t;if(!r)throw new Error("No last known connected chain, connect action requires chain info");c.setState(I=>{let Fe=I._reconnect;return I.activeChain&&I.activeChain.chainId!==r.chainId?{status:"connecting"}:Fe?{status:"reconnecting"}:{status:"connecting"}}),await s.enable(r.chainId);let u=s.getOfflineSigner(r.chainId),p=s.getOfflineSignerOnlyAmino(r.chainId),m=await s.getOfflineSignerAuto(r.chainId),We=r.gas?me.GasPrice.fromString(`${r.gas.price}${r.gas.denom}`):void 0,[oe,Me,Re]=await Promise.all([s.getKey(r.chainId),S(r),A({...r,offlineSignerAuto:m,cosmWasmSignerOptions:{gasPrice:We,...(e==null?void 0:e.signerOpts)||{}}})]);return c.setState({account:oe,activeChain:r,clients:Me,offlineSigner:u,offlineSignerAmino:p,offlineSignerAuto:m,recentChain:r,signingClients:Re,status:"connected",walletType:n,_reconnect:!0}),oe}catch(t){throw c.getState().account===null&&c.setState({status:"disconnected"}),t}}async function U(e=!1){return c.setState(t=>({...G,recentChain:e?null:t.recentChain})),Promise.resolve()}function l(){let{activeChain:e}=c.getState();e&&C(e)}function z(){c.setState({recentChain:null})}function K(e){let{activeChain:t}=c.getState();return t==null?void 0:t.currencies.find(o=>o.coinMinimalDenom===e)}function Ze(){return c.getState().recentChain}async function w(e){return await f().experimentalSuggestChain(e),e}async function O({chainInfo:e,...t}){let o=await w(e);return{account:await C({chainId:e.chainId,currencies:e.currencies,rest:e.rest,rpc:e.rpc,...t}),chain:o}}function P(e={}){return c.setState(t=>({defaultChain:e.defaultChain||t.defaultChain,defaultSigningClient:e.defaultSigningClient||t.defaultSigningClient,walletType:e.defaultWallet||t.walletType,_notFoundFn:e.onNotFound||t._notFoundFn})),e}async function W(e){let{activeChain:t,signingClients:o}=c.getState();if(!t||!o)throw new Error("No connected account detected");let{defaultSigningClient:i}=c.getState();return await Promise.all(t.currencies.map(async s=>o[i].getBalance(e,s.coinMinimalDenom)))}async function M(e){let{clients:t}=c.getState();if(!(t!=null&&t.stargate))throw new Error("Stargate client is not ready");return t.stargate.getBalanceStaked(e)}async function R({senderAddress:e,recipientAddress:t,amount:o,fee:i,memo:n}){let{signingClients:s,defaultSigningClient:r}=c.getState();if(!s)throw new Error("No connected account detected");if(!e)throw new Error("senderAddress is not defined");return s[r].sendTokens(e,t,o,i,n)}async function F({senderAddress:e,recipientAddress:t,transferAmount:o,sourcePort:i,sourceChannel:n,timeoutHeight:s,timeoutTimestamp:r,fee:u,memo:p}){let{signingClients:m}=c.getState();if(!(m!=null&&m.stargate))throw new Error("Stargate signing client is not ready");if(!e)throw new Error("senderAddress is not defined");return m.stargate.sendIbcTokens(e,t,o,i,n,s,r,u,p)}var ye=require("@keplr-wallet/cosmos"),ge={coinDenom:"axl",coinMinimalDenom:"uaxl",coinDecimals:6,coinGeckoId:"axelar-network",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/axl.png"},et={coinDenom:"usdc",coinMinimalDenom:"uusdc",coinDecimals:6,coinGeckoId:"usd-coin",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.png"},tt={coinDenom:"dai",coinMinimalDenom:"dai-wei",coinDecimals:18,coinGeckoId:"dai",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/dai.png"},nt={coinDenom:"usdt",coinMinimalDenom:"uusdt",coinDecimals:6,coinGeckoId:"tether",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdt.png"},ot={coinDenom:"weth-wei",coinMinimalDenom:"weth",coinDecimals:18,coinGeckoId:"weth",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/weth.png"},rt={coinDenom:"wbtc-satoshi",coinMinimalDenom:"wbtc",coinDecimals:8,coinGeckoId:"wrapped-bitcoin",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/wbtc.png"},le=[ge,et,tt,nt,ot,rt],N={rpc:"https://rpc.axelar.strange.love",rest:"https://api.axelar.strange.love",chainId:"axelar-dojo-1",chainName:"Axelar",stakeCurrency:ge,bip44:{coinType:118},bech32Config:ye.Bech32Address.defaultBech32Config("axelar"),currencies:le,feeCurrencies:le};var Ce=require("@keplr-wallet/cosmos"),de={coinDenom:"atom",coinMinimalDenom:"uatom",coinDecimals:6,coinGeckoId:"cosmos",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/cosmoshub/images/atom.png"},fe=[de],D={rpc:"https://rpc.cosmoshub.strange.love",rest:"https://api.cosmoshub.strange.love",chainId:"cosmoshub-4",chainName:"Cosmos Hub",stakeCurrency:de,bip44:{coinType:118},bech32Config:Ce.Bech32Address.defaultBech32Config("cosmos"),currencies:fe,feeCurrencies:fe};var xe=require("@keplr-wallet/cosmos"),Se={coinDenom:"juno",coinMinimalDenom:"ujuno",coinDecimals:6,coinGeckoId:"juno-network",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/juno.png"},st={coinDenom:"neta",coinMinimalDenom:"cw20:juno168ctmpyppk90d34p3jjy658zf5a5l3w8wk35wht6ccqj4mr0yv8s4j5awr",coinDecimals:6,coinGeckoId:"neta",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/neta.png"},it={coinDenom:"marble",coinMinimalDenom:"cw20:juno1g2g7ucurum66d42g8k5twk34yegdq8c82858gz0tq2fc75zy7khssgnhjl",coinDecimals:3,coinGeckoId:"marble",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/marble.png"},ct={coinDenom:"hope",coinMinimalDenom:"cw20:juno1re3x67ppxap48ygndmrc7har2cnc7tcxtm9nplcas4v0gc3wnmvs3s807z",coinDecimals:6,coinGeckoId:"hope-galaxy",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/hope.png"},at={coinDenom:"rac",coinMinimalDenom:"cw20:juno1r4pzw8f9z0sypct5l9j906d47z998ulwvhvqe5xdwgy8wf84583sxwh0pa",coinDecimals:6,coinGeckoId:"racoon",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/rac.png"},ut={coinDenom:"block",coinMinimalDenom:"cw20:juno1y9rf7ql6ffwkv02hsgd4yruz23pn4w97p75e2slsnkm0mnamhzysvqnxaq",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/block.png"},pt={coinDenom:"dhk",coinMinimalDenom:"cw20:juno1tdjwrqmnztn2j3sj2ln9xnyps5hs48q3ddwjrz7jpv6mskappjys5czd49",coinDecimals:0,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/dhk.png"},mt={coinDenom:"raw",coinMinimalDenom:"cw20:juno15u3dt79t6sxxa3x3kpkhzsy56edaa5a66wvt3kxmukqjz2sx0hes5sn38g",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/raw.png",coinGeckoId:"junoswap-raw-dao"},lt={coinDenom:"asvt",coinMinimalDenom:"cw20:juno17wzaxtfdw5em7lc94yed4ylgjme63eh73lm3lutp2rhcxttyvpwsypjm4w",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/asvt.png"},yt={coinDenom:"hns",coinMinimalDenom:"cw20:juno1ur4jx0sxchdevahep7fwq28yk4tqsrhshdtylz46yka3uf6kky5qllqp4k",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/hns.svg"},gt={coinDenom:"joe",coinMinimalDenom:"cw20:juno1n7n7d5088qlzlj37e9mgmkhx6dfgtvt02hqxq66lcap4dxnzdhwqfmgng3",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/joe.png"},he=[Se,st,it,ct,at,ut,pt,mt,lt,yt,gt],_={rpc:"https://rpc.juno.strange.love",rest:"https://api.juno.strange.love",chainId:"juno-1",chainName:"Juno",stakeCurrency:Se,bip44:{coinType:118},bech32Config:xe.Bech32Address.defaultBech32Config("juno"),currencies:he,feeCurrencies:he};var Ee=require("@keplr-wallet/cosmos"),be={coinDenom:"osmo",coinMinimalDenom:"uosmo",coinDecimals:6,coinGeckoId:"osmosis",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/cosmoshub/images/atom.png"},ft={coinDenom:"ion",coinMinimalDenom:"uion",coinDecimals:6,coinGeckoId:"ion",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/ion.png"},Ae=[be,ft],H={rpc:"https://rpc.osmosis.strange.love",rest:"https://api.osmosis.strange.love",chainId:"osmosis-1",chainName:"Osmosis",stakeCurrency:be,bip44:{coinType:118},bech32Config:Ee.Bech32Address.defaultBech32Config("osmo"),currencies:Ae,feeCurrencies:Ae};var we=require("@keplr-wallet/cosmos"),De={coinDenom:"somm",coinMinimalDenom:"usomm",coinDecimals:6,coinGeckoId:"sommelier",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/sommelier/images/somm.png"},je=[De],L={rpc:"https://rpc.sommelier.strange.love",rest:"https://api.sommelier.strange.love",chainId:"sommelier-3",chainName:"Sommelier",stakeCurrency:De,bip44:{coinType:118},bech32Config:we.Bech32Address.defaultBech32Config("somm"),currencies:je,feeCurrencies:je};var Ie=require("@keplr-wallet/cosmos"),Te={coinDenom:"CRE",coinMinimalDenom:"ucre",coinDecimals:6,coinGeckoId:"crescent",coinImageUrl:"https://raw.githubusercontent.com/crescent-network/asset/main/images/coin/CRE.png"},ke=[Te],V={rpc:"https://testnet-endpoint.crescent.network/rpc/crescent",rest:"https://testnet-endpoint.crescent.network/api/crescent",chainId:"mooncat-1-1",chainName:"Crescent Testnet",bip44:{coinType:118},bech32Config:Ie.Bech32Address.defaultBech32Config("CRE"),currencies:ke,feeCurrencies:ke,stakeCurrency:Te,coinType:118};var Be=require("@keplr-wallet/cosmos"),J={coinDenom:"junox",coinMinimalDenom:"ujunox",coinDecimals:6,coinGeckoId:"juno-network",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/juno.png"},Ct=[J],Y={rpc:"https://rpc.uni.junonetwork.io",rest:"https://api.uni.junonetwork.io",chainId:"uni-3",chainName:"Juno Testnet",stakeCurrency:J,bip44:{coinType:118},bech32Config:Be.Bech32Address.defaultBech32Config("juno"),currencies:Ct,feeCurrencies:[J],coinType:118};var Ge=require("@keplr-wallet/cosmos"),$={coinDenom:"osmo",coinMinimalDenom:"uosmo",coinDecimals:6,coinGeckoId:"osmosis",coinImageUrl:"https://dhj8dql1kzq2v.cloudfront.net/white/osmo.png"},dt=[$],X={rpc:"https://testnet-rpc.osmosis.zone",rest:"https://testnet-rest.osmosis.zone",chainId:"osmo-test-4",chainName:"Osmosis Testnet",stakeCurrency:$,bip44:{coinType:118},bech32Config:Ge.Bech32Address.defaultBech32Config("osmo"),currencies:dt,feeCurrencies:[$],coinType:118};function ht(e){return e}function xt(e){return e}function St(e){return e}var At={axelar:N,cosmos:D,cosmoshub:D,juno:_,osmosis:H,sommelier:L},Et=[N,D,_,H,L],bt={crescent:V,juno:Y,osmosis:X},jt=[V,Y,X];var y=require("@tanstack/react-query"),qe=require("react"),Qe=se(require("zustand/shallow"));var ve=require("@tanstack/react-query");function wt(){return d("keplr")}function d(e){let t=c(n=>e||n.walletType);return(0,ve.useQuery)(["USE_CHECK_WALLET",t],({queryKey:[,n]})=>j(n))}function h({onConnect:e,onDisconnect:t}={}){let o=c(n=>n.account),i=c(n=>n.status);return(0,qe.useEffect)(()=>c.subscribe(n=>n.status,(n,s)=>{if(n==="connected"){let r=c.getState();e==null||e({account:r.account,isReconnect:s==="reconnecting"})}n==="disconnected"&&(t==null||t())}),[e,t]),{data:o,isConnected:Boolean(o),isConnecting:i==="connecting",isDisconnected:i==="disconnected",isReconnecting:i==="reconnecting",reconnect:l,status:i}}function Ue(e){let{data:t}=h(),o=e||(t==null?void 0:t.bech32Address);return(0,y.useQuery)(["USE_BALANCES",o],({queryKey:[,s]})=>W(s),{enabled:Boolean(o)})}function Dt(e,t){let{data:o}=Ue(t);return(0,y.useQuery)(["USE_BALANCE",o,e,t],({queryKey:[,s]})=>s==null?void 0:s.find(r=>r.denom===e),{enabled:Boolean(o)})}function kt({onError:e,onLoading:t,onSuccess:o}={}){let n=(0,y.useMutation)(["USE_CONNECT",e,t,o],C,{onError:(r,u)=>Promise.resolve(e==null?void 0:e(r,u)),onMutate:t,onSuccess:r=>Promise.resolve(o==null?void 0:o(r))}),{data:s}=d();return{connect:r=>n.mutate(r),connectAsync:r=>n.mutateAsync(r),error:n.error,isLoading:n.isLoading,isSuccess:n.isSuccess,isSupported:Boolean(s),status:n.status}}function It({onError:e,onLoading:t,onSuccess:o}={}){let n=(0,y.useMutation)(["USE_DISCONNECT",e,t,o],U,{onError:s=>Promise.resolve(e==null?void 0:e(s,void 0)),onMutate:t,onSuccess:()=>Promise.resolve(o==null?void 0:o(void 0))});return{disconnect:s=>n.mutate(s),disconnectAsync:s=>n.mutateAsync(s),error:n.error,isLoading:n.isLoading,isSuccess:n.isSuccess,status:n.status}}function ze(){return c(e=>({signer:e.offlineSigner,signerAmino:e.offlineSignerAmino,signerAuto:e.offlineSignerAuto}),Qe.default)}function Tt(){return ze()}function Bt(e){let{data:t}=h(),o=e||(t==null?void 0:t.bech32Address);return(0,y.useQuery)(["USE_STAKED_BALANCES",o],({queryKey:[,s]})=>M(o),{enabled:Boolean(o)})}var x=require("@tanstack/react-query");function Gt(){return c(e=>e.activeChain)}function vt(e){return(0,x.useQuery)(["USE_ACTIVE_CHAIN_CURRENCY",e],({queryKey:[,i]})=>K(i))}function qt(e,t="BOND_STATUS_BONDED"){return(0,x.useQuery)(["USE_ACTIVE_CHAIN_VALIDATORS",e,t],({queryKey:[,n,s]})=>n.staking.validators(s),{enabled:typeof e<"u"})}function Qt(){return{data:c(t=>t.recentChain),clear:z}}function Ut({onError:e,onLoading:t,onSuccess:o}={}){let n=(0,x.useMutation)(["USE_SUGGEST_CHAIN",e,t,o],w,{onError:(s,r)=>Promise.resolve(e==null?void 0:e(s,r)),onMutate:t,onSuccess:s=>Promise.resolve(o==null?void 0:o(s))});return{error:n.error,isLoading:n.isLoading,isSuccess:n.isSuccess,suggest:n.mutate,suggestAsync:n.mutateAsync,status:n.status}}function zt({onError:e,onLoading:t,onSuccess:o}={}){let n=(0,x.useMutation)(["USE_SUGGEST_CHAIN_AND_CONNECT",e,t,o],O,{onError:(r,u)=>Promise.resolve(e==null?void 0:e(r,u)),onMutate:r=>t==null?void 0:t(r),onSuccess:r=>Promise.resolve(o==null?void 0:o(r))}),{data:s}=d();return{error:n.error,isLoading:n.isLoading,isSuccess:n.isSuccess,isSupported:Boolean(s),status:n.status,suggestAndConnect:n.mutate,suggestAndConnectAsync:n.mutateAsync}}var Z=require("@tanstack/react-query");var Ke=require("@tanstack/react-query");function Kt(...e){let t=["USE_QUERY_CLIENT",...e];return(0,Ke.useQuery)(t,({queryKey:[,...i]})=>v(...e),{refetchOnMount:!1,refetchOnWindowFocus:!1})}function Ot(e){let t=c(n=>n.clients);return(0,Z.useQuery)(["USE_CLIENTS",e,t],({queryKey:[,n,s]})=>n!=null&&n.rpc?S(n):s,{refetchOnMount:!1,refetchOnWindowFocus:!1})}function Pt(e){let t=c(n=>n.signingClients);return(0,Z.useQuery)(["USE_SIGNING_CLIENTS",e,t],({queryKey:[,n,s]})=>n!=null&&n.rpc?A(n):s,{refetchOnMount:!1,refetchOnWindowFocus:!1})}var ee=require("@tanstack/react-query");function Wt({onError:e,onLoading:t,onSuccess:o}={}){let{data:i}=h(),n=i==null?void 0:i.bech32Address,r=(0,ee.useMutation)(["USE_SEND_TOKENS",e,t,o,n],u=>R({senderAddress:n,...u}),{onError:(u,p)=>Promise.resolve(e==null?void 0:e(u,p)),onMutate:t,onSuccess:u=>Promise.resolve(o==null?void 0:o(u))});return{error:r.error,isLoading:r.isLoading,isSuccess:r.isSuccess,sendTokens:r.mutate,sendTokensAsync:r.mutateAsync,status:r.status}}function Mt({onError:e,onLoading:t,onSuccess:o}={}){let{data:i}=h(),n=i==null?void 0:i.bech32Address,r=(0,ee.useMutation)(["USE_SEND_IBC_TOKENS",e,t,o,n],u=>F({senderAddress:n,...u}),{onError:(u,p)=>Promise.resolve(e==null?void 0:e(u,p)),onMutate:t,onSuccess:u=>Promise.resolve(o==null?void 0:o(u))});return{error:r.error,isLoading:r.isLoading,isSuccess:r.isSuccess,sendIbcTokens:r.mutate,sendIbcTokensAsync:r.mutateAsync,status:r.status}}var k=require("@tanstack/react-query");var Oe=require("react");function Pe(){return(0,Oe.useEffect)(()=>{let{_reconnect:e}=c.getState();return e&&l(),window.addEventListener("keplr_keystorechange",l),()=>{window.removeEventListener("keplr_keystorechange",l)}},[]),null}function te(){return Pe(),null}var ne=require("react/jsx-runtime"),Rt=new k.QueryClient({});function Ft({children:e,grazOptions:t,...o}){return t&&P(t),(0,ne.jsxs)(k.QueryClientProvider,{client:Rt,...o,children:[(0,ne.jsx)(te,{}),e]})}0&&(module.exports={GrazEvents,GrazProvider,WALLET_TYPES,WalletType,checkWallet,clearRecentChain,configureGraz,connect,createClients,createQueryClient,createSigningClients,defineChain,defineChainInfo,defineChains,disconnect,getActiveChainCurrency,getAvailableWallets,getBalances,getKeplr,getLeap,getRecentChain,getStakedBalances,getWallet,mainnetChains,mainnetChainsArray,reconnect,sendIbcTokens,sendTokens,suggestChain,suggestChainAndConnect,testnetChains,testnetChainsArray,useAccount,useActiveChain,useActiveChainCurrency,useActiveChainValidators,useBalance,useBalances,useCheckKeplr,useCheckWallet,useClients,useConnect,useDisconnect,useGrazEvents,useOfflineSigners,useQueryClient,useRecentChain,useSendIbcTokens,useSendTokens,useSigners,useSigningClients,useStakedBalances,useSuggestChain,useSuggestChainAndConnect});
1
+ "use strict";var Ye=Object.create;var b=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var $e=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ze=Object.prototype.hasOwnProperty;var et=(e,t)=>{for(var n in t)b(e,n,{get:t[n],enumerable:!0})},pe=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of $e(t))!Ze.call(e,s)&&s!==n&&b(e,s,{get:()=>t[s],enumerable:!(r=Je(t,s))||r.enumerable});return e};var me=(e,t,n)=>(n=e!=null?Ye(Xe(e)):{},pe(t||!e||!e.__esModule?b(n,"default",{value:e,enumerable:!0}):n,e)),tt=e=>pe(b({},"__esModule",{value:!0}),e);var Xt={};et(Xt,{GrazEvents:()=>ce,GrazProvider:()=>$t,WALLET_TYPES:()=>U,WalletType:()=>G,checkWallet:()=>D,clearRecentChain:()=>z,configureGraz:()=>O,connect:()=>h,createClients:()=>E,createQueryClient:()=>v,createSigningClients:()=>w,defineChain:()=>wt,defineChainInfo:()=>bt,defineChains:()=>re,disconnect:()=>Q,executeContract:()=>L,getActiveChainCurrency:()=>K,getAvailableWallets:()=>st,getBalanceStaked:()=>P,getBalances:()=>F,getKeplr:()=>ye,getLeap:()=>Ce,getQueryRaw:()=>Y,getQuerySmart:()=>V,getRecentChain:()=>ot,getWallet:()=>x,instantiateContract:()=>H,mainnetChains:()=>jt,mainnetChainsArray:()=>Dt,reconnect:()=>y,sendIbcTokens:()=>_,sendTokens:()=>N,suggestChain:()=>k,suggestChainAndConnect:()=>W,testnetChains:()=>kt,testnetChainsArray:()=>It,useAccount:()=>g,useActiveChain:()=>Mt,useActiveChainCurrency:()=>Rt,useActiveChainValidators:()=>Qt,useBalance:()=>Bt,useBalanceStaked:()=>vt,useBalances:()=>Oe,useCheckKeplr:()=>Tt,useCheckWallet:()=>A,useClients:()=>Ft,useConnect:()=>Gt,useDisconnect:()=>Ut,useExecuteContract:()=>Lt,useGrazEvents:()=>_e,useInstantiateContract:()=>Ht,useOfflineSigners:()=>Fe,useQueryClient:()=>Ot,useQueryRaw:()=>Yt,useQuerySmart:()=>Vt,useRecentChain:()=>zt,useSendIbcTokens:()=>_t,useSendTokens:()=>Nt,useSigners:()=>qt,useSigningClients:()=>Pt,useSuggestChain:()=>Kt,useSuggestChainAndConnect:()=>Wt});module.exports=tt(Xt);var fe=require("@cosmjs/stargate");var le=me(require("zustand")),j=require("zustand/middleware");var G=(n=>(n.KEPLR="keplr",n.LEAP="leap",n))(G||{}),U=["keplr","leap"];var q={account:null,activeChain:null,balances:null,clients:null,defaultChain:null,defaultSigningClient:"stargate",offlineSigner:null,offlineSignerAmino:null,offlineSignerAuto:null,recentChain:null,signingClients:null,status:"disconnected",walletType:"keplr",_notFoundFn:()=>null,_reconnect:!1},nt={name:"graz",partialize:e=>({activeChain:e.activeChain,recentChain:e.recentChain,_reconnect:e._reconnect}),version:1},c=(0,le.default)((0,j.subscribeWithSelector)((0,j.persist)(()=>q,nt)));var M=require("@cosmjs/cosmwasm-stargate"),R=require("@cosmjs/stargate"),de=require("@cosmjs/tendermint-rpc");var ge=require("@cosmjs/stargate"),f=require("@cosmjs/utils");var v=(...e)=>{let{tendermint:t}=c.getState().clients,n=new ge.QueryClient(t),r=e.map(s=>s(n));for(let s of r){(0,f.assert)((0,f.isNonNullObject)(s),"Extension must be a non-null object");for(let[i,o]of Object.entries(s)){(0,f.assert)((0,f.isNonNullObject)(o),`Module must be a non-null object. Found type ${typeof o} for module "${i}".`);let u=n[i]||{};n[i]={...u,...o}}}return n};var E=async({rpc:e,rpcHeaders:t})=>{let n={url:e,headers:{...t||{}}},[r,s,i]=await Promise.all([M.SigningCosmWasmClient.connect(n),R.SigningStargateClient.connect(n),de.Tendermint34Client.connect(e)]);return{cosmWasm:r,stargate:s,tendermint:i}},w=async e=>{let{rpc:t,rpcHeaders:n,offlineSignerAuto:r,cosmWasmSignerOptions:s={},stargateSignerOptions:i={}}=e,o={url:t,headers:{...n||{}}},[u,p]=await Promise.all([M.SigningCosmWasmClient.connectWithSigner(o,r,s),R.SigningStargateClient.connectWithSigner(o,r,i)]);return{cosmWasm:u,stargate:p}};var D=(e=c.getState().walletType)=>{try{return x(e),!0}catch(t){return console.error(t),!1}},ye=()=>{if(typeof window.keplr<"u")return window.keplr;throw c.getState()._notFoundFn(),new Error("window.keplr is not defined")},Ce=()=>{if(typeof window.leap<"u")return window.leap;throw c.getState()._notFoundFn(),new Error("window.leap is not defined")},x=(e=c.getState().walletType)=>{switch(e){case"keplr":return ye();case"leap":return Ce();default:throw new Error("Unknown wallet type")}},st=()=>Object.fromEntries(U.map(e=>[e,D(e)]));var h=async e=>{try{let{defaultChain:t,recentChain:n,walletType:r}=c.getState(),s=(e==null?void 0:e.walletType)||r,i=x(s),o=e||n||t;if(!o)throw new Error("No last known connected chain, connect action requires chain info");c.setState(B=>{let Ve=B._reconnect;return B.activeChain&&B.activeChain.chainId!==o.chainId?{status:"connecting"}:Ve?{status:"reconnecting"}:{status:"connecting"}}),await i.enable(o.chainId);let u=i.getOfflineSigner(o.chainId),p=i.getOfflineSignerOnlyAmino(o.chainId),m=await i.getOfflineSignerAuto(o.chainId),l=o.gas?fe.GasPrice.fromString(`${o.gas.price}${o.gas.denom}`):void 0,[ue,He,Le]=await Promise.all([i.getKey(o.chainId),E(o),w({...o,offlineSignerAuto:m,cosmWasmSignerOptions:{gasPrice:l,...(e==null?void 0:e.signerOpts)||{}}})]);return c.setState({account:ue,activeChain:o,clients:He,offlineSigner:u,offlineSignerAmino:p,offlineSignerAuto:m,recentChain:o,signingClients:Le,status:"connected",walletType:s,_reconnect:!0}),ue}catch(t){throw c.getState().account===null&&c.setState({status:"disconnected"}),t}},Q=async(e=!1)=>(c.setState(t=>({...q,recentChain:e?null:t.recentChain})),Promise.resolve()),y=()=>{let{activeChain:e}=c.getState();e&&h(e)};var z=()=>{c.setState({recentChain:null})},K=e=>{let{activeChain:t}=c.getState();return t==null?void 0:t.currencies.find(n=>n.coinMinimalDenom===e)},ot=()=>c.getState().recentChain,k=async e=>(await x().experimentalSuggestChain(e),e),W=async({chainInfo:e,...t})=>{let n=await k(e);return{account:await h({chainId:e.chainId,currencies:e.currencies,rest:e.rest,rpc:e.rpc,...t}),chain:n}};var O=(e={})=>(c.setState(t=>({defaultChain:e.defaultChain||t.defaultChain,defaultSigningClient:e.defaultSigningClient||t.defaultSigningClient,walletType:e.defaultWallet||t.walletType,_notFoundFn:e.onNotFound||t._notFoundFn})),e);var F=async e=>{let{activeChain:t,signingClients:n}=c.getState();if(!t||!n)throw new Error("No connected account detected");let{defaultSigningClient:r}=c.getState();return await Promise.all(t.currencies.map(async i=>n[r].getBalance(e,i.coinMinimalDenom)))},P=async e=>{let{clients:t}=c.getState();if(!(t!=null&&t.stargate))throw new Error("Stargate client is not ready");return t.stargate.getBalanceStaked(e)},N=async({senderAddress:e,recipientAddress:t,amount:n,fee:r,memo:s})=>{let{signingClients:i,defaultSigningClient:o}=c.getState();if(!i)throw new Error("No connected account detected");if(!e)throw new Error("senderAddress is not defined");return i[o].sendTokens(e,t,n,r,s)},_=async({senderAddress:e,recipientAddress:t,transferAmount:n,sourcePort:r,sourceChannel:s,timeoutHeight:i,timeoutTimestamp:o,fee:u,memo:p})=>{let{signingClients:m}=c.getState();if(!(m!=null&&m.stargate))throw new Error("Stargate signing client is not ready");if(!e)throw new Error("senderAddress is not defined");return m.stargate.sendIbcTokens(e,t,n,r,s,i,o,u,p)},H=async({senderAddress:e,msg:t,fee:n,options:r,label:s,codeId:i})=>{let{signingClients:o}=c.getState();if(!(o!=null&&o.cosmWasm))throw new Error("CosmWasm signing client is not ready");return o.cosmWasm.instantiate(e,i,t,s,n,r)},L=async({senderAddress:e,msg:t,fee:n,contractAddress:r})=>{let{signingClients:s}=c.getState();if(!(s!=null&&s.cosmWasm))throw new Error("CosmWasm signing client is not ready");return s.cosmWasm.execute(e,r,t,n)},V=async(e,t)=>{let{signingClients:n}=c.getState();if(!(n!=null&&n.cosmWasm))throw new Error("CosmWasm signing client is not ready");return await n.cosmWasm.queryContractSmart(e,t)},Y=(e,t)=>{let{signingClients:n}=c.getState();if(!(n!=null&&n.cosmWasm))throw new Error("CosmWasm signing client is not ready");let r=new TextEncoder().encode(t);return n.cosmWasm.queryContractRaw(e,r)};var he=require("@keplr-wallet/cosmos"),Ae={coinDenom:"axl",coinMinimalDenom:"uaxl",coinDecimals:6,coinGeckoId:"axelar-network",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/axl.png"},rt={coinDenom:"usdc",coinMinimalDenom:"uusdc",coinDecimals:6,coinGeckoId:"usd-coin",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.png"},it={coinDenom:"dai",coinMinimalDenom:"dai-wei",coinDecimals:18,coinGeckoId:"dai",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/dai.png"},ct={coinDenom:"usdt",coinMinimalDenom:"uusdt",coinDecimals:6,coinGeckoId:"tether",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdt.png"},at={coinDenom:"weth-wei",coinMinimalDenom:"weth",coinDecimals:18,coinGeckoId:"weth",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/weth.png"},ut={coinDenom:"wbtc-satoshi",coinMinimalDenom:"wbtc",coinDecimals:8,coinGeckoId:"wrapped-bitcoin",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/wbtc.png"},xe=[Ae,rt,it,ct,at,ut],J={rpc:"https://rpc.axelar.strange.love",rest:"https://api.axelar.strange.love",chainId:"axelar-dojo-1",chainName:"Axelar",stakeCurrency:Ae,bip44:{coinType:118},bech32Config:he.Bech32Address.defaultBech32Config("axelar"),currencies:xe,feeCurrencies:xe};var Ee=require("@keplr-wallet/cosmos"),we={coinDenom:"atom",coinMinimalDenom:"uatom",coinDecimals:6,coinGeckoId:"cosmos",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/cosmoshub/images/atom.png"},Se=[we],I={rpc:"https://rpc.cosmoshub.strange.love",rest:"https://api.cosmoshub.strange.love",chainId:"cosmoshub-4",chainName:"Cosmos Hub",stakeCurrency:we,bip44:{coinType:118},bech32Config:Ee.Bech32Address.defaultBech32Config("cosmos"),currencies:Se,feeCurrencies:Se};var je=require("@keplr-wallet/cosmos"),De={coinDenom:"juno",coinMinimalDenom:"ujuno",coinDecimals:6,coinGeckoId:"juno-network",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/juno.png"},pt={coinDenom:"neta",coinMinimalDenom:"cw20:juno168ctmpyppk90d34p3jjy658zf5a5l3w8wk35wht6ccqj4mr0yv8s4j5awr",coinDecimals:6,coinGeckoId:"neta",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/neta.png"},mt={coinDenom:"marble",coinMinimalDenom:"cw20:juno1g2g7ucurum66d42g8k5twk34yegdq8c82858gz0tq2fc75zy7khssgnhjl",coinDecimals:3,coinGeckoId:"marble",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/marble.png"},lt={coinDenom:"hope",coinMinimalDenom:"cw20:juno1re3x67ppxap48ygndmrc7har2cnc7tcxtm9nplcas4v0gc3wnmvs3s807z",coinDecimals:6,coinGeckoId:"hope-galaxy",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/hope.png"},gt={coinDenom:"rac",coinMinimalDenom:"cw20:juno1r4pzw8f9z0sypct5l9j906d47z998ulwvhvqe5xdwgy8wf84583sxwh0pa",coinDecimals:6,coinGeckoId:"racoon",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/rac.png"},dt={coinDenom:"block",coinMinimalDenom:"cw20:juno1y9rf7ql6ffwkv02hsgd4yruz23pn4w97p75e2slsnkm0mnamhzysvqnxaq",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/block.png"},yt={coinDenom:"dhk",coinMinimalDenom:"cw20:juno1tdjwrqmnztn2j3sj2ln9xnyps5hs48q3ddwjrz7jpv6mskappjys5czd49",coinDecimals:0,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/dhk.png"},Ct={coinDenom:"raw",coinMinimalDenom:"cw20:juno15u3dt79t6sxxa3x3kpkhzsy56edaa5a66wvt3kxmukqjz2sx0hes5sn38g",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/raw.png",coinGeckoId:"junoswap-raw-dao"},ft={coinDenom:"asvt",coinMinimalDenom:"cw20:juno17wzaxtfdw5em7lc94yed4ylgjme63eh73lm3lutp2rhcxttyvpwsypjm4w",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/asvt.png"},xt={coinDenom:"hns",coinMinimalDenom:"cw20:juno1ur4jx0sxchdevahep7fwq28yk4tqsrhshdtylz46yka3uf6kky5qllqp4k",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/hns.svg"},ht={coinDenom:"joe",coinMinimalDenom:"cw20:juno1n7n7d5088qlzlj37e9mgmkhx6dfgtvt02hqxq66lcap4dxnzdhwqfmgng3",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/joe.png"},be=[De,pt,mt,lt,gt,dt,yt,Ct,ft,xt,ht],$={rpc:"https://rpc.juno.strange.love",rest:"https://api.juno.strange.love",chainId:"juno-1",chainName:"Juno",stakeCurrency:De,bip44:{coinType:118},bech32Config:je.Bech32Address.defaultBech32Config("juno"),currencies:be,feeCurrencies:be};var Ie=require("@keplr-wallet/cosmos"),Te={coinDenom:"osmo",coinMinimalDenom:"uosmo",coinDecimals:6,coinGeckoId:"osmosis",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/cosmoshub/images/atom.png"},At={coinDenom:"ion",coinMinimalDenom:"uion",coinDecimals:6,coinGeckoId:"ion",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/ion.png"},ke=[Te,At],X={rpc:"https://rpc.osmosis.strange.love",rest:"https://api.osmosis.strange.love",chainId:"osmosis-1",chainName:"Osmosis",stakeCurrency:Te,bip44:{coinType:118},bech32Config:Ie.Bech32Address.defaultBech32Config("osmo"),currencies:ke,feeCurrencies:ke};var Ge=require("@keplr-wallet/cosmos"),Ue={coinDenom:"somm",coinMinimalDenom:"usomm",coinDecimals:6,coinGeckoId:"sommelier",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/sommelier/images/somm.png"},Be=[Ue],Z={rpc:"https://rpc.sommelier.strange.love",rest:"https://api.sommelier.strange.love",chainId:"sommelier-3",chainName:"Sommelier",stakeCurrency:Ue,bip44:{coinType:118},bech32Config:Ge.Bech32Address.defaultBech32Config("somm"),currencies:Be,feeCurrencies:Be};var ve=require("@keplr-wallet/cosmos"),Me={coinDenom:"CRE",coinMinimalDenom:"ucre",coinDecimals:6,coinGeckoId:"crescent",coinImageUrl:"https://raw.githubusercontent.com/crescent-network/asset/main/images/coin/CRE.png"},qe=[Me],ee={rpc:"https://testnet-endpoint.crescent.network/rpc/crescent",rest:"https://testnet-endpoint.crescent.network/api/crescent",chainId:"mooncat-1-1",chainName:"Crescent Testnet",bip44:{coinType:118},bech32Config:ve.Bech32Address.defaultBech32Config("CRE"),currencies:qe,feeCurrencies:qe,stakeCurrency:Me,coinType:118};var Re=require("@keplr-wallet/cosmos"),te={coinDenom:"junox",coinMinimalDenom:"ujunox",coinDecimals:6,coinGeckoId:"juno-network",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/juno.png"},St=[te],ne={rpc:"https://rpc.uni.junonetwork.io",rest:"https://api.uni.junonetwork.io",chainId:"uni-5",chainName:"Juno Testnet",stakeCurrency:te,bip44:{coinType:118},bech32Config:Re.Bech32Address.defaultBech32Config("juno"),currencies:St,feeCurrencies:[te],coinType:118};var Qe=require("@keplr-wallet/cosmos"),se={coinDenom:"osmo",coinMinimalDenom:"uosmo",coinDecimals:6,coinGeckoId:"osmosis",coinImageUrl:"https://dhj8dql1kzq2v.cloudfront.net/white/osmo.png"},Et=[se],oe={rpc:"https://testnet-rpc.osmosis.zone",rest:"https://testnet-rest.osmosis.zone",chainId:"osmo-test-4",chainName:"Osmosis Testnet",stakeCurrency:se,bip44:{coinType:118},bech32Config:Qe.Bech32Address.defaultBech32Config("osmo"),currencies:Et,feeCurrencies:[se],coinType:118};var re=e=>e,wt=e=>e,bt=e=>e,jt=re({axelar:J,cosmos:I,cosmoshub:I,juno:$,osmosis:X,sommelier:Z}),Dt=[J,I,$,X,Z],kt=re({crescent:ee,juno:ne,osmosis:oe}),It=[ee,ne,oe];var C=require("@tanstack/react-query"),Ke=require("react"),We=me(require("zustand/shallow"));var ze=require("@tanstack/react-query");var Tt=()=>A("keplr"),A=e=>{let t=c(s=>e||s.walletType);return(0,ze.useQuery)(["USE_CHECK_WALLET",t],({queryKey:[,s]})=>D(s))};var g=({onConnect:e,onDisconnect:t}={})=>{let n=c(s=>s.account),r=c(s=>s.status);return(0,Ke.useEffect)(()=>c.subscribe(s=>s.status,(s,i)=>{if(s==="connected"){let o=c.getState();e==null||e({account:o.account,isReconnect:i==="reconnecting"})}s==="disconnected"&&(t==null||t())}),[e,t]),{data:n,isConnected:Boolean(n),isConnecting:r==="connecting",isDisconnected:r==="disconnected",isReconnecting:r==="reconnecting",reconnect:y,status:r}},Oe=e=>{let{data:t}=g(),n=e||(t==null?void 0:t.bech32Address);return(0,C.useQuery)(["USE_BALANCES",n],({queryKey:[,i]})=>F(i),{enabled:Boolean(n)})},Bt=(e,t)=>{let{data:n}=Oe(t);return(0,C.useQuery)(["USE_BALANCE",n,e,t],({queryKey:[,i]})=>i==null?void 0:i.find(o=>o.denom===e),{enabled:Boolean(n)})},Gt=({onError:e,onLoading:t,onSuccess:n}={})=>{let s=(0,C.useMutation)(["USE_CONNECT",e,t,n],h,{onError:(o,u)=>Promise.resolve(e==null?void 0:e(o,u)),onMutate:t,onSuccess:o=>Promise.resolve(n==null?void 0:n(o))}),{data:i}=A();return{connect:o=>s.mutate(o),connectAsync:o=>s.mutateAsync(o),error:s.error,isLoading:s.isLoading,isSuccess:s.isSuccess,isSupported:Boolean(i),status:s.status}},Ut=({onError:e,onLoading:t,onSuccess:n}={})=>{let s=(0,C.useMutation)(["USE_DISCONNECT",e,t,n],Q,{onError:i=>Promise.resolve(e==null?void 0:e(i,void 0)),onMutate:t,onSuccess:()=>Promise.resolve(n==null?void 0:n(void 0))});return{disconnect:i=>s.mutate(i),disconnectAsync:i=>s.mutateAsync(i),error:s.error,isLoading:s.isLoading,isSuccess:s.isSuccess,status:s.status}},Fe=()=>c(e=>({signer:e.offlineSigner,signerAmino:e.offlineSignerAmino,signerAuto:e.offlineSignerAuto}),We.default),qt=()=>Fe(),vt=e=>{let{data:t}=g(),n=e||(t==null?void 0:t.bech32Address);return(0,C.useQuery)(["USE_BALANCE_STAKED",n],({queryKey:[,i]})=>P(n),{enabled:Boolean(n)})};var S=require("@tanstack/react-query");var Mt=()=>c(e=>e.activeChain),Rt=e=>(0,S.useQuery)(["USE_ACTIVE_CHAIN_CURRENCY",e],({queryKey:[,r]})=>K(r)),Qt=(e,t="BOND_STATUS_BONDED")=>(0,S.useQuery)(["USE_ACTIVE_CHAIN_VALIDATORS",e,t],({queryKey:[,s,i]})=>s.staking.validators(i),{enabled:typeof e<"u"}),zt=()=>({data:c(t=>t.recentChain),clear:z}),Kt=({onError:e,onLoading:t,onSuccess:n}={})=>{let s=(0,S.useMutation)(["USE_SUGGEST_CHAIN",e,t,n],k,{onError:(i,o)=>Promise.resolve(e==null?void 0:e(i,o)),onMutate:t,onSuccess:i=>Promise.resolve(n==null?void 0:n(i))});return{error:s.error,isLoading:s.isLoading,isSuccess:s.isSuccess,suggest:s.mutate,suggestAsync:s.mutateAsync,status:s.status}},Wt=({onError:e,onLoading:t,onSuccess:n}={})=>{let s=(0,S.useMutation)(["USE_SUGGEST_CHAIN_AND_CONNECT",e,t,n],W,{onError:(o,u)=>Promise.resolve(e==null?void 0:e(o,u)),onMutate:o=>t==null?void 0:t(o),onSuccess:o=>Promise.resolve(n==null?void 0:n(o))}),{data:i}=A();return{error:s.error,isLoading:s.isLoading,isSuccess:s.isSuccess,isSupported:Boolean(i),status:s.status,suggestAndConnect:s.mutate,suggestAndConnectAsync:s.mutateAsync}};var ie=require("@tanstack/react-query");var Pe=require("@tanstack/react-query");var Ot=(...e)=>{let t=["USE_QUERY_CLIENT",...e];return(0,Pe.useQuery)(t,({queryKey:[,...r]})=>v(...e),{refetchOnMount:!1,refetchOnWindowFocus:!1})};var Ft=e=>{let t=c(s=>s.clients);return(0,ie.useQuery)(["USE_CLIENTS",e,t],({queryKey:[,s,i]})=>s!=null&&s.rpc?E(s):i,{refetchOnMount:!1,refetchOnWindowFocus:!1})},Pt=e=>{let t=c(s=>s.signingClients);return(0,ie.useQuery)(["USE_SIGNING_CLIENTS",e,t],({queryKey:[,s,i]})=>s!=null&&s.rpc?w(s):i,{refetchOnMount:!1,refetchOnWindowFocus:!1})};var d=require("@tanstack/react-query");var Nt=({onError:e,onLoading:t,onSuccess:n}={})=>{let{data:r}=g(),s=r==null?void 0:r.bech32Address,o=(0,d.useMutation)(["USE_SEND_TOKENS",e,t,n,s],u=>N({senderAddress:s,...u}),{onError:(u,p)=>Promise.resolve(e==null?void 0:e(u,p)),onMutate:t,onSuccess:u=>Promise.resolve(n==null?void 0:n(u))});return{error:o.error,isLoading:o.isLoading,isSuccess:o.isSuccess,sendTokens:o.mutate,sendTokensAsync:o.mutateAsync,status:o.status}},_t=({onError:e,onLoading:t,onSuccess:n}={})=>{let{data:r}=g(),s=r==null?void 0:r.bech32Address,o=(0,d.useMutation)(["USE_SEND_IBC_TOKENS",e,t,n,s],u=>_({senderAddress:s,...u}),{onError:(u,p)=>Promise.resolve(e==null?void 0:e(u,p)),onMutate:t,onSuccess:u=>Promise.resolve(n==null?void 0:n(u))});return{error:o.error,isLoading:o.isLoading,isSuccess:o.isSuccess,sendIbcTokens:o.mutate,sendIbcTokensAsync:o.mutateAsync,status:o.status}},Ht=({codeId:e,onError:t,onLoading:n,onSuccess:r})=>{let{data:s}=g(),i=s==null?void 0:s.bech32Address,p=(0,d.useMutation)(["USE_INSTANTIATE_CONTRACT",t,n,r,e,i],m=>{if(!i)throw new Error("senderAddress is undefined");let l={...m,fee:m.fee??"auto",senderAddress:i,codeId:e};return H(l)},{onError:(m,l)=>Promise.resolve(t==null?void 0:t(m,l)),onMutate:n,onSuccess:m=>Promise.resolve(r==null?void 0:r(m))});return{error:p.error,isLoading:p.isLoading,isSuccess:p.isSuccess,instantiateContract:p.mutate,instantiateContractAsync:p.mutateAsync,status:p.status}},Lt=({contractAddress:e,onError:t,onLoading:n,onSuccess:r})=>{let{data:s}=g(),i=s==null?void 0:s.bech32Address,p=(0,d.useMutation)(["USE_EXECUTE_CONTRACT",t,n,r,e,i],m=>{if(!i)throw new Error("senderAddress is undefined");let l={...m,fee:m.fee??"auto",senderAddress:i,contractAddress:e};return L(l)},{onError:(m,l)=>Promise.resolve(t==null?void 0:t(m,l)),onMutate:n,onSuccess:m=>Promise.resolve(r==null?void 0:r(m))});return{error:p.error,isLoading:p.isLoading,isSuccess:p.isSuccess,executeContract:p.mutate,executeContractAsync:p.mutateAsync,status:p.status}},Vt=(e,t)=>(0,d.useQuery)(["USE_QUERY_SMART",e,t],({queryKey:[,s]})=>{if(!e||!t)throw new Error("address or queryMsg undefined");return V(e,t)},{enabled:Boolean(e)&&Boolean(t)}),Yt=(e,t)=>(0,d.useQuery)(["USE_QUERY_RAW",t,e],({queryKey:[,s]})=>{if(!e||!t)throw new Error("address or key undefined");return Y(e,t)},{enabled:Boolean(e)&&Boolean(t)});var T=require("@tanstack/react-query");var Ne=require("react");var _e=()=>((0,Ne.useEffect)(()=>{let{_reconnect:e}=c.getState();return e&&y(),window.addEventListener("keplr_keystorechange",y),()=>{window.removeEventListener("keplr_keystorechange",y)}},[]),null),ce=()=>(_e(),null);var ae=require("react/jsx-runtime"),Jt=new T.QueryClient({}),$t=({children:e,grazOptions:t,...n})=>(t&&O(t),(0,ae.jsxs)(T.QueryClientProvider,{client:Jt,...n,children:[(0,ae.jsx)(ce,{}),e]}));0&&(module.exports={GrazEvents,GrazProvider,WALLET_TYPES,WalletType,checkWallet,clearRecentChain,configureGraz,connect,createClients,createQueryClient,createSigningClients,defineChain,defineChainInfo,defineChains,disconnect,executeContract,getActiveChainCurrency,getAvailableWallets,getBalanceStaked,getBalances,getKeplr,getLeap,getQueryRaw,getQuerySmart,getRecentChain,getWallet,instantiateContract,mainnetChains,mainnetChainsArray,reconnect,sendIbcTokens,sendTokens,suggestChain,suggestChainAndConnect,testnetChains,testnetChainsArray,useAccount,useActiveChain,useActiveChainCurrency,useActiveChainValidators,useBalance,useBalanceStaked,useBalances,useCheckKeplr,useCheckWallet,useClients,useConnect,useDisconnect,useExecuteContract,useGrazEvents,useInstantiateContract,useOfflineSigners,useQueryClient,useQueryRaw,useQuerySmart,useRecentChain,useSendIbcTokens,useSendTokens,useSigners,useSigningClients,useSuggestChain,useSuggestChainAndConnect});
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{GasPrice as ke}from"@cosmjs/stargate";import xe from"zustand";import{persist as Se,subscribeWithSelector as Ae}from"zustand/middleware";var U=(o=>(o.KEPLR="keplr",o.LEAP="leap",o))(U||{}),z=["keplr","leap"];var A={account:null,activeChain:null,balances:null,clients:null,defaultChain:null,defaultSigningClient:"stargate",offlineSigner:null,offlineSignerAmino:null,offlineSignerAuto:null,recentChain:null,signingClients:null,status:"disconnected",walletType:"keplr",_notFoundFn:()=>null,_reconnect:!1},Ee={name:"graz",partialize:e=>({activeChain:e.activeChain,recentChain:e.recentChain,_reconnect:e._reconnect}),version:1},i=xe(Ae(Se(()=>A,Ee)));import{SigningCosmWasmClient as W}from"@cosmjs/cosmwasm-stargate";import{SigningStargateClient as M}from"@cosmjs/stargate";import{Tendermint34Client as je}from"@cosmjs/tendermint-rpc";import{QueryClient as be}from"@cosmjs/stargate";import{assert as K,isNonNullObject as O}from"@cosmjs/utils";function P(...e){let{tendermint:t}=i.getState().clients,o=new be(t),c=e.map(n=>n(o));for(let n of c){K(O(n),"Extension must be a non-null object");for(let[s,r]of Object.entries(n)){K(O(r),`Module must be a non-null object. Found type ${typeof r} for module "${s}".`);let u=o[s]||{};o[s]={...u,...r}}}return o}async function d({rpc:e,rpcHeaders:t}){let o={url:e,headers:{...t||{}}},[c,n,s]=await Promise.all([W.connect(o),M.connect(o),je.connect(e)]);return{cosmWasm:c,stargate:n,tendermint:s}}async function h(e){let{rpc:t,rpcHeaders:o,offlineSignerAuto:c,cosmWasmSignerOptions:n={},stargateSignerOptions:s={}}=e,r={url:t,headers:{...o||{}}},[u,p]=await Promise.all([W.connectWithSigner(r,c,n),M.connectWithSigner(r,c,s)]);return{cosmWasm:u,stargate:p}}function E(e=i.getState().walletType){try{return y(e),!0}catch(t){return console.error(t),!1}}function we(){if(typeof window.keplr<"u")return window.keplr;throw i.getState()._notFoundFn(),new Error("window.keplr is not defined")}function De(){if(typeof window.leap<"u")return window.leap;throw i.getState()._notFoundFn(),new Error("window.leap is not defined")}function y(e=i.getState().walletType){switch(e){case"keplr":return we();case"leap":return De();default:throw new Error("Unknown wallet type")}}function Tt(){return Object.fromEntries(z.map(e=>[e,E(e)]))}async function g(e){try{let{defaultChain:t,recentChain:o,walletType:c}=i.getState(),n=(e==null?void 0:e.walletType)||c,s=y(n),r=e||o||t;if(!r)throw new Error("No last known connected chain, connect action requires chain info");i.setState(S=>{let he=S._reconnect;return S.activeChain&&S.activeChain.chainId!==r.chainId?{status:"connecting"}:he?{status:"reconnecting"}:{status:"connecting"}}),await s.enable(r.chainId);let u=s.getOfflineSigner(r.chainId),p=s.getOfflineSignerOnlyAmino(r.chainId),m=await s.getOfflineSignerAuto(r.chainId),fe=r.gas?ke.fromString(`${r.gas.price}${r.gas.denom}`):void 0,[Q,Ce,de]=await Promise.all([s.getKey(r.chainId),d(r),h({...r,offlineSignerAuto:m,cosmWasmSignerOptions:{gasPrice:fe,...(e==null?void 0:e.signerOpts)||{}}})]);return i.setState({account:Q,activeChain:r,clients:Ce,offlineSigner:u,offlineSignerAmino:p,offlineSignerAuto:m,recentChain:r,signingClients:de,status:"connected",walletType:n,_reconnect:!0}),Q}catch(t){throw i.getState().account===null&&i.setState({status:"disconnected"}),t}}async function R(e=!1){return i.setState(t=>({...A,recentChain:e?null:t.recentChain})),Promise.resolve()}function l(){let{activeChain:e}=i.getState();e&&g(e)}function F(){i.setState({recentChain:null})}function N(e){let{activeChain:t}=i.getState();return t==null?void 0:t.currencies.find(o=>o.coinMinimalDenom===e)}function Pt(){return i.getState().recentChain}async function b(e){return await y().experimentalSuggestChain(e),e}async function _({chainInfo:e,...t}){let o=await b(e);return{account:await g({chainId:e.chainId,currencies:e.currencies,rest:e.rest,rpc:e.rpc,...t}),chain:o}}function H(e={}){return i.setState(t=>({defaultChain:e.defaultChain||t.defaultChain,defaultSigningClient:e.defaultSigningClient||t.defaultSigningClient,walletType:e.defaultWallet||t.walletType,_notFoundFn:e.onNotFound||t._notFoundFn})),e}async function L(e){let{activeChain:t,signingClients:o}=i.getState();if(!t||!o)throw new Error("No connected account detected");let{defaultSigningClient:c}=i.getState();return await Promise.all(t.currencies.map(async s=>o[c].getBalance(e,s.coinMinimalDenom)))}async function V(e){let{clients:t}=i.getState();if(!(t!=null&&t.stargate))throw new Error("Stargate client is not ready");return t.stargate.getBalanceStaked(e)}async function J({senderAddress:e,recipientAddress:t,amount:o,fee:c,memo:n}){let{signingClients:s,defaultSigningClient:r}=i.getState();if(!s)throw new Error("No connected account detected");if(!e)throw new Error("senderAddress is not defined");return s[r].sendTokens(e,t,o,c,n)}async function Y({senderAddress:e,recipientAddress:t,transferAmount:o,sourcePort:c,sourceChannel:n,timeoutHeight:s,timeoutTimestamp:r,fee:u,memo:p}){let{signingClients:m}=i.getState();if(!(m!=null&&m.stargate))throw new Error("Stargate signing client is not ready");if(!e)throw new Error("senderAddress is not defined");return m.stargate.sendIbcTokens(e,t,o,c,n,s,r,u,p)}import{Bech32Address as Ie}from"@keplr-wallet/cosmos";var X={coinDenom:"axl",coinMinimalDenom:"uaxl",coinDecimals:6,coinGeckoId:"axelar-network",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/axl.png"},Te={coinDenom:"usdc",coinMinimalDenom:"uusdc",coinDecimals:6,coinGeckoId:"usd-coin",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.png"},Be={coinDenom:"dai",coinMinimalDenom:"dai-wei",coinDecimals:18,coinGeckoId:"dai",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/dai.png"},Ge={coinDenom:"usdt",coinMinimalDenom:"uusdt",coinDecimals:6,coinGeckoId:"tether",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdt.png"},ve={coinDenom:"weth-wei",coinMinimalDenom:"weth",coinDecimals:18,coinGeckoId:"weth",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/weth.png"},qe={coinDenom:"wbtc-satoshi",coinMinimalDenom:"wbtc",coinDecimals:8,coinGeckoId:"wrapped-bitcoin",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/wbtc.png"},$=[X,Te,Be,Ge,ve,qe],j={rpc:"https://rpc.axelar.strange.love",rest:"https://api.axelar.strange.love",chainId:"axelar-dojo-1",chainName:"Axelar",stakeCurrency:X,bip44:{coinType:118},bech32Config:Ie.defaultBech32Config("axelar"),currencies:$,feeCurrencies:$};import{Bech32Address as Qe}from"@keplr-wallet/cosmos";var ee={coinDenom:"atom",coinMinimalDenom:"uatom",coinDecimals:6,coinGeckoId:"cosmos",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/cosmoshub/images/atom.png"},Z=[ee],x={rpc:"https://rpc.cosmoshub.strange.love",rest:"https://api.cosmoshub.strange.love",chainId:"cosmoshub-4",chainName:"Cosmos Hub",stakeCurrency:ee,bip44:{coinType:118},bech32Config:Qe.defaultBech32Config("cosmos"),currencies:Z,feeCurrencies:Z};import{Bech32Address as Ue}from"@keplr-wallet/cosmos";var ne={coinDenom:"juno",coinMinimalDenom:"ujuno",coinDecimals:6,coinGeckoId:"juno-network",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/juno.png"},ze={coinDenom:"neta",coinMinimalDenom:"cw20:juno168ctmpyppk90d34p3jjy658zf5a5l3w8wk35wht6ccqj4mr0yv8s4j5awr",coinDecimals:6,coinGeckoId:"neta",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/neta.png"},Ke={coinDenom:"marble",coinMinimalDenom:"cw20:juno1g2g7ucurum66d42g8k5twk34yegdq8c82858gz0tq2fc75zy7khssgnhjl",coinDecimals:3,coinGeckoId:"marble",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/marble.png"},Oe={coinDenom:"hope",coinMinimalDenom:"cw20:juno1re3x67ppxap48ygndmrc7har2cnc7tcxtm9nplcas4v0gc3wnmvs3s807z",coinDecimals:6,coinGeckoId:"hope-galaxy",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/hope.png"},Pe={coinDenom:"rac",coinMinimalDenom:"cw20:juno1r4pzw8f9z0sypct5l9j906d47z998ulwvhvqe5xdwgy8wf84583sxwh0pa",coinDecimals:6,coinGeckoId:"racoon",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/rac.png"},We={coinDenom:"block",coinMinimalDenom:"cw20:juno1y9rf7ql6ffwkv02hsgd4yruz23pn4w97p75e2slsnkm0mnamhzysvqnxaq",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/block.png"},Me={coinDenom:"dhk",coinMinimalDenom:"cw20:juno1tdjwrqmnztn2j3sj2ln9xnyps5hs48q3ddwjrz7jpv6mskappjys5czd49",coinDecimals:0,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/dhk.png"},Re={coinDenom:"raw",coinMinimalDenom:"cw20:juno15u3dt79t6sxxa3x3kpkhzsy56edaa5a66wvt3kxmukqjz2sx0hes5sn38g",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/raw.png",coinGeckoId:"junoswap-raw-dao"},Fe={coinDenom:"asvt",coinMinimalDenom:"cw20:juno17wzaxtfdw5em7lc94yed4ylgjme63eh73lm3lutp2rhcxttyvpwsypjm4w",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/asvt.png"},Ne={coinDenom:"hns",coinMinimalDenom:"cw20:juno1ur4jx0sxchdevahep7fwq28yk4tqsrhshdtylz46yka3uf6kky5qllqp4k",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/hns.svg"},_e={coinDenom:"joe",coinMinimalDenom:"cw20:juno1n7n7d5088qlzlj37e9mgmkhx6dfgtvt02hqxq66lcap4dxnzdhwqfmgng3",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/joe.png"},te=[ne,ze,Ke,Oe,Pe,We,Me,Re,Fe,Ne,_e],w={rpc:"https://rpc.juno.strange.love",rest:"https://api.juno.strange.love",chainId:"juno-1",chainName:"Juno",stakeCurrency:ne,bip44:{coinType:118},bech32Config:Ue.defaultBech32Config("juno"),currencies:te,feeCurrencies:te};import{Bech32Address as He}from"@keplr-wallet/cosmos";var re={coinDenom:"osmo",coinMinimalDenom:"uosmo",coinDecimals:6,coinGeckoId:"osmosis",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/cosmoshub/images/atom.png"},Le={coinDenom:"ion",coinMinimalDenom:"uion",coinDecimals:6,coinGeckoId:"ion",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/ion.png"},oe=[re,Le],D={rpc:"https://rpc.osmosis.strange.love",rest:"https://api.osmosis.strange.love",chainId:"osmosis-1",chainName:"Osmosis",stakeCurrency:re,bip44:{coinType:118},bech32Config:He.defaultBech32Config("osmo"),currencies:oe,feeCurrencies:oe};import{Bech32Address as Ve}from"@keplr-wallet/cosmos";var ie={coinDenom:"somm",coinMinimalDenom:"usomm",coinDecimals:6,coinGeckoId:"sommelier",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/sommelier/images/somm.png"},se=[ie],k={rpc:"https://rpc.sommelier.strange.love",rest:"https://api.sommelier.strange.love",chainId:"sommelier-3",chainName:"Sommelier",stakeCurrency:ie,bip44:{coinType:118},bech32Config:Ve.defaultBech32Config("somm"),currencies:se,feeCurrencies:se};import{Bech32Address as Je}from"@keplr-wallet/cosmos";var ae={coinDenom:"CRE",coinMinimalDenom:"ucre",coinDecimals:6,coinGeckoId:"crescent",coinImageUrl:"https://raw.githubusercontent.com/crescent-network/asset/main/images/coin/CRE.png"},ce=[ae],I={rpc:"https://testnet-endpoint.crescent.network/rpc/crescent",rest:"https://testnet-endpoint.crescent.network/api/crescent",chainId:"mooncat-1-1",chainName:"Crescent Testnet",bip44:{coinType:118},bech32Config:Je.defaultBech32Config("CRE"),currencies:ce,feeCurrencies:ce,stakeCurrency:ae,coinType:118};import{Bech32Address as Ye}from"@keplr-wallet/cosmos";var T={coinDenom:"junox",coinMinimalDenom:"ujunox",coinDecimals:6,coinGeckoId:"juno-network",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/juno.png"},$e=[T],B={rpc:"https://rpc.uni.junonetwork.io",rest:"https://api.uni.junonetwork.io",chainId:"uni-3",chainName:"Juno Testnet",stakeCurrency:T,bip44:{coinType:118},bech32Config:Ye.defaultBech32Config("juno"),currencies:$e,feeCurrencies:[T],coinType:118};import{Bech32Address as Xe}from"@keplr-wallet/cosmos";var G={coinDenom:"osmo",coinMinimalDenom:"uosmo",coinDecimals:6,coinGeckoId:"osmosis",coinImageUrl:"https://dhj8dql1kzq2v.cloudfront.net/white/osmo.png"},Ze=[G],v={rpc:"https://testnet-rpc.osmosis.zone",rest:"https://testnet-rest.osmosis.zone",chainId:"osmo-test-4",chainName:"Osmosis Testnet",stakeCurrency:G,bip44:{coinType:118},bech32Config:Xe.defaultBech32Config("osmo"),currencies:Ze,feeCurrencies:[G],coinType:118};function dn(e){return e}function hn(e){return e}function xn(e){return e}var Sn={axelar:j,cosmos:x,cosmoshub:x,juno:w,osmosis:D,sommelier:k},An=[j,x,w,D,k],En={crescent:I,juno:B,osmosis:v},bn=[I,B,v];import{useMutation as ue,useQuery as q}from"@tanstack/react-query";import{useEffect as tt}from"react";import nt from"zustand/shallow";import{useQuery as et}from"@tanstack/react-query";function In(){return f("keplr")}function f(e){let t=i(n=>e||n.walletType);return et(["USE_CHECK_WALLET",t],({queryKey:[,n]})=>E(n))}function C({onConnect:e,onDisconnect:t}={}){let o=i(n=>n.account),c=i(n=>n.status);return tt(()=>i.subscribe(n=>n.status,(n,s)=>{if(n==="connected"){let r=i.getState();e==null||e({account:r.account,isReconnect:s==="reconnecting"})}n==="disconnected"&&(t==null||t())}),[e,t]),{data:o,isConnected:Boolean(o),isConnecting:c==="connecting",isDisconnected:c==="disconnected",isReconnecting:c==="reconnecting",reconnect:l,status:c}}function ot(e){let{data:t}=C(),o=e||(t==null?void 0:t.bech32Address);return q(["USE_BALANCES",o],({queryKey:[,s]})=>L(s),{enabled:Boolean(o)})}function Kn(e,t){let{data:o}=ot(t);return q(["USE_BALANCE",o,e,t],({queryKey:[,s]})=>s==null?void 0:s.find(r=>r.denom===e),{enabled:Boolean(o)})}function On({onError:e,onLoading:t,onSuccess:o}={}){let n=ue(["USE_CONNECT",e,t,o],g,{onError:(r,u)=>Promise.resolve(e==null?void 0:e(r,u)),onMutate:t,onSuccess:r=>Promise.resolve(o==null?void 0:o(r))}),{data:s}=f();return{connect:r=>n.mutate(r),connectAsync:r=>n.mutateAsync(r),error:n.error,isLoading:n.isLoading,isSuccess:n.isSuccess,isSupported:Boolean(s),status:n.status}}function Pn({onError:e,onLoading:t,onSuccess:o}={}){let n=ue(["USE_DISCONNECT",e,t,o],R,{onError:s=>Promise.resolve(e==null?void 0:e(s,void 0)),onMutate:t,onSuccess:()=>Promise.resolve(o==null?void 0:o(void 0))});return{disconnect:s=>n.mutate(s),disconnectAsync:s=>n.mutateAsync(s),error:n.error,isLoading:n.isLoading,isSuccess:n.isSuccess,status:n.status}}function rt(){return i(e=>({signer:e.offlineSigner,signerAmino:e.offlineSignerAmino,signerAuto:e.offlineSignerAuto}),nt)}function Wn(){return rt()}function Mn(e){let{data:t}=C(),o=e||(t==null?void 0:t.bech32Address);return q(["USE_STAKED_BALANCES",o],({queryKey:[,s]})=>V(o),{enabled:Boolean(o)})}import{useMutation as pe,useQuery as me}from"@tanstack/react-query";function Ln(){return i(e=>e.activeChain)}function Vn(e){return me(["USE_ACTIVE_CHAIN_CURRENCY",e],({queryKey:[,c]})=>N(c))}function Jn(e,t="BOND_STATUS_BONDED"){return me(["USE_ACTIVE_CHAIN_VALIDATORS",e,t],({queryKey:[,n,s]})=>n.staking.validators(s),{enabled:typeof e<"u"})}function Yn(){return{data:i(t=>t.recentChain),clear:F}}function $n({onError:e,onLoading:t,onSuccess:o}={}){let n=pe(["USE_SUGGEST_CHAIN",e,t,o],b,{onError:(s,r)=>Promise.resolve(e==null?void 0:e(s,r)),onMutate:t,onSuccess:s=>Promise.resolve(o==null?void 0:o(s))});return{error:n.error,isLoading:n.isLoading,isSuccess:n.isSuccess,suggest:n.mutate,suggestAsync:n.mutateAsync,status:n.status}}function Xn({onError:e,onLoading:t,onSuccess:o}={}){let n=pe(["USE_SUGGEST_CHAIN_AND_CONNECT",e,t,o],_,{onError:(r,u)=>Promise.resolve(e==null?void 0:e(r,u)),onMutate:r=>t==null?void 0:t(r),onSuccess:r=>Promise.resolve(o==null?void 0:o(r))}),{data:s}=f();return{error:n.error,isLoading:n.isLoading,isSuccess:n.isSuccess,isSupported:Boolean(s),status:n.status,suggestAndConnect:n.mutate,suggestAndConnectAsync:n.mutateAsync}}import{useQuery as le}from"@tanstack/react-query";import{useQuery as st}from"@tanstack/react-query";function no(...e){let t=["USE_QUERY_CLIENT",...e];return st(t,({queryKey:[,...c]})=>P(...e),{refetchOnMount:!1,refetchOnWindowFocus:!1})}function co(e){let t=i(n=>n.clients);return le(["USE_CLIENTS",e,t],({queryKey:[,n,s]})=>n!=null&&n.rpc?d(n):s,{refetchOnMount:!1,refetchOnWindowFocus:!1})}function ao(e){let t=i(n=>n.signingClients);return le(["USE_SIGNING_CLIENTS",e,t],({queryKey:[,n,s]})=>n!=null&&n.rpc?h(n):s,{refetchOnMount:!1,refetchOnWindowFocus:!1})}import{useMutation as ye}from"@tanstack/react-query";function go({onError:e,onLoading:t,onSuccess:o}={}){let{data:c}=C(),n=c==null?void 0:c.bech32Address,r=ye(["USE_SEND_TOKENS",e,t,o,n],u=>J({senderAddress:n,...u}),{onError:(u,p)=>Promise.resolve(e==null?void 0:e(u,p)),onMutate:t,onSuccess:u=>Promise.resolve(o==null?void 0:o(u))});return{error:r.error,isLoading:r.isLoading,isSuccess:r.isSuccess,sendTokens:r.mutate,sendTokensAsync:r.mutateAsync,status:r.status}}function fo({onError:e,onLoading:t,onSuccess:o}={}){let{data:c}=C(),n=c==null?void 0:c.bech32Address,r=ye(["USE_SEND_IBC_TOKENS",e,t,o,n],u=>Y({senderAddress:n,...u}),{onError:(u,p)=>Promise.resolve(e==null?void 0:e(u,p)),onMutate:t,onSuccess:u=>Promise.resolve(o==null?void 0:o(u))});return{error:r.error,isLoading:r.isLoading,isSuccess:r.isSuccess,sendIbcTokens:r.mutate,sendIbcTokensAsync:r.mutateAsync,status:r.status}}import{QueryClient as at,QueryClientProvider as ut}from"@tanstack/react-query";import{useEffect as it}from"react";function ct(){return it(()=>{let{_reconnect:e}=i.getState();return e&&l(),window.addEventListener("keplr_keystorechange",l),()=>{window.removeEventListener("keplr_keystorechange",l)}},[]),null}function ge(){return ct(),null}import{jsx as mt,jsxs as lt}from"react/jsx-runtime";var pt=new at({});function wo({children:e,grazOptions:t,...o}){return t&&H(t),lt(ut,{client:pt,...o,children:[mt(ge,{}),e]})}export{ge as GrazEvents,wo as GrazProvider,z as WALLET_TYPES,U as WalletType,E as checkWallet,F as clearRecentChain,H as configureGraz,g as connect,d as createClients,P as createQueryClient,h as createSigningClients,hn as defineChain,xn as defineChainInfo,dn as defineChains,R as disconnect,N as getActiveChainCurrency,Tt as getAvailableWallets,L as getBalances,we as getKeplr,De as getLeap,Pt as getRecentChain,V as getStakedBalances,y as getWallet,Sn as mainnetChains,An as mainnetChainsArray,l as reconnect,Y as sendIbcTokens,J as sendTokens,b as suggestChain,_ as suggestChainAndConnect,En as testnetChains,bn as testnetChainsArray,C as useAccount,Ln as useActiveChain,Vn as useActiveChainCurrency,Jn as useActiveChainValidators,Kn as useBalance,ot as useBalances,In as useCheckKeplr,f as useCheckWallet,co as useClients,On as useConnect,Pn as useDisconnect,ct as useGrazEvents,rt as useOfflineSigners,no as useQueryClient,Yn as useRecentChain,fo as useSendIbcTokens,go as useSendTokens,Wn as useSigners,ao as useSigningClients,Mn as useStakedBalances,$n as useSuggestChain,Xn as useSuggestChainAndConnect};
1
+ import{GasPrice as qe}from"@cosmjs/stargate";import je from"zustand";import{persist as De,subscribeWithSelector as ke}from"zustand/middleware";var Q=(s=>(s.KEPLR="keplr",s.LEAP="leap",s))(Q||{}),z=["keplr","leap"];var w={account:null,activeChain:null,balances:null,clients:null,defaultChain:null,defaultSigningClient:"stargate",offlineSigner:null,offlineSignerAmino:null,offlineSignerAuto:null,recentChain:null,signingClients:null,status:"disconnected",walletType:"keplr",_notFoundFn:()=>null,_reconnect:!1},Ie={name:"graz",partialize:e=>({activeChain:e.activeChain,recentChain:e.recentChain,_reconnect:e._reconnect}),version:1},c=je(ke(De(()=>w,Ie)));import{SigningCosmWasmClient as F}from"@cosmjs/cosmwasm-stargate";import{SigningStargateClient as P}from"@cosmjs/stargate";import{Tendermint34Client as Be}from"@cosmjs/tendermint-rpc";import{QueryClient as Te}from"@cosmjs/stargate";import{assert as K,isNonNullObject as W}from"@cosmjs/utils";var O=(...e)=>{let{tendermint:t}=c.getState().clients,s=new Te(t),r=e.map(n=>n(s));for(let n of r){K(W(n),"Extension must be a non-null object");for(let[i,o]of Object.entries(n)){K(W(o),`Module must be a non-null object. Found type ${typeof o} for module "${i}".`);let u=s[i]||{};s[i]={...u,...o}}}return s};var x=async({rpc:e,rpcHeaders:t})=>{let s={url:e,headers:{...t||{}}},[r,n,i]=await Promise.all([F.connect(s),P.connect(s),Be.connect(e)]);return{cosmWasm:r,stargate:n,tendermint:i}},h=async e=>{let{rpc:t,rpcHeaders:s,offlineSignerAuto:r,cosmWasmSignerOptions:n={},stargateSignerOptions:i={}}=e,o={url:t,headers:{...s||{}}},[u,p]=await Promise.all([F.connectWithSigner(o,r,n),P.connectWithSigner(o,r,i)]);return{cosmWasm:u,stargate:p}};var b=(e=c.getState().walletType)=>{try{return y(e),!0}catch(t){return console.error(t),!1}},Ge=()=>{if(typeof window.keplr<"u")return window.keplr;throw c.getState()._notFoundFn(),new Error("window.keplr is not defined")},Ue=()=>{if(typeof window.leap<"u")return window.leap;throw c.getState()._notFoundFn(),new Error("window.leap is not defined")},y=(e=c.getState().walletType)=>{switch(e){case"keplr":return Ge();case"leap":return Ue();default:throw new Error("Unknown wallet type")}},Mt=()=>Object.fromEntries(z.map(e=>[e,b(e)]));var C=async e=>{try{let{defaultChain:t,recentChain:s,walletType:r}=c.getState(),n=(e==null?void 0:e.walletType)||r,i=y(n),o=e||s||t;if(!o)throw new Error("No last known connected chain, connect action requires chain info");c.setState(E=>{let be=E._reconnect;return E.activeChain&&E.activeChain.chainId!==o.chainId?{status:"connecting"}:be?{status:"reconnecting"}:{status:"connecting"}}),await i.enable(o.chainId);let u=i.getOfflineSigner(o.chainId),p=i.getOfflineSignerOnlyAmino(o.chainId),m=await i.getOfflineSignerAuto(o.chainId),l=o.gas?qe.fromString(`${o.gas.price}${o.gas.denom}`):void 0,[R,Ee,we]=await Promise.all([i.getKey(o.chainId),x(o),h({...o,offlineSignerAuto:m,cosmWasmSignerOptions:{gasPrice:l,...(e==null?void 0:e.signerOpts)||{}}})]);return c.setState({account:R,activeChain:o,clients:Ee,offlineSigner:u,offlineSignerAmino:p,offlineSignerAuto:m,recentChain:o,signingClients:we,status:"connected",walletType:n,_reconnect:!0}),R}catch(t){throw c.getState().account===null&&c.setState({status:"disconnected"}),t}},N=async(e=!1)=>(c.setState(t=>({...w,recentChain:e?null:t.recentChain})),Promise.resolve()),d=()=>{let{activeChain:e}=c.getState();e&&C(e)};var _=()=>{c.setState({recentChain:null})},H=e=>{let{activeChain:t}=c.getState();return t==null?void 0:t.currencies.find(s=>s.coinMinimalDenom===e)},_t=()=>c.getState().recentChain,j=async e=>(await y().experimentalSuggestChain(e),e),L=async({chainInfo:e,...t})=>{let s=await j(e);return{account:await C({chainId:e.chainId,currencies:e.currencies,rest:e.rest,rpc:e.rpc,...t}),chain:s}};var V=(e={})=>(c.setState(t=>({defaultChain:e.defaultChain||t.defaultChain,defaultSigningClient:e.defaultSigningClient||t.defaultSigningClient,walletType:e.defaultWallet||t.walletType,_notFoundFn:e.onNotFound||t._notFoundFn})),e);var Y=async e=>{let{activeChain:t,signingClients:s}=c.getState();if(!t||!s)throw new Error("No connected account detected");let{defaultSigningClient:r}=c.getState();return await Promise.all(t.currencies.map(async i=>s[r].getBalance(e,i.coinMinimalDenom)))},J=async e=>{let{clients:t}=c.getState();if(!(t!=null&&t.stargate))throw new Error("Stargate client is not ready");return t.stargate.getBalanceStaked(e)},$=async({senderAddress:e,recipientAddress:t,amount:s,fee:r,memo:n})=>{let{signingClients:i,defaultSigningClient:o}=c.getState();if(!i)throw new Error("No connected account detected");if(!e)throw new Error("senderAddress is not defined");return i[o].sendTokens(e,t,s,r,n)},X=async({senderAddress:e,recipientAddress:t,transferAmount:s,sourcePort:r,sourceChannel:n,timeoutHeight:i,timeoutTimestamp:o,fee:u,memo:p})=>{let{signingClients:m}=c.getState();if(!(m!=null&&m.stargate))throw new Error("Stargate signing client is not ready");if(!e)throw new Error("senderAddress is not defined");return m.stargate.sendIbcTokens(e,t,s,r,n,i,o,u,p)},Z=async({senderAddress:e,msg:t,fee:s,options:r,label:n,codeId:i})=>{let{signingClients:o}=c.getState();if(!(o!=null&&o.cosmWasm))throw new Error("CosmWasm signing client is not ready");return o.cosmWasm.instantiate(e,i,t,n,s,r)},ee=async({senderAddress:e,msg:t,fee:s,contractAddress:r})=>{let{signingClients:n}=c.getState();if(!(n!=null&&n.cosmWasm))throw new Error("CosmWasm signing client is not ready");return n.cosmWasm.execute(e,r,t,s)},te=async(e,t)=>{let{signingClients:s}=c.getState();if(!(s!=null&&s.cosmWasm))throw new Error("CosmWasm signing client is not ready");return await s.cosmWasm.queryContractSmart(e,t)},ne=(e,t)=>{let{signingClients:s}=c.getState();if(!(s!=null&&s.cosmWasm))throw new Error("CosmWasm signing client is not ready");let r=new TextEncoder().encode(t);return s.cosmWasm.queryContractRaw(e,r)};import{Bech32Address as ve}from"@keplr-wallet/cosmos";var oe={coinDenom:"axl",coinMinimalDenom:"uaxl",coinDecimals:6,coinGeckoId:"axelar-network",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/axl.png"},Me={coinDenom:"usdc",coinMinimalDenom:"uusdc",coinDecimals:6,coinGeckoId:"usd-coin",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.png"},Re={coinDenom:"dai",coinMinimalDenom:"dai-wei",coinDecimals:18,coinGeckoId:"dai",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/dai.png"},Qe={coinDenom:"usdt",coinMinimalDenom:"uusdt",coinDecimals:6,coinGeckoId:"tether",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdt.png"},ze={coinDenom:"weth-wei",coinMinimalDenom:"weth",coinDecimals:18,coinGeckoId:"weth",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/weth.png"},Ke={coinDenom:"wbtc-satoshi",coinMinimalDenom:"wbtc",coinDecimals:8,coinGeckoId:"wrapped-bitcoin",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/wbtc.png"},se=[oe,Me,Re,Qe,ze,Ke],D={rpc:"https://rpc.axelar.strange.love",rest:"https://api.axelar.strange.love",chainId:"axelar-dojo-1",chainName:"Axelar",stakeCurrency:oe,bip44:{coinType:118},bech32Config:ve.defaultBech32Config("axelar"),currencies:se,feeCurrencies:se};import{Bech32Address as We}from"@keplr-wallet/cosmos";var ie={coinDenom:"atom",coinMinimalDenom:"uatom",coinDecimals:6,coinGeckoId:"cosmos",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/cosmoshub/images/atom.png"},re=[ie],A={rpc:"https://rpc.cosmoshub.strange.love",rest:"https://api.cosmoshub.strange.love",chainId:"cosmoshub-4",chainName:"Cosmos Hub",stakeCurrency:ie,bip44:{coinType:118},bech32Config:We.defaultBech32Config("cosmos"),currencies:re,feeCurrencies:re};import{Bech32Address as Oe}from"@keplr-wallet/cosmos";var ae={coinDenom:"juno",coinMinimalDenom:"ujuno",coinDecimals:6,coinGeckoId:"juno-network",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/juno.png"},Fe={coinDenom:"neta",coinMinimalDenom:"cw20:juno168ctmpyppk90d34p3jjy658zf5a5l3w8wk35wht6ccqj4mr0yv8s4j5awr",coinDecimals:6,coinGeckoId:"neta",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/neta.png"},Pe={coinDenom:"marble",coinMinimalDenom:"cw20:juno1g2g7ucurum66d42g8k5twk34yegdq8c82858gz0tq2fc75zy7khssgnhjl",coinDecimals:3,coinGeckoId:"marble",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/marble.png"},Ne={coinDenom:"hope",coinMinimalDenom:"cw20:juno1re3x67ppxap48ygndmrc7har2cnc7tcxtm9nplcas4v0gc3wnmvs3s807z",coinDecimals:6,coinGeckoId:"hope-galaxy",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/hope.png"},_e={coinDenom:"rac",coinMinimalDenom:"cw20:juno1r4pzw8f9z0sypct5l9j906d47z998ulwvhvqe5xdwgy8wf84583sxwh0pa",coinDecimals:6,coinGeckoId:"racoon",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/rac.png"},He={coinDenom:"block",coinMinimalDenom:"cw20:juno1y9rf7ql6ffwkv02hsgd4yruz23pn4w97p75e2slsnkm0mnamhzysvqnxaq",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/block.png"},Le={coinDenom:"dhk",coinMinimalDenom:"cw20:juno1tdjwrqmnztn2j3sj2ln9xnyps5hs48q3ddwjrz7jpv6mskappjys5czd49",coinDecimals:0,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/dhk.png"},Ve={coinDenom:"raw",coinMinimalDenom:"cw20:juno15u3dt79t6sxxa3x3kpkhzsy56edaa5a66wvt3kxmukqjz2sx0hes5sn38g",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/raw.png",coinGeckoId:"junoswap-raw-dao"},Ye={coinDenom:"asvt",coinMinimalDenom:"cw20:juno17wzaxtfdw5em7lc94yed4ylgjme63eh73lm3lutp2rhcxttyvpwsypjm4w",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/asvt.png"},Je={coinDenom:"hns",coinMinimalDenom:"cw20:juno1ur4jx0sxchdevahep7fwq28yk4tqsrhshdtylz46yka3uf6kky5qllqp4k",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/hns.svg"},$e={coinDenom:"joe",coinMinimalDenom:"cw20:juno1n7n7d5088qlzlj37e9mgmkhx6dfgtvt02hqxq66lcap4dxnzdhwqfmgng3",coinDecimals:6,coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/joe.png"},ce=[ae,Fe,Pe,Ne,_e,He,Le,Ve,Ye,Je,$e],k={rpc:"https://rpc.juno.strange.love",rest:"https://api.juno.strange.love",chainId:"juno-1",chainName:"Juno",stakeCurrency:ae,bip44:{coinType:118},bech32Config:Oe.defaultBech32Config("juno"),currencies:ce,feeCurrencies:ce};import{Bech32Address as Xe}from"@keplr-wallet/cosmos";var pe={coinDenom:"osmo",coinMinimalDenom:"uosmo",coinDecimals:6,coinGeckoId:"osmosis",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/cosmoshub/images/atom.png"},Ze={coinDenom:"ion",coinMinimalDenom:"uion",coinDecimals:6,coinGeckoId:"ion",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/ion.png"},ue=[pe,Ze],I={rpc:"https://rpc.osmosis.strange.love",rest:"https://api.osmosis.strange.love",chainId:"osmosis-1",chainName:"Osmosis",stakeCurrency:pe,bip44:{coinType:118},bech32Config:Xe.defaultBech32Config("osmo"),currencies:ue,feeCurrencies:ue};import{Bech32Address as et}from"@keplr-wallet/cosmos";var le={coinDenom:"somm",coinMinimalDenom:"usomm",coinDecimals:6,coinGeckoId:"sommelier",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/sommelier/images/somm.png"},me=[le],T={rpc:"https://rpc.sommelier.strange.love",rest:"https://api.sommelier.strange.love",chainId:"sommelier-3",chainName:"Sommelier",stakeCurrency:le,bip44:{coinType:118},bech32Config:et.defaultBech32Config("somm"),currencies:me,feeCurrencies:me};import{Bech32Address as tt}from"@keplr-wallet/cosmos";var de={coinDenom:"CRE",coinMinimalDenom:"ucre",coinDecimals:6,coinGeckoId:"crescent",coinImageUrl:"https://raw.githubusercontent.com/crescent-network/asset/main/images/coin/CRE.png"},ge=[de],B={rpc:"https://testnet-endpoint.crescent.network/rpc/crescent",rest:"https://testnet-endpoint.crescent.network/api/crescent",chainId:"mooncat-1-1",chainName:"Crescent Testnet",bip44:{coinType:118},bech32Config:tt.defaultBech32Config("CRE"),currencies:ge,feeCurrencies:ge,stakeCurrency:de,coinType:118};import{Bech32Address as nt}from"@keplr-wallet/cosmos";var G={coinDenom:"junox",coinMinimalDenom:"ujunox",coinDecimals:6,coinGeckoId:"juno-network",coinImageUrl:"https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/juno.png"},st=[G],U={rpc:"https://rpc.uni.junonetwork.io",rest:"https://api.uni.junonetwork.io",chainId:"uni-5",chainName:"Juno Testnet",stakeCurrency:G,bip44:{coinType:118},bech32Config:nt.defaultBech32Config("juno"),currencies:st,feeCurrencies:[G],coinType:118};import{Bech32Address as ot}from"@keplr-wallet/cosmos";var q={coinDenom:"osmo",coinMinimalDenom:"uosmo",coinDecimals:6,coinGeckoId:"osmosis",coinImageUrl:"https://dhj8dql1kzq2v.cloudfront.net/white/osmo.png"},rt=[q],v={rpc:"https://testnet-rpc.osmosis.zone",rest:"https://testnet-rest.osmosis.zone",chainId:"osmo-test-4",chainName:"Osmosis Testnet",stakeCurrency:q,bip44:{coinType:118},bech32Config:ot.defaultBech32Config("osmo"),currencies:rt,feeCurrencies:[q],coinType:118};var ye=e=>e,wn=e=>e,bn=e=>e,jn=ye({axelar:D,cosmos:A,cosmoshub:A,juno:k,osmosis:I,sommelier:T}),Dn=[D,A,k,I,T],kn=ye({crescent:B,juno:U,osmosis:v}),In=[B,U,v];import{useMutation as Ce,useQuery as M}from"@tanstack/react-query";import{useEffect as ct}from"react";import at from"zustand/shallow";import{useQuery as it}from"@tanstack/react-query";var qn=()=>f("keplr"),f=e=>{let t=c(n=>e||n.walletType);return it(["USE_CHECK_WALLET",t],({queryKey:[,n]})=>b(n))};var g=({onConnect:e,onDisconnect:t}={})=>{let s=c(n=>n.account),r=c(n=>n.status);return ct(()=>c.subscribe(n=>n.status,(n,i)=>{if(n==="connected"){let o=c.getState();e==null||e({account:o.account,isReconnect:i==="reconnecting"})}n==="disconnected"&&(t==null||t())}),[e,t]),{data:s,isConnected:Boolean(s),isConnecting:r==="connecting",isDisconnected:r==="disconnected",isReconnecting:r==="reconnecting",reconnect:d,status:r}},ut=e=>{let{data:t}=g(),s=e||(t==null?void 0:t.bech32Address);return M(["USE_BALANCES",s],({queryKey:[,i]})=>Y(i),{enabled:Boolean(s)})},Fn=(e,t)=>{let{data:s}=ut(t);return M(["USE_BALANCE",s,e,t],({queryKey:[,i]})=>i==null?void 0:i.find(o=>o.denom===e),{enabled:Boolean(s)})},Pn=({onError:e,onLoading:t,onSuccess:s}={})=>{let n=Ce(["USE_CONNECT",e,t,s],C,{onError:(o,u)=>Promise.resolve(e==null?void 0:e(o,u)),onMutate:t,onSuccess:o=>Promise.resolve(s==null?void 0:s(o))}),{data:i}=f();return{connect:o=>n.mutate(o),connectAsync:o=>n.mutateAsync(o),error:n.error,isLoading:n.isLoading,isSuccess:n.isSuccess,isSupported:Boolean(i),status:n.status}},Nn=({onError:e,onLoading:t,onSuccess:s}={})=>{let n=Ce(["USE_DISCONNECT",e,t,s],N,{onError:i=>Promise.resolve(e==null?void 0:e(i,void 0)),onMutate:t,onSuccess:()=>Promise.resolve(s==null?void 0:s(void 0))});return{disconnect:i=>n.mutate(i),disconnectAsync:i=>n.mutateAsync(i),error:n.error,isLoading:n.isLoading,isSuccess:n.isSuccess,status:n.status}},pt=()=>c(e=>({signer:e.offlineSigner,signerAmino:e.offlineSignerAmino,signerAuto:e.offlineSignerAuto}),at),_n=()=>pt(),Hn=e=>{let{data:t}=g(),s=e||(t==null?void 0:t.bech32Address);return M(["USE_BALANCE_STAKED",s],({queryKey:[,i]})=>J(s),{enabled:Boolean(s)})};import{useMutation as fe,useQuery as xe}from"@tanstack/react-query";var Xn=()=>c(e=>e.activeChain),Zn=e=>xe(["USE_ACTIVE_CHAIN_CURRENCY",e],({queryKey:[,r]})=>H(r)),es=(e,t="BOND_STATUS_BONDED")=>xe(["USE_ACTIVE_CHAIN_VALIDATORS",e,t],({queryKey:[,n,i]})=>n.staking.validators(i),{enabled:typeof e<"u"}),ts=()=>({data:c(t=>t.recentChain),clear:_}),ns=({onError:e,onLoading:t,onSuccess:s}={})=>{let n=fe(["USE_SUGGEST_CHAIN",e,t,s],j,{onError:(i,o)=>Promise.resolve(e==null?void 0:e(i,o)),onMutate:t,onSuccess:i=>Promise.resolve(s==null?void 0:s(i))});return{error:n.error,isLoading:n.isLoading,isSuccess:n.isSuccess,suggest:n.mutate,suggestAsync:n.mutateAsync,status:n.status}},ss=({onError:e,onLoading:t,onSuccess:s}={})=>{let n=fe(["USE_SUGGEST_CHAIN_AND_CONNECT",e,t,s],L,{onError:(o,u)=>Promise.resolve(e==null?void 0:e(o,u)),onMutate:o=>t==null?void 0:t(o),onSuccess:o=>Promise.resolve(s==null?void 0:s(o))}),{data:i}=f();return{error:n.error,isLoading:n.isLoading,isSuccess:n.isSuccess,isSupported:Boolean(i),status:n.status,suggestAndConnect:n.mutate,suggestAndConnectAsync:n.mutateAsync}};import{useQuery as he}from"@tanstack/react-query";import{useQuery as mt}from"@tanstack/react-query";var cs=(...e)=>{let t=["USE_QUERY_CLIENT",...e];return mt(t,({queryKey:[,...r]})=>O(...e),{refetchOnMount:!1,refetchOnWindowFocus:!1})};var ls=e=>{let t=c(n=>n.clients);return he(["USE_CLIENTS",e,t],({queryKey:[,n,i]})=>n!=null&&n.rpc?x(n):i,{refetchOnMount:!1,refetchOnWindowFocus:!1})},gs=e=>{let t=c(n=>n.signingClients);return he(["USE_SIGNING_CLIENTS",e,t],({queryKey:[,n,i]})=>n!=null&&n.rpc?h(n):i,{refetchOnMount:!1,refetchOnWindowFocus:!1})};import{useMutation as S,useQuery as Ae}from"@tanstack/react-query";var hs=({onError:e,onLoading:t,onSuccess:s}={})=>{let{data:r}=g(),n=r==null?void 0:r.bech32Address,o=S(["USE_SEND_TOKENS",e,t,s,n],u=>$({senderAddress:n,...u}),{onError:(u,p)=>Promise.resolve(e==null?void 0:e(u,p)),onMutate:t,onSuccess:u=>Promise.resolve(s==null?void 0:s(u))});return{error:o.error,isLoading:o.isLoading,isSuccess:o.isSuccess,sendTokens:o.mutate,sendTokensAsync:o.mutateAsync,status:o.status}},As=({onError:e,onLoading:t,onSuccess:s}={})=>{let{data:r}=g(),n=r==null?void 0:r.bech32Address,o=S(["USE_SEND_IBC_TOKENS",e,t,s,n],u=>X({senderAddress:n,...u}),{onError:(u,p)=>Promise.resolve(e==null?void 0:e(u,p)),onMutate:t,onSuccess:u=>Promise.resolve(s==null?void 0:s(u))});return{error:o.error,isLoading:o.isLoading,isSuccess:o.isSuccess,sendIbcTokens:o.mutate,sendIbcTokensAsync:o.mutateAsync,status:o.status}},Ss=({codeId:e,onError:t,onLoading:s,onSuccess:r})=>{let{data:n}=g(),i=n==null?void 0:n.bech32Address,p=S(["USE_INSTANTIATE_CONTRACT",t,s,r,e,i],m=>{if(!i)throw new Error("senderAddress is undefined");let l={...m,fee:m.fee??"auto",senderAddress:i,codeId:e};return Z(l)},{onError:(m,l)=>Promise.resolve(t==null?void 0:t(m,l)),onMutate:s,onSuccess:m=>Promise.resolve(r==null?void 0:r(m))});return{error:p.error,isLoading:p.isLoading,isSuccess:p.isSuccess,instantiateContract:p.mutate,instantiateContractAsync:p.mutateAsync,status:p.status}},Es=({contractAddress:e,onError:t,onLoading:s,onSuccess:r})=>{let{data:n}=g(),i=n==null?void 0:n.bech32Address,p=S(["USE_EXECUTE_CONTRACT",t,s,r,e,i],m=>{if(!i)throw new Error("senderAddress is undefined");let l={...m,fee:m.fee??"auto",senderAddress:i,contractAddress:e};return ee(l)},{onError:(m,l)=>Promise.resolve(t==null?void 0:t(m,l)),onMutate:s,onSuccess:m=>Promise.resolve(r==null?void 0:r(m))});return{error:p.error,isLoading:p.isLoading,isSuccess:p.isSuccess,executeContract:p.mutate,executeContractAsync:p.mutateAsync,status:p.status}},ws=(e,t)=>Ae(["USE_QUERY_SMART",e,t],({queryKey:[,n]})=>{if(!e||!t)throw new Error("address or queryMsg undefined");return te(e,t)},{enabled:Boolean(e)&&Boolean(t)}),bs=(e,t)=>Ae(["USE_QUERY_RAW",t,e],({queryKey:[,n]})=>{if(!e||!t)throw new Error("address or key undefined");return ne(e,t)},{enabled:Boolean(e)&&Boolean(t)});import{QueryClient as dt,QueryClientProvider as yt}from"@tanstack/react-query";import{useEffect as lt}from"react";var gt=()=>(lt(()=>{let{_reconnect:e}=c.getState();return e&&d(),window.addEventListener("keplr_keystorechange",d),()=>{window.removeEventListener("keplr_keystorechange",d)}},[]),null),Se=()=>(gt(),null);import{jsx as ft,jsxs as xt}from"react/jsx-runtime";var Ct=new dt({}),qs=({children:e,grazOptions:t,...s})=>(t&&V(t),xt(yt,{client:Ct,...s,children:[ft(Se,{}),e]}));export{Se as GrazEvents,qs as GrazProvider,z as WALLET_TYPES,Q as WalletType,b as checkWallet,_ as clearRecentChain,V as configureGraz,C as connect,x as createClients,O as createQueryClient,h as createSigningClients,wn as defineChain,bn as defineChainInfo,ye as defineChains,N as disconnect,ee as executeContract,H as getActiveChainCurrency,Mt as getAvailableWallets,J as getBalanceStaked,Y as getBalances,Ge as getKeplr,Ue as getLeap,ne as getQueryRaw,te as getQuerySmart,_t as getRecentChain,y as getWallet,Z as instantiateContract,jn as mainnetChains,Dn as mainnetChainsArray,d as reconnect,X as sendIbcTokens,$ as sendTokens,j as suggestChain,L as suggestChainAndConnect,kn as testnetChains,In as testnetChainsArray,g as useAccount,Xn as useActiveChain,Zn as useActiveChainCurrency,es as useActiveChainValidators,Fn as useBalance,Hn as useBalanceStaked,ut as useBalances,qn as useCheckKeplr,f as useCheckWallet,ls as useClients,Pn as useConnect,Nn as useDisconnect,Es as useExecuteContract,gt as useGrazEvents,Ss as useInstantiateContract,pt as useOfflineSigners,cs as useQueryClient,bs as useQueryRaw,ws as useQuerySmart,ts as useRecentChain,As as useSendIbcTokens,hs as useSendTokens,_n as useSigners,gs as useSigningClients,ns as useSuggestChain,ss as useSuggestChainAndConnect};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "graz",
3
3
  "description": "React hooks for Cosmos",
4
- "version": "0.0.26",
4
+ "version": "0.0.28",
5
5
  "author": "Griko Nibras <griko@strangelove.ventures>",
6
6
  "repository": "https://github.com/strangelove-ventures/graz.git",
7
7
  "homepage": "https://github.com/strangelove-ventures/graz",
@@ -71,6 +71,7 @@
71
71
  "license": "MIT",
72
72
  "scripts": {
73
73
  "build": "tsup",
74
+ "clean": "rm -rf dist/*",
74
75
  "cli": "node cli.mjs",
75
76
  "dev": "tsup --watch",
76
77
  "lint": "eslint --fix \"src/**/*.{ts,tsx}\""