Commit Graph

2213 Commits

Author SHA1 Message Date
Christian Kamm b123a3c5ae jupiter: clearer slippage_bps argument name 2023-10-19 09:24:32 +02:00
Christian Kamm 381ef7401d
Group: Limit fast-listing tokens per week (#756)
To avoid potential abuse of fast listing while even when the dao is
unresponsive.
2023-10-17 13:14:49 +02:00
Christian Kamm 3b28856692
Bank: store interest curve scale and target util separately (#755)
Allows for better configurability independent of the previous MAX_RATE
concept
2023-10-17 13:14:07 +02:00
Christian Kamm 8110dd1566
FlashLoan: Replace deposit fee by "swap fee" (#754)
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.
2023-10-13 09:02:23 +02:00
Christian Kamm 5809281f24
gov-ix: create an idl-resize instruction (#752) 2023-10-11 15:22:06 +02:00
Christian Kamm c354f55423
v0.20.0 minor fixes from self-audit (#751)
* tcs::is_startable only true for premium auctions
* individual tcs premium auction / linear auction ix gates
* drop unnecessary I80F48::from(...)
* minor: adjust confusing wording in v2 mango account format doc
* idl update
* ts: prettier
2023-10-11 15:19:53 +02:00
Christian Kamm dfde7ec43f
serum health: use lower-precision division (#750)
This saves around 1/3rd of the compute for active serum markets.
2023-10-11 15:19:24 +02:00
Christian Kamm 20eb02af01
program-test improvements: performance, cu test output, warnings (#749)
* 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
2023-10-11 15:18:23 +02:00
Christian Kamm a4745dae27
liquidator: improve jupiter quote cache (#748) 2023-10-09 19:56:45 +02:00
Nicholas Clarke 81f4929648
Add getCumulativeFunding to client. (#602)
* Add getCumulativeFunding to client.
2023-10-09 01:27:44 -07:00
Christian Kamm 817bf9bbc6
Tcs: linear and premium auctions (#717) 2023-10-07 21:27:19 +02:00
Christian Kamm 81fd7951dd
FlashLoanSwapBegin: small tx-size FlashLoanBegin for swaps (#744) 2023-10-06 16:18:59 +02:00
Christian Kamm da07dae78a Minor changelog additions 2023-10-06 13:50:39 +02:00
Christian Kamm ee9ce8746d ci: verifiable build job needs anchor >v0.28.0
due to workspace inheritance fixes
2023-10-06 13:46:58 +02:00
Christian Kamm 256edd230e ci: update verifiable build job 2023-10-06 12:06:53 +02:00
Steve 6020c2aa0c
fix build-sbf by using "+solana" toolchain (#743) 2023-10-06 12:01:17 +02:00
Christian Kamm fd997e2e2c Cargo: Remove explicit workspace-inheritance feature use
solana-release cargo version was updated
2023-10-05 11:05:12 +02:00
Christian Kamm 32e08af598 Idl update 2023-10-05 11:04:20 +02:00
Steve f625284593
Update to solana 1.16.14 and anchor 0.28.0 (#718)
- 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>
2023-10-05 10:56:45 +02:00
Christian Kamm 2ad6ec4166
Add script to fetch an account's transactions (#740) 2023-10-04 09:19:30 +02:00
Christian Kamm 1afcff5dc2
Changelog and version bump for v0.20.0 (#739) 2023-10-04 09:18:57 +02:00
microwavedcola1 2df4df048c
program: be more relaxed with max rate (#734)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-10-03 21:13:50 +02:00
Christian Kamm ea7fae4687 Changelog, version bump for program v0.19.1 2023-10-02 19:54:09 +02:00
Christian Kamm 1d241de75a
FlashLoan: Allow jup v6 for delegates (#737) 2023-10-02 19:40:43 +02:00
microwavedcola1 39ed3a3fb5
program: if position is not negative then continue ahead with withdrawal, also deactivate if position is 0 (#736)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-10-02 09:11:44 +02:00
Christian Kamm 1db3d21529
Make getBorrowRateWithoutUpkeepRate() work in more cases (#731)
In particular when util0 == 0
2023-09-27 12:57:06 +02:00
Christian Kamm eca4550fa2
Client: fix issue when no serum program is registered (#732)
The serum StreamMap exiting aborts the whole streaming job.
2023-09-27 12:56:52 +02:00
Christian Kamm ac38ccc687
Drop HealthCache from idl, disable ComputeAccountData ix (#723)
It's used for tests, we don't want people depending on it.
2023-09-19 10:01:44 +02:00
Christian Kamm 2c4009eab1
Token deposit: Require valid oracle for new token positions (#722)
This avoids making an account accidentally or intentionally unusable
(except for deposits/withdraws) by depositing a token with a stale
oracle.
2023-09-19 09:08:32 +02:00
Christian Kamm 9b224eae1b
Jupiter: Ensure source account is initialized (#721) 2023-09-18 09:21:46 +02:00
Christian Kamm 40ad0b7b66
Rust client: Use alts for every transaction (#720) 2023-09-18 09:21:30 +02:00
Christian Kamm 2adc0339dc
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.
2023-09-13 09:35:10 +02:00
Christian Kamm 7b8a92dcea
Idl compatibility check: Also cover ix args and field renames (#709) 2023-09-08 21:13:30 +02:00
Christian Kamm 0aabd28cdc Merge remote-tracking branch 'origin/deploy' into dev 2023-09-07 13:14:03 +02:00
Christian Kamm 97d3ec01c1 scripts: fix mainnet-no-margin-group post-merge 2023-09-07 13:07:55 +02:00
Christian Kamm d60bea7436 Merge remote-tracking branch 'origin/main' into deploy 2023-09-07 12:59:50 +02:00
microwavedcola1 56eb48904a Merge tag 'program-v0.19.0' 2023-09-07 10:46:37 +02:00
tjs 1861d127bc only remove active filter from Ids on perp markets 2023-09-06 14:11:25 -04:00
tjs 335c98a09a v0.19.14 2023-09-06 13:53:07 -04:00
tjs f2eb37b598 ids should return all subitems for a group regardless of active state 2023-09-06 13:51:40 -04:00
tjs 7b4d46e135 v0.19.13 2023-09-05 10:59:55 -04:00
microwavedcola1 b42a35cdb9 sb logs
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-09-05 15:56:04 +02:00
tlrsssss 025f594fb2
Merge pull request #705 from blockworks-foundation/ts/ids-fixes
Ts/ids fixes
2023-09-05 09:41:08 -04:00
tjs c7c362292c Support reloading reloadSerum3ExternalMarkets from Ids class
remove console logs
2023-09-05 09:35:17 -04:00
tjs 3715a9a7f2 Update Ids class so the array filters in the getters work
Also add placeholder values in ids.json so types work; Deprecate ids.json
2023-09-04 21:04:42 -04:00
Adrian Brzeziński 2110cf7f55 v0.19.12 2023-09-04 18:20:02 +02:00
Adrian Brzeziński 79ea2bc7df
preprended instruction change (#703)
* fix

* fix
2023-09-04 18:06:37 +02:00
microwavedcola1 0a2bf3abd5
ts: example script no margin group (#697)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-09-04 17:11:04 +02:00
Harrison Green bffb77064a
Add audit report for 0.19.0 (#704) 2023-09-04 09:33:14 +02:00
Christian Kamm ba6bd96784
Allow account shrinking and migration (#692)
- The AccountExpand instruction can now shrink accounts by reducing
  the number of token/perp/serum/tcs/perp oo slots.
- A new AccountSizeMigration instruction can permissionlessly shrink
  accounts that are too large and migrate them to the v3 layout.
2023-09-04 09:30:57 +02:00