yAgnostic Weekly Updates — March 24th

YearnAgnostic
5 min readMar 24, 2021

--

We are excited to bring to our dear community the yAgnostic development progress report for this week. 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.

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 this week with (!!)

DAO roadmap:

●Token staking in exchange for voting power (!)

● Proposals creation (!)

● Basic voting functionality (!)

● Voting for proposals optimization (changes for timestamps instead of blocks) (!!)

● Proposals storage optimization and expanding (!!)

● Proposals text storage at IPFS node (!!)

● Integration with the front-end (!!)

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 a staking component (dao) (!)

● Create a voting component (dao) (!!)

Substrate Node setup roadmap:

● Initial Substrate node structure (!)

● ORML package added (!)

● Token wrappers pallet (!)

● Test version of the tokens implementations, e.g. Eth emulation and stable-coins emulation (in progress)

● Vault Deposit/Withdraw pallet initial functionality (!!)

● Vaults pallets and modules for the Substrate node (in progress)

● Native token (implemented as pallet) for the governance

● Correct RPCs for the frontend

● Update node structure with consensus rules, transaction weights and off chain workers

● Local dev network deployment with several validators

● Interfaces for additional protocols and tokens integration

Scope delivered

Below you can find the details on work done from contracts and the front-end side.

Contracts scope delivered:

● DAO contracts completed with timestamping functionality for proposals voting period;

● Final code review and major refactoring was provided in order to optimize several methods and finalize the testnet mocks;

● Patch according to Slither automated report was provided for the security practices;

● Docgen API reference was updated;

● Testnet was redeployed according to the last changes;

● Last contracts were successfully connected to the frontend.

Front-end scope delivered:

● Finalized the connection of front-end to yAgnostic contracts and implemented functionality for pause/unpause vaults.

● Completed the DAO module after the latest changes for the proposal voting period — oriented to timestamps instead of block numbers.

● Implemented update of the fields on the pages after transaction confirmation.

● Minor fixes were made, like correct number of symbols after , more correct identification of proposal votes, etc.

● Implemented and added 404 page.

● List of commits to /front-end repository:

— Connect DAPP to the actual contracts of the vaults

— Remove useless admin buttons

— Implement earn for the vaults

— Implement getting paused status of the vault

— Implement pausing vault

— Implement unpausing vault

— Connect DAPP to the actual contracts of the DAO

— Update contracts addresses

— Fix validation errors of deposit and withdraw

— Update contracts addresses for DAO

— Fix validation errors of stake and unstake

— Fix alignment of content at the StakeInfo component

— Fix alignment of content at the StakeHeader component

— Fix alignment of content at the VoteHeader component

— Fix alignment of content at the VoteInfo component

— Fix alignment of content at the VoteStatus component

— Fix alignment of content at the VaultHeader component

— Rebuild information component of the proposal for use timestamp

— Rebuild statistics component of the proposal for use timestamp

— Rebuild proposals page for use timestamp

— Rebuild voteLockValid of unstake for use timestamp

— Update stake prompt for use timestamp

— Fix detecting governance and strategist at the admin panel

— Disable deposit and withdrawal forms if vault are paused

— Disable earn vault if vault are paused

— Create template for 404 page

— Connect 404 page to the DAPP

— Handle MetaMask connection if web3react does not return provider

— Create handling confirmation events for creating proposals

— Update messages of generation of the proposal

— Create handling confirmation events for revoking proposals

— Update messages of revoke of the proposal

— Create handling confirmation events for vote against

— Update messages of vote against of the proposal

— Create handling confirmation events for vote for

— Update messages of vote for of the proposal

— Create handling confirmation events for stake pool

— Update messages of stake pool

— Create handling confirmation events for unstake pool

— Update messages of unstake pool

— Create handling confirmation events for deposit vault

— Update messages of deposit vault

— Create handling confirmation events for deposit all vault

— Update messages of deposit all vault

— Create handling confirmation events for withdraw vault

— Update messages of withdraw vault

— Create handling confirmation events for withdraw all vault

— Update messages of withdraw all vault

— Addresses and ABIs for vaults

— Addresses and ABIs for stake and vote

— Move icon of reward requirements

— Add padding for description of the proposal

— Update logic to determination of votes direction

— Change displaying of the vote ID

— Implement usedVotes into getProposals thunk

— Change displaying decimals of voting power at the vote page

— Remove excess error of rejecting a transaction to generate a proposal

— Fix rerender stake components after confirm transactions

— Fix rerender vaults components after confirm transactions

Substrate node scope delivered:

● Update unit tests for deposit

○ check that tokens were removed from user

○ check that user will get Shares according to deposited amount

○ check that user can’t deposit unsupported tokens

○ check that supply shares was increased

○ check that user’s tokens transferred to vault pallet

○ check that user can’t deposit 0

○ check that user cant deposit more than he has

● Update unit tests for withdraw

○ check that tokens were redeemed to user

○ check that user’s Shares burns according to redeemed amount

○ check that user can’t redeem more tokens then vault has

○ check that user can’t redeem more than his shares amount

○ check that user can’t redeem 0

○ check that supply shares was decreased by redeemed amount

● Vault pallet implementation:

○ Add Deposit and Redeem methods

○ Add Deposited and Redeemed Events

○ Implement methods for getting user’s shares balance

--

--