Skip to content

Instantly share code, notes, and snippets.

@vnavascues
Created March 5, 2021 11:56
Show Gist options
  • Save vnavascues/f2f9ef60be5f39b590e228ea7b8dca1b to your computer and use it in GitHub Desktop.
Save vnavascues/f2f9ef60be5f39b590e228ea7b8dca1b to your computer and use it in GitHub Desktop.
def test_pnl():
# Address
# 0x49a2DcC237a65Cc1F412ed47E0594602f6141936
# Pool
# 0x6b9887422E2a4aE11577F59EA9c01a6C998752E2
# Events below (all mints)
# 0xb387d1131d3914c62dc85b0434dbd750167b502f3ddb189d9ae0c23a638e37eb
mint1 = [
FVal("211.012433028763012105"), # WETH added
FVal("3931.525865515694335575"), # BAL added
FVal("13863.354042179668423169"), # BPT minted
FVal("171717.9625926226832980402267"), # USD value
]
# 0xece7a30485a6f55111694945435fb76c5a91a31f5f14141c6095359a9aea25df
mint2 = [
FVal("48.770816456684107014"),
FVal("766.118504277276024234"),
FVal("2928.598832122145765797"),
FVal("34309.14670714548816446199857"),
]
# 0xd59cedd7706c147552cfb739c29659c75f4befd114020d36d2670ba29bc60b25
mint3 = [
FVal("42.60946153165202741"),
FVal("608.962215990745421816"),
FVal("2434.84193779754448647"),
FVal("33793.10933422011603320408021"),
]
# 0xa3cf20fcaf4cab6ef85675a49010a1233ba2a7c0b69700cc39cf3d990dd0e069
mint4 = [
FVal("37.781222929768854251"),
FVal("655.871758586628578008"),
FVal("2372.785750255643215118"),
FVal("29492.34266232012803037128433"),
]
# 0x90b636bcfbe5c0fe7ca1513153479e575db7ac759bc3f08f652c14df2843afa9
mint5 = [
FVal("244.381018190647666577"),
FVal("4070.756393412456222094"),
FVal("14993.76705492740270764"),
FVal("176930.2493895719059208363942"),
]
# 0x47f9c7c9b5ad6bb5dda6c4697cae51f138583a7af7f6bbbea5ec72842b8ee728
mint6 = [
FVal("39.168727612531257705"),
FVal("719.720745684544434483"),
FVal("2520.88230573045103983"),
FVal("31496.69607254340107212340932"),
]
# 0xe1e888067afd4be7da6fdde24a20d8373ae18e50a23f86f65ddf8290e099b57c
mint7 = [
FVal("94.999691731063210207"),
FVal("2183.001023912432523467"),
FVal("6832.011739658222296719"),
FVal("65249.36326467104442817944067"),
]
# 0xb0f55dc0eecf46c3d6878b2d59b790bc94b1cca1bb798910410c5c167ea3d650
mint8 = [
FVal("35.115179595702265152"),
FVal("802.062346853348142581"),
FVal("2516.7311629135180706"),
FVal("24868.42428675684668627461577"),
]
# 0x78d68c7fe2b85dc3d17f56a9ecf0688ab2282e86ab94b18a075b6c4e34cfbc59
mint9 = [
FVal("0"),
FVal("1991.216217795949062055"),
FVal("3049.104402077940633466"),
FVal("28392.82145647979740001407238"),
]
# 0x6202102e677a2b644c013fd9ef4bc31fe8e82e08827ba58b179974c9f06ed4db
mint10 = [
FVal("0"),
FVal("974.638126629901222524"),
FVal("1393.903337610378881744"),
FVal("13450.43259687576158409796371"),
]
# 0x15aa20f6507cf17db3066d0848bcb4004b17d437d7fdd3b3505f26323a882597
mint11 = [
FVal("0"),
FVal("961.07450828433661829"),
FVal("1173.721211913025922713"),
FVal("9783.7384943345467741922"),
]
# 0x1217ac852ee632d4c3510a72894100f333b83b805530cfaffb587ac11d90aecc
mint12 = [
FVal("158.404901492406082995"),
FVal("7689.62501706743472369"),
FVal("16345.766526081407927172"),
FVal("180752.74452347041046228070"),
]
# 0x09e1823f06343bf3bcf80a3d11af647ee01817e074de4308377a559be60f95a4
mint13 = [
FVal("0"),
FVal("3111.477659029761566823"),
FVal("3257.664700618304437838"),
FVal("41195.96420555404314473652"),
]
# 0x6177fc92646c3f321100f3cb525bbd417188074c43550c6467e522f123d84e52
mint14 = [
FVal("285.862977577363157434"),
FVal("18521.946249315514223212"),
FVal("33956.434835888694415328"),
FVal("628829.7041656774013630308423"),
]
# 0x29f90f2a67b80e9bcd1b6983c6c42ee65de5b8b1f37d29e140474b84e2a6be4b
mint15 = [
FVal("320.71387151072734691"),
FVal("14374.975898039405307269"),
FVal("31482.005035620130144652"),
FVal("1034041.543720412473266136945"),
]
# 0x86d57acc98ab5840c754a2b2d67aeed2043a99c24ae62a77786d6ccd7eaaba32
mint16 = [
FVal("249.364027054650082812"),
FVal("10230.988363638171021856"),
FVal("23289.080344752033295543"),
FVal("779727.2681639622797486297783"),
]
# Current balances
current_balances = [
FVal("1742.835411025699596836625373"), # WETH in the pool
FVal("71296.93754467431147851264039"), # BAL in the pool
FVal("162410.653220146511663799"), # BPT amount
FVal("5135153.8984838"), # Estimated USD value now
]
# Calculation
mint_weth = FVal("0")
mint_bal = FVal("0")
mint_bpt = FVal("0")
mint_usd = FVal("0")
mints = [
mint1, mint2, mint3, mint4,
mint5, mint6, mint7, mint8,
mint9, mint10, mint11, mint12,
mint13, mint14, mint15, mint16,
]
for mint in mints:
mint_weth -= mint[0]
mint_bal -= mint[1]
mint_bpt += mint[2]
mint_usd -= mint[3]
print("\n")
print(f'WETH: {mint_weth}')
print(f'BAL: {mint_bal}')
print(f'BPT: {mint_bpt}')
print(f'USD: {mint_usd}')
pnl_weth = mint_weth + current_balances[0]
pnl_bal = mint_bal + current_balances[1]
pnl_bpt = mint_bpt - current_balances[2]
pnl_usd = mint_usd + current_balances[3]
print("\n")
print(f'PnL WETH: {pnl_weth}')
print(f'PnL BAL: {pnl_bal}')
print(f'PnL BPT: {pnl_bpt}')
print(f'PnL USD: {pnl_usd}')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment