@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
Env vars (used to run wagmi generate)
ARBISCAN_KEY
-> api key for reading contract ABIs from arbiscan.ioETHERSCAN_KEY
-> api key for reading contract ABIs from etherscan.io
References