Beispiel #1
0
def test_operation(accounts, token, vault, strategy, strategist, amount):
    # Deposit to the vault
    token.approve(vault.address, amount, {"from": accounts[0]})
    vault.deposit(amount, {"from": accounts[0]})
    assert token.balanceOf(vault.address) == amount

    # harvest
    strategy.harvest()
    genericStateOfStrat(strategy, token, vault)

    # tend()
    strategy.tend()

    # withdrawal

    strategyBreakdown(strategy, token, vault)
    vault.withdraw(2**256 - 1, accounts[0], 70, {"from": accounts[0]})

    assert token.balanceOf(accounts[0]) != 0
Beispiel #2
0
def test_migration(token, strategy, chain, vault, whale, gov, strategist,
                   StrategyCurveLINKVoterProxy):
    debt_ratio = 10_000
    vault.addStrategy(strategy, debt_ratio, 0, 2**256 - 1, 1000, {"from": gov})

    token.approve(vault, 2**256 - 1, {"from": whale})
    vault.deposit(Wei("100 ether"), {"from": whale})
    strategy.harvest({"from": strategist})

    genericStateOfStrat(strategy, token, vault)
    genericStateOfVault(vault, token)

    chain.sleep(2592000)
    chain.mine(1)

    print(
        "\nEstimated APR: ",
        "{:.2%}".format(
            ((vault.totalAssets() - 100 * 1e18) * 12) / (100 * 1e18)),
    )

    strategy2 = strategist.deploy(StrategyCurveLINKVoterProxy, vault)
    vault.migrateStrategy(strategy, strategy2, {"from": gov})
    genericStateOfStrat(strategy, token, vault)
    genericStateOfStrat(strategy2, token, vault)
    genericStateOfVault(vault, token)
Beispiel #3
0
def test_revoke_from_vault(token, strategy, vault, whale, gov, strategist):
    print("\n----test revoke----")

    debt_ratio = 10_000
    vault.addStrategy(strategy, debt_ratio, 0, 2**256 - 1, 1000, {"from": gov})

    token.approve(vault, 2**256 - 1, {"from": whale})
    initial_deposit = 100 * 1e18
    vault.deposit(initial_deposit, {"from": whale})

    strategy.harvest({"from": strategist})

    genericStateOfStrat(strategy, token, vault)
    genericStateOfVault(vault, token)

    vault.revokeStrategy(strategy, {"from": gov})
    print("\n-----revoked-----")

    strategy.harvest({"from": strategist})

    genericStateOfStrat(strategy, token, vault)
    genericStateOfVault(vault, token)
Beispiel #4
0
def test_ops(token, strategy, chain, vault, whale, gov, strategist):
    print("\n----test ops----")

    debt_ratio = 10_000
    vault.addStrategy(strategy, debt_ratio, 0, 2**256 - 1, 1000, {"from": gov})

    token.approve(vault, 2**256 - 1, {"from": whale})
    initial_deposit = 100 * 1e18
    whalebefore = token.balanceOf(whale)
    vault.deposit(initial_deposit, {"from": whale})

    strategy.harvest({"from": strategist})

    print("\n-----harvest-----")

    genericStateOfStrat(strategy, token, vault)
    genericStateOfVault(vault, token)

    print("\n-----sleep for a month-----")

    chain.sleep(2592000)
    chain.mine(1)

    strategy.harvest({"from": strategist})
    print("\n-----harvest-----")
    print("crvIB = ", token.balanceOf(strategy) / 1e18)

    genericStateOfStrat(strategy, token, vault)
    genericStateOfVault(vault, token)

    print(
        "\nEstimated APR: ",
        "{:.2%}".format(
            ((vault.totalAssets() - initial_deposit) * 12) / initial_deposit),
    )

    vault.withdraw({"from": whale})
    print("\n-----withdraw-----")
    genericStateOfStrat(strategy, token, vault)
    genericStateOfVault(vault, token)

    print(f"\nWhale profit: ", (token.balanceOf(whale) - whalebefore) / 1e18)