- This is a smart contract in order to provide the opportunity of yield farming for Golem's GLM token holders (by staking uniswap-LP tokens that is a pair between GLM and ETH into the stake pool).
- Create UniswapV2-Pool between GLM token and ETH. (Add Liquidity)
- Create UNI-V2 LP tokens (GLM-ETH).
- Stake UNI-V2 LP tokens (GLM-ETH) into the GLM stake pool contract.
- Smart contract (the GLM stake pool contract) automatically generate rewards every week.
- The
Golem Governance Token (GGC)
is generated as rewards. - Current formula of generating rewards is that:
- 10% of staked UNI-V2 LP tokens (GLM-ETH) amount in a week is generated each week.
- Staker can receive rewards (
Golem Governance Token
) depends on theirshare of pool
when they claim rewards.
- Claim rewards and distributes rewards into claimed-staker (or, Un-Stake UNI-V2 LP tokens. At that time, claiming rewards will be executed at the same time).
- Solidity (Solc): v0.5.16
- Truffle: v5.1.60
- web3.js: v1.2.9
- Node.js: v11.15.0
- Libraries
- @openzeppelin/contracts: v2.5.1 etc...
$ npm install
- Please reference
.env.example
to create.env
$ npm run migrate:local
$ ganache-cli --fork https://mainnet.infura.io/v3/{YOUR INFURA KEY}
Then,
- All of tests
$ npm run test
- Only test of the Stake Pool contract
$ npm run test:stake
- Replace GLMMockToken contract (GLMMockToken.sol) with official GLM token contract (NewGolemNetworkToken.sol).
- Additional implementation of GLM stake pool between GLM-ERC20.
- Additional implementation of the Golem Governance Token (GGC) and governance structures (e.g. Community voting function by GLM token holders)
- Add liquidity pool of the Golem Governance Token (GGC).
- Implement the front-end (UI).