This document provides a detailed log of upgrades to the smart contract suite, ensuring clear tracking of changes, improvements, bug fixes, and versioning across all contracts.
Date | Contract(s) | Summary |
---|---|---|
21th October 2024 | VeBetterPassport version 2 |
Check if the entity is a delegatee when request is created |
11th October 2024 | XAllocationVoting version 2 |
Check isPerson when casting vote & fixed weight during vote |
11th October 2024 | B3TRGovernor version 4 |
Check isPerson when casting vote |
11th October 2024 | X2EarnRewardsPool version 3 |
Register action in VeBetter Passport contract |
27th September 2024 | Emissions version 2 |
Aligned emissions with the expected schedule |
13th September 2024 | B3TRGovernor version 3 , XAllocationPool version 2 |
Added toggling of quadratic voting and funding |
4th September 2024 | X2EarnRewardsPool version 2 |
Added impact key management and proof building |
31st August 2024 | VoterRewards version 2 |
Added quadratic rewarding features |
29th August 2024 | B3TRGovernor version 2 |
Updated access control modifiers |
Added check to ensure entity is not a delegatee or pending delegatee when making entity link request.
- Upgraded Contract(s):
VeBetterPassport.sol
to version2
- None.
- None.
VeBetterPassport.sol
:- Added check to ensure entity is not a delegatee or pending delegatee when making entity link request.
Upgrade XAllocationVoting
to Version 2, B3TRGovernor
to version 4, and X2EarnRewardsPool
to version 3 (9th October 2024)
This upgrade ensures that the isPerson
check is performed when casting a vote in the XAllocationVoting
and B3TRGovernor
contracts. Additionally, the X2EarnRewardsPool
contract now registers actions in the VeBetter Passport
contract.
Another change in the XAllocationVoting
contract is the fixed weight during the vote, ensuring that the weight cannot be lower than 1.
- Upgraded Contract(s):
XAllocationVoting.sol
to version2
B3TRGovernor.sol
to version4
X2EarnRewardsPool.sol
to version3
XAllocationVoting.sol
:- Added veBetterPassport contract address.
B3TRGovernor.sol
:- Added veBetterPassport contract address.
X2EarnRewardsPool.sol
:- Added veBetterPassport contract address.
XAllocationVoting.sol
:- Added
isPerson
check when casting a vote.
- Added
B3TRGovernor.sol
:- Added
isPerson
check when casting a vote.
- Added
X2EarnRewardsPool.sol
:- Register actions in the
VeBetter Passport
contract.
- Register actions in the
XAllocationVoting.sol
:- Fixed weight during vote to ensure it cannot be lower than 1.
This upgrade aligns the emissions with the expected schedule by correcting previous configuration errors.
- Upgraded Contract(s):
Emissions.sol
to version2
- Added
_isEmissionsNotAligned
to store the emissions alignment status.
- In
_calculateNextXAllocation
function, added logic to calculate the next X Allocation based on the emissions alignment status.
- Corrected
xAllocationsDecay
from912
to12
, fixing the erroneous value set in version1
. - Applied a reduction of
200,000
B3TR emissions for round14
to align with the expected emissions schedule.
This upgrade adds the ability to toggle quadratic voting and quadratic funding on or off, providing greater control over governance and allocation mechanisms.
- Upgraded Contract(s):
B3TRGovernor.sol
to version3
XAllocationPool.sol
to version2
B3TRGovernor.sol
:- Added
quadraticVotingDisabled
checkpoints to store the quadratic voting disabled status.
- Added
XAllocationPool.sol
:- Added
quadraticFundingDisabled
checkpoints to store the quadratic funding disabled status.
- Added
B3TRGovernor
:- Ability to toggle quadratic voting on or off.
XAllocationPool
:- Ability to toggle quadratic funding on or off.
- None.
This upgrade introduces impact key management and the ability to build proofs of sustainable impact.
- Upgraded Contract(s):
X2EarnRewardsPool.sol
to version2
- Added
impactKeyIndex
to store allowed impact keys index for proof of sustainable impact building. - Added
allowedImpactKeys
to store the array of allowed impact keys.
- Introduced the
IMPACT_KEY_MANAGER_ROLE
to manage allowed impact keys. - Introduced the
onlyRoleOrAdmin
modifier to restrict access to theIMPACT_KEY_MANAGER_ROLE
or admin. - Added
buildProof
function to build proof of sustainable impact.
- None.
This upgrade adds the ability to disable quadratic rewarding for specific cycles, providing greater flexibility in reward distribution. Introduced as first step of sybil mitigation.
- Upgraded Contract(s):
VoterRewards.sol
to version2
- Added
quadraticRewardingDisabled
checkpoints to store the quadratic rewarding status for each cycle.
- Added functions to:
- Disable or re-enable quadratic rewarding for specific cycles.
- Check if quadratic rewarding is disabled at a specific block number or for the current cycle.
- Added the
clock
function to get the current block number.
- None.
This upgrade enhances access control by allowing the DEFAULT_ADMIN_ROLE
to execute critical functions without requiring a governance proposal.
- Upgraded Contract(s):
B3TRGovernor.sol
to version2
- Storage Changes: None.
- Updated functions previously restricted by
onlyGovernance
to useonlyRoleOrGovernance
, permittingDEFAULT_ADMIN_ROLE
direct access.
- None.
- Quadratic Voting: A voting system where the cost of votes increases quadratically with the number of votes cast.
- Quadratic Funding: A funding mechanism that allocates resources based on the square of contributions received.
- Checkpoint: A recorded state at a specific point in time for tracking changes or status.