SpartanDEV: 13DEC21 - 19DEC21

Dev Update

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

SpartanDEV: 13DEC21 - 19DEC21

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:

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

GitHub - spartan-protocol/spartan-nfts-bram-01: 🎭 Spartan Protocol NFTS 01: the Bram Vanhaeren Collection (https://twitter.com/BramVanhaeren)
🎭 Spartan Protocol NFTS 01: the Bram Vanhaeren Collection (https://twitter.com/BramVanhaeren) - GitHub - spartan-protocol/spartan-nfts-bram-01: 🎭 Spartan Protocol NFTS 01: the Bram Vanhaeren Collec...

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

GitHub - spartan-protocol/spartan-ui-library: ⚙ Spartan Protocol Community UI Components
⚙ Spartan Protocol Community UI Components. Contribute to spartan-protocol/spartan-ui-library development by creating an account on GitHub.

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:

Create General Structure & Wrapper · Issue #5 · spartan-protocol/spartan-ui-library
Create general structure + main components (header, footer, sidebar etc) Create a wrap/grid style Create any helpers that would have save a lot of time in the DApp (get current breakpoint etc)
Create Samples Page · Issue #6 · spartan-protocol/spartan-ui-library
Create a home page with all the sample react-bootstrap components that we might use Use this when setting up the first init styling to visually see the effects of all the changes
Create Major Component/View Mockups · Issue #7 · spartan-protocol/spartan-ui-library
Put together some components to create mockups of the major view&#39;s components For instance, create a &#39;swap&#39; view with the inputs &amp; asset selectors etc (don&#39;t actually pull in th...

GitHub Activity - Spartan DApp

GitHub - spartan-protocol/SpartanProtocol-DAppV2: 📱 Spartan Protocol Community DApp
📱 Spartan Protocol Community DApp. Contribute to spartan-protocol/SpartanProtocol-DAppV2 development by creating an account on GitHub.

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

GitHub - spartan-protocol/resources: 🎨 Spartan Protocol Branding & Resources
🎨 Spartan Protocol Branding & Resources. Contribute to spartan-protocol/resources development by creating an account on GitHub.

Added New Header-style Bram Images


GitHub Activity - Spartan Site

GitHub - spartan-protocol/spartan-site: 🕸 Spartan Protocol Community Website
🕸 Spartan Protocol Community Website. Contribute to spartan-protocol/spartan-site development by creating an account on GitHub.

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

GitHub - spartan-protocol/spartan-arena-contracts: ⚔ Spartan Arena Contracts
⚔ Spartan Arena Contracts. Contribute to spartan-protocol/spartan-arena-contracts development by creating an account on GitHub.

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

GitHub - spartan-protocol/spartan-api: 👩‍💻 Spartan Protocol Simple Headless API
👩‍💻 Spartan Protocol Simple Headless API. Contribute to spartan-protocol/spartan-api development by creating an account on GitHub.

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:

Extend API to Suit CMC/CG ‘Exchange’ Requirements · Issue #1 · spartan-protocol/spartan-api
CoinGecko: CMC: Maybe copy this ‘ideal’ example: https://docs.google.com/document/d/1S4urpzUnO2t7DmS_1dc4EL4tgnnbTObPYXvDeBnukCg/edit
Extend Readme/Docs to Suite Extended API · Issue #2 · spartan-protocol/spartan-api
After extending the API out to suit the requirements (#1): Extend out the docs.md file to match the new API endpoints etc

Project Information

  • 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.