npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@1001-digital/check-address

v1.0.2

Published

A simple smart contract helper library to test address type.

Downloads

14

Readme

Check Address

A Solidity library for the Ethereum blockchain to easily distinguish between smart contract and external addresses.

Warning: The checks in this library can be circumvented by calling from within a contract constructor. See the tests for a detailed attack example and check out this discussion exploring the issue.

Consider carefully whether this is acceptable in your use case.

Installation

  1. In your project run npm install @1001-digital/check-address
  2. Within your contract, import the library import "@1001-digital/check-address/contracts/CheckAddress.sol";
  3. In your code, you can check address types like so:
    address account = 0x1234567891011121314151617181920212223242
    if (CheckAddress.isExternal(account)) { 
      // ...
    }

Note: You will have to link the library when creating your contract during development:

const CheckAddress = await ethers.getContractFactory('CheckAddress');
const library = await CheckAddress.deploy()

const MyContract = await ethers.getContractFactory('MyContract', {
  libraries: {
    CheckAddress: library.address,
  },
});

Local Development

To set up your environment run npm install.

Note: You can exchange npm run for hh if you have hh installed globally on your system.

  • Run the test suite: npm run test
  • Spin up a local development blockchain: npm run node
  • Deploy the contract with npm run deploy:localhost

Deployment

Deploy the project via npm run deploy:{NETWORK} with NETWORK being one of localhost|rinkeby|ropsten|mainnet.

Live Deployments

  • Mainnet: TODO
  • Ropsten: 0x87f11cba2Db0cB22b9679c14860bA5Be49Fd0717
  • Rinkeby: 0x029374cA831F9F4B04a0D896B8d00CcE05f30D8f

Thank You

If you have any improvement suggestions, feedback or bug reports please feel free add an issue, or reach out via Twitter @jwahdatehagh or Email [email protected].