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

@catalogworks/catalog-contracts

v0.1.7

Published

``` _..._ .-'''-. .-'_..._''. .---. ' _ \ .' .' '.\ | | / /` '. \ / .' | |. | \ ' .--./) . '

Downloads

2

Readme

Catalog Contracts

       _..._                                         .-'''-.
    .-'_..._''.                             .---.   '   _    \
  .' .'      '.\                            |   | /   /` '.   \
 / .'                                       |   |.   |     \  '  .--./)
. '                           .|            |   ||   '      |  '/.''\\
| |                 __      .' |_     __    |   |\    \     / /| |  | |
| |              .:--.'.  .'     | .:--.'.  |   | `.   ` ..' /  \`-' /
. '             / |   \ |'--.  .-'/ |   \ | |   |    '-...-'`   /("'`
 \ '.          .`" __ | |   |  |  `" __ | | |   |               \ '---.
  '. `._____.-'/ .'.''| |   |  |   .'.''| | |   |                /'""'.\
    `-.______ / / /   | |_  |  '.'/ /   | |_'---'               ||     ||
             `  \ \._,\ '/  |   / \ \._,\ '/                    \'. __//
                 `--'  `"   `'-'   `--'  `"                      `'---'

EVM hardhat environment smart contract development project.


Info

Current Implementation of Catalog Shared Creator Contract (cNFT):


Package

@catalogworks/catalog-contracts contains generated Ethers compatible typescript typings for the solidity contracts in this repository.


Multisig Admin (Gnosis Safe)

rinkebyAddress: 0xDD382e505E92cA8d8575B01593e510Baf74B7566 mainnetAddress: 0x489E043540ff11eC22226CA0a6f6F8e3040c7b5A


Current Deployments

Mainnet Deployment:

chainId: 1 | Contract | Address | Etherscan | | ----------------- | :----------------------------------------: | ------------------------------------------------------------------------------: | | Catalog Proxy | 0x0bC2A24ce568DAd89691116d5B34DEB6C203F342 | link | | V1 Implementation | 0x317094a94B60277C08bFEf1cdbbF054e6a2c94eD | link |

Rinkeby Deployment:

chainId: 4 | Contract | Address | Etherscan | | --------------------------- | :----------------------------------------: | --------------------------------------------------------------------------------------: | | Catalog Proxy | 0x775B572e0CEB816625Af9779Bb686A8b47975876 | link | | V1 Implementation | 0x6b4d0c257830FeC10833ec868F5eb774AF5044a9 | link | | V2 Implementation | 0xa29B0C46FB3C0133C03ba7e7665F90Df547781FD | link | | V3 Implementation (Current) | 0xbEa08be5CE68F30754c384e2d6D5303798A54C66 | link |

Görli Deployment:

chainId: 5 | Contract | Address | Etherscan | | ----------------- | :----------------------------------------: | ------------------------------------------------------------------------------: | | Catalog Proxy | 0x86e9dA93658807F8343A8D7B6ABc405d200e566F | link | | V1 Implementation | 0x25a5cAa428dACcF60cB0A8c6B13bf3cA109512C1 | link |

Sepolia Deployment:

chainId: 11155111 | Contract | Address | Etherscan | | ----------------- | :----------------------------------------: | ------------------------------------------------------------------------------: | | Catalog Proxy | 0x25a5cAa428dACcF60cB0A8c6B13bf3cA109512C1 | link | | V1 Implementation | 0xD506Ba66B5a8BB9dE72ff97Eef818B72D8b8b076 | link |

Gas Stats (measured at 130 gwei/gas):

  • burn (36772 avg)
  • mint (199934 avg)
  • updateContentURI (32810 avg)
  • updateCreator (35680 avg)
  • updateMetadataURI (45432 avg)
  • updateRoot (35052 avg)
  • updateRoyaltyInfo (35660 avg)
  • transferFrom (62538 avg)

Install

  1. install dependencies
yarn install
  1. create a .env file in your root directory. an example is located at .env-example, the proper file is available internally. (vault)

Usage

npx hardhat

starting local hardhat EVM

yarn dev

compiling solidity contracts

yarn compile

running tests

yarn test

running tests with gas reporter output

yarn test:gas

running tests without logs

yarn test:nolog

generating coverage reports

yarn coverage

Deploying

this repository is configured for use with hardhat-deploy. see the deploy scripts in ./deploy for examples.

deployment scripts contain tag fixtures to aid in deployment sequencing and individual deployment.

to deploy contracts locally:

npx hardhat deploy [--tags DEPLOY_SCRIPT_TAG] --network [hardhat || localhost]

Tests

unit tests are located in ./test tests are written with mocha + chai.

tests use deployment fixtures from hardhat-deploy

Note: this repository only contains unit tests written in javascript. we have transitioned to EVM development w/ Foundry, but currently use this repository for production deployments and generated typescript typings.


Types

Project is configured for usage with Typescript. Types are auto generated using typechain, and are generated postinstall and upon compiliation of contracts.

Types are located in ./types/typechain


Documentation

Autogenerated markdown docs for Solidity contracts (compatible with docusaurus) are located at ./docs


Linting

Repo is setup with ESLint/Prettier/Solhint

Running Prettier:

yarn format
yarn format:fix

Running ESLint/Solhint:

yarn lint
yarn lint:fix

License

MIT

Contract Legal

https://catalog.works/terms

Security

SECURITY.md

Contributing

CONTRIBUTING.md