- New permissionless instruction to regularly charge collateral fees
- Bank and group configuration to set rate and interval
- Keeper addition to call the instruction
* rename usd_opt to usdc_opt in OracleAccountInfos
* use fallbacks when fetching bank+ price in AccountFetcher struct
* feat: add derive_fallback_oracle_keys to MangoGroupContext
* test: properly assert failure CU in test_health_compute_tokens_fallback_oracles
* provide fallback oracle accounts in the rust client
* liquidator: update for fallback oracles
* set fallback config in mango services
* support fallback oracles in rust settler + keeper
* fix send error related to fetching fallbacks dynamically in tcs_start
* drop derive_fallback_oracle_keys_sync
* add fetch_multiple_accounts to AccountFetcher trait
* revert client::new() api
* deriving oracle keys uses account_fetcher
* use client helpers for deriving health_check account_metas
* add health_cache helper to mango client
* add get_slot to account_fetcher
* lint
* cached account fetcher only fetches uncached accounts
* ensure keeper client does not use cached oracles for staleness checks
* address minor review comments
* create unique job keys for CachedAccountFetcher.fetch_multiple_accounts
* fmt
* improve hashing in CachedAccountFetcher.fetch_multiple_accounts
---------
Co-authored-by: Christian Kamm <mail@ckamm.de>
- Don't just restart on new listings, but also on significant changes to
old listings such as oracle changes.
- Cover the liquidator and settler in addition to the keeper.
* ts: get yarn lock from dev
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* v0.19.20
* ts: add missing dependency
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* ts: add error when no free token position is found (#707)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Mc/tcs improvements (#706)
* ts: additional tcs helpers
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fixes from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Revert "Fixes from review"
This reverts commit 1def10353511802c030a100fd23b2c2f4f198eaa.
---------
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* v0.19.21
* v0.19.22
* ts: tcs fix price display input to tx
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* v0.19.23
* v0.19.25
* script: log all
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* ts: fix tcs order price limits
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* v0.19.27
* ts: fix getTimeToNextBorrowLimitWindowStartsTs (#710)
* ts: fix getTimeToNextBorrowLimitWindowStartsTs
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fixes from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
---------
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Mc/keeper (#714)
* v0.19.28
* ts: tokenWithdrawAllDepositForMint
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fix
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fix
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* rust: dont include tokens with errors in crank
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fixes from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* review fixes
* Fixes from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
---------
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: Christian Kamm <mail@ckamm.de>
* v0.19.29
* ts: update debug script
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* release 19.1 -> deploy + serum3 open orders estimation ts patch (#719)
* Serum3 open orders: Fix health overestimation (#716)
When bids or asks crossed the oracle price, the serum3 health would be
overestimated before.
The health code has no access to the open order quantites or prices and
used to assume all orders are at oracle price.
Now we track an account's max bid and min ask in each market and use that
as a worst-case price. The tracking isn't perfect for technical reasons
(compute cost, no notifications on fill) but produces an upper bound on
bids (lower bound on asks) that is sufficient to make health not
overestimate.
The tracked price is reset every time the serum3 open orders on a book
side are completely cleared.
(cherry picked from commit 2adc0339dc)
* Changelog, version bump for program v0.19.1
* ts: ts patch for the PR
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
---------
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: Christian Kamm <mail@ckamm.de>
* Rust client: Use alts for every transaction (#720)
(cherry picked from commit 40ad0b7b66)
* Jupiter: ensure source account is initialized
Backport of 9b224eae1b / #721
* client/liquidator: jupiter v6 (#684)
Add rust client functions for v6 API that are usuable in parallel to the v4 ones.
(cherry picked from commit 0f10cb4d92)
* Jupiter: Ensure source account is initialized (#721)
(cherry picked from commit 9b224eae1b)
* Mc/update cu budget for perp settle pnl (#724)
* ts: bump perp settle pnl cu budget
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* ts: helpers for withdrawing tokens from bad oracles (#726)
* ts: helpers for withdrawing tokens from bad oracles
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fixes from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fixes from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fixes from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fixes from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* rename
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* rename
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fix usage of field
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fixes from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
---------
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* v0.19.31
* ts: higher min. cu limit for each tx (#727)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* v0.19.32
* ts: if more ixs then more cu (#728)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Mc/tcs p95 (#708)
* use more fine grain price impact
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* ts: for computing tcs premium use more fine grain price impact
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
---------
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* update
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Mc/settler cu limit (#725)
* v0.19.30
* settler: extend cu limit to 250k for perp pnl settling
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* TransactionBuilder: add cu limit/price based on config
---------
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: Christian Kamm <mail@ckamm.de>
* ts: rename params to indicate that they are in native
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* ts: cleanup tcs create parameter naming (#730)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* wip: Mc/update risk params (#729)
* v0.19.33
* ts: script to update risk params
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* create proposals helpers
* fix
* Update env params
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Update
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Update
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* simulate before run
* fix presets
* fix
---------
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: Adrian Brzeziński <a.brzezinski94@gmail.com>
* ts: upgrade anchor (#735)
* ts: upgrade anchor
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fixes from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
---------
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* script for tx error grouping, and ts helper code for finding tx error reason (#747)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* v0.19.34
* ts: fix script for updating token params
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fix typo
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* script: update script to remove files which are of 0 size
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* script: error tx grouping, blacklist some more
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* fix (#753)
* jupiter: clearer slippage_bps argument name
---------
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: Christian Kamm <mail@ckamm.de>
Co-authored-by: Adrian Brzeziński <a.brzezinski94@gmail.com>
- Change fixed to be a git dependency (no more submodules!)
- Upgrade fixed to a version compatible with borsh 0.10
- Upgrade openbook-v2 dependency (for anchor compat)
- Move services from mango-feeds repo into bin/
- Update mango-feeds-connector
Co-authored-by: Christian Kamm <mail@ckamm.de>
Co-authored-by: Riordan Panayides <riordan@panayid.es>
Users can request token swaps to happen when the oracle price
is within a price band. Once the price is right, an executor can
trigger the swap. The executors are rewarded with a premium
over the oracle price.
This allows limit and stop loss orders on arbitrary spot pairs.
The PR comes with basic ts support and adjustments to the liquidator,
to execute available token conditional swaps.
Co-authored-by: microwavedcola1 <microwavedcola@gmail.com>
* Vendor `fixed` crate to have checked math in release mode
* remove all cm!()
* drop superfluous parens
* drop use of checked_math crate
* manual removal of redundant checked_* functions