SpartanDev:15/03/21–21/03/21

SpartanDev:15/03/21–21/03/21

DevUpdate: DappV2| SpartanContractsV2

DevUpdate: DappV2| SpartanContractsV2

Summary

This week saw continued development of DAppV2 and the migration user interface to ensure a smooth transition to SpartanPoolsV2. The community also suggested and designed a few additional features, which quickly got implemented in the contracts too!

Spartan Socials — Twitter

Top Impressions:

Top Engagement:

Top Community Mention:

SpartanSocials — Medium

SpartanSocials — Telegram

GitHub Activity

SpartanContractsV2

With the first phase of the new contracts ready for mainnet, the current focus has been ensuring the migration process is as smooth as possible.

The next step here will be to release the new SpartanPoolV2 contracts and migration contracts at the same time.

We should consider the migration from the SPT1 to SPT2 contracts the most critical component of the immediate future of Spartan Protocol; making sure it is simple and easy for all existing Liquidity Pool token holders to migrate to the new SPT2 pools from a simple ‘migration’ page with a simple set of steps signed by your wallet in the correct order, and ensuring that Bond LP tokens are migrated easily as well. The contributors are aiming to migrate all BondV2 & BondV3 members to a combined BondV4 also to reduce the UX issues involved in claiming multiple bond versions.

With that out the way, the focus will then be on delivering the Compound and Lending contracts whilst the UX contributors refine the process for Spartans to use LP tokens to establish their CDP, mint synthetic assets, and then un-mint (burn) their synths to allow access to their initial LP tokens as required.

spartan-protocol/spartanswap-contracts
You can't perform that action at this time. You signed in with another tab or window. You signed out in another tab or…github.com

Track slip fee revenue inside Pools contract instead of Router contract

With 3rd part aggregators like 1inch using direct-pool swap features in SpartanPools, we consider internal mappings (for the UI) potentially reporting lower number than the actual pool earnings.

Two options here:

  • Block 3rd party Routers from interacting with the pools (No thanks! Lets be open and inclusive!)
  • OR: Move the important mappings to the Pool’s contract so they happen regardless of the router. Contributors obviously opted for this. These mappings are only for the UI anyway, which will be generated via a subgraph or similar in the future.

revenue Array · spartan-protocol/spartanswap-contracts@44ec403
SpartanSwap Contracts. Contribute to spartan-protocol/spartanswap-contracts development by creating an account on…github.com

Added ‘zap’ LP token to other LP token feature

The community suggested adding a feature to swap one type of LP token for another. For instance; if you have SPT2-WBNB LP tokens and you wanted to remove your liquidity and instead add it to the SPT2-BTCB pool, previously you would remove your liquidity to SPARTA & WBNB, then swap the WBNB for SPARTA and then swap that SPARTA for BTCB then grab the previous SPARTA + the new BTCB and add it to the pools.

That's quite a few transactions for something fairly easy to calculate with the internal pricing of Spartan Protocol’s pools! This was always the long-term plan to ensure SimpleSwap between all asset types within SpartanProtocol, but while the community contributor was already in that part of the contracts; it was implemented and tested within the day.

With the modular contracts in place with the migration to SPT2s, and with them setup to handle a lot more smart ideas like this, the contributors are in a position where they can add more UX-simplifying features in the future.

zap liquidity · spartan-protocol/spartanswap-contracts@9892a35
SpartanSwap Contracts. Contribute to spartan-protocol/spartanswap-contracts development by creating an account on…github.com

They also made the migration contract to be a lot easier for the end user this week. It will now loop through your SPT1 liquidity pools and migrate them all with one signer transaction instead of 1 per pool!

Same deal with BondV3 members; one signer transaction for the lot instead of one per bonded asset.

At this point migration will look something like this:

  • Step 1: Unlock all LP tokens from the DAO (Lock+Earn) (One signer transaction per LP token type)
  • Step 2: Migrate all LP tokens to the SPT2s with one singer transaction total
  • Step 3: Migrate BondV2 LP tokens to BondV4
  • Step 4: Migrate all BondV3 LP tokens to BondV4
  • Step 5: Finalise migration process
  • Step 6: Redirect user to the new DAppV2

SpartanDAppV1

No major work/fixes required this week in the maintenance of DAppV1. This provides good confidence the refinements made to V1 bode well for a solid foundation for V2.

Contributors are laser-focused on the upgrading and implementation of SpartanContractsV2 and SpartanDAppV2.

SpartanDAppV2

Lots of work done across the board for DAppV2, have a look at the github closed issues to see the improve wallet interactions, and the smoother operation of RPCs.

Active community contributors have been providing a significant amount of feedback in development channels on how to enhance the Spartan Protocol DApp experience for some below regularly performed task:

  • Creating LP and staking in the DAO
  • Removing LP
  • Removing from Bond and subsequent removal of LP (via the DAO, which is a cumbersome process in V1, particularly for users who Bonded in both rounds)
  • Proposed enhancements for Spartan Swap (our simpler approach to allow users to zap their tokens or LP between pools)

Make tests smoother and faster

The tests were taking longer than expected and slowing down dev updates; they were fixed to run a lot faster afterwards:

Handle ABIs, addresses etc on network change

Community contributors worked hard to change DAppV2 to include a capability for users to swap between MainNet & TestNet within the UI so that community members can contribute to testing and feedback in the new TestNet features without needing to know how to use GitHub and edit code.

Pools page

Contributors got up the ‘pools’ management page placeholder interface ready for functions to be hooked up

Fix icons, header and inject RPC for WalletConnect

Updated header components

Updated the wallet modal styling, finished implementing WalletConnect (MainNet only), adapt bscScan link function to change to testnet URL on network change.

UI Pages update

Connect DAppV2 to SpartanContractsV2 (TestNet)

Connected the fresh/updated V2 contracts testnet addresses to the DAppV2. Update the ABIs and addresses. Added all new functions and updated any which changed. Get all functions ready to plug into the UI

V2 Contracts | Link DAppV2 -> ContractsV2 (Phase 1) · Issue #84 ·…
SamusElderg changed the title V2 Contracts | After fresh testnet deploy; remap all relevant V2 Contracts | Link DAppV2…github.com

Network | Handle get/change 'Network' in local storage · Issue #68 ·…
Assignees SamusElderg changed the title Web3Store | Store 'Network' in local storage too Network | Handle get/change…github.com

Wallet | Handle wallet change in UI · Issue #69 · spartan-protocol/SpartanProtocol-DAppV2
SamusElderg changed the title Web3Store | Store wallet selection details Wallet | Handle wallet change in UI Mar 14…github.com

Web3Store | Implement redundant RPC URLs · Issue #71 · spartan-protocol/SpartanProtocol-DAppV2
Add an action to 'get' an RPC URL Have it trigger on network change Have a 'constants' list for RPC URLs for testnet +…github.com

ABIs | Handle ABIs on network change · Issue #73 · spartan-protocol/SpartanProtocol-DAppV2
SamusElderg changed the title Stores | Handle ABIs on network change ABIs | Handle ABIs on network change Mar 16, 2021…github.com

WalletTypes | Hand RPC URL to this via WalletSelect.js · Issue #81 ·…
Edit descriptiongithub.com

Tests | Running too slow and failing · Issue #82 · spartan-protocol/SpartanProtocol-DAppV2
What is the best way to handle this?github.com

Addresses | Store in localStorage · Issue #85 · spartan-protocol/SpartanProtocol-DAppV2
Edit descriptiongithub.com

Addresses | Change all const links to ADDR to the getAddresses() func · Issue #86 ·…
Everywhere we call ADDR like BONDv3_ADDR etc we need to swap over to grab from the getAddresses() function which grabs…github.com

Reddit | Get a sticky redirect post up · Issue #88 · spartan-protocol/SpartanProtocol-DAppV2
This isn't the best place for this issue but it will at least remind me to follow up 🤣 Need the social contributors to…github.com

Current Contributor’s Focus

SpartanContracts

  • Bond V4
  • Dao V2
  • DaoVault V1
  • Router V3
  • SP2UP (Migration Contract)
  • Utils V2
  • LoanVault V1
  • MasterLoan V1
  • Pool V2
  • Factory V1
  • Synths V1

Spartan DAppV1

  • All work ceasing on v1 except urgent/major issues

Spartan DAppV2

  • Get all ContractsV2 functions to the DAppV2
  • Connect the functions to the pages
  • Test start-to-finish migration from testnet V1 to testnet V2 (within UI)

SpartanSite

  • DAO page
  • Lending page
  • FAQ page

Other Focuses

  • Video & text guides

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.

GitHub list of bounties available

spartan-protocol/spartan-site
New issue Have a question about this project? Sign up for a free GitHub account to open an issue and contact its…github.com

Reach out on telegram to get involved: https://t.me/SpartanProtocolBounties