Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ethers-proxies

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ethers-proxies

Detect proxy contracts and their target addresses using ethers

  • 1.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
180
increased by282.98%
Maintainers
1
Weekly downloads
 
Created
Source

ethers-proxies

Detect proxy contracts and their target addresses using ethers

This package offers a utility function for checking if a smart contract at a given address implements one of the known proxy patterns. It detects the following kinds of proxies:

  • EIP-1167 Minimal Proxy Contract
  • EIP-1967 Transparent Proxy Pattern
  • EIP-897 Delegate Proxy Pattern
  • EIP-1822 Universal Upgradeable Proxy Standard
  • OpenZeppelin Proxy Pattern
  • Gnosis Safe Proxy Contract

Installation

This module is distributed via npm. For adding it to your project, run:

npm install --save ethers-proxies

To install it using yarn, run:

yarn add ethers-proxies

How to use

The function needs an ethers provider it uses to run a set of checks against the given address. It returns a promise that resolves to the proxy target address, i.e., the address of the contract implementing the logic. The promise resolves to null if no proxy can be detected.

import { InfuraProvider } from '@ethersproject/providers'
import detectProxyTarget from 'ethers-proxies'

const provider = new InfuraProvider(1, process.env.INFURA_API_KEY)
const target = await detectProxyTarget('0xA7AeFeaD2F25972D80516628417ac46b3F2604Af', provider)
console.log(target)  // logs "0x4bd844F72A8edD323056130A86FC624D0dbcF5b0"

API

detectProxyTarget(address: string, provider: Provider, blockTag?: BlockTag): Promise<string | null>

Arguments

  • address (string): The address of the proxy contract
  • provider (Provider): An ethers Provider instance
  • blockTag (optional: BlockTag): Any ethers BlockTag, default is "latest"

The function returns a promise that will generally resolve to either the detected target contract address or null if it couldn't detect one.

FAQs

Package last updated on 23 Dec 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc