Releases: delvtech/agent0
Releases · delvtech/agent0
hyperdrive4; improved testing
What's Changed
- improves crash reporting, rollbar support, and exception messages
- improves hyperdrive deploy to rely on pypechain generated objects
- reformats interface API into read_only and read_write versions
- adds ability for an interactive agent to liquidate all trades
- improves testing coverage
- improvements and bugfixes in hyperdrive invariance checks and fuzz tests
- support hyperdrive 0.4.0
PRs
- check postgres status by @wakamex in #1124
- lint with ruff by @wakamex in #1116
- Minor updates on interactive example by @slundqui in #1126
- Docs linting by @slundqui in #1127
- update docstring style guide by @wakamex in #1129
- ensure random trades have successful status in random bot test by @dpaiton in #1131
- add eth config test by @dpaiton in #1133
- update hypertypes by @dpaiton in #1134
- Test speedup and cleanup by @slundqui in #1132
- Removing budget from policy by @slundqui in #1135
- Global rng spawns children rng for plicies by @slundqui in #1137
- agent0 known first party by @wakamex in #1139
- Policy config rework by @slundqui in #1140
- rename hyperdrive to interface by @dpaiton in #1141
- add functions to hyperdrive interface api by @dpaiton in #1142
- Allowing policies in interactive hyperdrive agents by @slundqui in #1143
- make block number optional in get_gov_fees_accrued by @wakamex in #1145
- Load/save snapshots using interactive hyperdrive by @slundqui in #1146
- fix get max short docstring by @wakamex in #1147
- invariant tests by @dpaiton in #1138
- Pool state snapshot test by @slundqui in #1153
- simplifies run_agents; adds ability to bump bot funds by @dpaiton in #1154
- Adjusting path independence script to run by @slundqui in #1150
- Add rollbar logging to fuzzbots. by @sentilesdal in #1152
- Minting from deploy account by @slundqui in #1157
- Adding set variable rate to interactive hyperdrive by @slundqui in #1156
- Updating interactive fuzz scripts to run and assert (some are failing currently) by @slundqui in #1158
- Fixing create checkpoint call in interface by @slundqui in #1159
- moves setup_logging function up a level by @dpaiton in #1160
- add logging to path independence test by @dpaiton in #1161
- regenreate types by @sentilesdal in #1168
- Adding flag to advance time to create intermediate checkpoints as needed by @slundqui in #1163
- rename set_rate to set_variable_rate in the Interface by @dpaiton in #1167
- make preview calls only when necessary for slippage by @wakamex in #1149
- Running data pipeline in a thread for performance in interactive hyperdrive by @slundqui in #1169
- allow private key to be passed to interactive agent by @wakamex in #1144
- Fix up some interactive fuzz tests to unify logging & format by @dpaiton in #1170
- Add close positions past maturity fuzz tests by @sentilesdal in #1162
- Making pool cleanup private in favor of calling chain.cleanup() by @slundqui in #1172
- reorganize interactive fuzz tests to use shared functions by @dpaiton in #1171
- Adding save_state function by @slundqui in #1173
- fuzz profit check bugfix by @dpaiton in #1174
- Add dump state to fuzz tests by @slundqui in #1175
- Automate Interactive Fuzz Tests by @sentilesdal in #1176
- Adding assertion checks to fuzz_long_short by @slundqui in #1177
- Changing checkpoint default by @slundqui in #1178
- Fuzz bot add logs by @slundqui in #1179
- Reworking index bookkeeping for chainsync by @slundqui in #1180
- fuzz command args bugfix & more fuzz logging by @dpaiton in #1182
- Removing debug prints by @slundqui in #1183
- remove old function by @wakamex in #1181
- test interactive get config by @wakamex in #1136
- add interface tests by @wakamex in #1184
- Allow advance time with checkpoints without data pipeline for speedup by @slundqui in #1186
- rename api to interface by @wakamex in #1185
- Fuzz bot invariant checks logging rework by @slundqui in #1187
- Fuzz inv hotfix by @slundqui in #1189
- Adding experimental flag to chain to allow for slow but won't crash mode by @slundqui in #1190
- add optional command line arg to run_all_fuzz_tests by @dpaiton in #1188
- increment project version by @dpaiton in #1191
- create hyperdrive interface fixture by @wakamex in #1192
- move chain fixture to agent0.test_fixtures by @wakamex in #1193
- add retry_utils test by @wakamex in #1194
- Non-experimental mode runs data pipeline synchronously by @slundqui in #1195
- Logging failed variables in fuzz tests to rollbar by @slundqui in #1197
- add liquidate to interactive hyperdrive by @wakamex in #1198
- add transaction unit tests by @dpaiton in #1196
- add liquidate test by @wakamex in #1200
- econ experiment by @wakamex in #1148
- Fixing exception message and adding todos by @slundqui in #1202
- Adjusting default timeout to account for block mining mode by @slundqui in #1203
- Removing invariance checks that shouldn't be checked, and being explicit about checking effective share reserves by @slundqui in #1205
- Minimum txn amount check and test by @slundqui in #1204
- Path independence tests turns off fees by @slundqui in #1208
- Adding assertions to long_short_maturity_values by @slundqui in #1209
- add minimum_transaction_amount to get_liquidation_trades by @wakamex in #1210
- Custom exceptions subclasses from Exception instead of BaseException by @slundqui in #1211
- Better rollbar logging by @slundqui in #1212
- Adding checkpoint_id to checkpoint info field for crash reporting by @slundqui in #1215
- regenerate hypertypes by @sentilesdal in #1217
- Explicit checks of checkpoint duration and position durations by @slundqui in #1219
- split hyperdrive interface into read & readwrite versions by @dpaiton in #1220
- Adds interface endpoints for building Trade objects by @dpaiton in #1221
- Randomize liquidation by @slundqui in #1222
- Use pypechain's new deploy method by @sentilesdal in #1218
- Setting fixedpointmath requirements to be from pypi by @slundqui in #1224
- additional interactive hyperdrive tests by @wakamex in #1223
- New best effort for getting block number on crash by @slundqui in #1227
- update for latest hyperdrive and hyperdrivepy by @dpaiton in #1214
- update version to 0.11.0 by @dpaiton in #1229
Full Changelog: v0.10.0...v0.12.0
Hyperdrive invariant fuzz testing
What's Changed
- Added new invariant fuzz tests for Hyperdrive
- Improved performance of the Interactive Hyperdrive
- Added capability to log crash reports to rollbar
- Various code fixes, cleanups, tests
PRs
- check postgres status by @wakamex in #1124
- lint with ruff by @wakamex in #1116
- Minor updates on interactive example by @slundqui in #1126
- Docs linting by @slundqui in #1127
- update docstring style guide by @wakamex in #1129
- ensure random trades have successful status in random bot test by @dpaiton in #1131
- add eth config test by @dpaiton in #1133
- update hypertypes by @dpaiton in #1134
- Test speedup and cleanup by @slundqui in #1132
- Removing budget from policy by @slundqui in #1135
- Global rng spawns children rng for plicies by @slundqui in #1137
- agent0 known first party by @wakamex in #1139
- Policy config rework by @slundqui in #1140
- rename hyperdrive to interface by @dpaiton in #1141
- add functions to hyperdrive interface api by @dpaiton in #1142
- Allowing policies in interactive hyperdrive agents by @slundqui in #1143
- make block number optional in get_gov_fees_accrued by @wakamex in #1145
- Load/save snapshots using interactive hyperdrive by @slundqui in #1146
- fix get max short docstring by @wakamex in #1147
- invariant tests by @dpaiton in #1138
- Pool state snapshot test by @slundqui in #1153
- simplifies run_agents; adds ability to bump bot funds by @dpaiton in #1154
- Adjusting path independence script to run by @slundqui in #1150
- Add rollbar logging to fuzzbots. by @sentilesdal in #1152
- Minting from deploy account by @slundqui in #1157
- Adding set variable rate to interactive hyperdrive by @slundqui in #1156
- Updating interactive fuzz scripts to run and assert (some are failing currently) by @slundqui in #1158
- Fixing create checkpoint call in interface by @slundqui in #1159
- moves setup_logging function up a level by @dpaiton in #1160
- add logging to path independence test by @dpaiton in #1161
- regenreate types by @sentilesdal in #1168
- Adding flag to advance time to create intermediate checkpoints as needed by @slundqui in #1163
- rename set_rate to set_variable_rate in the Interface by @dpaiton in #1167
- make preview calls only when necessary for slippage by @wakamex in #1149
- Running data pipeline in a thread for performance in interactive hyperdrive by @slundqui in #1169
- allow private key to be passed to interactive agent by @wakamex in #1144
- Fix up some interactive fuzz tests to unify logging & format by @dpaiton in #1170
- Add close positions past maturity fuzz tests by @sentilesdal in #1162
- Making pool cleanup private in favor of calling chain.cleanup() by @slundqui in #1172
- reorganize interactive fuzz tests to use shared functions by @dpaiton in #1171
- Adding save_state function by @slundqui in #1173
- fuzz profit check bugfix by @dpaiton in #1174
- Add dump state to fuzz tests by @slundqui in #1175
- Automate Interactive Fuzz Tests by @sentilesdal in #1176
- Adding assertion checks to fuzz_long_short by @slundqui in #1177
- Changing checkpoint default by @slundqui in #1178
- Fuzz bot add logs by @slundqui in #1179
- Reworking index bookkeeping for chainsync by @slundqui in #1180
- fuzz command args bugfix & more fuzz logging by @dpaiton in #1182
- Removing debug prints by @slundqui in #1183
- remove old function by @wakamex in #1181
- test interactive get config by @wakamex in #1136
- add interface tests by @wakamex in #1184
- Allow advance time with checkpoints without data pipeline for speedup by @slundqui in #1186
- rename api to interface by @wakamex in #1185
- Fuzz bot invariant checks logging rework by @slundqui in #1187
- Fuzz inv hotfix by @slundqui in #1189
- Adding experimental flag to chain to allow for slow but won't crash mode by @slundqui in #1190
- add optional command line arg to run_all_fuzz_tests by @dpaiton in #1188
Full Changelog: v0.10.0...v0.11.0
interactive agent0
What's Changed
- adds an interactive agent0 workflow to enable running economic experiments in jupyter notebooks
- improves typing system using pypechain
- various bug fixes, doc improvements, and new tests
PRs
- Adding explicit postgres version in database janitor by @slundqui in #1098
- Lateral deps need to install packages with all dependencies by @slundqui in #1100
- move stateful variables into their own folder & centralize types by @dpaiton in #1099
- convert LPandArb bot to use rust sdk by @wakamex in #1102
- random agent policy test by @dpaiton in #1103
- Interactive Agent0 by @slundqui in #1101
- Adding docs badge to readme by @slundqui in #1109
- Fixing and cleaning up various db interface issues with interactive hyperdrive by @slundqui in #1110
- Update Hypertypes by @sentilesdal in #1104
- agent0 banner and fix codecov to ignore generated files by @dpaiton in #1111
- move camel_to_snake by @sentilesdal in #1112
- Consolidate hypertypes types, integrate pypechain by @sentilesdal in #1113
- add multimethod to requirements by @wakamex in #1114
- mark tests by @wakamex in #1115
- increment agent0 version to 0.10.0 by @dpaiton in #1117
Full Changelog: v0.9.0...v0.10.0
deprecate elfpy; hyperdrive 0.3.0
What's Changed
- Rename repo from elf-simulations to agent0
- Deprecate elfpy
- Update to support Hyperdrive 0.3.0
- Improve API DX & docs
- Improve fuzz test workflow
PRs
- increments version by @dpaiton in #1068
- API updates for consistent and modifiable state by @dpaiton in #1063
- easier to adjust api pool state by @dpaiton in #1069
- Fix Hyperdrive API docstrings by @dpaiton in #1074
- check docker desktop socket by @wakamex in #1076
- Update for hyperdrive v0.2.0 by @slundqui in #1075
- separate local chain fixture logic by @wakamex in #1081
- test bots hitting target rate by @wakamex in #1078
- move logs out of elfpy by @dpaiton in #1080
- Ethpy transaction hotfixes by @slundqui in #1079
- move trade, market type, WEI, json encoder out of elfpy by @dpaiton in #1082
- deprecate elfpy by @dpaiton in #1083
- hotfix for pylintrc by @dpaiton in #1084
- Db api server hotfix by @slundqui in #1085
- Get events script by @slundqui in #1086
- Removes existing test postgres container if it exists in tests by @slundqui in #1088
- Adding parameter controlling if we stop chain on crash for fuzz bots by @slundqui in #1089
- rename cls to interface in api hidden methods by @dpaiton in #1090
- Hyperdrive 0 3 0 by @slundqui in #1087
- Retries in submitting transactions by @slundqui in #1091
- Agent wallet state test against chain by @slundqui in #1092
- Changing default value for fuzzbots for stopping the chain on crash by @slundqui in #1093
- renames from elf-simulations to agent0 by @dpaiton in #1094
- update codecov badge by @dpaiton in #1095
- increment version by @dpaiton in #1096
Full Changelog: v0.8.3...v0.9.0
crash report and api improvements
What's Changed
- reorganizes API for better developer experience
- adds new functions to hyperdrive-rs and the python wrappers
- improves crash reporting
PRs
- increments version by @dpaiton
- Merge pull request #1066 from delvtech/develop by @dpaiton
- mock open long and short by @dpaiton in #1062
- Fix typos in INSTALL.md by @ryangoree in #1047
- delete hyperdrive notebook by @dpaiton in #1061
- Bug fixes for getting total supply withdrawal shares in pool info by @slundqui in #1056
- Changing args to build_user_mapping to allow for offline data by @slundqui in #1055
- Hotfix for decimal too large in transactions table in export by @slundqui in #1054
- Lateral installs also includes the lateral package base dependencies by @slundqui in #1053
- Adding error lookup in preview transaction by @slundqui in #1052
- Export db to parquet and import parquet to pandas by @slundqui in #1051
- Fixing arguments to smart contract functions in python by @slundqui in #1049
- Raw transaction in crash report by @slundqui in #1048
- refactor Hyperdrive API by @slundqui in #1042
- adds calc_bonds_given_rate_and_shares api function by @dpaiton in #1040
- Wrapping contract calls in custom exception by @slundqui in #1046
- No longer setting maturity time when not set by @slundqui in #1041
- Machine crash report by @slundqui in #1036
- Adding explicit script for running fuzz testing that pauses chain on crash by @slundqui in #1035
- Option for machine readable crash report to file by @slundqui in #1034
- Adding anvil state to crash report by @slundqui in #1029
- Always preview and preview on same block. Fixing slippage in policies. by @slundqui in #1028
Full Changelog: v0.8.2...v0.8.3
adds lp and arb bot; trading comp fixes; speedup w/ contract calls
What's Changed
- new lp-and-arb bot for making smart arbitration trades
- a lot of various bugfixes from feedback during the trading competition
- bot process is faster with fewer contract calls
PRs
- Crash report in valid json format, adding exp backoff to wait for trx receipt by @slundqui in #1012
- adds vault shares as a Hyperdrive API property by @dpaiton in #1013
- Adding in vault shares and checkpoint info to crash reporting by @slundqui in #1014
- new bot: LP and Arb by @wakamex in #1000
- Mention arguments in STYLEGUIDE.md by @wakamex in #1016
- fix typing issues from latest pyright update by @dpaiton in #1019
- Adding more logging info to checkpoint bot by @slundqui in #1017
- fix api checkpoint acquisition by @dpaiton in #1020
- Explicitly calculating withdrawal shares pnl instead of preview by @slundqui in #1024
- Updating list of usernames by @slundqui in #1023
- fix convergence in LPandArb bot by @wakamex in #1030
- Analysis hotfix by @slundqui in #1031
- Adjusting withdrawal shares value by @slundqui in #1032
- analysis bug fix by @slundqui in #1037
- Don't check base when launching bots by @slundqui in #1038
- Analysis hotfix by @slundqui in #1043
- Exp backoff when trading if new block by @slundqui in #1044
- Fixing when to aggregate when multiple trades per block by @slundqui in #1059
- tick project version by @dpaiton in #1064
Full Changelog: v0.8.1...v0.8.2
various bugfixes for trading comp
What's Changed
- Fixed bugs with crash reporting, user registry, and example defaults for the trading competition
- Adds API functions for calculating fees
PRs
- Hotfix for crash report by @slundqui in #999
- use min and max apr in add liquidity call by @wakamex in #1001
- Checkpoint bot bugfix by @slundqui in #1003
- Changing bot script defaults for halting and logging by @slundqui in #1004
- add foundry as dev requirement by @wakamex in #1005
- don't allow trades if bot doesn't have enough base by @sentilesdal in #1007
- Dashboard token naming by @slundqui in #1006
- add get_in_out funcs to interface by @wakamex in #1008
- Updating list of wallet to username mappings by @slundqui in #1009
- increment pyproject version by @dpaiton in #1011
Full Changelog: v0.8.0...v0.8.1
hyperdrive v0.0.16; api improvements
What's changed
- standardizes loading & describing bot policies (model zoo)
- improvements to the Hyperdrive API
- improves error handling & makes contract calls more robust
- dashboard updates
- switches to using external pypechain package
PRs
- model zoo by @wakamex in #974
- Address -> username and username -> user rework by @slundqui in #975
- Adding liquidate option for running bots by @slundqui in #976
- add the ability to fetch variable rate by @dpaiton in #965
- Adding in functionality to retry contract read and write calls by @slundqui in #981
- Removing old field in checkpoint info by @slundqui in #982
- Use pypechain package by @sentilesdal in #978
- Funding bots now async with retries by @slundqui in #983
- Adding variable rate to dashboard by @slundqui in #986
- Adjusting ohlcv plot to handle speed up time mode by @slundqui in #989
- Adjusting sleep in checkpoint bot for sped up time by @slundqui in #990
- Fixing plot for open positions plot by @slundqui in #991
- Crash reporting now takes optional argument for log level by @slundqui in #992
- Adjusting parameters for specifying how to connect to chain by @slundqui in #993
- Update docs by @dpaiton in #996
- Budget defaults by @slundqui in #997
- Add smart_long policy by @sentilesdal in #994
- add agent and additional info to crash report by @wakamex in #985
- increment version; support hyperdrive17 by @dpaiton in #998
Full Changelog: v0.7.0...v0.8.0
support hyperdrive v0.0.15; improve error handling
What's Changed
- update to support hyperdrive v0.0.15 contracts
- improved error handling for slippage and agents that are done trading or have insufficient funds
- improvements to the dashboard and database
- improved policy development workflow with staticly typed custom configs
PRs
- Supports clean exits from agents when done trading by @slundqui in #943
- Removing obsolete data functions from dashboard by @slundqui in #944
- Total pnl in wallet stats now rank by pnl by @slundqui in #951
- Setting postgres tests as optional if docker engine isn't installed, but force run them in CI by @slundqui in #952
- Static types for custom policy configs by @slundqui in #955
- move hyperdrive pool deployment into ethpy/hyperdrive by @dpaiton in #953
- update agent0 readme docs by @dpaiton in #958
- updates for hyperdrive 0.0.15 by @dpaiton in #959
- Flag for halting on slippage error that defaults to False by @slundqui in #954
- Check for invalid balance in crash reporting, and add message to exception if detected by @slundqui in #964
- bumps project version to 0.7.0 by @dpaiton in #968
Full Changelog: v0.6.0...v0.7.0
v0.6.0
What's Changed
- Adds the pypechain package for generating typed objects from contract ABI JSON files
- Adds wheels to install pyperdrive, the python-wrapped hyperdrive-rust API
- Adds HyperdriveInterface API for easier coordination of bot trades
- Bots can load previously utilized wallets on boot, allowing for restarts
- Dashboard refactor -- new plots; speed improvements; robustness improvements
- Moved docs to readthedocs from vercel
- Improved crash reporting & handling
- Improved database interface to add an API server that supports queries from outside users
- Adds an arb bot & (temporarily) removes smart long and short bots
- tons of bugfixes & code refactors to support user and dev experiences
PRs
- Create MVP Pypechain lib by @sentilesdal in #840
- ignore top level .configs by @sentilesdal in #841
- Update pyproject.toml to ignore the .venv directory when linting by @sentilesdal in #842
- Using local postgres for pytest by @slundqui in #843
- adds the pyperdrive wheel by @dpaiton in #835
- Getting most recent block in acquire_data by @slundqui in #845
- Analysis stage by @slundqui in #844
- Analysis hotfix by @slundqui in #848
- New dashboard page and plots by @slundqui in #849
- add pyperdrive package to gh workflow by @dpaiton in #846
- hotfix for pyperdrive install by @dpaiton in #852
- Generate Python types for all internal Solidity contract types. by @sentilesdal in #847
- pypechain: use fstrings by @wakamex in #853
- fix: save old balance before update (associated linting) by @wakamex in #860
- fix: save old balance before update (functional change) by @wakamex in #859
- pypechain: code reuse with stringify_parameters by @wakamex in #854
- Fixing plots to share x axis by @slundqui in #855
- adds pyperdrive build wheels by @dpaiton in #862
- Using readthedocs for doc building by @slundqui in #865
- Fixing postgres fixture by @slundqui in #866
- fix random agent withdraw shares by @wakamex in #868
- Fixing an issue with passing in string in exp notation to fixedpoint by @slundqui in #871
- Using loopback interface instead of localhost by @slundqui in #873
- Updating required docker setting under install.md for tests. Updating… by @slundqui in #874
- Updating docs by @slundqui in #875
- Add events to ContractTypes.py by @sentilesdal in #876
- Explicitly closing figures by @slundqui in #878
- override variables in load_dotenv by @wakamex in #884
- pypechain: code reuse with format_code and write_code by @wakamex in #861
- consistent naming of URIs by @dpaiton in #890
- Streamlit performance optimizations by @slundqui in #880
- pypechain support for functions with multiple signatures by @dpaiton in #893
- Get wallet state from db by @slundqui in #894
- add hyperdrive types by @dpaiton in #888
- add a hyperdrive api by @dpaiton in #870
- Fix Event Params and conditional imports by @sentilesdal in #898
- Fixing a bug with default flask host and port by @slundqui in #900
- Fixing a bug with maturitytime type by @slundqui in #901
- fixes codegen_test to auto-remove temp dirs by @dpaiton in #903
- update to current hyperdrive abi by @dpaiton in #867
- Fixing race condition for analysis by @slundqui in #906
- extract functional code from fixture by @wakamex in #879
- replace elfpy market with ethpy HyperdriveInterface by @dpaiton in #909
- Removing develop mode from example bots scripts by @slundqui in #922
- Host parameter in example scripts by @slundqui in #908
- Arbitrage policy by @slundqui in #925
- Fixing typo in random bots policy by @slundqui in #926
- add a spot price and fixed rate HyperdriveInterface api test by @dpaiton in #928
- wrap json in StringIO so pandas doesn't complain by @wakamex in #930
- Anaylsis batch hotfix by @slundqui in #931
- Arb bot hotfix by @slundqui in #932
- api hotfix for updating cache by @dpaiton in #934
- Adding in which policy the agent is running when logging trades by @slundqui in #935
- Crash reporting, detailed logging of agent0 trades, and async trades from single agent by @slundqui in #937
- Update to support Hyperdrive 0.0.14 by @dpaiton in #936
- Fixing spot price calculation based on hyperdrive 0.14 by @slundqui in #941
- bump project version; prune authors by @dpaiton in #863
Full Changelog: v0.5.0...v0.6.0