Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 14 additions & 10 deletions brownie/buyback.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ def silent_tx():
with redirect_stdout(f):
yield


def sim_buyback_ogv(amount):
"""
Run a simulated buyback, and return how much OGV we get back.
Expand All @@ -34,7 +33,7 @@ def sim_buyback_ogv(amount):
return after - before


def build_buyback_tx(max_dollars=5000, max_slippage=2.0):
def build_buyback_tx(max_dollars=5000, max_slippage=2.0, with_fork=True):
"""
Build a buyback transaction and print a varity of information about it.

Expand Down Expand Up @@ -83,12 +82,17 @@ def build_buyback_tx(max_dollars=5000, max_slippage=2.0):
"Minimum slippage less expected slippage. Transaction would fail."
)

# Display transaction data
with TemporaryFork():
with silent_tx():
tx = buyback.distributeAndSwap(buyback_amount, min_slippage_ogv, {"from": STRATEGIST})
print("")
print("To: {}".format(tx.receiver))
print("Data: {}".format(tx.input))
print(tx.error())
if with_fork:
# Display transaction data
with TemporaryFork():
with silent_tx():
tx = buyback.distributeAndSwap(buyback_amount, min_slippage_ogv, {"from": STRATEGIST})

print("")
print("To: {}".format(tx.receiver))
print("Data: {}".format(tx.input))
print(tx.error())
else:
tx = buyback.distributeAndSwap(buyback_amount, min_slippage_ogv, {"from": STRATEGIST})

return tx
43 changes: 42 additions & 1 deletion brownie/runlogs/2023_07_strategist.py
Original file line number Diff line number Diff line change
Expand Up @@ -335,4 +335,45 @@ def main():
from buyback import *

def main():
build_buyback_tx(max_dollars=2750, max_slippage=2)
build_buyback_tx(max_dollars=2750, max_slippage=2)

# -----------------------------------
# July 21, 2023 - OGV Buyback #2
# -----------------------------------
from buyback import *

def main():
build_buyback_tx(max_dollars=3100, max_slippage=2)

# --------------------------------
# July 24, 2023 - OETH AMO Deposit
# --------------------------------

from world import *

txs = []
with TemporaryFork():
# Before
txs.append(vault_oeth_core.rebase({'from':STRATEGIST}))
txs.append(oeth_vault_value_checker.takeSnapshot({'from':STRATEGIST}))

# Strategist
txs.append(vault_oeth_admin.depositToStrategy(OETH_CONVEX_OETH_ETH_STRAT, [weth], [80 * 1e18], {'from': STRATEGIST}))

#After
vault_change = vault_oeth_core.totalValue() - oeth_vault_value_checker.snapshots(STRATEGIST)[0]
supply_change = oeth.totalSupply() - oeth_vault_value_checker.snapshots(STRATEGIST)[1]
profit = vault_change - supply_change
txs.append(oeth_vault_value_checker.checkDelta(profit, (1 * 10**18), vault_change, (1 * 10**18), {'from': STRATEGIST}))
print("-----")
print("Profit", "{:.6f}".format(profit / 10**18), profit)
print("Vault Change", "{:.6f}".format(vault_change / 10**18), vault_change)
print("Variance", 10**17)
print("-----")
print("Est Gas Max: {:,}".format(1.10*sum([x.gas_used for x in txs])))

print("Schedule the following transactions on Gnosis Safe")
for idx, item in enumerate(txs):
print("Transaction ", idx)
print("To: ", item.receiver)
print("Data (Hex encoded): ", item.input, "\n")