- since there's no borrowing or asset weight, don't put staleness or
confidence restrictions on the oracle
- disable the tcs fees, they are not enabled anywhere yet
(cherry picked from commit 5f8f717430)
- limit deposits (via deposit, flash loan, tcs)
- limit potential deposits via openbook settle
by restricting placable orders via potential_serum_tokens
- introduce Serum3PlaceOrderV2 for this purpose
- account for new limits in liquidator, max_swap
(cherry picked from commit 42e31ae859)
- track min bid, max ask
- track maximal token outflow from oo
- add serum3_place_order_v2 with mutable receiver bank
- placing openbook orders is restricted to a certain distance from the
oracle
(cherry picked from commit 81501837a9)
- 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
- Only ever give an incentive when pnl is at least 1% of the position
value. That way large positions (like $100k in SOL-PERP) don't get
settled on 0.1% price fluctuations. The price now needs to change by
1% for settlement to occur.
- For low health incentives, cap the percentual incentive at 2x the flat
settle fee. We want to give the settler incentive to use these first,
but the settler doesn't take on risk, so the reward doesn't need to be
large.
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.
Which applies to the in token amount of swaps only.
Charging a deposit fee on flash loans was a bad idea:
- It incentivizes flash loan users to make the deposit a separate
instruction, defeating the purpose.
- For swaps, it makes traders pay a loan origination fee in in-token and
a deposit fee in out-token, leading to more complex bookkeeping and ui
display.
Instead, charge a fee on the in-token for all flash loans explicitly
marked as swaps only.
* tests: Upgrade tx log capturing
Instead of overriding the system logger to intercept the logs, we can
now ask solana to return the logs of a tx execution directly.
This speeds up tests a lot because we don't need to hold a global lock
on tx execution anymore!
* tests: Improve token, serum, perp cu test
* benchmark: add a few more operations
- 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>