Beispiel #1
0
def tend_all(badger: BadgerSystem, skip):
    table = []
    for key, vault in badger.sett_system.vaults.items():
        if key in skip:
            continue

        strategy = badger.getStrategy(key)

        if not strategy.isTendable():
            continue

        console.print("\n[bold green]===== Tend: " + key +
                      " =====[/bold green]\n")
        fpps_before = vault.getPricePerFullShare()

        keeper = accounts.at(strategy.keeper())
        strategy.tend({'from': keeper, "gas_price": gas_strategy})

        table.append([
            key,
            val(fpps_before),
            val(vault.getPricePerFullShare()),
            val(vault.getPricePerFullShare() - fpps_before),
        ])

        print("PPFS: Tend")
        print(tabulate(table, headers=["name", "before", "after", "diff"]))
def transfer_for_strategy(badger: BadgerSystem, key, amount, decimals=18):
    console.print("Transferring Amount for Strategy {}".format(key),
                  val(amount, decimals))
    manager = badger.badgerRewardsManager
    strategy = badger.getStrategy(key)

    before = snap_strategy_balance(badger, key, manager)

    transfer_for_strategy_internal(badger, key, amount)

    after = snap_strategy_balance(badger, key, manager)
    diff = diff_numbers_by_key(before, after)

    console.print("[green]==Transfer for {}==[/green]".format(key))
    to_tabulate("Diff {}".format(key), diff)
Beispiel #3
0
def earn_all(badger: BadgerSystem, skip):
    keeper = badger.deployer
    for key, vault in badger.sett_system.vaults.items():
        if key in skip:
            print("Skip ", key)
            continue
        console.print("\n[bold red]===== Earn: " + key + " =====[/bold red]\n")
        strategy = badger.getStrategy(key)
        controller = Controller.at(vault.controller())
        want = interface.IERC20(vault.token())

        # Pre safety checks
        assert want == strategy.want()
        assert strategy.controller() == controller
        assert vault.controller() == controller
        assert controller.strategies(want) == strategy

        destination = get_expected_strategy_deposit_location(badger, key)

        vaultBefore = want.balanceOf(vault)
        destinationBefore = want.balanceOf(destination)
        strategyBefore = strategy.balanceOf()
        controllerBefore = want.balanceOf(controller)

        if vaultBefore == 0:
            print("No balance in Sett: ", key)
            continue

        toEarn = False
        if earn_preconditions(vaultBefore, strategyBefore):
            print("Earn: " + key, vault, strategy)
            toEarn = True

            keeper = accounts.at(vault.keeper())
            vault.earn({'from': keeper, "gas_price": gas_strategy})

        # Post safety for test run
        vaultAfter = want.balanceOf(vault)
        destinationAfter = want.balanceOf(destination)
        strategyAfter = strategy.balanceOf()
        controllerAfter = want.balanceOf(controller)

        table = []

        table.append([
            "vault",
            val(vaultBefore),
            val(vaultAfter),
            val(vaultAfter - vaultBefore)
        ])
        table.append([
            "destination",
            val(destinationBefore),
            val(destinationAfter),
            val(destinationAfter - destinationBefore),
        ])
        table.append([
            "strategy",
            val(strategyBefore),
            val(strategyAfter),
            val(strategyAfter - strategyBefore),
        ])
        table.append([
            "controller",
            val(controllerBefore),
            val(controllerAfter),
            val(controllerAfter - controllerBefore),
        ])

        print(tabulate(table, headers=["name", "before", "after", "diff"]))
        if toEarn:
            assert strategyAfter > strategyBefore