Releases: delvtech/agent0
Releases · delvtech/agent0
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
Improved interface for agent0 and chainsync
What's Changed
- Refactors to chainsync and agent0 to make them easier to use
- New support for creating a development chain using a test fixture to support on-chain testing in CI
- New system-wide tests that verify interfacing across multiple libraries
PRs
- Adding logic for calculating trade leaderboard by @slundqui in #804
- Test cleanup by @slundqui in #805
- fix: log wallet address as string by @wakamex in #806
- Removing rate limit check and going back to using default github token by @slundqui in #808
- Chainsync cleanup by @slundqui in #807
- Removing parent directory relative imports by @slundqui in #810
- Abstracting out chain to data pipeline functions by @slundqui in #813
- Removing agent0 dependency from ethpy by @slundqui in #814
- Initial system test by @slundqui in #815
- Data updates by @slundqui in #818
- Agent0 and config refactor by @slundqui in #825
- hotfix for circular imports in agent0 lib and tons of renaming by @dpaiton in #834
- System tests by @slundqui in #837
- Dashboard hotfix by @slundqui in #839
- bump project version by @dpaiton in #838
Full Changelog: v0.4.1...v0.5.0
v0.4.1
What's Changed
- Bots can be executed more easily with a
--develop
flag - Individual subpackages in the monorepo can now be installed
- Various patches and bugfixes for infra to support the latest elf-simulations
PRs
- Bug fix for ind rank updates by @slundqui in #792
- Adds developer mode to easily fund bots by @dpaiton in #795
- Updating installation to allow for installing individual subpackages by @slundqui in #796
- Bugfix with web3 by @slundqui in #797
- Changes for infra by @slundqui in #798
- increments version to 0.4.1 by @dpaiton in #799
Full Changelog: v0.4.0...v0.4.1
New monorepo structure
What's Changed
- We created a new monorepo structure to separate offerings and dependencies
- We began the process of deprecating
elfpy
by removing connections to other services - We added some new outputs to the streamlit dashboard
PRs
- Adding leaderboard to streamlit by @slundqui in #762
- Add get_balance_for_account and mint_tokens_for_account bash scripts by @sentilesdal in #761
- Remove slippage defaults from policies by @sentilesdal in #760
- Data withdraw shares by @slundqui in #764
- Adding wallet to user for new trading comp user by @slundqui in #765
- Updating artifact ports by @slundqui in #769
- PNL & Wallet code cleanups by @dpaiton in #766
- remove fees paid from wallets by @dpaiton in #770
- explain calculate current pnl by @wakamex in #768
- Add redeem withdraw shares to HyperdriveMarketAction by @sentilesdal in #767
- Rename Trade type member variables to better indicate type by @dpaiton in #773
- Using wallet deltas from transaction logs by @slundqui in #772
- Refactor eth_bots agents by @dpaiton in #774
- Hotfixing lookback block limit for trading comp by @slundqui in #775
- Pull eth_bots out of examples by @dpaiton in #776
- Move bot data pipeline into eth_bots by @dpaiton in #777
- move hyperdrive_interface into eth_bots by @dpaiton in #778
- move elfpy/bots into eth_bots/core by @dpaiton in #779
- Fix min_output for redeeming withdraw shares by @sentilesdal in #781
- refactor elfpy to look like a monorepo by @dpaiton in #780
- Using decimal instead of floats for postgres ingestion by @slundqui in #782
- fix docker to locate new elfpy; rename some src folders and files by @dpaiton in #783
- Fixing a bug with converting timestamp to datetime by @slundqui in #784
- Script for calculating previous leaderboards for trading competition by @slundqui in #786
- Clean up data/ folder by @sentilesdal in #787
- calculate pnl for closeout by @wakamex in #788
- whole new monorepo structure by @dpaiton in #791
- increment package version and update install by @dpaiton in #793
- bumps package version to 0.4.0 by @dpaiton in #794
Full Changelog: v0.3.2...v0.4.0
Bot funding & slippage controls
What's Changed
- bots can now be funded from user wallets
- bots now include the ability to block trades in the event of high slippage
- improvements for the streamlit dashboard
- running elfpy & bots no longer requires also building the hyperdrive solidity code
PRs
- load individual abi files by @dpaiton in #744
- EthAccount can init from private key by @dpaiton in #746
- add eth_transfer function by @dpaiton in #745
- Showing only subset of plots for live demo (#747) by @slundqui in #748
- Using stretch time from pool config in fixed rate calculation by @slundqui in #751
- Fixing fixed rate calculation with fixing spot price calculation by @slundqui in #752
- adds the ability to fund bots from user accounts by @dpaiton in #738
- bugfixes & cleanup for bot workflow by @dpaiton in #753
- improve LP PNL calculation by @wakamex in #734
- Add slippage protection for eth_bots by @sentilesdal in #740
- Fixing error with example custom policy by @slundqui in #755
- Update INSTALL.md by @slundqui in #756
- fix install step 6 by @wakamex in #754
- more pythonic logs with per-handler log levels by @wakamex in #735
- remove hyperdrive dependency by @dpaiton in #757
- Fixing a bug where fund_bots would mint money to both bot and base ac… by @slundqui in #758
- increment pyproject elfpy version by @dpaiton in #759
Full Changelog: v0.3.1...v0.3.2
Asynchronous bots
What's changed
- bots can now trade asynchronously, which allows us to run multiple bot scripts on one devnet chain
- adds a checkpointing bot to allow the hyperdrive devnet chain to run smoothly
- bumped elfpy to be compatible with Hyperdrive
0.0.10
- various bugfixes to streamlit, configs & eth_bots
PRs
- fixes config errors by @dpaiton in #724
- Fixing streamlit for a case where LP doesn't exist by @slundqui in #722
- increment pyproject by @dpaiton in #725
- remove cross platform tests by @dpaiton in #728
- reverts to linting on all files & no docs linting by @dpaiton in #733
- Postgres split by @slundqui in #726
- Updating configuration handling in acquire data by @slundqui in #732
- Added a checkpointing bot for Hyperdrive by @jalextowle in #731
- fix: Bugfix in the checkpointing bot by @jalextowle in #736
- reorganizes & renames config files by @dpaiton in #737
- Bots now use async waits on tx reciept by @slundqui in #739
- adds factory to hyperdrive addresses by @dpaiton in #741
- bumps elfpy version to 0.3.1 by @dpaiton in #742
Full Changelog: v0.3.0...v0.3.1
Bots use web3 for interfacing with contracts
What's Changed
- Apeworx is no longer a lib requirement
- We cleaned up the eth_bots endpoint to be easier to follow
PRs
- remove pnl legend by @wakamex in #715
- Don't set nans for deltas to prevent weird plotting by @slundqui in #720
- polish up eth_bots by @dpaiton in #714
- remove ape by @wakamex in #716
Full Changelog: v0.2.1...v0.3.0
Improved eth bots pipeline; final apeworx tag
What's Changed
- We added big improvements to the devnet data acquisition pipeline, which now runs a postgres database full of trade details
- We added a new pipeline for trading on smart contracts that relies on web3py instead of apeworx
- We added better crash reporting & issue templates for triaging bugs found by the bot pipeline
- We updated the Hyperdrive calculations for maximum long & short trades according to the newest Solidity implementation
- We incremented the required python version to 3.10
PRs
- Add docker script to build and push to ghcr.io by @sentilesdal in #609
- rewrite docker build scripts by @dpaiton in #608
- trade history applied marginally and simplified by @wakamex in #576
- Data pipeline to postgres by @slundqui in #611
- fix: crash when trade_history is None by @wakamex in #626
- increments elfpy version to 0.2.0 by @dpaiton in #629
- Adding pool config to postgres by @slundqui in #631
- rename docker deployment from sims to simulations by @dpaiton in #610
- make postgres a required install by @dpaiton in #632
- Fixing db_schema for 3.9 compatibility by @slundqui in #633
- Postgres wallet table by @slundqui in #634
- Adding retry counts to data checking by @slundqui in #639
- Using bots python script to generate default config by @slundqui in #638
- Add formatted logging for hyperdrive crash reports. by @sentilesdal in #636
- Evm bots hotfix by @slundqui in #641
- Revert "Reverting back to using GITHUB_TOKEN (#602)" by @wakamex in #640
- fix: use default token for docker login by @wakamex in #643
- Adding option to fall back to default github.token in ci by @slundqui in #645
- Postgres config through environmental variables by @slundqui in #642
- improve pnl calc by @wakamex in #630
- Update README.md by @dpaiton in #646
- updates pyproject to have the same python version as CI by @dpaiton in #649
- fixes logging by @dpaiton in #650
- Add a crash report issue template. by @sentilesdal in #651
- format_numeric_string also takes ints now by @slundqui in #652
- web3: initialize hyperdrive by @dpaiton in #604
- adds fixes to address PR feedback by @dpaiton in #653
- Fix tests broken from fixedpointmath version update. by @sentilesdal in #658
- Adding username field to bot_config by @slundqui in #663
- Hotfix for broken acquire_data by @slundqui in #664
- Filter PNL in streamlit dashboard by @slundqui in #654
- web3 functions and classes refactor by @dpaiton in #655
- add ape plugins into pip install by @wakamex in #661
- Fix: typos by @omahs in #659
- Username to wallet address by @slundqui in #667
- Hotfix for oracleSize, should be in fixedpoint by @slundqui in #669
- Crash Report Issue Template - Add Cloud Information by @sentilesdal in #665
- Adding minimumShareReserves to PoolConfig. Fixing typo with initialSharePrice by @slundqui in #670
- Adding share price to wallet info by @slundqui in #672
- Adding helper function to get all wallet info history by @slundqui in #671
- Add calculate_max_long and calculate_max_short by @sentilesdal in #675
- set up config and main script for replacing evm_bots by @dpaiton in #666
- fix requires-python by @wakamex in #678
- test values not series by @wakamex in #676
- Using orm instead of raw query by @slundqui in #682
- add checkpoints to db by @wakamex in #677
- Get eth_bots running. by @sentilesdal in #685
- update docker python to 3.10 by @wakamex in #684
- Improve error handling for hyperdrive contract by @sentilesdal in #686
- fix trade bugs in main.py by @dpaiton in #687
- Adding username mapping to postgres in eth bots by @slundqui in #689
- improve pnl calc in demo by @wakamex in #679
- Enforce docstring linting! by @sentilesdal in #694
- agents use get_max; bugfixes in elf_bots/main by @dpaiton in #688
- Username handling in streamlit demo by @slundqui in #695
- fix: use EnvironmentConfig in bot profiles by @wakamex in #690
- fix budget by @wakamex in #697
- reset budget default by @wakamex in #698
- limit add liquidity to wallet balance by @wakamex in #699
- Ease linting on test files by @sentilesdal in #702
- Add
decode_error_selector_for_contract
by @sentilesdal in #691 - better allowance logging by @wakamex in #700
- example agent doesn't use calc_max by @dpaiton in #701
- Change the default ABI_DIR to out/ by @sentilesdal in #706
- loosen linting in ruff by @wakamex in #704
- Register bot server by @slundqui in #707
- Adding schema to register username flask server by @slundqui in #708
- fix capture files in lint workflow by @wakamex in #705
- Hyperdrive address query hotfix by @slundqui in #710
- Changing host for username server in prep for container by @slundqui in #712
- Add guard rails to max long/short calculations. by @sentilesdal in #711
- adds agent wallet updating after each trade by @dpaiton in #709
- increment elfpy version by @dpaiton in #713
New Contributors
Full Changelog: v0.2.0...v0.2.1