@graphprotocol/toolshed
Version:
A collection of tools and utilities for the Graph Protocol Typescript components
29 lines (24 loc) • 1.27 kB
text/typescript
import type { HardhatEthersProvider } from '@nomicfoundation/hardhat-ethers/internal/hardhat-ethers-provider'
import type { Provider, Signer } from 'ethers'
import { resolveAddressBook } from '../../lib/resolve'
import { loadActions } from './actions'
import { GraphHorizonAddressBook } from './address-book'
export { GraphHorizonAddressBook } from './address-book'
export type { GraphHorizonContractName, GraphHorizonContracts } from './contracts'
export function loadGraphHorizon(addressBookPath: string, chainId: number, provider: HardhatEthersProvider) {
const addressBook = new GraphHorizonAddressBook(addressBookPath, chainId)
const contracts = addressBook.loadContracts(provider, false)
return {
addressBook: addressBook,
contracts: contracts,
actions: loadActions(contracts),
}
}
export function connectGraphHorizon(chainId: number, signerOrProvider: Signer | Provider, addressBookPath?: string) {
addressBookPath = addressBookPath ?? resolveAddressBook(require, '@graphprotocol/address-book/horizon/addresses.json')
if (!addressBookPath) {
throw new Error('Address book path not found')
}
const addressBook = new GraphHorizonAddressBook(addressBookPath, chainId)
return addressBook.loadContracts(signerOrProvider, false)
}