Giter Club home page Giter Club logo

pooltogether-pool-contracts's Introduction

PoolTogether Brand


PoolTogether Prize Savings Protocol

Coverage Status

built-with openzeppelin

The PoolTogether Prize Savings Protocol Ethereum smart contracts.

For an overview of the concepts and API please see the documentation

Setup

This project is available as an NPM package:

$ yarn add @pooltogether/pooltogether-contracts

Usage

Artifacts

There are deployment artifacts available in the deployments/ directory. This includes:

  • Builders
  • Proxy Factories
  • Comptroller
  • ProxyAdmin

Prize Pools and Prize Strategies are not included, as they are created using the Builders.

For example, to pull in the CompoundPrizePoolBuilder artifact:

const CompoundPrizePoolBuilder = require('@pooltogether/pooltogether-contracts/deployments/rinkeby/CompoundPrizePoolBuilder.json')
const {
  abi, 
  address, 
  receipt
 } = CompoundPrizePoolBuilder
ABIs

Application Binary Interfaces for all PoolTogether contracts and related contracts are available in the abis/ directory.

For example, to pull in the PrizePool ABI:

const PrizePool = require('@pooltogether/pooltogether-contracts/abis/PrizePool.json')

Development

First clone this repository and enter the directory.

Switch to the version-3 branch:

$ git checkout version-3

Install dependencies:

$ yarn

We make use of Buidler and buidler-deploy

Deploy Locally

Start a local node and deploy the top-level contracts:

$ yarn start

NOTE: When you run this command it will reset the local blockchain.

Connect Locally

Start up a Buidler Console:

$ buidler console --network localhost

Now you can load up the deployed contracts using buidler-deploy:

> await deployments.all()

If you want to send transactions, you can get the signers like so:

> let signers = await ethers.getSigners()

Let's mint some Dai for ourselves:

> let dai = await ethers.getContractAt('ERC20Mintable', (await deployments.get('Dai')).address, signers[0])
> await dai.mint(signers[0]._address, ethers.utils.parseEther('10000'))
> ethers.utils.formatEther(await dai.balanceOf(signers[0]._address))
Deploy to Live Networks

Copy over .envrc.example to .envrc

$ cp .envrc.example .envrc

Make sure to update the enviroment variables with suitable values.

Now enable the env vars using direnv

$ direnv allow

Now deploy to a network like so:

$ yarn deploy rinkeby

It will update the deployments/ dir.

pooltogether-pool-contracts's People

Contributors

asselstine avatar robsecord avatar chuckbergeron avatar dependabot[bot] avatar abcoathup avatar martriay avatar aodhgan avatar

Watchers

James Cloos 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.