Our January update was primarily focused on smart contract enhancements, most of which were completed in Python. However, after much discussion with community devs, we've decided to change course and finish migrating the smart contracts to Java before deploying new features like continuous rewards, new collateral types, and boosted BALN.
This is ultimately a better decision for the long term, and thankfully most, if not all of the tests created for Python contracts will be usable for Java, which will make the rewrite much easier. A conservative estimate for the Java migration is 2 months.
Here's what was accomplished in January:
- Completed all testing of Python implementation of continuous rewards
- Optimized frontend API calls on the Trade page
- Progressed with rewriting smart contracts into Java
- Researched enhancements to the existing rebalancing mechanism and opened discussions with other community members
- Developed a Stability Fund smart contract in Java (in review)
- Added the ability to change your vote while the voting period is still open
Quality of life and code improvements:
- Fixed a bug that prevented rebalancing threshold votes from enacting
- Fixed network fee number formatting in the rewards section
- Fixed issues with base/quote tokens when creating a pool and supplying liquidity
- Added APIs to the DEX contract to better support the frontend
- Added new loading animations to the Stats page
- Improved the risk ratio bar and tooltips
We've completed all testing of the Python implementation of continuous rewards, but will now be waiting until the Java migration has been completed before releasing this upgrade.
In the meantime, you can preview how Balanced will work with continuous rewards by trying the Python version on the Sejong testnet.
There are still some UI bugs to be straightened out, but any additional updates will generate a new link. To make sure you're always using the most recent build, view the PR on GitHub and click the View deployment button at the bottom of the page.
In January, the community devs finished all unit tests for boosted BALN. They also solved some issues related to unsigned integers: the Solidity code used unsigned math while they were using signed, which created some issues that were discovered and fixed.
In February, they'll start integrating the bBALN architecture with existing smart contracts, and get it running on the testnet.
The interface changes are mostly complete, so after the smart contracts are pushed to the testnet, the logic can be hooked up and the final adjustments made.
The bBALN smart contract changes have been written in Java, so we'll be able to push this update to Balanced soon after the Java migration has been completed.
Governance and the January market crash
Between Jan 20-24, a sudden drop in the crypto markets combined with reverse rebalancing and other factors saw a large liquidation event on Balanced, with 174 accounts liquidated. To learn more about what happened and how the DAO responded, read the Jan 2022 market crash post-mortem.
Due to the amount of stress this caused within the Balanced community, a series of text proposals were submitted by community members to increase "goodwill" for the DAO. The idea being that the proposal with the most support would then be submitted to an on-chain funding vote. For the full discussion and rationale behind each proposal, see Recent Liquidations & building goodwill.
Of the 7 proposals, 2 were approved by more than 50%:
- Refund 1/4 of the sICX to liquidated borrowers and distribute 100K BALN to non-liquidated borrowers. (60.09% voted, 50.67% approved | Approval rate = 30.45%)
- Don't refund any sICX from the reserve fund. (55.66% voted, 52.23% approved | Approval rate = 29.07%)
1 came out slightly ahead, so a community member could now submit it to an on-chain funding vote.
Having said that, there is no on-chain rule about what can or should be voted on. Based on the current smart contract code, anyone can propose on-chain votes for a 100 bnUSD fee, as long as they’ve also staked 0.1% of the total BALN supply. Some community devs are working on a generic “distribution” contract which can take in funding and distribute it based on an arbitrary set of rules. Anyone could write something like this, but the code should be available in the Balanced repo once completed.
For ongoing discussion around next steps, make sure to follow this forum thread.
Targets for February
It’s now full-speed ahead for the Java smart contract migration. While the smart contract developers prepare the migration, the frontend devs will continue to focus on optimization.
Specifically, we'll take this month to:
- Complete 50%+ of the smart contract migration from Python to Java
- Deploy the Stability Fund contract
- Develop a protocol-owned liquidity contract for the Balanced DAO to interact with via DAO funding proposals
- Design new sections for the Stats page to show the balance of the stability fund and protocol-owned liquidity
- Continue to fix bugs and optimize the frontend
- Produce new educational content around bnUSD
- Solidify the future direction of rebalancing through more community discussion and research
- Discuss and propose BALN allocation adjustments to increase borrower incentives
If you have any questions or want to discuss these changes, join our Discord channel.