TypeScript ABIs and deployed addresses for the gitlawb protocol on Base L2.
npm install @gitlawb/contracts
import {
NODE_STAKING_ABI,
FEE_DISTRIBUTOR_ABI,
addresses,
BASE_SEPOLIA_ID,
NODE_MIN_STAKE,
} from "@gitlawb/contracts";
import { createPublicClient, http } from "viem";
import { baseSepolia } from "viem/chains";
const client = createPublicClient({ chain: baseSepolia, transport: http() });
const { nodeStaking } = addresses[BASE_SEPOLIA_ID];
const stats = await client.readContract({
address: nodeStaking,
abi: NODE_STAKING_ABI,
functionName: "getProtocolStats",
});ERC20_ABI— minimal ERC20 (balanceOf, allowance, approve, transfer)STAKING_ABI— user staking (tier-weighted)NODE_STAKING_ABI— PoS for node operatorsFEE_DISTRIBUTOR_ABI— weekly reward split
addresses[BASE_SEPOLIA_ID]— live on testnetaddresses[BASE_MAINNET_ID]— placeholder until mainnet deployaddressesFor(chainId)— safe helper with fallback
TIER_THRESHOLDS,TIER_MULTIPLIERS,TIER_NAMES— staking tiersNODE_MIN_STAKE,HEARTBEAT_WINDOW_SECONDS,INACTIVE_THRESHOLD_SECONDS,UNSTAKE_COOLDOWN_SECONDS,DISTRIBUTION_PERIOD_SECONDS
Apache-2.0