@edgeandnode/contract-utils
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

@edgeandnode/contract-utils

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-utils

Retrieve 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 generate

Env vars (used to run wagmi generate)

  • ARBISCAN_KEY -> api key for reading contract ABIs from arbiscan.io
  • ETHERSCAN_KEY -> api key for reading contract ABIs from etherscan.io

References

Readme

Keywords

none

Package Sidebar

Install

npm i @edgeandnode/contract-utils

Weekly Downloads

0

Version

2.0.0

License

UNLICENSED

Unpacked Size

12.7 MB

Total Files

12

Last publish

Collaborators

  • andras_en
  • migueldeelias
  • pcarranzav_edgeandnode
  • lutter
  • edge-and-node
  • leoyvens
  • lnsd
  • neysofu
  • nasmr
  • adam-en
  • benface
  • fordn
  • theodus
  • jannispohlmann
  • dnfodjo
  • iain_mccown
  • that3percent
  • cmwhited
  • schmidsi