Celo Extension Wallet (desktop)
Common Issues and Fixes
Using the Alfajores Testnet
manages the contracts that run Ubeswap.
The Governance module contains several important contracts:
UbeToken: governance token; based on Uni
ReleaseUbe: non-transferrable token that releases Ube at an even rate over a period of 156 weeks. Based on Uni to keep track of voting power.
Timelock: based on the Uniswap timelock contract; ensures a minimum of 2 days must pass between the time an admin transaction is created and posted and the time that the transaction is executed.
A diff between Uni governance contracts and Ubeswap is available
Timelocks are a way to ensure that actions of protocol governance can be viewed ahead of time. We plan on launching a dashboard soon to allow users to view the actions of any of these timelocks.
Three Timelocks are deployed
in this script
Community -- Receives a share of mined tokens. Used to fund community projects.
Executive -- Controls most functions of Ubeswap; owner of most important contracts, notably:
The protocol fee switch in UbeswapFactory
The allocation of rewards between different liquidity mining pools (PoolManager)
The allocation of ReleaseUbe
CeloReserve -- Receives a share of mined tokens. Will be given to the Celo Reserve.
Currently, all Timelocks are admined by a wallet at
. We plan on transitioning this as soon as possible to a multisig, then to a DAO.
The UbeToken is the governance token of Ubeswap, used to vote on the direction of the protocol. Currently the voting mechanism is not live-- we plan on shipping it and a portal some time in Q3.
The token is largely based on the Uni token; however, we have decomposed the contract into a series of contracts inherited from each other:
-- keeps track of how much voting power an address has
-- a VotingPower that exposes a name, symbol, decimals, and balanceOf. Cannot be transferred.
-- a VotingToken that is fully ERC20-compliant and can be transferred.
-- the Ubeswap governance token.
This decomposition was performed in order to easily allow ReleaseUbe to use the same logic without being transferrable.
We were careful to preserve whitespace on
, as the code was copy/pasted from
ReleaseUbe allows for early Ube team members and early supporters to vote on proposals while still preventing those team members from selling their tokens early.
ReleaseUbe's release schedule distributes 25.7M UBE under the following schedule:
Start time: Thu Apr 22 2021 14:00:00 GMT+0000
End time: Thu Apr 18 2024 14:00:00 GMT+0000 (52*3 weeks later)
The following contracts make up ReleaseUbe:
-- inherits from VotingToken.
-- the ReleaseUbe token.
There are three steps to the deployment:
Deploying the Token and ReleaseUbe
This script ends up sending tokens to the Operator for the Operator to later distribute to the farming pools.
The actual allocation of ReleaseUbe will be in a private file, but the holders of ReleaseUbe are viewable on-chain via block explorer.
ReleaseUbe will be allocated before the launch date, and after the launch date, only the Executive timelock can modify the allocation.