@edgeandnode/contract-utils
v2.5.1
Published
Exposes contract utils to interact with The Graph Network contracts.
Maintainers
Keywords
Readme
(DEPRECATED) @edgeandnode/contract-utils (will be removed after Horizon releases)
Exposes contract utils to interact with The Graph Network contracts.
Usage
# install the dependency
## pnpm
pnpm add @edgeandnode/contract-utils
## yarn
yarn add @edgeandnode/contract-utils
## bun
bun add @edgeandnode/contract-utilsRetrieve the contract address of a Graph Network contract on the specified network
import { resolveContractAddress } from '@edgeandnode/contract-utils'
// retrieve correct GNS address for arbitrum
const L2GNSAddress = resolveContractAddress({ network: 42161, contract: 'GNS' })
// retrieve correct GraphToken address for sepolia
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
# required a `.env.local` file with env vars (see below)
pnpm generate
# or
pnpm wagmi generateYou 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
