0.1.7 • Published 2 years ago

wagmi-lfg v0.1.7

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Wagmi 🤝 Typechain = LFG

A wrapper for wagmi useContractRead and useContractWrite to make read and write function typesafe with types coming from hardhat-typechain.

Installation

app.tsx

import { configureChains, createClient, WagmiConfig } from 'wagmi';
import { LFGProvider } from 'wagmi-lfg';

const { chains, provider } = configureChains(...);
const { connectors } = getDefaultWallets({
  chains,
  appName: '...',
});

const wagmiClient = createClient({
  connectors,
  provider,
});

const App = ({ children }) => {
  // Use your own notification library
  const showNotice = useNotice();

  return (
    <WagmiConfig client={wagmiClient}>
        <LFGProvider
          notice={({ status, message }) =>
            showNotice({ status, message })
          }
          resolveAddress={(contractName, chainId) =>
            {/* resolve addresses depending on contract name and chain. Good to config with hardhat-deploy */}
            getAddress(contractName, chainId)
          }
          fallbackChain={config.fallbackId}
        >
          {children}
        </LFGProvider>
    </WagmiConfig>
  );
};

export default App;

read

// works
const { data, error } = useContractRead(ERC20_factory, 'getBalance', {
  args: [userAddress],
});

// fails
const { data, error } = useContractRead(ERC20_factory, 'getBalance1', {
  args: [userAddress],
});

const { data, error } = useContractRead(ERC20_factory, 'getBalance1', {
  args: [userAddress, wrongParam],
});

write

// works
const { data, error } = useContractWrite(ERC20_factory, 'approve', {
  args: [userAddress, amount],
});

// fails
const { data, error } = useContractWrite(ERC20_factory, 'approve1', {
  args: [userAddress, amount],
});

const { data, error } = useContractWrite(ERC20_factory, 'approve', {
  args: [userAddress],
});
0.1.7

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago