Releases: delvtech/agent0
Releases · delvtech/agent0
fixedpoint moved to own repo; new bot demo
What's changed
- Fixed-point class has been moved to a new repository and is now an elfpy dependency
- We added a new bot demo to show how bots can execute trades on a dockerized dev blockchain with deployed hyperdrive contracts
- We have added many web3py utilities to decode and analyze contract call outputs and emitted transaction receipts
- Much of the class structure for agents and markets has been refactored to improve readability & dependency management
PRs
- Refactor elfpy files and classes by @dpaiton in #498
- add sqrt to FixedPoint by @dpaiton in #502
- Add Fixtures for Cross Platform Tests by @sentilesdal in #505
- agent refactor by @dpaiton in #503
- run bots with latest hyperdrive by @wakamex in #496
- Updating readme by @slundqui in #517
- move more functions into ape_utils by @wakamex in #516
- Fix pip cache in Github Actions by @sentilesdal in #518
- fix up install instructions & number format description by @dpaiton in #521
- Initial commit for data acquisition pipeline by @Arruda9 in #524
- Start evm_bots refactors, add
HALT_ON_ERROR
option for running evm_bots by @sentilesdal in #528 - clean up logging by @dpaiton in #532
- update pyproject by @dpaiton in #533
- cleaning up functions & types in apeworx utils by @dpaiton in #534
- improve on chain data acquisition and output by @dpaiton in #531
- typo fix in evm_bots by @slundqui in #535
- Fixing another address typo in evm bots by @slundqui in #536
- data acquisition now gets pool info and pool config by @dpaiton in #538
- adds block time to pool info output by @dpaiton in #539
- transaction output now includes some additional log data by @dpaiton in #540
- Streamlit demo by @slundqui in #543
- Reorganizes contract acquisition files and fixes up logging by @dpaiton in #544
- Fix args in transaction event logs by @sentilesdal in #548
- Apply Docker image tagging conventions by @ryangoree in #549
- evm_bots uses custom config class to process inputs by @dpaiton in #546
- fixes bugs with evm_bots loading from config by @dpaiton in #550
- Removes rng from bot config by @dpaiton in #551
- add back maturity time for close trades by @wakamex in #552
- add back ape_logger set to logging.ERROR by @wakamex in #553
- Add Flask server to create/list/kill python scripts. by @sentilesdal in #555
- unify data acquisition to a single file by @dpaiton in #556
- Adding pnl plot to demo by @slundqui in #558
- fix logs by @wakamex in #559
- bugfixes for data acquisition and streamlit plotting by @dpaiton in #560
- aesthetic & bugfixes for bot demo by @dpaiton in #562
- Acquire data bug fixes by @slundqui in #565
- Specifying dependencies in pyproject toml for auto dependency installation using pip install by @slundqui in #569
- Fixing a bug with dockerfile builds by @slundqui in #571
- Linking documentation to output of examples repo by @slundqui in #570
- update for hyperdrive v0.0.3 by @wakamex in #566
- update address names to v003 by @wakamex in #573
- fixes abi contract reference for acquire_data by @dpaiton in #567
- fix: incorrect long position update by @wakamex in #577
- Simple Flask Server to spin up simulation apps by @sentilesdal in #580
- check for positive trade amount by @wakamex in #579
- Update INSTALL.md by @wakamex in #582
- use custom github token by @wakamex in #578
- use automine command and unpin ape by @wakamex in #572
- roll bots and fix github token for docker login by @wakamex in #584
- Reverting back to using GITHUB_TOKEN by @slundqui in #602
- Migrate agent creation from ape_utils to contract_interface & code cleanup by @dpaiton in #574
- Replacing fixedpoint to use external fixedpointmath library from monorepo by @slundqui in #601
- Save poolInfo data from hyperdrive to postgres by @sentilesdal in #585
- Update dependency management for postgres by @sentilesdal in #605
- Using binary of psycopg2 for installation by @slundqui in #606
- Fixing a bug with getting queried block timestamp instead of latest block timestamp by @slundqui in #607
New Contributors
Full Changelog: v0.1.1...v0.2.0
simulation logic uses fixed-point arithmetic
What's Changed
- The repository now primarily uses fixed-point arithmetic
- Python bots can execute trades on simulated blockchains as well as deployed contracts on any test net
- Renamed the Github org name to Delv Tech
- Bugfixes
- Code, comment, typing, and docs cleanup to improve readability and repo structure
PRs
- Convert Yieldspace pricing model to fixed point by @sentilesdal in #338
- lightens gridlines & ticklabels to make them more visible in dark mode by @dpaiton in #339
- adds HyperDriveFP & test by @dpaiton in #340
- catch URLs better by @wakamex in #343
- make freezable type-friendly by @wakamex in #344
- calc_spot_price with fixed-point by @dpaiton in #345
- fixed-point calc out given in test by @dpaiton in #341
- Convert Wallet to FixedPoint by @sentilesdal in #348
- fixed point base market by @dpaiton in #351
- Convert hyperdrive_actions to fixed point by @sentilesdal in #352
- testnet bots by @wakamex in #327
- fix README badge links by @wakamex in #355
- adds infinite and nan support for FixedPoint by @dpaiton in #353
- adds fixed-point test_get_max by @dpaiton in #347
- fixed-point hyperdrive and borrow markets by @dpaiton in #356
- fixed-point agent by @dpaiton in #350
- Convert Policies to Fixed Point by @sentilesdal in #357
- Cache python dependencies by @sentilesdal in #358
- adds typeerror to freezable casting checks by @dpaiton in #362
- Fix-point wallet updates by @dpaiton in #360
- add fixed point str mod floor by @dpaiton in #363
- fixes bug with open short calculation by @dpaiton in #361
- Convert Simulator to FixedPoint by @sentilesdal in #364
- FP pricing_model_utils and add_liquidity tests by @dpaiton in #349
- pylintrc - allow duplicate code by @sentilesdal in #370
- Fixed Point Tests - Open Long and Open Short by @sentilesdal in #368
- moves test_borrow over to fixed-point by @dpaiton in #367
- fixed-point test_sim by @dpaiton in #371
- renames element fi to delv tech by @dpaiton in #366
- Change GH org name by @ryangoree in #372
- Downgrade urllib3 by @ryangoree in #375
- adds fp freezable, logging, config, time tests by @dpaiton in #373
- add github token to CI flows by @wakamex in #379
- FixedPoint - fix string casting by @sentilesdal in #380
- reorganize fixed-point classes by @dpaiton in #376
- rewrites attributes for BlockTime to be safer with type checking by @dpaiton in #374
- Fixed Point Tests - Fees, Checkpoints, Initialize by @sentilesdal in #378
- Fixed Point Tests - Close Long and Close Short by @sentilesdal in #369
- Fixed Point Tests - Withdraw shares by @dpaiton in #381
- Fixed Point Tests - Remove liquidity by @dpaiton in #377
- add HyperdriveProject by @wakamex in #409
- add get_market_state in ape_utils by @wakamex in #411
- add get_on_chain_trade_info to ape_utils by @wakamex in #413
- fix codecov badge in README.md by @wakamex in #422
- add get_gas_fees and get_gas_stats to ape_utils by @wakamex in #418
- add get_wallet_from_onchain_trade_info to ape_utils by @wakamex in #416
- add get_agent_deltas to ape_utils by @wakamex in #420
- fix: count to and from separately for wallet balance by @wakamex in #424
- bugfix in freezable.astype, import rename, remove example_main by @dpaiton in #436
- Correct various fix-point bugs by @dpaiton in #437
- fix bug with failed trade modifying market state by @dpaiton in #439
- FixedPoint - examples by @dpaiton in #382
- patch smart agent notebook by @dpaiton in #442
- consistent and descriptive variable names in apeworx integrations by @dpaiton in #441
- random_agent disable get_max calls by @wakamex in #443
- add get_contract helpers to ape_util by @wakamex in #445
- FixPoint conforms to python
numbers.Real
specification by @dpaiton in #446 - renames variables in fixedpoint to be more clear by @dpaiton in #449
- Updating install documentation by @slundqui in #450
- pins typing_extensions by @dpaiton in #454
- make FixedPoint hashable for dictionary keys by @dpaiton in #451
- Docstring style fix by @slundqui in #452
- adds better input checking to FixedPoint initializer by @dpaiton in #455
- build python-base docker image by @wakamex in #447
- build elf-sims docker image by @wakamex in #456
- reorganize fixedpoint tests by @dpaiton in #457
- integrated bots by @wakamex in #386
- consolidate evm_bots.py for testnet and devnet by @wakamex in #461
- Modify apeworx demo & utils to use FixedPoint lib by @dpaiton in #462
- removes float-based functions from elfpy by @dpaiton in #459
- Jupytext notebooks to html docs by @slundqui in #465
- update FixedPoint bool and int behavior to match python by @dpaiton in #458
- don't lint .venv in hyperdrive by @sentilesdal in #489
- Fixing fixed point bug for float mod 1 by @slundqui in #486
- remove deepcopy from fixedpoint by @dpaiton in #485
- Building notebooks in docs by @slundqui in #490
- Remove use of defaultdict by @sentilesdal in #492
- restores a checkpoint test by @dpaiton in #493
- generalized bot settings working with FixedPoint by @wakamex in #484
- Using shallow copies of FixedPoint for immutable FixedPoint object for performance by @slundqui in #495
New Contributors
- @ryangoree made their first contribution in #372
- @slundqui made their first contribution in #450
Full Changelog: v0.1.0...v0.1.1
bots execute on solidity contracts
What’s Changed
- We now have near complete feature parity with the Hyperdrive solidity smart contracts as of Feb 26 (
91888d0
)- This includes checkpointing, new share accounting, and lots of tests
- Scaffolding for FixedPoint precision computation was also developed, although not deployed
- Python bots can now execute trades against the Hyperdrive solidity contracts using ApeWorx
- We've added a new simulation state that holds transaction deltas (instead of the aggregate state)
- Tons of bugfixes throughout the repo
- Code, comment, typing, and docs cleanup to improve readability and repo structure
PRs
- code & docs cleanup by @dpaiton in #232
- Update yieldspace/hyperdrive math documentation; fix up frida_louie notebook by @dpaiton in #229
- log notebooks in logging folder by @wakamex in #231
- Add new simulation state that uses relational dataframes & stores trade logs by @dpaiton in #214
- Locate types near their class by @dpaiton in #235
- Add Base Market by @dpaiton in #237
- Small Refactorings by @sentilesdal in #239
- Fix Annualization in Calculations by @sentilesdal in #242
- fix simulation_state test by @wakamex in #243
- add wallet balance units by @dpaiton in #244
- adds Trade type that includes a market & action by @dpaiton in #245
- a borrow market by @wakamex in #238
- No. More. Fracing. by @sentilesdal in #246
- make bororw market inherit from base market by @wakamex in #247
- removes create_hyperdrive_action function from agent by @dpaiton in #248
- move lp_reserves to hyperdrive from base by @wakamex in #249
- move update into base market by @wakamex in #250
- Borrow sim by @dpaiton in #255
- Sim state postprocessing improvements by @dpaiton in #256
- clean up .gitignore by @sentilesdal in #258
- Integrated smart contracts into sim repo with jupyter notebook & ape. by @villanuevawill in #253
- remove calc_liquidity and use initialize_market by @dpaiton in #261
- Reorganize time utils to be in a dedicated folder in elfpy by @dpaiton in #262
- initialize market function & test now mirrors solidity implementation by @dpaiton in #264
- adds skip notebook functionality by @dpaiton in #267
- code cleanup & bug fixes by @dpaiton in #269
- make logging safer by @wakamex in #273
- pricing model assert before trying to find root of negative number by @wakamex in #270
- Add addLiquidity tests by @sentilesdal in #260
- SC Deploy in ape by @villanuevawill in #266
- Add coverage CI by @sentilesdal in #274
- Add open long tests by @dpaiton in #263
- fix graph, align badges by @sentilesdal in #276
- Update README to suggest symlink instead of
npm link
by @sentilesdal in #278 - Fix market and trade tests by @dpaiton in #275
- Add BlockTime to Simulator and Markets by @sentilesdal in #279
- Separate trade actions from calculations by @dpaiton in #280
- Wallet update by @dpaiton in #281
- increment to current version in pyproject.toml by @wakamex in #283
- hyperdrive.ipynb: import elfpy and simplify statements by @wakamex in #271
- test open shorts in line w/ solidity CU-8669mrwvx by @wakamex in #265
- differentiates calc_bond_reserves and calc_initial_bond_reserves by @dpaiton in #286
- cleans up unused & unnecessary functions in the base pricing model by @dpaiton in #287
- Fix total supply by @dpaiton in #285
- Add checkpointing by @sentilesdal in #289
- fix checkpoint modulo bug by @sentilesdal in #290
- Refactor Checkpointing Logic by @sentilesdal in #293
- Close long tests by @dpaiton in #282
- fix typo in apply_close_checkpointing by @wakamex in #294
- Fix apeworx integration by @dpaiton in #295
- Fix hyperdrive integration by @dpaiton in #301
- removes dataclass metadata from simulators by @dpaiton in #300
- moves random agent from hyperdrive into its own policy by @dpaiton in #298
- moves close checkpoint function into market actions by @dpaiton in #297
- Add close short tests by @wakamex in #291
- remove unnorm_days by @wakamex in #304
- Execute simulation agent trades on hyperdrive smart contracts by @dpaiton in #307
- fix pylint warnings by @wakamex in #309
- add redemption fee and fee tests by @dpaiton in #299
- Dark mode plots by @dpaiton in #311
- add remove liquidity tests by @sentilesdal in #314
- flip as_underlying to match solidity update by @dpaiton in #317
- adds docs in hypedrive_market & renames vars in simulators by @dpaiton in #319
- removes get_pricing_model bc it's not used anymore by @dpaiton in #320
- rename fee variables by @wakamex in #310
- Withdraw Shares Tests by @sentilesdal in #324
- add bot liquidity 🤖 💦 by @wakamex in #321
- Add typecast to freezable by @dpaiton in #328
- deletes unused pricing model function calc lp in given tokens out by @dpaiton in #329
- Precision wrapper by @dpaiton in #312
- Withdrawal shares tests for shorts by @sentilesdal in #331
- Everlasting bots by @dpaiton in #318
- add ape and codecov to CI, update to python 3.9 by @wakamex in #322
- improve FixedPoint type and create test for FixedPoint type by @sentilesdal in #334
- clean up & separate MD files by @dpaiton in #335
- fixes typo in contributing url in README by @dpaiton in #336
- generalize precision threshold check by @wakamex in #323
- increments the project version by @dpaiton in #337
New Contributors
- @villanuevawill made their first contribution in #253
Full Changelog: v0.0.2...v0.1.0
Smart agents in hyperdrive market
What's Changed
- Improves docs, type hints, variable names, & comments
- Adds logging
- Improves simulation helper functions
- Improves experiment config & variable overrides
- Adds many more tests to improve coverage
- Iterates on hyperdrive market accounting, initialization, & pricing model
- Improves output formats & plot helper functions
- Creates public-facing jupyter notebooks that can be viewed online
- Downgrades python version to 3.8 to support Google Colab
- Removes the Element V1 pricing model
- Adds random & smart agents that trade against the Hyperdrive market
- Improves TODO & Issue tracking by co-associating them
New Contributors
- @Padraic-O-Mhuiris made their first contribution in #61
- @MazyGio made their first contribution in #66
Other Contributors
Full Changelog: v0.0.1...v0.0.2
origin codebase
Original codebase before simulation repo refactor
Element V1 original support
Refactored simulation code that includes original support for the Element V1 & YieldSpace v2 pricing models
also includes legacy notebooks for reproducing old experiments