GitBook Refresh | Upgrade/Claim $SPARTA v2| Testnet DAppV2


  • Upgrade existing v1 tokens to v2 (Mainnet & Testnet)
  • Claim your share of SPARTA allocated to users impacted by the LP drain (Mainnet & Testnet)
  • Interact with DAppV2 to help test the V2 contracts (Testnet)

Spartan Protocol GitBook

Some new & old community members have put their hands up recently to help get the Spartan Protocol GitBook to reflect current progress and iterations of the protocol — head over and check it out to learn more.

This will be an ongoing focus for the wider community to contribute to.

Spartan Socials — Twitter

Top Impressions:

Top Engagement:

Top Community Mention:

SpartanSocials — Medium

SpartanSocials — Telegram

Contributor’s Focus

Phase 1 — SPARTA V2 (Token) — Completed!

Affected Users Snapshot

Deploy New $SPARTA V2 (Token)

Deploy Upgrade DApp

  • The above-weighted claims (from the snapshot) are plugged in for affected users to claim via the bridge dapp
  • Implement deflationary mechanisms (burn SPARTA on each transfer etc)

Phase 2 — Spartan Protocol V2 (Protocol)

SPARTA V2 (Token)

  • Work with DEXs & aggregators to ensure the new SPARTA token address is added to their lists
  • Work with token-tracking information websites to ensure new token info is added and verified (BSCscan, CoinGecko, CoinMarketCap etc)


  • Put the contracts through a code review process on CodeArena
  • Continue the code review process within the community


Community Forum

  • Setup categories & get the community contributing good questions about DAO proposals & mechanics of AMMs so that they can be padded out into longer-form go-to guides to post in the channels

Phase 3 — Deploy & Iterate

  • Enable Bond allocations to get TVL into the V2 pools
  • Deploy Lending to testnet
  • Continue ahead with the previous plans!

GitHub Activity — SpartanContractsV2




  • Add event — SpartanClaimed
  • Remove totalToClaim / params; instead allocate specific amount via function
  • Added helper function to ‘getClaim’



  • Changed ERC-20 refs to BEP-20
  • Changed sFS -> savedSpartans
  • Remove currentEra param
  • Refactor onlyDao log: “Must be DAO” -> “!DAO” (to reduce contract size)
  • Drop secondsPerEra to test emissions (temporary)
  • decreaseAllowance() — add checks for whether allowance requires a decrease of that size; approval() goes after checks
  • _approve() — add check if approval is already at max (if so; approval-increase can be skipped)
  • transferFrom() — add check for allowance > amount
  • Refactor some require() error messages
  • _burn() — added check for balance > amount
  • saveFallenSpartans() — added arg for amount (call in the amount instead of hard-coding it into the contract) can only be called once
  • upgrade() — add comments



  • Test deploying the contract
  • Test burn function
  • Test approvals / allowance
  • Test emissions
  • Test feeBurn
  • Test upgrade, mint and allocation to sFS

GitHub Activity — SpartanDAppV2



  • Removed /dapp/ portion of the routes



  • Added filter to not allow SPARTAv2 to show up in assetSelect (testnet pools are still using SPARTAv1 contract + mainnet has no pools)
  • Replaced negative margins for ‘position: absolute’ and ‘left: right: top: bottom:’ designators (negative margins don't seem to work properly in safari)
  • Added checks to ensure the app doesn't break if certain components load before the data is ready


  • Change icon to a relevant country flag (for community review; obviously flags don't = languages, but it’s fun and pretty to look at; open to ideas here)
  • Converted the dropDown component into a popOver component
  • Refactored each language item using .map()




  • Refactor how the networks are handled in preparation for going live with the Upgrade DApp
  • Check and change the network whenever the local storage ‘network’ item changes
  • Update the listedTokens & curatedPools arrays every 10 seconds or if the network changes
  • Check SPARTA token price every 10 seconds
  • Update the tokenDetails & synthArray every 7.5 seconds or if the wallet or listedTokens change
  • Update the listedPools whenever tokenDetails changes
  • Update synthDetails & poolDetails whenever listedPools changes
  • Removed refs to old store actions that no longer exist


  • Add in the ThemeSwitcher component


  • Changed old refs to old store actions to the new ones


  • Added checks to asset1 & asset2 for the same reason as above


  • Added check for the selected network to handle hiding tokenomics on mainnet (until after new contracts)
  • Added function to getTotalSupply
  • Added function to getMarketCap
  • Added placeholder function to getCirculatingSupply (need to plug in the relevant removals from supply ie. Reserve etc after new testnet contracts are deployed)
  • Added selected network to supply popover


  • Reload window on wallet disconnect or network change (makes sense to clear all stores when a major change like ‘network’ or ‘wallet’ happens to ensure no crossover of front-facing information)



  • Removed the hard-coded ‘en’ selector (detects browser settings for language first, if fails then ‘en’)
  • Will use the last setting you used within the dapp as a priority though


  • Made all nav icons smaller
  • Removed /dapp/ from all routes


  • SPARTAv1 will show up as SPARTA (old) and SPARTAv2 will show up as SPARTA


  • Added upgrade() function to actions (Upgrade V1 SPARTA to V2)
  • Added claim() function to actions (Claim SPARTA from V1 LP-drain)
  • Added helper function to check the claim (claimCheck())
  • Removed old actions


  • Added new base contract ABI & address
  • Commented out a problematic testnet RPC: ‘'
  • Added in mainnet backup RPCs (but commented out)
  • Added tryParse() so that if a relevant localStorage item is missing, modified or corrupted; the app doesn’t break
  • Changed mainnet back to the default network


  • Added getTokenContract()
  • Added getFallenSpartansContract()


src/views/pages/Bond/Bond.js && BondItem.js

  • Inject the translations throughout the component

src/views/pages/Pools/Liquidity.js && all sub-components

  • Hide liq components if network = mainnet
  • Handle ‘addr.spartav1’ throughout instead of ‘addr.sparta’
  • Inject translations throughout

src/views/pages/Swap/Swap.js && all sub-components

  • Hide swap components if network = mainnet
  • Handle ‘addr.spartav1’ throughout instead of ‘addr.sparta’
  • Inject translations throughout

src/views/pages/Synths/Overview.js && all sub-components

  • Hide synth components if network = mainnet
  • Handle ‘addr.spartav1’ throughout instead of ‘addr.sparta’
  • Inject translations throughout

src/views/pages/Upgrade/Overview.js && Upgrade.js

  • Allow users to upgrade their V1 SPARTA into V2 SPARTA
  • Allow users to check if they had LP affected by the v1 LP-Drain and make a claim if so

src/views/pages/Vault/Overview.js && all sub-components

  • Hide vault components if network = mainnet
  • Handle ‘addr.spartav1’ throughout instead of ‘addr.sparta’
  • Inject translations throughout

GitHub Activity — SpartanSite


  • Added GitBook link to footer

Project Information

Official Links

Community Contribution

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

Incentivized liquidity and synthetic asset generation for Binance Smart Chain.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store