@symblox/pvlx-contracts v3.1.3
Pooled VELAS (pVLX)
The Symblox Pooled VELAS smart contracts.
Setup
This project is available as an NPM package:
$ yarn add @symblox/pvlx-contractsUsage
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("@symblox/pvlx-contracts/deployments/rinkeby/CompoundPrizePoolBuilder.json")
const { abi, address, receipt } = CompoundPrizePoolBuilderABIs
Application Binary Interfaces for all pVLX contracts and related contracts are available in the abis/ directory.
For example, to pull in the PrizePool ABI:
const PrizePool = require("@symblox/pvlx-contracts/abis/PrizePool.json")Development
First clone this repository and enter the directory.
Switch to the version-3 branch:
$ git checkout version-3Install dependencies:
$ yarnWe make use of Buidler and buidler-deploy
Deploy Locally
Start a local node and deploy the top-level contracts:
$ yarn startNOTE: When you run this command it will reset the local blockchain.
Connect Locally
Start up a Buidler Console:
$ buidler console --network localhostNow 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 .envrcMake sure to update the enviroment variables with suitable values.
Now enable the env vars using direnv
$ direnv allowNow deploy to a network like so:
$ yarn deploy rinkebyIt will update the deployments/ dir.