SpartanDEV: 13DEC21 - 19DEC21
Another wild week in Sparta-land with new partnerships, token burns, new pools, NFTs deploying to mainnet and many more changes across the whole contributor ecosystem
Summary
A very rewarding week seeing Coin Market League & BubbleMaps highlights coming to fruition and released into the wild. Both of these were bootstrapped and supported by passionate contributors that wanted to highlight the Spartan community's focus on BUIDl'n a platform by the people for the people along with its wide distribution.
We continue to see increasing swap volumes as Spartan Protocol's slip based fee model regularly provide the best route for swaps through the DApp & various aggregations. Slip-based fees look to have been the correct path for providing the best swaps tips helmet (hat) to ThorChain & co.
Buckle up, as this is a big week of updates!
5M More SPARTA Burned!
Well what a way to kick of #TuesdayNewsday then to permanently burn yet another 5,000,000 SPARTA to the 0x0...dead
address!
That's 10M SPARTA now burned via this method (Almost ~10% of the total supply) with the dead address now being the 4th biggest holder of SPARTA. Can't wait to see it jump up into 1st place in the coming months 🔥
FallenSpartans Expiry
A quick reminder to all fallenSpartans who had liquidity in the Spartan pools in V1 before May 2021. You may have forgotten to claim from the fund. Please visit the DApp, connect your wallet & go to the 'Upgrade' page to check. It has been almost a month since someone last claimed, so seems unlikely anyone remains to claim, but it is best to check just in case!
The expire
function will be called most likely within the next 24 hours or so to deem the remaining SPARTA expired, sending them to the Reserve contract where it can be handled by the DAO or protocol incentive emissions like all other non-circulating SPARTA.
DungeonSwap New Pool
The Spartan Protocol pool creation is open access and everyone has the individual power to list a new pool if they would like to. That's exactly what happened this week, yet again!
A Spartan community member listed the DungeonSwap pool ($DND) instantly enabling it for swapping within the protocol and wider network of DApps & contracts connected to the protocol. An example in the tweet is of the new pool popping up instantly on 1inch serving its first swap less than 1 minute after the pool was created.
#OpenTheGates BNB Pool
The BNB pool reached its caps yet again this week leading to another #OpenTheGates event. Every SPARTA that enters a pool is another SPARTA being utilized by the ecosystem and helping improve the swap rates.
BubbleMaps Partnership
Announced this week, a collaboration with Moonlight specifically partnering on their BubbleMaps tool. Moonlight provides a range of tools to provide utility in the BSC ecosystem. BubbleMaps is one of those tools, helping to visualise the distribution of the SPARTA token to perform a quick 'at a glance' round of Chainalysis without having to open a million explorer tabs. Check it out today.
BubbleMaps AMA
The first of many collaborations are happening very soon, an AMA on Moonlight's channel with our very own Spartan Community Leader, Thespis.
Details are as follows, but join the channel to get the exact time/date for your timezone pinned up the top:
- Where: Moonlight's Telegram Channel
- Date: Tuesday 21st December (UTC)
- Time: 8PM UTC
CoinMarketLeague Partnership
Another partnership announced this week was with CoinMarketLeague. Whilst SPARTA has been listed on their platform for quite some time now. There was a move to formalise things and improve the information on the platform.
SPARTA will now show up featured in multiple categories on the website and some of our news will be featured in their magazine.
CoinMarketLeague provides an arena for projects to compete for votes each week and make their way up the leaderboard. Check it out here.
#OpenTheGates USDT Pool
The USDT pool reached its caps this week too. The below image shows quite clearly the recent pickup in swaps through the pool since 1inch integration and even more so (swap $ volume) since some recent liquidity came into the pools and made the optimal trade window larger.
Seeing a pickup in swap volume across all the pools has pulled in some more liquidity to the $SPARTA:$USDT pool. Which leaves us wondering WEN $USDT Curation?
#FridayFor300 Quiz
The weekly quizzes have continued to be a nice little community boost at the end of each week, with many happy Spartans learning and earning along the way.
This week's quiz question:
"How much SPARTA has been permanently burned to the 0x0...dead address so far?"
Follow the tweet link below to see the hint and get involved!
Spartan Socials - Twitter
Community Tweet of the Week:
SpartanSocials - Telegram
Contributor's Focus
COMPLETE ✅ - Connect SPARTAv2 pools to 1inch
COMPLETE ✅ - Extend the pool-scoped charting/analytics in DApp
COMPLETE ✅ - Create & deploy SPARTA<>Bram NFTs to mainnet
COMPLETE ✅ - Setup simple token supply API
IN PROGRESS - Extend API to provide API & docs required to list pools as exchange on CG/CMC
IN PROGRESS - Connect SPARTAv2 pools to other aggregators
IN PROGRESS - Create a UI material library to revamp the DApp
IN PROGRESS - Design + build new landing page + the new text content
GitHub Activity - Spartan <> Bram NFTs
Reproduce the ERC-721s for each edition
Finalised the first 721 contract and then duplicated it whilst adapting to suit each illustration. Also created the custom Athena contract:
- Alexios
- Anaxandrides
- Athena
- Cleomenes
- Lacedaemon
- Leonidas
Create all URIs
Created 350 URIs to give each NFT its own unique metadata.
Deploy to mainnet
Proud to announce that these NFTs have been successfully built, tested and deployed to mainnet BSC. You can view them all sitting in the community wallet here.
Now that they are live on mainnet the only thing that remains to be finalised is how they are distributed. There are a number of discussions around this with ideas to parcel them off into a range of distributions methods over the coming months but nothing final/certain yet.
We managed to set up the contracts & metadata in a way that meant it was all hosted in a decentralised fashion despite switching to ERC-721 (which made it a lot harder and time-consuming) All metadata and images are hosted on the IPFS distributed file system.
GitHub Activity - Spartan UI Library
Change in direction
This week we took this repo in a slightly different direction with just using the repo as a base to rebuild the structure of the dapp using react-bootstrap rather than making a new component library. This will serve to speed up the process and give contributors time to apply time to a universal component library later on that can be utilized by all projects looking to build out the range of tools in the Spartan Protocol ecosystem.
New steps will be (roughly):
- Build the structure of the dapp (header, footer, sidebar etc) using vanilla bootstrap styling + react-bootstrap components + custom components where necessary
- Build a sample page of vanilla styled-components
- Create a stylesheet with minimal style rules + variables and make a fairly quick decision on colours/styles for light + dark theme
- Copy it all over to the DApp repo whilst deleting all existing DApp stylesheets + fix the file structure and cleanup while at it
- Get someone to contribute ideas to a colour palette with it now easy to change via universal stylesheet + variables
- At which point we will be inside the DApp repo again and this repo can resume progress on becoming a component/style library for the future
New init commit
A new init commit brought in bootstrap
, react-bootstrap
, react
etc so that we could begin building in this new direction. This commit also ticked the first couple of those rough tasks above bringing us to the 'simple stylesheet' section to create and apply a simple color palette and have something functional and acceptable to bring across to the DApp and begin integrating on a new branch.
The opportunity to work on the structural components fresh means a chance to integrate some much-requested features like the sidebar being 'perma-big' on larger screens.
To Do:
GitHub Activity - Spartan DApp
Supply Component Changes
Removed the V1 token calls from the supply section of the DApp to align our supply calculations more with Coinmarketcap + Coingecko. This would appear to drop our total supply etc down in the DApp which was always reporting a higher value than Coinmarketcap etc.
With the V1 token supply going stale and the fallenSpartans fund expiring, it seemed like a good time to call some RPC calls and consolidate this logic.
Security Page -> Partners Page
The security page has been repurposed into a more generic 'partners' page with the addition of a link to Moonlight's Bubblemap. This will be extended ongoing and hopefully, with the new DApp style on the horizon, we can get this more aesthetically pleasing at the same time.
RPC Fallback
We had some recent issues with the Ankr public RPC recently where it would neither pass nor fail to result in a weird endless call with no timeout that would hold up the whole dapp sometimes. This was fixed as we saw last week, but by doing so we added a requirement for at least one of the RPCs to reach a successful call before timeout.
As we have seen many times in the past, the BSC public RPCs sometimes all have issues at the same time. Whilst during these times I would expect the DApp to be unusable anyway, the above fix could also cause a very-very-very slow call to fail instead of eventually passing. So a simple fallback was added to check the list of RPCs and if none of them has passed, fallback to the first/main RPC and allow the DApp to at least try to load all the calls via that one RPC.
Vault APYs via Subgraph
With the subgraph updated to handle a 30 day rolling tally of harvested SPARTA value via each vault (see previous weekly updates) some time was allocated to bringing that data into the DApp.
The APYs we now see in the DApp is powered by data from the subgraph instead of the mappings in the contracts. Reliance on a more centralised source of data is not ideal generally, but we are talking about data that is not critical to the protocol and potentially means a future redeploy of some contracts can be done with this data/logic removed, thereby reducing the gas costs of interacting with the protocol.
Vaults Parent-Page
Added a param check to handle selecting a tab of the page based on a URL parameter being handed over when routing to the page. This enabled the ability for another page to have a link that not only sends the user to the 'Vaults' page but also has the 'SynthVault' tab selected automatically.
DaoVault Changes
As mentioned above, the APY for the DaoVault is now calculated using subgraph data, which means some logic was required to add to the DaoVault page to handle all that.
While at it, some tooltips were changed and a loading state for the APY so that it shows Loading...
if the APY data is not yet completely loaded (should rule out that weird gazillion-percent-APY-for-a-couple-of-seconds-every-now-and-then bug)
SynthVault Changes
With the subgraph now being responsible for the SynthVault APY data, we were able to disable some more RPC calls in the back-end to do with calling the chain for the recent SynthVault harvest tallies.
A loading state was added for the APY so that it shows Loading...
if the APY data is not yet completely loaded (should rule out that weird gazillion-percent-APY-for-a-couple-of-seconds-every-now-and-then bug)
Charts Extended
Added a helper function to get the start of epoch. This was put to use to check if the current data point is incomplete (current day) so that we could add some logic to show that data point in a different colour to the rest to make it clear it is incomplete and not just a 'bad day'. This was also used to change the label of any incomplete data points to say 'Current (Incomplete)' too.
The Liquidity page had yet another chart metric added to it for 'Transaction Count' so you can visually see the trend of swaps going through each pool.
One last addition here was a dropdown to select a time period of days to filter the chart/data down to. Helps with analysing longer-term trends and scoping down data to recent periods if you are really trying to analyse the data deeply.
Pools Page Changes
DaoVault APY was added underneath the normal pool APY for the Curated pools on the pools screen now that we have a DaoVault APY calculation to gloat about 😁
Added a 'Synth View' filter button to switch the view over to a 'synth' scope on the pools page and then removed all synth data from the pools page to go to its own scope.
Added Synth-View to Pools Page
Created a new SynthItem component for the pools screen to present more relevant synth data reducing the confusion for the user who was previously getting a mix of pool & synth data in the one tile.
This gave us plenty of room to bring in any other relevant synth data that we previously couldn't see without digging into the explorer or calling the contracts.
Added 2 buttons to direct the user to 'forge synths' or 'stake synths'. The stake synths button directs the user using the Vaults page with the SynthVault tab preselected (see 'Vaults Parent-Page' section above)
GitHub Activity - Resources
Added New Header-style Bram Images
GitHub Activity - Spartan Site
Whilst no commits can be seen on the public GitHub repo yet, there has been a lot of progress recently on the new replacement landing page/website. Hopefully we can see some of these changes coming across in a new branch on this repo soon.
GitHub Activity - Spartan Arena Contracts
Don't read too much into the below, Samus was just making an attempt to set up some initial contracts with generic functions that may or may not fit into the overall plan for the 'Spartan Arena' or 'SpartArena' 😁 details to follow as they emerge! (I don't know about you... but I am excited for whatever this is!)
Tickets Contract
Created fairly standard ERC-1155 contract for the 'tickets' to be minted/burned etc
NFTs Contract
Created fairly standard ERC-721 contract for the actual 'NFTs' portion, the items that should have utility in the ecosystem
Staking Contract
Created a basic contract for single-staking SPARTA and earning 'tickets'
Chance Contract
Created basic contract to handle checking the staking contract's mappings and determining if the staker is to receive tickets
GitHub Activity - Spartan API
Added TotalSupply & Circulating Endpoints
Added a simple text/number return for singular endpoints for total supply & circulating supply (kept the full 'supply' object endpoint too). The main reason for this was to give CMC, CG a more simple endpoint for a total supply figure with the recent changes to burns going to the dead address
Misc
Move the repetitive const vars to their own utils file.
Added a simple v1docs template to extend on / replace later on.
To Do:
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.
Engage with the community and contributors
Where to find out about all the latest updates or suggest improvements — get involved.
- Twitter: https://twitter.com/spartanprotocol
- Telegram Community: https://t.me/spartanprotocolorg
- Telegram Announcements: https://t.me/spartanprotocolann
- Discord Academy: https://discord.gg/wQggvntnGk