# @pooltogether/v4-core

> PoolTogether V4 Core Smart Contracts

Latest version **1.3.1** (published 2023-01-02) · GPL-3.0 license · 0 weekly downloads

## Install

```sh
npm install @pooltogether/v4-core
pnpm add @pooltogether/v4-core
yarn add @pooltogether/v4-core
bun add @pooltogether/v4-core
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; large bundle.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.3.1 |
| Published | 2023-01-02 |
| First published | 2021-10-08 |
| Weekly downloads | 0 |
| License | GPL-3.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 6 |
| Unpacked size | 43.3 MB |
| Known vulnerabilities | 0 (+14 in 1 direct dependencies) |
| Install scripts | no |
| Maintainers | asselstine, chuckbergeron, dylandesrosier, pierrick |

## Links

- npm: https://www.npmjs.com/package/@pooltogether/v4-core
- npm.io page: https://npm.io/package/@pooltogether/v4-core

## Dependencies (6)

- [deploy-eip-1820](https://npm.io/package/deploy-eip-1820.md) 1.0.0
- [@openzeppelin/contracts](https://npm.io/package/@openzeppelin/contracts.md) 4.3.1
- [@pooltogether/fixed-point](https://npm.io/package/@pooltogether/fixed-point.md) 1.0.0
- [@pooltogether/yield-source-interface](https://npm.io/package/@pooltogether/yield-source-interface.md) 1.4.0
- [@pooltogether/owner-manager-contracts](https://npm.io/package/@pooltogether/owner-manager-contracts.md) 1.1.0
- [@pooltogether/pooltogether-rng-contracts](https://npm.io/package/@pooltogether/pooltogether-rng-contracts.md) 1.5.2

## Recent versions

- 1.3.1 (latest) — 2023-01-02
- 1.4.0-beta.6 (beta) — 2022-08-08
- 1.3.0 — 2022-12-12
- 1.4.0-beta.5 — 2022-06-08
- 1.4.0-beta.4 — 2022-06-08
- 1.4.0-beta.3 — 2022-06-06
- 1.4.0-beta.2 — 2022-06-06
- 1.4.0-beta.1 — 2022-05-19
- 1.3.0-beta.1 — 2022-03-11
- 1.2.0 — 2021-11-27
- 1.1.1 — 2021-11-08
- 1.1.0 — 2021-11-02
- 1.0.0 — 2021-10-14
- 1.0.0-beta.5 — 2021-10-14
- 1.0.0-beta.4 — 2021-10-14
- … 3 more at https://npm.io/package/@pooltogether/v4-core/versions

## README

<p align="center">
  <a href="https://github.com/pooltogether/pooltogether--brand-assets">
    <img src="https://github.com/pooltogether/pooltogether--brand-assets/blob/977e03604c49c63314450b5d432fe57d34747c66/logo/pooltogether-logo--purple-gradient.png?raw=true" alt="PoolTogether Brand" style="max-width:100%;" width="400">
  </a>
</p>

<br />

# PoolTogether V4 Core Smart Contracts

![Tests](https://github.com/pooltogether/v4-core/actions/workflows/main.yml/badge.svg)
[![Coverage Status](https://coveralls.io/repos/github/pooltogether/v4-core/badge.svg?branch=master)](https://coveralls.io/github/pooltogether/v4-core?branch=master)
[![built-with openzeppelin](https://img.shields.io/badge/built%20with-OpenZeppelin-3677FF)](https://docs.openzeppelin.com/)
[![GPLv3 license](https://img.shields.io/badge/License-GPLv3-blue.svg)](http://perso.crans.org/besson/LICENSE.html)

<strong>Have questions or want the latest news?</strong>
<br/>Join the PoolTogether Discord or follow us on Twitter:

[![Discord](https://badgen.net/badge/icon/discord?icon=discord&label)](https://discord.gg/JFBPMxv5tr)
[![Twitter](https://badgen.net/badge/icon/twitter?icon=twitter&label)](https://twitter.com/PoolTogether_)

**Documentation**<br>
https://v4.docs.pooltogether.com

**Deployments**<br>
- [Ethereum](https://v4.docs.pooltogether.com/protocol/deployments/mainnet#mainnet)
- [Polygon](https://v4.docs.pooltogether.com/protocol/deployments/mainnet#polygon)
- [Avalanche](https://v4.docs.pooltogether.com/protocol/deployments/mainnet#avalanche)
- [Optimism](https://v4.docs.pooltogether.com/protocol/deployments/mainnet/#optimism)

# Overview
- [ControlledToken](/contracts/ControlledToken.sol)
- [DrawBeacon](/contracts/DrawBeacon.sol)
- [DrawBuffer](/contracts/DrawBuffer.sol)
- [DrawCalculator](/contracts/DrawCalculator.sol)
- [EIP2612PermitAndDeposit](/contracts/permit/EIP2612PermitAndDeposit.sol)
- [PrizeDistributionBuffer](/contracts/PrizeDistributionBuffer.sol)
- [PrizeDistributor](/contracts/PrizeDistributor.sol)
- [PrizeSplitStrategy](/contracts/prize-strategy/PrizeSplitStrategy.sol)
- [Reserve](/contracts/Reserve.sol)
- [StakePrizePool](/contracts/prize-pool/StakePrizePool.sol)
- [Ticket](/contracts/Ticket.sol)
- [YieldSourcePrizePool](/contracts/prize-pool/YieldSourcePrizePool.sol)

Periphery and supporting contracts:

- https://github.com/pooltogether/v4-periphery
- https://github.com/pooltogether/v4-oracle-timelocks


# Getting Started

The project is made available as a NPM package.

```sh
$ yarn add @pooltogether/pooltogether-contracts
```

The repo can be cloned from Github for contributions.

```sh
$ git clone https://github.com/pooltogether/v4-core
```

```sh
$ yarn
```

We use [direnv](https://direnv.net/) to manage environment variables.  You'll likely need to install it.

```sh
cp .envrc.example .envrc
```

To run fork scripts, deploy or perform any operation with a mainnet/testnet node you will need an Infura API key.

# Testing

We use [Hardhat](https://hardhat.dev) and [hardhat-deploy](https://github.com/wighawag/hardhat-deploy)

To run unit & integration tests:

```sh
$ yarn test
```

To run coverage:

```sh
$ yarn coverage
```

# Deployment

## Testnets
Deployment is maintained in a different [repo](https://github.com/pooltogether/v4-testnet).

## Mainnet
Deployment is maintained in a different [repo](https://github.com/pooltogether/v4-mainnet).

---
_Source: https://npm.io/package/@pooltogether/v4-core · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
