Skip to content

Write and Test - Truffle Tests for Smart Contracts, on Forked Mainnet #1

@amateur-dev

Description

@amateur-dev

Objective: This Bounty is for stress testing the zUniPool Contract, using, Truffle test and Forked Mainnet.

Please go through the ReadMe in detail.

Once you have written the complete Test Script, please submit it as a PR.

Scope of the test: The Scope of the test should cover, the following, at least:

  1. First user is able to stake LP tokens at a price of 1:1
  2. Second user is also able to stake LP, immediately, at a price of 1:1
  3. Immediately, the First User is able to withdraw its LP with the same number of LP tokens
  4. Immediately, the Second User is able to check the value of its zUNI tokens and it should return, at least, the same number of LP tokens that it staked (or higher)
  5. Third User is able to stake LP tokens, after a week of time lapse, but the zUNI Tokens issued to the Third User is not at a price ratio of 1:1, but lesser number of zUNI Tokens compared to the number of LP tokens staked
  6. At the same time, Second User wants to burn [ getMyStakeOut ] a exactly half of its zUNI Tokens, and it is able to receive LP tokens.
    • The LP tokens received at this stage by Second User is higher than half of the LP Tokens staked by the Second User

Goal: One should be able to run truffle test test/name_of_the_script, testing on a ganache testnet, which is run by using the ganache-cli —fork

Note: For the purpose of this test, you will be required to acquire LP tokens. You could do so, {in the forked mainnnet}, by calling the function LetsInvest(address _TokenContractAddress, address _towhomtoissue) in the UnipoolGeneralZap Smart Contract, running on the mainnet at 0x97402249515994Cc0D22092D3375033Ad0ea438A.

Additional Token Information, for ease of reference:

sETH Token Address: 0x5e74c9036fb86bd7ecdcb084a0673efc32ea31cb

sETH_LP_Address: 0xe9Cf7887b93150D4F2Da7dFc6D502B216438F244

Original UniPool: 0x48D7f315feDcaD332F68aafa017c7C158BC54760 {the contract developed and deployed by Synthetix Team}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions