Skip to content

Instantly share code, notes, and snippets.

View adairrr's full-sized avatar
💭
"You broke it, didn't you."

Interchain Adair adairrr

💭
"You broke it, didn't you."
View GitHub Profile
@adairrr
adairrr / infinite_react-query_cosmwasm.ts
Last active August 2, 2022 11:12
An example of a paged react-query with a custom cosmwasm client generated with cosmwasm/ts-codegen
export type Addr = string;
export type AssetInfoBase_for_Addr = {
cw20: Addr;
} | {
native: string;
};
export interface AssetListResponse {
assets: [string, AssetInfoBase_for_Addr][];
@adairrr
adairrr / useNativeBalanceQueries.ts
Created November 1, 2022 23:10
React Query CosmWasm native balance queries using Cosm.js
import { useQueries, useQuery, UseQueryOptions } from '@tanstack/react-query'
import { CombinedQueries, useCombinedQueries } from 'api/queries/useCombinedQueries'
import { useNetworkCurrencies } from 'hooks/network/useNetworkCurrencies'
import { Coin } from '@cosmjs/stargate'
import { QueryOptions } from 'api/queries/query'
import { ReactQueryOptions } from 'api/queries/useReactQueryOptions'
import { CosmWasmClient } from '@cosmjs/cosmwasm-stargate'
import useReadonlyClients from 'contexts/ReadonlyClientContext'
interface UseNativeBalanceQueryOptionsParams<TData> extends ReactQueryOptions<Coin, TData> {
import {
CosmWasmClient,
SigningCosmWasmClient,
} from '@cosmjs/cosmwasm-stargate'
import { WalletData } from './wallet'
import { Chain } from '@chain-registry/types'
import {
FactoryClient,
FactoryQueryClient,
FactoryMessageComposer,
import { useCallback, useEffect, useMemo, useState } from 'react'
import { EquilibriumClient } from 'client/core'
import EquilibriumContext from './EquilibriumContext'
import { chains } from 'chain-registry'
import useWallet from '../wallet/useWallet'
export default function EquilibriumProvider({
children,
}: {
const connectStation = () => {
setWalletStatus(WalletStatus.INITIALIZING)
try {
const provider = await tendermint()
const supportedChains = await provider.getSupportedChains()
log.debug('supportedChains', supportedChains)
// If network not already there, add
if (
import React, { FC, PropsWithChildren } from 'react'
import { assets, chains } from 'chain-registry'
import { wallets as keplrWallets } from '@cosmos-kit/keplr'
import { wallets as stationWallets } from '@cosmos-kit/cosmostation'
import { GasPrice } from '@cosmjs/stargate'
import { SigningCosmWasmClientOptions } from '@cosmjs/cosmwasm-stargate'
import { WalletProvider } from 'contexts/WalletContext'
import { DefaultModal, WalletProvider as CosmosKitWalletProvider } from '@cosmos-kit/react'
import { MainWalletBase, SignerOptions } from '@cosmos-kit/core'
import { Chain as ChainRegistryChain } from '@chain-registry/types'
import { KeyedReactQueryOptions } from 'api/queries/useReactQueryOptions'
import { Tendermint34Client } from '@cosmjs/tendermint-rpc'
import { QueryKey } from '@tanstack/query-core'
import { useChain, useNetwork } from 'contexts'
import { useQuery } from '@tanstack/react-query'
import { QueryOptions } from 'api/queries/query'
import { CosmWasmClient } from '@cosmjs/cosmwasm-stargate'
import { StargateClient } from '@cosmjs/stargate'
export const clientKeys = {
// PRODUCTION
text-size-adjust: 100%;
-webkit-font-smoothing: antialiased;
text-rendering: optimizelegibility;
--toastify-color-light: #fff;
--toastify-color-dark: #121212;
--toastify-color-info: #3498db;
--toastify-color-success: #07bc0c;
--toastify-color-warning: #f1c40f;
--toastify-color-error: #e74c3c;
@@ -1,8 +1,16 @@
+-webkit-
text
@@ -33,8 +33,8 @@
0%25;%0A
-
@@ -98,17 +98,17 @@
optimize
@adairrr
adairrr / abstract-autocompounder-implementation-comparison.md
Last active March 20, 2023 05:59
Abstract Autocompounder Implementation Comparison

Vanilla CosmWasm

Analysis using SCC of https://github.com/spectrumprotocol/contracts excluding tests.

Language Files Lines Blanks Comments Code Complexity
Rust 78 9386 1106 376 7904 585
JSON 60 5244 0 0 5244 0
TOML 14 565 91 50 424 6
Markdown 1 155 41 0 114 0