Releases: oceanprotocol/pdr-backend
v0.4.0
What's Changed
New Features & Breaking Changes
- Towards #779: Easier benchmarking via new 'multisim' CLI. [@trentmc] (#783)
- #701 - Prediction manager contract and Predictoor Agent with PredSubmitterManager. [@trizin](#786, #877)
- Adds multisim ids to enable multiple streamlit runs/comparisons. [@calina-c] (#857)
- Adds snapshots slider for sim engine plots. [@calina-c] (#851)
- Issue #749 - Use streamlit to display graphs in sim plotter. [@calina-c] (#793)
- Issue #842 - Convert plots to plotly. [@calina-c] (#853)
- Remove matplotlib. [@calina-c] (#876)
- Issue #867 - CI warnings. [@calina-c] (#872)
- Add streamlit info in predictoor.md. [@calina-c] (#873)
- #918 - Remove ganache dependency from predictoor tests. [@trizin] (#934)
- #930 - Remove CLI approach arg from predictoor. [@trizin] (#931)
Bug Fixes
- Fix #787, #795, #805, #806, #812, #806, #871, #889, #892, #899, #901, #907, #912, #917, #933: Various bug fixes including CLI refactors, DRY violations, datetime deprecations, timezone issues, and more. [@trentmc]
- Fix #791: Add sim/lake_ss_test_dict to avoid DRY violations. [@trentmc] (#792)
- Fix #702, #493: Check balances before submitting a prediction and new method safe_fetch_ohlcv(). [@trizin, @trentmc] (#713, #875)
- Fix asyncio version by downgrading to 21.1 again for CI warnings. [@calina-c] (#837)
- Fix accuracy calculation for predictions and predictoors info. [@KatunaNorbert] (#840)
Documentation and Other Refactors
- Update predictoor.md. [@KatunaNorbert] (#926)
- Towards #879: Refactors in 'exchange/', and timezone bug fix. [@trentmc] (#896)
New Contributors
Full Changelog: v0.3.2...v0.4.0
v0.3.2
What's Changed
- Add safe fetch ohlcv dydx method by @graceful-coder in #686
- Currency special types by @calina-c in #676
- #695 - Claim rewards for second private key by @trizin in #700
- #692 - Implement cutoff seconds to stop predictions by @trizin in #696
- Finish special types - Remove asCurrency function (unused). by @calina-c in #706
- Fix #684: [Sim] Change 1d profit scatterplots to 2d by @trentmc in #705
- Fix #708: When prob(up) < 0.5, trader profit is always zero by @trentmc in #712
- Add dependency numbers. by @calina-c in #711
- Fix #719: [Bug, Aimodel] constant classifier by @trentmc in #720
- Fix #704: Calibrate model probabilities w CalibratedClassifierCV by @trentmc in #721
- Fix #722 #725 #723 classifier: balance T/F, weight newest by 10x, calc var importances (PR #727) by @trentmc in #727
- Fix #729: [Aimodel] ppss for weight_recent, balance_classes, calibrate_probs by @trentmc in #730
- #697 - Automatically claim payouts for previous epochs by @trizin in #698
- Bump pylint from 3.0.3 to 3.1.0 by @dependabot in #716
- Bump pytest-asyncio from 0.21.1 to 0.23.5 by @dependabot in #714
- Bump numpy from 1.24.4 to 1.26.4, upgrade CIs to Python 3.11 by @dependabot in #715
- Bump scikit-learn from 1.3.2 to 1.4.1.post1 by @dependabot in #717
- Bump pandas from 2.0.3 to 2.2.1 by @dependabot in #718
- Fix #678 - Deployer update for two sided prediction bots by @trizin in #690
- Fix #752 [Bug] ccxt FileNotFoundError in initialize_network_objects by @trentmc in #753
- Fix #750: [Sim] Refactor plot code in sim_engine by @trentmc in #755
- Extend work from #750: [Sim] Refactor plot code in sim_engine by @trentmc in #760
- Fix # 743: [DX] VisualStudio linter complains about README formatting by @Pfed-prog in #745
- Fix #732 - Refactor currency classes to reduce duplication by @trizin in #733
- Fix #657: [Bug, lake] pl.Dataframe constructor error by @trentmc in #762
- Fix #724 #674: [Sim] Plot rel importances of vars; plot contours for 2 most impt vars by @trentmc in #761
- For #493 step 2/4 add a new method safe_fetch_ohlcv_dydx() by @graceful-coder in #736
- Fix #726: [Sim] Log/plot better metrics: f1, precision, recall by @trentmc in #780
- Bump types-pyyaml from 6.0.12.12 to 6.0.12.20240311 by @dependabot in #763
- Bump matplotlib from 3.7.5 to 3.8.3 by @dependabot in #765
- Bump polars from 0.20.10 to 0.20.15 by @dependabot in #764
- Bump types-requests from 2.31.0.20240218 to 2.31.0.20240311 by @dependabot in #766
- Bump pyarrow from 15.0.0 to 15.0.1 by @dependabot in #767
- Fixes #784 - Query pending payouts - Get canceled slots by @trizin in #785
New Contributors
- @dependabot made their first contribution in #716
- @Pfed-prog made their first contribution in #745
Full Changelog: v0.3.1...v0.3.2
v0.3.1
What's Changed
Fixes a critical bug appeared in v0.3.0 predictoor agent. (#688)
- Fix #657: Float being interpreted as integer by @idiom-bytes in #669
- Fix #688: PredictoorContract deepcopy() causes RecursionError by @trentmc in #689
Full Changelog: v0.3.0...v0.3.1
v0.3.0
In this release, the main change is: prediction bots submit "up" and "down" predictions with a stake-weighted confidence on each, i.e. "two-sided prediction". This reduces epoch-to-epoch variance and increases profitability.
What's changed
- Predictoor bots: Two-sided prediction #670. Easy deployment of >1 agents via Kubernetes + CLI; pm2 deprecated #570
- Trader bots: live-mocking ability, enabling "ghost" trades.
- Simulator: predictions are two-sided. Trades use model confidence. New plots like predictoor profit vs. time and a visual of model probability response surface. Live trading possible.
- Data pipeline: better structure. Analytics are starting to get built on top.
- UX: There is now proper Python-style logging. ppss.yaml tuned. Small CLI utilities added.
- Core: The codebase is more robust, including greatly-expanded type-checking and several bug fixes. Predictoor and trader agents are refactored to be simpler. Technical debt is low -- no small feat.
Contributors: @trizin @calina-c @KatunaNorbert @kdetry @idiom-bytes @graceful-coder @trentmc
Full Changelog: v0.2.0...v0.3.0
v0.2.0
This release migrates existing main.py files to the pdr CLI. Agent configuration is now done in a YAML file, with the sole environment variable being for the private key. All agents are now operated from the pdr CLI.
What's Changed
Full Changelog: v0.1.3...v0.2.0
v0.1.3
What's Changed
- #430 - Do not fetch pending slots older than 3 days by @trizin in #431
- Convert filter timestamp to int - trueval by @trizin in #432
- Fix install bot link inside readme by @KatunaNorbert in #440
- #402 - Query Payouts: only get concluded slots by @trizin in #441
- Adds manual trigger to pytest by @calina-c in #486
- For #465 into main: Implement a delay to pause and retry in case of network errors by @trizin in #491
Full Changelog: v0.1.2...v0.1.3
v0.1.2
v0.1.1
What's Changed
- issue376: accuracy rate issue by @kdetry in #377
- Enforce newer ccxt and accomodate changes. by @calina-c in #386
- Increase default subgraph timeout and retry count by @trizin in #390
- #229 - Test
trueval agent batch.py
gets stuck in infinite loop by @trizin in #367
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Initial Release
What's Changed
- Make sure all pdr repos are up to date by @trizin in #7
- Use block timestamp instead of block number by @trizin in #12
- Add a Dockerfile by @trizin in #18
- Use seconds instead of block number in subgraph module by @trizin in #22
- Towards #13: add unit tests by @trentmc in #17
- Towards #13: add unit tests by @trentmc in #24
- Create an env module in utils by @trizin in #11
- Add pytest workflow by @trizin in #25
- Update prediction submission logic by @trizin in #27
- Replace
pdr-sapphire-wrapper
withsapphire.py
by @trizin in #29 - Add publisher to pdr backend by @trizin in #30
- Add black, mypy and pylint workflow by @trizin in #37
- Fund wallets during publisher startup by @trizin in #44
- Fix send_encrypted_tx arguments by @trizin in #46
- Fix #38: improve dfbuyer random algorithm by @trizin in #39
- [predictoor] Infinite token approval and cache allowance by @trizin in #48
- Add contract unit tests by @trizin in #53
- Towards #51: trader README first cut by @trentmc in #59
- Towards #51 by @trentmc in #62
- Fix #51: Add local README for each stakeholder by @trentmc in #63
- Update predict.py docstring by @trizin in #64
- Add a readme for building and deploying a container image on azure by @trizin in #65
- migrate real-time prediction loop from pdr-model-experiments by @richardblythman in #49
- Fix #57: Remove floatvalue from utils and trueval agent by @trizin in #58
- Finish #54 - Enable (a) simple flow with random predictions, yet (b) examples of using actual models by @trentmc in #71
- Fix #68 - update READMEs based on Berkay's new azure readmes by @trentmc in #72
- Fix #73 - Predictoor output too verbose due to "connection timed out" subgraph logs by @trentmc in #74
- Fix #75: Refactor predictoor approach directory structure by @trentmc in #76
- Fix #77 - Refactor: shrink "env" module and its usage by @trentmc in #78
- Fix #80 - READMEs don't support subgraph querying by @trentmc in #81
- Towards #80 - readme doesn't specify to use thegraph by @trentmc in #82
- Fix #86 - contract.py does way too much, refactor it by @trentmc in #87
- Fix #90 - Fix pylint errors by @trentmc in #93
- Issue3 - Some epochs might not get truevals fix this by @trizin in #67
- Towards #13: add predictoor tests by @calina-c in #88
- Fix #92: Have unified way to call approach 1 vs 2 by @trizin in #94
- Issue10 - Detect and claim unclaimed profits by @trizin in #91
- Adds some publish tests. by @calina-c in #89
- Fix #99: MODELDIR error in CLI by @trentmc in #100
- Refactor trueval agent by @trizin in #103
- Bump ocean-contracts version to 2.0.0a11 by @trizin in #107
- Towards #13: rename ContractData -> Feed by @trentmc in #108
- Towards #13: refactor: create BaseConfig, and make TruevalConfig inherit from it by @trentmc in #109
- Towards #13: rename query_predictContracts -> query_feed_contracts by @trentmc in #114
- Add an interface class for PredictoorHelper contract and tests by @trizin in #106
- Towards #13: make get_feeds() returns dict of Feed, not dict of dict by @trentmc in #111
- Remove env vars from conftest ganache. by @calina-c in #112
- Towards #13: tests & refactoring predictoor/ by @trentmc in #101
- Fix #117 test_predictoor_batcher.py failures by @trentmc in #118
- Fix #119: module 'ccxt.kraken' does not have the attribute 'fetch_ohlcv' by @trentmc in #120
- Fix #115 add TruevalAgentBatch agent and tests by @trizin in #116
- Fix #79: Predictoor agents see subgraph by @trentmc in #123
- Fix #122: When running publisher, get errors in get_feeds() by @trentmc in #125
- #126 - Add ContractBase class by @trizin in #127
- Remove payout call from predictoor main flow and add a command to do
payout
by @trizin in #131 - Add error handling for every external call by @trizin in #132
- Reduce random stake amount by @trizin in #134
- Fix #136 - Refactor and test trader by @calina-c in #113
- [trader] cache previous traded epoch by @trizin in #151
- #153 - [trader] Optimize main loop by waiting till soonest epoch by @trizin in #155
- #149 - [trader] make logging informative and more succinct by @trizin in #154
- #158 - [trader] Rename get_trader to trade by @trizin in #160
- #157 - [trader] Move max tries to trader agent config class by @trizin in #159
- Bump ocean-contracts version to 2.0.0a12 by @trizin in #161
- add check script by @alexcos20 in #145
- Reorganise approach 1. by @calina-c in #156
- Increase stake amount by @trizin in #166
- Fix #60: Update READMEs for remote testnet by @trizin in #143
- #162 - Update publish script for tesnet by @trizin in #163
- #148 - Add documentation for env vars by @trizin in #152
- Async feed processing in trader agent by @trizin in #167
- Refactor dfbuyer agent and implement new algorithm by @trizin in #168
- #171 - dfbuyer should handle gas related reverts by @trizin in #172
- "Get consume so far" should fetch all orders by @trizin in #175
- #176 - trueval should use close prices by @trizin in #177
- [dfbuyer] Fix expected consume calculation by @trizin in #181
- Add dfbuyer to check script by @trizin in #178
- #184 - slack notify CI is failing by @trizin in #185
- Add mainnet deployment configuration into publisher by @trizin in #187
- Bump ocean-contracts version to 2.0.0a14 by @trizin in #188
- #190 - check if subgraph is in sync before take step by @trizin in #193
- Update & add READMEs for remote mainnet by @trizin in #189
- Fix #199: Predictoor log says: Timestamp={block['timestamp']} by @trentmc in #201
- For #194 and generally: add more cleanup info to barge.md by @trentmc in #203
- Fix #196: Add link to mainnet subgraph by @trizin in #202
- Fix #204: Make predictoor payout module rock solid by @trizin in https://github.com/oceanprotocol/pdr-backend/pu...