SpartanDev: 18OCT - 24OCT21
The DAO is live with our first proposal successfully completed! We now focus on Dividend & Reserve logic whilst moving towards our 1st V2 Bond allocation
Dao Proposals
This week, DAO proposals went live with the first proposal to list BNB as an asset available for the Bond program reaching consensus & passing successfully. Congratulations Spartans, another milestone!
No time was wasted with the next (current) proposal being discussed & voted on to list BTCB for the Bond program too.
It will be exciting to see when someone is keen to propose an allocation for the Bond Program drawing in some long-term-aligned TVL.
Will you be the first person to list a proposal for a Bond allocation? Want to learn how to do it? The SpartanProtocol community have been busy building out the collected knowledge base over at https://docs.spartanprotocol.org
SpartanProtocol Educational Documents:
The community can now continue getting more involved with the DAO & begin to discuss the current and next proposals in more detail to be more prepared every time. As we move closer to a Bond allocation & eventually enable Synths, the pool incentives get a keen focus to ensure our liquidity providers are receiving the best base layer incentives they can. Some of this is covered below!
Binance AMAs
Expect some more info to roll out soon in regard to the upcoming Binance AMAs. Our community has been busy working hard to organise the Binance Global + Binance Turkey AMAs. Some recent generous donations also bumped up the community wallet to be in a position to cover the budgets for these AMAs too which is great to see
Bounty Program
Whilst not finalised or official yet, expect some news soon in regard to ongoing Protocol security efforts with setting up an ongoing bounty program to ensure whitehat hackers have an easy way of reaching out & claiming a bounty if they find a bug or exploit. We have had some community contributors working with Binance and their recommended leading platforms to handle this bounty program.
Finalising this should be considered a big step towards being in a position to apply for the Binance 'Priority One' program of which discussions with Binance has already begun.
What's up Docs?
Huge thanks to those who helped contribute to broadening the docs over the past couple of weeks. It tends to not get covered in these updates unfortunately as it doesn't have a 'GitHub' as such! The past couple of weeks saw guides get created for almost every DApp-facing function, I mean check them all out!:
Still, a lot of work to do here with padding 100% of the info out so please do not hesitate to reach out if you are willing to help! The next pass will be to make it more understandable & pretty which can be happening now if anyone is interested in jumping in and having a go.
Thanks, Contributors!
Been a busy week (like always) for the contributors, big thanks to all those who have helped in the past, those who are helping now, and our future Spartans who step up to help in any way they can. Please see some of those publicly viewable updates in a readable format below!
Wednesday feeBurn Update
It is quite cool to see mainnet live now, watching these numbers grow and the total supply being deflated every time SPARTA moves around.
Spartan Socials - Twitter
Tweet of the Week:
Community Tweet of the Week:
SpartanSocials - Medium
SpartanSocials - Telegram
Contributor's Focus
ONGOING - Continue updating DApp during mainnet ('functional' priority)
COMPLETE ✅ - Enable the Vault incentives
COMPLETE ✅ - Enable the DAO proposals
COMPLETE ✅ - DAO to list Bond assets
DAO to release first Bond allocation
IN PROGRESS - Diversify Reserve holdings into LPs
IN PROGRESS - Work with aggregators to connect the SPARTA pools
IN PROGRESS - Set up a reliable index of history scoped to contracts (for 'positions' page)
Build a 'positions' page for V2
Post-C4-contest article on the top issues
(Side-Task) — Work with CMC/CoinGecko to feed in the SPARTA pool info
March onwards with our original goals of building the decentralised, yield-generating synthetics protocol on Binance Smart Chain
GitHub Activity — Spartan Contracts v2
This week, work began on allowing the Reserve to partially diversify its holdings from 100% of it being held in SPARTA to a portion being held in curated LP tokens. The short term plan would be to have the protocol add small amounts of liquidity in regular intervals each day into the curated pools and convert some SPARTA into for instance BUSDp. This would obviously add some TVL which is great; as we all know the long term vision is super deep pools, but that's less of the focus with this and more so on being able to increase the dividends/revenue for the underlying liquidity providers.
How does adding liquidity to a pool increase revenue for LPers? Doesn't it just dilute their holdings?
Fair question, a few things here though:
- Deeper pools = better swap rate = more swap utility = more swap activity = more revenue (again this is the lesser focus here but still relevant)
- When the liquidity is added by the protocol, it doesn't care about rate nor profit, so it can be added asymmetrically which creates slip in that very moment along with a follow-up arbitrage opportunity which obviously also leads to more swap activity & revenue
- Now to the major point, these LP tokens could easily be redeemed away from protocol ownership and attributed to the underlying liquidity providers; increasing the redemption value of the LP tokens they already hold. This ultimately rewards the most important peers of this ecosystem (LPers) and incentivises deeper pools. It also takes steps towards removing the dependency of the DaoVault harvest rewards as an incentive for LPers. How exactly this would work & percentages etc would obviously need to be fine-tuned over time just like the dividends which we all love, but its focus would be on a nice balance of sustainability and well-placed incentive. The variables will be adjustable just like other incentives in the protocol, so there's no major final decision as such that needs to be made before deploy
- Obviously, this is just one small piece of the overall revenue long term plan, getting aggregators on board will be a major step towards sustainability with increasing the swap activity in the pools. Synths etc all play their role later on too
contracts/Reserve.sol
- Added variables for the Reserve-diversification (Reservification?)
- Added a permission modifier
RealisePOL
- added event to keep the subgraph in syncsetParams()
- set the current curated pool address that should be diversified to. BNB will not be allowed here; saves a lot of complex wrap/unwrap logicsetPOLParams()
- regulate the current paramgrantFunds()
- addedaddPOL()
to the grant function so that it's checked and potentially triggered whenever a dividend or similar is triggeredgrantPOLFunds()
- function added to potentially allow for paying out in LP tokens in the future. This also allows us to migrate funds in the case of a Reserve upgraderealisePOL()
- this allows us to essentially 'burn' some Reserve-held LP tokens and attribute them to the underlying liquidity providers, growing the redemption value of everyone's LP tokensflipPol()
- switch on/off this new logicperformApprovals()
- handle the allowancesaddPOL()
- perform a diversification event. Converts a basis point percentage of the SPARTA to LP tokens. This will only happen if thepolEmission
time has passed since the last event
contracts/Router.sol
- Added
minDiv
to ensure there are no dust-sized dividends. This is likely to be set at 1 SPARTA to ensure the smallest dividend will never be less than 1 SPARTA - Added a
Dividend
event to keep the subgraph in sync - Added a permission modifier
onlyRESERVE()
_getsDividend()
- removed the dust-skipper and enforced theminDiv
instead (dividends will be much more frequent now)_migrateRevenue()
- added function to migrate the revenue easier to a new router contract on upgradechangeDiviClaim()
- added in setter for theminDiv
syncPool()
- this handles attributing the resulting 'burned' LPs to the liquidity providers fromrealisePOL()
& also adds the SPARTA value of this to the revenue array to show up in the front end / APY calcs
GitHub Activity — Spartan DApp v2
General/Global:
- Added a Netlify workflow as the main deploy
- Move Firebase deploy as a lagging commit mirror for redundancy
- Added a 'DApp temporarily offline' style message to use during contract upgrades
- Balanced the header icons
- Turkish translation update/extension
- Redux store reducers; changed some default init values to
false
to handle a simple 'loading' state
src/components/Contracts/Contracts.js
- Added a separate 'contracts' dropdown to the header for just the contracts & global details/variables
src/components/Header/Header.js
- Added in the above new
Contracts
component to the header
src/components/Supply/Supply.js
- Removed the contracts section from the supply/tokenomics dropdown
- Hide the arrow down icon on iPhone 5 so that everything still fits
- Remove the global freeze indicator from here
src/utils/math/router.js
- Adjusted all the dividend calcs to account for the new
minDiv
dividend logic
src/utils/web3.js
- Updated testnet addresses & commits
- Added BUSDp address for testing
src/views/pages/Dao/NewProposal.js
- Changed the returned JSX to be conditionally shown/run
- Changed the New Proposal button
- General changes
src/views/pages/Dao/Overview.js
- Added a global details tile to the DAO with some relevant placeholder variables (might need some discussion on whats good to show here)
- Added an info tile to the DAO to explain the current proposal type's description with a link to the docs (only added a couple of quick explainers, this will need to be padded out for all proposal types)
- Added a simple 'Add Weight' CTA for the user to stake in the DaoVault
- Fine-tuned the 'no valid proposals found' logic
- Set a const height for the tiles as a quick solution to getting things lined up
src/views/pages/Dao/ProposalItem.js
- Added some loading states to weights etc to ensure they aren't shown until they are ready (no more 'inf.' flashing?)
- Changed up the style a bit to match the other views
- Added in the description from the 'info tile' to closed/completed proposal items to show more info for the proposal history
src/views/pages/Pools/Overview.js
- Updated this view a bit to hide the pools that have a depth below their initial setup requirements
- Can click a filter button to have them show up though if you want to add liquidity to a previously abandoned pool, token demand can be a bit fluid & pools never expire, they are contracts after all!
src/views/pages/Pools/PoolItem.js
- Fixed the weird edge case where the visual ratio was broken (probably solved, hasn't been replicable since)
src/views/pages/Upgrade/Overview.js
- Removed leading title/breadcrumb area to get this a bit closer to the style of the other pages
GitHub Activity — Spartan Blog
- Added Netlify badge to the footer
- Fixed the image dimensions issue
Project Information
Official Links
- Website: https://spartanprotocol.org/
- DApp: https://dapp.spartanprotocol.org/
- GitBook (Docs): https://docs.spartanprotocol.org/
- GitHub: https://github.com/spartan-protocol
Community Contribution
Spartan Protocol is at its core, a community-driven and led project. In this vein, the more contributors the better. There is a great opportunity for community members to contribute by making LP reward analysis tools, etc.
Recently, community members have been graciously funnelling in to contribute to explainer articles, ideas and even $SPARTA donations to support the growth of the platform.
Binance Smart Chain testnet Faucet
Engage with the community and contributors
Where to find out about all the latest updates or suggest improvements — get involved.
- Medium: https://medium.com/spartanprotocol
- Twitter: https://twitter.com/spartanprotocol
- Telegram Community: https://t.me/spartanprotocolorg
- Telegram Announcements: https://t.me/spartanprotocolann
- Discord Academy: https://discord.gg/wQggvntnGk