Skip to content

flare-foundation/flare-npm-periphery-package

Repository files navigation

Flare Smart Contracts Periphery

This package contains ABIs and addresses for smart contracts deployed on Flare networks:

  • Flare Mainnet
  • Songbird Canary Network
  • Flare Testnet Coston2
  • Songbird Testnet Coston

Installation

npm install @flarenetwork/flare-periphery-contract-artifacts
# or
yarn add @flarenetwork/flare-periphery-contract-artifacts

Features

Top Level Exports

ABI Access Functions

  • nameToAbi(name: string, network: string): any - Get full smart contract functionality.
  • interfaceToAbi(name: string, network: string): any - Interact with the contract's public API.

Both functions return an ABI array. The network parameter must be one of:

  • "flare"
  • "songbird"
  • "coston2"
  • "coston"
import { nameToAbi, interfaceToAbi } from "@flarenetwork/flare-periphery-contract";

const fullAbi = nameToAbi("FtsoManager", "flare");
const interfaceAbi = interfaceToAbi("IFtsoManager", "flare");

Address Resolution

  • nameToAddress(name: string, network: string, provider: ethers.JsonRpcApiProvider): Promise<string>
  • namesToAddresses(names: string[], network: string, provider: ethers.JsonRpcApiProvider): Promise<string[]>

These functions fetch contract addresses from the on-chain FlareContractRegistryLibrary.

import { nameToAddress } from "@flarenetwork/flare-periphery-contract-artifacts";
import { ethers } from "ethers";

const provider = new ethers.JsonRpcProvider("https://flare-api.flare.network/ext/C/rpc");
const address = await nameToAddress("FtsoManager", "flare", provider);

Constants

  • FlareContractRegistryAddress: Hardcoded registry address (same for all chains)

Network-Specific Namespaces

Each network (flare, songbird, coston2, coston) exports:

1. Products

Access contract information through .ContractName syntax:

import { flare } from "@flarenetwork/flare-periphery-contract-artifacts";

const ftsoManager = flare.products.FtsoManager;
console.log(ftsoManager.name); // Contract name
console.log(ftsoManager.interface); // Interface name
console.log(ftsoManager.abi); // Contract ABI

// Get deployed address
const address = await ftsoManager.getAddress(provider);

2. Interface ABIs

Access interface ABIs using .InterfaceName syntax:

import { flare } from "@flarenetwork/flare-periphery-contract-artifacts";

const abi = flare.interfaceAbis.IFtsoManager;

3. Network-Specific ABI Functions

It is same as top-level functions but with the pre-set network:

import { flare } from "@flarenetwork/flare-periphery-contract-artifacts";

// Network already known
const abi = flare.nameToAbi("FtsoManager");
const iAbi = flare.interfaceToAbi("IFtsoManager");

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors