Git Product home page Git Product logo

art-gobblers's Introduction

Art Gobblers • CI

Art Gobblers is an experimental decentralized art factory by Justin Roiland and Paradigm.

Background

Art Gobblers is a decentralized art factory owned by aliens. As artists make cool art, Gobblers gains cultural relevance, making collectors want the art more, incentivizing artists to make cooler art. It's also an on-chain game.

See our overview of the system, as well as deep dives into some of the project's mechanisms, like GOO and VRGDAs.

Deployments

Contract Mainnet Goerli
ArtGobblers 0x60bb1e2aa1c9acafb4d34f71585d7e959f387769 0x60bb1e2aa1c9acafb4d34f71585d7e959f387769
Pages 0x600df00d3e42f885249902606383ecdcb65f2e02 0x600df00d3e42f885249902606383ecdcb65f2e02
Goo 0x600000000a36f3cd48407e35eb7c5c910dc1f7a8 0x600000000a36f3cd48407e35eb7c5c910dc1f7a8

State Diagrams

Gobbler Lifecycle Legendary Gobbler Auctions Page Auctions

Usage

You will need a copy of Foundry installed before proceeding. See the installation guide for details.

To build the contracts:

git clone https://github.com/artgobblers/art-gobblers.git
cd art-gobblers
forge install

Run Tests

In order to run unit tests, run:

forge test

For longer fuzz campaigns, run:

FOUNDRY_PROFILE="intense" forge test

For differential fuzzing against a python implementation, see here.

Run Slither

After installing Slither, run:

slither src/ --solc-remaps 'ds-test/=lib/ds-test/src/ solmate/=lib/solmate/src/ forge-std/=lib/forge-std/src/ chainlink/=lib/chainlink/contracts/src/ VRGDAs/=lib/VRGDAs/src/ goo-issuance/=lib/goo-issuance/src/'

Update Gas Snapshots

To update the gas snapshots, run:

forge snapshot

Deploy Contracts

In order to deploy the art gobblers contracts, set the relevant constants in the DeployMainnet script, and run the following command(s):

export DEPLOYER_PRIVATE_KEY=$DEPLOYER_PRIVATE_KEY
export GOBBLER_PRIVATE_KEY=$GOBBLER_PRIVATE_KEY
export PAGES_PRIVATE_KEY=$PAGES_PRIVATE_KEY
export GOO_PRIVATE_KEY=$GOO_PRIVATE_KEY

forge script script/deploy/DeployMainnet.s.sol:DeployMainnet --rpc-url $RPC_URL --verify --etherscan-api-key $API_KEY

We use profanity2 to securely generate vanity addresses for the ArtGobblers, Pages, and Goo contracts. As a result, each of these contracts must be deployed using a unique private key. To simplify deployment, the deployment script ensures that only DEPLOYER_PRIVATE_KEY needs to be seeded with ETH, by automatically transferring 0.25 ETH from it to the other deployers before they are used.

To ensure security in case the private keys generated by profanity2 are compromised, the script immediately revokes GOBBLER_PRIVATE_KEY's ownership over ArtGobblers and transfers it to a configurable address. Pages and Goo do not grant any special authority to their respective deployers.

Audits

The following auditors were engaged to review the project before launch:

License

MIT © 2022 Art Gobblers

art-gobblers's People

Contributors

frankieislost avatar rholterhus avatar transmissions11 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.