@edgeandnode/contract-utils
Exposes contract utils to interact with The Graph Network contracts.
Usage
pnpm add @edgeandnode/contract-utils
yarn add @edgeandnode/contract-utils
bun add @edgeandnode/contract-utils
Retrieve the contract address of a Graph Network contract on the specified network
import { resolveContractAddress } from '@edgeandnode/contract-utils'
const L2GNSAddress = resolveContractAddress({ network: 42161, contract: 'GNS' })
const SepoliaGraphTokenAddress = resolveContractAddress({
network: 11155111,
contract: 'GraphToken',
})
Call the mintSignal
L2GNS contract function from the generated actions.
import { createClient } from 'viem'
import { createConfig, http } from 'wagmi'
import { arbitrum, arbitrumSepolia, mainnet, sepolia } from 'wagmi/chains'
import { coinbaseWallet, injected, safe, walletConnect } from 'wagmi/connectors'
import { buildConfig, writeL2GnsMintSignal } from '@edgeandnode/contract-utils'
async function mint() {
const config = createConfig({
chains: [arbitrum, arbitrumSepolia, mainnet, sepolia],
ssr,
client({ chain }) {
return createClient({ chain, transport: http() })
},
connectors: [
coinbaseWallet({ appName: 'The Graph' }),
injected(),
safe({ allowedDomains: [/app.safe.global$/] }),
walletConnect({
projectId: 'WALLETCONNECT_PROJECT_ID',
metadata: {
name: 'The Graph',
description: 'The Graph Network suite of apps wallet integration',
url: 'https://thegraph.com',
icons: [''],
},
qrModalOptions: {
themeMode: 'dark',
},
}),
],
})
const mintTx = await writeL2GnsMintSignal(config, {
account: `0x`,
args: [0n, 0n, 0n],
})
}
Generating wagmi types
pnpm generate
pnpm wagmi generate
You might get Max calls per sec rate limit reached (5/sec)
when running the commands above. Since wagmi CLI caches the contract ABIs you can just keep re-running the command and the CLI will fetch more and more ABIs and eventually generates the utils.
Env vars (used to run wagmi generate)
You can just create free API keys and they will work with wagmi CLI:
ARBISCAN_KEY
-> api key for reading contract ABIs from arbiscan.ioETHERSCAN_KEY
-> api key for reading contract ABIs from etherscan.io
References