- keep track of different error types per key
- skip for a given duration once too many errors came in
- wipe if no new errors are seen for a while
- simplify logging of actively skipped cases
- 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.
(cherry picked from commit ce16d79b13)
- 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.
- token_edit can set it up to gradually scale to new target values
- security admin can abort an ongoing change via token_edit
- all health computations are now time dependent and get the weight
based on it
- when the change is done, the keeper "cleans up" and moves the new
values into the default fields
Many instructions now return PreparedInstructions instead of a direct
Instruction or Vec<Instruction>. That way they can keep track of the
expected cu cost of the instructions for the compute limit instruction
that gets added once all instructions are made.
* 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>
* Account size: Don't fail on unrelated resize
If the account was previously resized to larger than is allowed now,
don't fail unrelated resizes.
* Further reduce account size limits
Out of caution and future-proofing. Can always raise again.
Perp settle pnl needs 6 accounts plus 2 health account lists that could
be nearly fully disjoint.
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>
This changes perp market margining to no longer assume all pnl is in USD
while settlement is in USDC. Instead, a configurable settle token is used for
pnl and settlement, defaulting to USDC.
There is no difference while the USDC price is forced to $1 and the init and liab
weights are 1. But with this patch, it becomes possible to change that.
For now it is not recommended to use a token other than USDC or USDT (or
another USD targeting stable token) for perp settlement.
The patch also updates all insurance vault use to be aware that the insurance
fund is not in USD but in USDC and apply the USDC price before payouts.
To do this, the previous PerpLiqNegativePnlOrBankruptcy was replaced by
a new PerpLiqNegativePnlOrBankruptcyV2 instruction.
Co-authored-by: microwavedcola1 <89031858+microwavedcola1@users.noreply.github.com>
* liquidator: Don't attempt to close in-use token positions
This could happen if the user manually used serum on the liquidator
account.
* Client: Move jup's CU ix outside of flash loan
That makes a flash loan based jup swap usable with delegates.