Christian Kamm
3eedba67b1
Fix serum3_cancel_order
...
accidental removal of mut in 20fc9d557a
2022-06-27 11:38:55 +02:00
microwavedcola1
9fc8a5a56a
multiple banks ( #82 )
...
* multiple banks
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fixes from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* test for closing multiple banks for a registered token
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* fix deregister_token
* update idl
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fixes from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: Christian Kamm <mail@ckamm.de>
2022-06-27 11:27:17 +02:00
Christian Kamm
20fc9d557a
Satisfy anchor's lint by adding CHECK: comments
2022-06-24 12:36:35 +02:00
microwavedcola1
7a28a3bfb0
improvements to flash loan
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-06-23 16:41:24 +02:00
microwavedcola1
54c0306ae7
Fix flash loan
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-06-23 13:10:15 +02:00
Christian Kamm
0bd5b8fdf3
Rename margin_trade.rs -> flash_loan.rs
2022-06-23 10:23:52 +02:00
Christian Kamm
c8ebc1f611
Rename MarginTrade -> FlashLoan
2022-06-23 10:23:52 +02:00
Christian Kamm
d8a6a29e70
Renames: propagate to idl and ts
2022-06-23 10:04:54 +02:00
Christian Kamm
648b462352
Rename MangoAccount components
2022-06-23 10:04:54 +02:00
Christian Kamm
1143b38d3c
Health review comments
2022-06-22 16:52:11 +02:00
Christian Kamm
ba79995c01
Health: order-independent serum3 health
...
Now all the reserved funds in serum3 open orders accounts are added into
each possible token at the same time. Then the worse case from applying
the reserved funds to either quote or base is selected.
This is reasonably cheap to compute, leads to unchanged results when no
markets share (non USDC) base or quote tokens, but can underestimate
the "true" health value when markets do.
An additional advantage is that HealthCache is now indepenent of serum
open orders and can compute the init and maint health when the user has
active OpenOrders accounts.
2022-06-22 16:52:11 +02:00
Christian Kamm
d4cec8dfa4
Bank: Fix bug when when depositing to exactly 0
2022-06-22 16:51:16 +02:00
Christian Kamm
aeb94642ce
fix clippy warnings
2022-06-21 13:10:37 +02:00
Christian Kamm
5dd186ac13
Health: fix unittests
2022-06-21 13:02:47 +02:00
Christian Kamm
6f41efad0f
Health: helper for finding token info by index
2022-06-21 13:02:47 +02:00
microwavedcola1
b0fd4c2a61
Fix warnings
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-06-21 13:02:30 +02:00
microwavedcola1
86c8817e0b
serum3 loan origination fees ( #69 )
...
* serum3 loan origination fees
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fix tests
Fix 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>
2022-06-21 11:45:38 +02:00
Christian Kamm
cb0010b2b5
Health: never allow positive contributions from perps
2022-06-21 11:07:13 +02:00
Christian Kamm
be98f6524a
Orderbook: Avoid usize fields in data
2022-06-21 11:05:46 +02:00
Christian Kamm
6ff4ff5910
Add a ComputeHealth instruction
...
This way the client can ask for simulation to determine an account's
health.
2022-06-21 11:05:32 +02:00
Christian Kamm
712bece0b2
Remove stray log message from health computation
2022-06-20 18:21:26 +02:00
microwavedcola1
470292024e
Filter out bad switchboard prices ( #70 )
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-06-20 18:03:16 +02:00
microwavedcola1
5b78293c5c
minor refactoring
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-06-19 18:32:04 +02:00
microwavedcola1
9462be7f0b
Fix margin trade interface
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-06-18 17:14:20 +02:00
microwavedcola1
4864562ff3
margin trade, support multi cpi ( #68 )
...
* margin trade, support multi cpi
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fix from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* todo
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-06-18 16:43:45 +02:00
microwavedcola1
0f34851c64
switchboard support ( #67 )
...
* switchboard support
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fix from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-06-18 16:38:46 +02:00
microwavedcola1
95c06c2bfc
Mc/liquidator ( #64 )
...
* Copy over and integrate liquidatable-accounts-feed (doesn't compile)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Liquidator
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Adapt to refactoring
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* remove dead code
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Use copies of AccountSharedData
* Implement AccountReader for AccountSharedData
* use LoadZeroCopy in liquidator
* Fix from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: Christian Kamm <mail@ckamm.de>
2022-06-18 16:31:28 +02:00
microwavedcola1
de481a4008
todo
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-06-10 08:42:26 +02:00
microwavedcola1
740ff0c09e
Close various things ( #65 )
...
* close bank, vaults, mint infos, stub oracles, serum OO (doesnt work, throws https://github.com/project-serum/serum-dex/blob/master/dex/src/error.rs\#L88 ), close serum market
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* serum oo closing example in ts
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fix from code review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-06-09 18:27:31 +02:00
Christian Kamm
40023fcef1
Health: Make FixedOrderAccountRetriever more flexible
2022-06-08 14:38:49 +02:00
Christian Kamm
b3568b7f3e
Make health/oracle functions usable from clients ( #63 )
...
* Make health/oracle functions usable from clients
By creating a shared trait that is implementable for AccountInfo and
AccountSharedData.
* Health: fixup tests
2022-06-08 13:43:12 +02:00
Christian Kamm
a14f37362d
margin_trade: forbid direct self-calls
2022-06-07 13:25:30 +02:00
Christian Kamm
685fd3122f
Perps: Limit overall health contribution from perp markets
...
We don't want to allow borrowing against unsettled pnl in perp markets.
This makes it safer to create perp markets for untrustworthy assets.
2022-06-06 12:58:08 +02:00
microwavedcola1
1b4063cd0d
remove misleading example
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-06-03 08:29:35 +02:00
microwavedcola1
47bccfeec8
Fix oracle price decimal usage
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-06-02 19:16:30 +02:00
microwavedcola1
a20d04b6ff
Fix oracle price read by using decimals from pyth ( #62 )
...
* Fix oracle price read by using decimals from pyth
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* fix
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-06-02 10:36:04 +02:00
microwavedcola1
383489ae34
Merge branch 'mc/liquidator-bot' into dev
2022-05-30 17:08:16 +02:00
Christian Kamm
48cb1f0b88
Compute health in perp_place_order
2022-05-29 20:50:21 +02:00
Christian Kamm
65a5139db7
Tests: Send perp markets as health accounts
2022-05-29 20:50:21 +02:00
Christian Kamm
4984bba71e
Health: Add perp health calculation
2022-05-29 20:50:21 +02:00
microwavedcola1
97e434fbb6
keeper: find/create account by account name
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-29 12:25:12 +02:00
microwavedcola1
34a8f0919f
serum taker bot ( #57 )
...
* taker bot
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* inline code
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* cleanup
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* add mints
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* add todo
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* fix todos
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* remove stray log
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* cleanup
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* remove dead code
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* use same rust as what solana uses, use same solana version as cargo toml
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Fix from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* fix from reviews
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* linter
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-28 07:05:34 +02:00
microwavedcola1
cc2d46bf4a
add support for mint decimals on bank, for easy look up
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-27 14:52:03 +02:00
Christian Kamm
b1fcb4a7e6
CreateGroup: Allow multiple groups per admin
2022-05-27 11:36:50 +02:00
Christian Kamm
1844898280
margin_trade: Allow forwarding mint accounts
2022-05-26 21:12:02 +02:00
Christian Kamm
536ec8a84a
Make health iteration code work with pyth oracles
...
They have a different account owner, that error must be skipped.
2022-05-26 20:38:03 +02:00
Christian Kamm
946e6b1c96
margin_trade: doc improvements
2022-05-25 08:02:55 +02:00
microwavedcola1
ed4e63a82f
Change tuple to a struct, seemingly anchor ts doesnt support tuples
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-24 22:03:35 +02:00
Christian Kamm
f844720130
Review fixes
2022-05-24 13:00:32 +02:00
Christian Kamm
53a5e208fd
margin_trade: loan origination fees, limited withdraws
2022-05-23 08:55:30 +02:00