yAgnostic Weekly Updates — Feb 24
We are pleased to bring to our dear community yAgnostic development progress report and other vital updates. Based on our roadmap for Q1 to Q2 2021, The team is currently working on a blockchain-agnostic solution for secure Vaults for defi strategies implementation. We are utilizing yEarn protocol as a reference. The solution includes Ethereum smart-contracts’ system, dApp for interaction with the protocol, governance token, secure bridge from Ethereum to Polkadot network for the token and basic solution on the Polkadot network. The system does not need KYC, does not keep users’ private keys and provides access for the user for each integrated blockchain.
To better understand the flow and the process of delivering the product, we’ve created roadmaps for both contracts and front-end implementation.
*Stages already passed and implemented are marked with (!)
- Stages already passed and implemented exactly last week with (!!)
DAO roadmap:
● Token staking in exchange for voting power (!!)
● Proposals creation and voting
● Multisig wallet for proposals execution
● DAO rewards system
● yAgnostic token receiving in the protocol scheme
Front-end roadmap:
● Init react app (!)
● Create a home page component (!)
● Create layout component with header (!)
● Create a dashboard component (!)
● Connect App to wallet (MetaMask) (!)
● Connect App to contracts (!)
● Create vaults component (!)
● Create stats component (!!)
● Create admin component (!!)
● Connect our contracts to vaults:
○ Get user and vault balances
○ Deposit
○ Deposit all
○ Withdraw
○ Withdraw all
● Create staking component (dao)
● Create voting component (dao)
Scope delivered
Below you can find the details on work done from contracts and the front-end side.
Contracts scope delivered:
● Created DAO contract:
○ reviewed yEarn governance contract implementation and compared to the alternative implementations in order to create the YAgnostic’s implementation
○ updated yEarn implementation to the solidity v0.6.12
○ started refactoring
● Tested basic DAO functionality
○ created DAO migrations
○ created staking smoke test
○ created proposal creation smoke test
○ created voting smoke test
● Partly rewrote documentation. Once completed, the documentation will become available for community
● Added new adaptation for strategy earn method with new vault
● Added and tested a test strategy together with a controller and vault
● Removed all unused parts of the project
● Wrote the documentation to Vault. Once completed, the documentation will become available for community
Front-end scope delivered:
● Completed the connection of Vaults page to the contracts including:
○ Getting list of vaults with their balances
○ Ability to send transactions for deposit
○ Ability to send transactions for withdrawal
● Implemented component to manage (Administration) vault by strategist and governance manager. This block hasn’t been connected to the contracts yet.
● Rewrote block with statistics for our contracts (for real data) including:
○ Available
○ vaultBalance
○ pricePerFullShare
○ Max
○ Min
○ totalSupply
● Learnt yEarn API, more specifically, how they calculate APY regarding each vault. Implemented analogue in a web app, so we’re not connected with their API anymore. In future, we’ll have to create our own API.
● Started work on the documentation with use cases for vaults, deposit and withdrawal. Block schemes were drawn as well. Once completed, the documentation will become available for community
● List of commits to develop version of /front-end repository:
○ Add gas prices row to prices reducer
○ Move getGasPrices to external thunk
○ Rebuild getGasPrices thunk from use gas price goa network to web3 getGasPrice method
○ Connect getGasPrices to VaultForm
○ Connect depositVault to VaultForm
○ Connect depositAllVault to VaultForm
○ Connect withdrawVault to VaultForm
○ Connect withdrawAllVault to VaultForm
○ Add max value to validation of deposit amount
○ Add max value to validation of withdraw amount
○ Handle result and error from deposit and withdrawal callbacks
○ Create VaultAdmin component
○ Connect VaultAdmin component to VaultContent component
○ Move vault statistics to external component
○ Rebuild VaultStats component to use new values
○ Remove useless account statistics code
○ Add available to vault data
○ Add vault ranges to statistics of vault
○ Include yearn-api as a git submodule
○ Clone getApy from yearn-api reference
○ Clone getPricePerFullShare from yearn-api reference
○ Refactor getPricePerFullShare
○ Refactor getApy
○ Include getApy to getVaultBalances