Skip to content

roninjin10/rollupChains

Repository files navigation

Rollup aware chains objects extending wagmi

rollup-chains • CI

A simple drop in replacement for wagmis existing chain object

The source code is very small just 1 file src/rollupChains.ts. But this simple abstraction can really clean up your code significantly if your DAPP is multichain

Installation

npm

npm i @roninjin10/rollup-chains

pnpm

pnpm i @roninjin10/rollup-chains

yarn

yarn add @roninjin10/rollup-chains

Usage

Use just like @wagmi/chains but with some extra rollup properties

// import {mainnet, optimism} from 'wagmi/chains'
import { mainnet, optimism } from "@roninjin10/rollup-chains";

// the extend wagmi interface
mainnet.id
optimism.rpcUrls

// with added rollup specific properties
mainnet.l1 // returns mainnet
mainnet.l2 // returns optimism
optimism.12 // returns optimism
optimism.l1 // returns mainnet
optimism.isL2 // returns true
optimism.isL2 // returns false

Why

Instead of writing bugprone and unergonomic code like this

const currentChainId = connectChain.id
const l1ChainId = connectedChain.id === 1 ? 1 : connectedChain.id === 10 ? 1 : connectedChain.id === 5 ? 5 : connectedChain.id === 420 ? 5 ...

Or needing to add helper functions simply swap these chains in for wagmi chains to get rollup aware chains!

const currentChainId = connectedChain.id;
// this will return the l1 chain regardless of if user is connected to testnet, mainnet, l1, or l2
const l1ChainId = connectedChain.l1.id;

Author: Will Cory 👨🏻‍💻

Twitter ```