@symblox/pvlx-contracts
v3.1.3
Published
Pooled VELAS Token Smart Contracts
Downloads
15
Readme
Pooled VELAS (pVLX)
The Symblox Pooled VELAS smart contracts.
Setup
This project is available as an NPM package:
$ yarn add @symblox/pvlx-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("@symblox/pvlx-contracts/deployments/rinkeby/CompoundPrizePoolBuilder.json")
const { abi, address, receipt } = CompoundPrizePoolBuilder
ABIs
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-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.