Socket
Book a DemoInstallSign in
Socket

@wooy/pool-contracts

Package Overview
Dependencies
Maintainers
12
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@wooy/pool-contracts

Wooy Prize Linked Savings Account Pool Smart Contracts

1.1.0
latest
npmnpm
Version published
Maintainers
12
Created
Source

Wooy Prize Savings Protocol

built-with openzeppelin

The Wooy 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 @wooy/pool-contracts

Usage

Artifacts

There are deployment artifacts available in the deployments/ directory. For example, to pull in the PoolWithMultipleWinnersBuilder artifact:

const PoolWithMultipleWinnersBuilder = require('@wooy/pool-contracts/deployments/rinkeby/PoolWithMultipleWinnersBuilder.json')
const { abi, address, receipt } = PoolWithMultipleWinnersBuilder

ABIs

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

For example, to pull in the PrizePool ABI:

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

Development

First clone this repository and enter the directory.

Install dependencies:

$ yarn

We use direnv to manage environment variables. You'll likely need to install it.

Testing

We use Hardhat and hardhat-deploy

To run unit & integration tests:

$ yarn test

To run coverage:

$ yarn coverage

To run fuzz tests:

$ yarn echidna

Fork Testing

Ensure your environment variables are set up. Make sure your Alchemy URL is set. Now start a local fork:

$ yarn start-fork

Setup account impersonation and transfer eth:

$ ./scripts/setup.sh

Deployment

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 Hardhat Console:

$ hardhat console --network localhost

Now you can load up the deployed contracts using hardhat-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.

FAQs

Package last updated on 27 Jul 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.