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 🙏

© 2025 – Pkg Stats / Ryan Hefner

memefactory-contracts

v1.0.1

Published

MemeFactory smart contracts packaged as a reusable EVM Package

Readme

Meme Factory EVM Package

NPM Package

This repository contains MemeFactory smart contracts packaged as a reusable EVM Package. You can deploy them as-is, or extend to suit your needs to build custom contracts and more complex decentralized systems.

Install

npm install memefactory-contracts

Packaged contracts

  • DSAuth
  • DSGuard
  • EternalDb
  • Registry
  • MiniMeTokenFactory
  • DankToken
  • MemeToken
  • MemeFactory

Development

prerequisites

You need ZeppelinOS comand-line interface installed:

npm install --global zos

Using this package

Create a new ZeppelinOS project, and add the memefactory-contracts EVM package:

zos init MyProject
zos link memefactory-contracts

Start session with a network called local (defined in truffle-config), using an address different from the default:

zos session --network local --from <address> --expires 3600

Deploy all the added logic contracts to the network (note that this step is only needed on local networks, when working on public networks ZeppelinOS will automatically used the pre-deployed implementation contracts):

zos push --deploy-dependencies

Developing and contributing to this package

Initialize project:

zos init memefactory-contracts

Add contracts:

zos add DSAuth:ds-auth
zos add DSGuard:ds-guard
zos add EternalDb:meme-registry-db
zos add Registry:meme-registry
zos add App:token-factory
zos add DankToken:DANK
zos add MemeToken:meme-token
zos add MemeFactory:meme-factory

Start session with a testrpc network called ganache (defined in truffle-config):

zos session --network ganache --from <address> --expires 3600

Deploy all the added logic contracts to the network:

zos push --force

Publish the contracts:

zos publish --network ganache --from <address>

Updating packaged contracts

Update to a new version of the package and deploy changes to the logic contracts:

zos link memefactory-contracts@new-version
zos push --deploy-dependencies

Deploy updated instances of the contracts to interact with:

zos update meme-factory

Deploy upgradeable instances of the contracts:

OWNER=<address>
DB=$(zos create meme-registry-db --init initialize)
REGISTRY=$(zos create meme-registry --init --args $DB,$OWNER)
TOKEN_FACTORY=$(zos create token-factory)
DANK_TOKEN=$(zos create DANK --init --args $TOKEN_FACTORY,1000000000000000000000000000,$OWNER)
MEME_TOKEN=$(zos create meme-token --init --args $REGISTRY)
MEME_FACTORY=$(zos create meme-factory --init --args $REGISTRY,$DANK_TOKEN,$MEME_TOKEN,1)

Interact with the contracts


NOTE

When interacting with deployed contracts use a different address than that of the owner (admin) addressed used when creating it. The transparent proxy pattern posits that the calls from the admin address will not be delegated to the proxy contract holding the logic.


npx truffle console --network ganache
var address='contract-instance-address';
memeFactory=MemeFactory.at(address)
var opts = {from: 'address'};
memeFactory.version(opts)

License

Released under the Eclipse Public License