BUIDL-Weekly: 07NOV22- 13NOV22

Dev Update

BUIDL-Weekly: 07NOV22- 13NOV22

Welcome to another weekly wrap-up, Spartans! Thanks to all the community contributors and friends who helped Buidl, promote and support during the week! Read on for the update

BUIDL-Weekly: 07NOV22- 13NOV22

Community Mentions

CoinMarketLeague

Don't forget to vote for SPARTA every day Spartans!


Weekly Community Call / Hangout

Don't forget to tune into the Telegram channel each week with @ReidyPhillip to get updates on the project and broader ecosystem. Join in the discussion with any ideas and questions!

Hosted every Wednesday at ~11:00 UTC but subject to change based on community feedback and availability. Please check the Telegram channel each Tuesday/Wednesday to confirm the exact time.


‌SpartAnalytics Report

Our community collates the public Spartan Protocol data into a PDF report each month covering Google Search (impressions, clicks, devices, keywords & geographical) & Twitter analytics. You can find the full October report here


‌Community DApp‌

‌GitHub Repo: https://github.com/spartan-protocol/SpartanProtocol-DAppV2

Front-end: https://dapp.spartanprotocol.org/

setup basic access to ssutils

  • added ssutils ABIs
  • added ssutils addresses
  • added helper to get ssutils contract object

bond connected to ssutils

  • updated the bond redux store actions and structs to suit ssutils
  • updated logic throughout the dapp to try cater for broken logic from the changes, this will be mainly a case of 'fix them as we spot them'

convert dao to suit ssutils

  • added an exCuratedPools const to web3.js
  • adjusted most > 1 loading checks to > 0 as the new objects will not have empty details objects/padding
  • removed trigger references to update the dao total weight (is now triggered inside the relevant redux actions and doesnt need to do any RPC calls anymore)
  • updated action for daoGlobalDetails && daoVaultWeight && getDaoDetails to suit SpartanSwap Utils contract

fix current price tic

  • fixed the current price tick in the swap component's price chart
  • removed the intrum pool.listedPools object/actions
  • removed/updated all deps of pool.listedPools
  • daisy-chained most pool redux actions to reduce the DataManager's responsibility
  • went thru every dep of any synth vars that are no longer in the poolDetails object and removed/updated them (see mainly: synth item and synth table item and synth mint view)
  • added a getSymbolUrl helper to check for a const URL for a symbol before attempting to fall back to the github repo list
  • massive front-end RPC call reduction (no more massive batched Promise.all awaits for pools/tokens, the utils contract handles this with a multi-call-esque approach)

update reserve actions to use ssutils

  • removed the reserve.globalDetails action/object/etc completely - updated/remove all deps of reserve.globalDetails to their new sparta.globalDetails home
  • we now get reserve.polDetails every 20 seconds with the base level calls after we check RPCs (this will make the 'supply' section load way faster)
  • updated getReservePOLDetails to use the ssutils getReserveHoldings() function saving a bunch of RPC calls + also removing its dependency on curatedPools && poolDetails meaning we can load it almost instantly on DApp mount now

synth change to suit ssutils

  • moved bondDetails && daoDetails && synthDetails to the global loop cycle, no longer conditionally loaded based on the view, will be especially noticeable when opening the wallet modal now that everything will load faster
  • commented out or removed heaps of conditionals/useeffect RPC calls from the views and made them reactive calls at the action level
  • updated all the synth actions based on ssutils and some overdue larger changes throughout the store and overall codebase
  • added a synthTokensMN && synthTokensTN const array instead of looping the vaultAssets (might be a problem in the future but highly likely it wont and we can reactively make it dynamic again when the time comes)

delete the utils store

deleted the whole utils store, we didnt need it before and definitely dont need it now

added SpartanSwapUtils contract to contracts page

  • added SpartanSwapUtils contract to contracts page

minor changes from testing feedback

  • fix synth input selection list to account for the removal of dummy-synths
  • add a dummy poolDetails object for spartav2
  • fix liqCap check in the zap LPs view

fixed final bugs

  • fix the loading bug with pool/token/synth/dao/bond items when no wallet was connected

To do:


Protocol Site

GitHub Repo: https://github.com/spartan-protocol/spartan-site

Front-end: https://spartanprotocol.org/

General

  • Added animations to section icons
  • combined 'Token' and 'Tokenomics' on mobile
  • improved token section styling, moved token section text data to contentful
  • improved token section animations
  • fixed styling of token section on mobile
  • Adjusted animation on token section (mobile)
  • fixed issue with social icons overlapping trading buttons
  • fixed trade SPARTA button zindex
  • improved token section styling (mostly mobile)
  • adjusted icons
  • changed font in token section

To do:

Protocol API

GitHub Repo: https://github.com/spartan-protocol/spartan-api

Front-end: https://api.spartanprotocol.org/api/v1/pools

update circulating to use ssutils

updated circulating api logic to use a single RPC call to get the nuanced circulating supply logic with these items removed from the raw total supply:

  • burned supply
  • supply not yet circulating (held by reserve as sparta)
  • supply locked in diversified permanent liquidity (SPARTA underlying LP tokens held by reserve) imported the ssutils address and abi test this then move onto the other api endpoints

add nodereal rpc

  • added prod nodereal RPC

convert supply to use ssutils

  • converted the supply endpoint to use spartanswap utils contract
  • this conversion doesnt provide any extra efficiency (still 3 rpc calls, same as before) but no matter, this endpoint is not a common one

convert totalSupply to use ssutils

  • convert the total supply endpoint to use spartanswap's utils contract
  • saving 1 RPC call per endpoint ping

convert tvlSPARTA to ssutils

  • converted the tvlSPARTA endpoint to use a single RPC call instead of a string + batch of calls
  • saved poolCount * RPC calls per endpoint ping

convert tvlUSD to use ssutils

  • converted the tvlUSD endpoint to use the SpartanSwap utils contract
  • saved poolCount + 1 RPC calls per endpoint ping

fix docs

  • fixed circulating -> totalSupply in docs

To do:

Protocol Subgraph

GitHub Repo: https://github.com/spartan-protocol/spartan-subgraph

Front-end: https://thegraph.com/hosted-service/subgraph/spartan-protocol/pool-factory

Protocol Contracts V3

GitHub Repo: https://github.com/spartan-protocol/spartan-contracts

To do:

Protocol Resources

GitHub Repo: https://github.com/spartan-protocol/resources

Protocol Docs

‌GitHub Repo: https://github.com/spartan-protocol/spartan-docs

Frontend: https://docs.spartanprotocol.org/

To do:

Protocol Contracts V1 - V2

GitHub Repo: https://github.com/spartan-protocol/spartanswap-contracts


‌Ecosystem Project: SpartanSwap‌

SpartanSwap is just a placeholder for now, but it is a separate project with the intention of building an alternative frontend for users to interact with the Spartan Protocol pools. With a focus on swap functionality to start with and longer-term plans to iterate towards becoming a swap aggregator for BNBChain and potentially multi-chain after that

SpartanSwap Contracts

GitHub Repo: https://github.com/Spartan-Swap/SpartanSwapContracts

change to solidity 0.8.16

  • changed to solidity 0.8.16 & updated some cases throughout

add permission and fix getTVLUnbounded

  • added permissions to the setter functions
  • fixed the getTVLUnbounded getPoolAssets instead of getTokenAssets

Utils contract completed

  • The Utils contract is now completed and plugged into the community DApp + API and being used in prod

To Do:

SpartanSwap DApp

GitHub Repo: https://github.com/Spartan-Swap/SpartanSwapDApp

SpartanSwap Resources

GitHub Repo: https://github.com/Spartan-Swap/SpartanSwapResources


‌Ecosystem Project: SpartanArena‌

SpartanArena is another separate project with a focus on creating subprojects that lean more towards 'gaming'. Some ideas in the works for the future may include an NFT looter game, lottery and a prediction/parimutuel game

SpartanArena Contracts

GitHub Repo: https://github.com/SpartanArena/SpartanArenaContracts

SpartanArena DApp

GitHub Repo: https://github.com/SpartanArena/SpartanArenaDApp

SpartanArena Resources

GitHub Repo: https://github.com/SpartanArena/SpartanArenaResources


‌Ecosystem Project: SpartanToolkit

Spartan Toolkit is an ecosystem project spawned from the Spartan Protocol community aiming to improve tooling for projects and users within the BNBChain ecosystem including Beacon, Smart & BAS chains.

BepTools Fork

GitHub Repo: https://github.com/Spartan-Toolkit/beptools

Legacy BepTools Repo: https://gitlab.com/canyacoin/binancechain/beptools (will request a PR and/or mirror to GitHub)

Temp Frontend: https://beptools.netlify.app/

SpartanToolkit contributors have forked and updated/fixed wallet connections etc on the BepTools DApp to give BinanceChain / BeaconChain / BEP2 users a way to freeze/unfreeze & batch send BEP2 tokens on BNB Beacon Chain

Web3BNB Library

GitHub Repo: https://github.com/Spartan-Toolkit/web3-bnb

A React library with the intention of providing builders with a plug-and-play solution for any web3 wallet compatible with BNB ecosystem chains (Beacon, Smart, BAS etc)

BNB Beacon Chain Toolkit DApp

GitHub Repo: https://github.com/Spartan-Toolkit/beacon-chain-tools-dapp

A tooling user interface for users + projects on BNB Beacon Chain. Batch-send, freeze/unfreeze, deploy BEP2 token etc without touching the command line!

BNB Smart Chain Toolkit DApp

GitHub Repo: https://github.com/Spartan-Toolkit/beacon-chain-tools-dapp

Tooling and informational user interface for users + projects on BNB Smart Chain‌


ProtocolInformation

ProjectCommunity

Spartan Protocol and its extended ecosystem is a 100% open-source community movement. Being an open org, everything is built, run and maintained by the community. If you would like to contribute or learn more, reach out in the community channels!‌