microwavedcola1
be73106ce1
perp funding ( #51 )
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-16 15:34:56 +02:00
microwavedcola1
f5c505f847
fix test
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-16 15:26:38 +02:00
microwavedcola1
db82fcbbcc
perp cancel order instructions
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-16 10:49:11 +02:00
microwavedcola1
67c1d5d451
format
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-16 10:49:11 +02:00
microwavedcola1
967ce34002
move comment
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-16 10:49:11 +02:00
microwavedcola1
a1034c08b7
refactor
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-16 10:49:11 +02:00
microwavedcola1
ee6fe93b26
Fix tests
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-16 10:49:11 +02:00
microwavedcola1
fbd3fd410c
loan_origination_fees
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-16 10:49:11 +02:00
microwavedcola1
f1791be039
add todo
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-11 20:25:09 +02:00
microwavedcola1
b903073ce6
add comment so that it doesnt get lost
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-11 20:09:12 +02:00
microwavedcola1
81f0f38188
ts client support for perps
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-11 20:06:07 +02:00
microwavedcola1
15961ec81c
fees for borrows
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-09 11:14:50 +02:00
microwavedcola1
5266668bc2
keeper: consume events
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-06 14:19:49 +02:00
microwavedcola1
7abfc417ac
reorg
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-06 10:13:33 +02:00
microwavedcola1
9f5a2fd32e
add a test for consume events, add debug impl for mango account for easy debugging in tests
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-05 10:25:32 +02:00
microwavedcola1
d38ca0de4c
refactor
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-03 18:17:58 +02:00
microwavedcola1
ec7c61327c
list of ix to implement
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-03 18:07:31 +02:00
microwavedcola1
f09b3cc965
First attempt at finishing perp health
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-03 15:15:34 +02:00
microwavedcola1
3c469d7194
todo
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-12 20:43:45 +02:00
microwavedcola1
1206109260
todo
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-12 20:39:48 +02:00
microwavedcola1
7ead988ba4
small ticker size
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-12 20:38:35 +02:00
microwavedcola1
6db679d35e
support longer account names
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-12 20:23:45 +02:00
microwavedcola1
e3a60a637a
format
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-12 17:35:39 +02:00
microwavedcola1
bf2fa47a1c
fix viz
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-12 17:33:42 +02:00
microwavedcola1
62ee1bc5c0
prepare for multiple ts packages
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-12 17:28:47 +02:00
microwavedcola1
addb12736f
fixes from cr
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-12 16:53:45 +02:00
microwavedcola1
03ae43017c
account, market and bank names
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-12 16:19:58 +02:00
microwavedcola1
1b1dd1a541
poc keeper
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-09 21:18:07 +02:00
microwavedcola1
5ab48fb6e0
rust: Fix args in tests to more realistic values, ts: expose args, update idl
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-09 17:09:06 +02:00
microwavedcola1
57d9de86c8
comment
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-09 16:55:00 +02:00
microwavedcola1
257ccf76ad
multi legged interest rates + keeper ix
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-09 16:53:30 +02:00
microwavedcola1
2587cd914c
checked math
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-07 21:04:02 +02:00
Christian Kamm
68ef58248c
Perp health: Some code and comments
2022-04-05 09:09:12 +02:00
Christian Kamm
256397593d
Health: Support PerpMarkets in remainingAccounts
2022-04-04 11:25:05 +02:00
Christian Kamm
6f3673bcdf
Perp: Track taker and maker orders in the account; test
2022-04-04 10:39:13 +02:00
microwavedcola1
a44120c470
add group to mintinfo, for better gpa support
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-03 19:07:43 +02:00
microwavedcola1
e6727cbfae
fix clippy warning
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-03 06:21:34 +02:00
microwavedcola1
7803cae654
fix clippy warning
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-03 06:16:41 +02:00
microwavedcola1
dfd1dc5216
fix clippy warning
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-03 06:11:41 +02:00
microwavedcola1
204ab6963d
checked math
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-03 06:09:01 +02:00
microwavedcola1
d6fe317ac9
checked math
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-03 06:06:03 +02:00
microwavedcola1
9debc63a6a
update idl, add tokenmint to stuboracle for gpa ( #34 )
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-03 05:43:32 +02:00
microwavedcola1
884d638e36
Merge pull request #33 from blockworks-foundation/mc/stub-oracle-ext
...
Mc/stub oracle ext
2022-04-03 05:36:24 +02:00
microwavedcola1
ace5df2a85
revert unintended changes
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-03 05:21:16 +02:00
microwavedcola1
d7a8c5c91d
add todo
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-02 21:04:00 +02:00
microwavedcola1
77ddbd4eeb
fix test
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-02 21:02:48 +02:00
microwavedcola1
c7d3103e6b
--wip-- [skip ci]
2022-04-02 20:42:17 +02:00
microwavedcola1
4d1a9e4556
refactor
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-02 20:15:56 +02:00
Christian Kamm
9f0a7f67ae
Orderbook: Port over unittests
2022-04-02 13:51:26 +02:00
Christian Kamm
cbc3cc7bbd
MangoAccount: Rename how tokens/serum3/perps data is stored
...
token_account_map -> tokens
serum3_account_map -> serum3
perp -> perps
2022-04-02 13:51:26 +02:00
microwavedcola1
1d15db37c5
clippy
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-02 10:02:12 +02:00
microwavedcola1
9cd08a1355
improve checks
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-02 09:52:40 +02:00
microwavedcola1
87bcc538cd
compiles
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-02 09:05:31 +02:00
microwavedcola1
0bdbd19ddd
Make Serum3 ix anchor friendly
...
Make work with changes in mango account, add no deploy part to release script
Clippy
Fixes from cr
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-02 08:59:07 +02:00
Christian Kamm
d26caf1c87
Perp: Rename fields to be explicit about being in lots
2022-04-01 15:47:12 +02:00
Christian Kamm
f2607889e3
Perps: Place accounts and open orders in MangoAccount::perp
...
Also make test_perp succeed by fixing the FillEvent size.
2022-04-01 12:45:01 +02:00
Christian Kamm
f48a7f5ed9
Clippy: Address issues
2022-04-01 12:21:19 +02:00
Christian Kamm
833a909aa4
Orderbook: unify new_bid/new_ask
2022-04-01 12:21:19 +02:00
Christian Kamm
6505abcd54
Side: Make inversion function be associated
2022-04-01 12:21:19 +02:00
Christian Kamm
10ab9804d1
Rename perp instructions to have perp_ prefix
2022-04-01 08:01:56 +02:00
Christian Kamm
8038f9e257
Add CloseAccount instruction to make testing easier
2022-03-31 17:22:56 +02:00
microwavedcola1
9e2d5de914
add gt 0 checks
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-31 16:02:18 +02:00
microwavedcola1
78df0082c4
Some progress on initial ts example
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-31 15:58:18 +02:00
Christian Kamm
56e3bd8740
Rearrange accounts to avoid padding bytes
2022-03-31 14:37:05 +02:00
Christian Kamm
9cf4f1a748
Rearrange MangoAccount to avoid padding bytes
2022-03-31 14:01:08 +02:00
Christian Kamm
85b0b420d4
Disable address lookup tables
...
Because the ALT program isn't available on devnet yet, so prohibits
testing there.
2022-03-31 09:25:47 +02:00
microwavedcola1
795fa532da
update program, and deploy to devnet
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-30 17:16:32 +02:00
microwavedcola1
faba5c47bf
remove unwanted code
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-30 17:03:56 +02:00
microwavedcola1
46cb811c99
Merge branch 'mc/consume_events'
2022-03-30 13:22:31 +02:00
Christian Kamm
afbfd3b7f9
serum3_register_market: better validation
...
Previously we just trusted the base and quote token index to be correct,
now the appropriate banks are validated.
2022-03-30 12:24:49 +02:00
Christian Kamm
babbff6bec
Add is_bankrupt check to most instructions
2022-03-30 12:24:49 +02:00
microwavedcola1
00ac0dfce9
comments and test
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-30 11:58:45 +02:00
Christian Kamm
14d4147efa
liq test: Cover more cases
2022-03-30 09:37:31 +02:00
Christian Kamm
d6ebffd346
liq: functionality fixes and test
2022-03-29 17:47:19 +02:00
Christian Kamm
69426d6d96
liq: Introduce HealthCache to get init/maint health after liquidation
...
The concept only works if all serum3 open orders have been fully
cancelled and settled.
2022-03-29 09:18:13 +02:00
microwavedcola1
64e3ba0d7c
--wip-- [skip ci]
2022-03-28 21:13:16 +02:00
Christian Kamm
a6ff388e20
health: avoid divisions, reducing compute needs
2022-03-27 14:47:42 +02:00
Christian Kamm
d9ac178481
liq token: Adjust fee handling
...
Use the sum of the fees configured for the tokens.
2022-03-27 14:47:42 +02:00
Christian Kamm
82819720e0
liq token: progress
...
Change bank.deposit()/withdraw() to work with I80F48 values so we don't
need to round during liquidation.
2022-03-27 14:46:51 +02:00
Christian Kamm
c391c29347
liq token: Instruction outline
2022-03-27 14:46:51 +02:00
microwavedcola1
b139f6beab
ask example test
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-26 17:27:50 +01:00
microwavedcola1
b851dd13ad
add new ask
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-26 17:06:55 +01:00
microwavedcola1
c83be301e4
extend
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-26 06:41:39 +01:00
microwavedcola1
1e5a6f90bc
extend
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-26 06:37:32 +01:00
microwavedcola1
223179b278
basic test to measure cu
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-26 06:16:52 +01:00
microwavedcola1
c7bf53659c
fix warning
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-25 20:44:06 +01:00
microwavedcola1
00da3460ab
cleanuo
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-25 20:35:19 +01:00
microwavedcola1
860b7aa1d4
cleanup
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-25 20:03:44 +01:00
microwavedcola1
27eaa5f8f5
ported fees
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-25 09:46:38 +01:00
microwavedcola1
3036ffa45c
clippy
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-24 19:27:00 +01:00
microwavedcola1
671c06da89
events
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-24 19:20:56 +01:00
microwavedcola1
0e953f5e80
more
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-24 19:15:46 +01:00
microwavedcola1
f895467bf5
weights
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-24 17:29:30 +01:00
microwavedcola1
21073d6b71
cleanup
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-24 16:12:55 +01:00
microwavedcola1
de0ce5ad8f
cleanup
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-24 15:29:42 +01:00
microwavedcola1
baf4b255c8
remove more dead code
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-24 14:48:11 +01:00
microwavedcola1
1eaf58812f
remove more dead code
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-24 14:46:09 +01:00
microwavedcola1
ba4300accc
simplify
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-24 14:40:08 +01:00
microwavedcola1
4a3d61a0b0
cleanup unused
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-24 14:08:10 +01:00
microwavedcola1
e6ee72b8b0
remove unused
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-24 13:45:46 +01:00
microwavedcola1
5919a5a1df
Merge branch 'main' into mc/clippy
2022-03-23 09:53:50 +01:00
microwavedcola1
f135ca4d9b
fix clippy warnings
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-23 09:33:51 +01:00
microwavedcola1
fde4bce86f
Merge pull request #29 from blockworks-foundation/mc/event_queue
...
add event queue
2022-03-23 08:54:11 +01:00
microwavedcola1
b0d6a14d00
fix clippy warnings
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-23 08:34:23 +01:00
microwavedcola1
f7fb9b7e35
add event queue
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-23 07:53:45 +01:00
Christian Kamm
696806ee77
Add liq_token_with_token file outline
2022-03-22 19:25:33 +01:00
Christian Kamm
bfcb672116
Health: allow account order to be fixed, or to scan for accounts
...
The latter is important when we want to compute health for two different
accounts. Then the remainingAccounts would hold the union of the
necessary accounts, and each health check would need to look for the
accounts that it needs.
This patch al so reduces the compute needs for fixed-layout health
checks significantly (Deposit for an account with 8 tokens and 7 markets
takes 65k instead of 70k cu)
2022-03-22 14:13:07 +01:00
microwavedcola1
3443ab0d70
Merge pull request #27 from blockworks-foundation/mc/ci
...
checked math
2022-03-22 11:47:10 +01:00
microwavedcola1
237d776e2b
fix test cu requirement
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-22 11:33:06 +01:00
microwavedcola1
974724cfe1
fix some clippy warnings
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-22 11:19:12 +01:00
microwavedcola1
ed9368cb3d
checked math
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-22 10:39:51 +01:00
Christian Kamm
d1a7cd109d
Serum: remove some duplicated functions
2022-03-22 09:58:10 +01:00
Christian Kamm
43eba0a529
Serum: Test for force cancel orders
2022-03-22 09:25:13 +01:00
microwavedcola1
b8d84112d7
fix
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-22 07:09:49 +01:00
microwavedcola1
ec5e959804
further work on perps
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-22 07:06:33 +01:00
Christian Kamm
34d14ef267
Serum: serum3_liq_force_cancel_orders instruction
...
Still needs a test.
2022-03-21 17:39:52 +01:00
Christian Kamm
27f882a333
Tests: More flexible test context construction
2022-03-21 10:45:55 +01:00
Christian Kamm
a6a31f226c
Tests: Unify group + tokens setup
2022-03-21 07:49:51 +01:00
Christian Kamm
75ac224b6e
Tests: Bank deposit/withdraw/active/dust tests
2022-03-21 07:01:25 +01:00
microwavedcola1
e7b32c6149
clippy
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-20 10:16:02 +01:00
microwavedcola1
fbedea9424
reorg, placeholder for place perp order
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-20 10:11:36 +01:00
Christian Kamm
1ad0826573
Clippy warnings
2022-03-19 12:53:24 +01:00
Christian Kamm
6f72cd27e8
Serum: Cancel order instruction
2022-03-19 12:19:16 +01:00
Christian Kamm
63050c3661
Serum: No health check needed after settle_funds
...
It just moves free funds from open_orders to the user account.
2022-03-19 09:05:42 +01:00
Christian Kamm
9fb16f3906
Add comments
2022-03-19 08:54:33 +01:00
microwavedcola1
9475d9545c
add comment
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-19 08:52:38 +01:00
microwavedcola1
479bd60ecf
extend perp market with indices, which make it easier to lookup the perp market and base and quote tokens
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-19 07:28:37 +01:00
Christian Kamm
70316fb927
Serum: Settle funds instruction
...
Also move serum3 cpi helpers to a separate file, to allow reuse of calls
like settle_funds from multiple mango instructions.
2022-03-18 19:27:23 +01:00
microwavedcola1
4987e072cd
fix test
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-18 17:49:13 +01:00
microwavedcola1
ab61c6b244
remove unused
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-18 16:30:18 +01:00
microwavedcola1
ba9bc82df2
Merge branch 'mc/perps'
2022-03-18 15:16:13 +01:00
Christian Kamm
9d05db68f9
Serum: Prefix instructions with serum3_ and related renames
2022-03-18 13:42:20 +01:00
microwavedcola1
b5734e4f97
fix trailing space
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-18 13:00:52 +01:00
Christian Kamm
a40eb94833
Serum: settle_funds after place_order
...
Avoid using anchor_spl::dex helpers, because calling serum through these
functions costs significantly more compute, likely because AccountInfos
need to be cloned twice.
Examples:
- new_order_v3: direct 26.8k CU, helpers 37.5k CU
- settle funds: direct 24.9k CU, helpers 31.8k CU
2022-03-18 12:17:09 +01:00
microwavedcola1
4f7e3a5738
create perp market wip
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-18 10:14:30 +01:00
Christian Kamm
57c06bc2da
Health: add a missing group check for remainingAccount Banks
2022-03-18 07:54:20 +01:00
Christian Kamm
7b3cd9a81f
Health: Use split_at_mut to get two element &muts
...
Previously we re-indexed token_infos every time, now we can just have
mutable references to the base and quote elements at the same time.
2022-03-18 07:44:44 +01:00
Christian Kamm
430d5c85fa
Health: compute optimizations
...
Basic caching of multiplications and divisions.
2022-03-17 21:53:41 +01:00
Christian Kamm
af2f4a0923
Health compute tests
2022-03-17 14:17:28 +01:00
Christian Kamm
9351d0652d
Serum: health based on worst case order outcome
2022-03-17 12:05:07 +01:00
Christian Kamm
0593aa81f7
Serum: more health computation
...
Now the open orders are actually read
2022-03-16 18:33:11 +01:00
Christian Kamm
6aa4724b45
Serum: Health computation first steps
2022-03-16 16:45:54 +01:00
Christian Kamm
f5d2964f1d
Serum: Store base/quote token index in MangoAccount
...
To avoid having to pass SerumMarket when health needs to be computed.
2022-03-16 13:48:43 +01:00
Christian Kamm
1953d12f0f
Health: expect serum open orders accounts
2022-03-16 13:42:29 +01:00
microwavedcola1
7a68aa71e5
simplify
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-15 16:38:24 +01:00
microwavedcola1
75721d8f06
fix bug where position mutation was not persisted in margin trade
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-15 16:25:44 +01:00
Christian Kamm
3bb94777f3
MangoAccount field renames
...
indexed_positions -> token_account_map
serum_open_orders_map -> serum_account_map
in the future we should add the perp_account_map
2022-03-15 15:08:53 +01:00
Christian Kamm
54641692fa
PlaceSerumOrders: indexed positions are guaranteed to exist
2022-03-15 14:59:15 +01:00
Christian Kamm
baa980c659
PlaceSerumOrder: Track vault balances before and after
2022-03-15 14:44:47 +01:00
Christian Kamm
28a26e66da
PlaceSerumOrder: More account validation
2022-03-14 21:53:30 +01:00
Christian Kamm
6b342ffeb9
PlaceSerumOrder basic test
2022-03-14 17:21:16 +01:00
Christian Kamm
a51fdd42f7
Serialization of new serum order instruction data
2022-03-14 15:28:06 +01:00
Christian Kamm
0b2f691f5b
RegisterSerumMarket: pass market_index explicitly
2022-03-14 13:47:34 +01:00
Christian Kamm
07c9b9de7e
Further harmonizing of PDA seeds
2022-03-14 13:39:54 +01:00
Christian Kamm
71cd1755ec
Stop storing token info in Group
...
It is just not needed, the individual Bank accounts have all the
necessary info.
2022-03-14 13:35:38 +01:00
Christian Kamm
1cd0f8d6be
RegisterToken: Pass token_index explicitly
...
This guarantees stability when a gov proposal adds a new token and a new
market in one transaction. This way the RegisterMarket instruction knows
exactly what index the new token will have.
Previously, the new token index was generated automatically, meaning
you couldn't be sure what index a new token would get in advance.
2022-03-14 13:19:50 +01:00
Christian Kamm
2502f0ac1b
checked_math: use a panic
...
This reduces compute use further and still produces good error messages.
2022-03-14 12:45:32 +01:00
Christian Kamm
38d239462f
checked_math: construct errors lazily
...
bad benchmark of compute needs for 100 add-assigns of I80F48:
3465 a + b
3465 a.checked_add(b).unwrap()
3465 cm with unwrap() <- maybe future if we fix panics
4366 cm with ok_or_else() <- now
56494 cm with ok_or() <- old
2022-03-13 20:55:28 +01:00
Christian Kamm
449fe4dc6d
Add checked_math library for convenient overflow checking
...
Instead of
x.checked_add(y).ok_or(error!(MangoError::MathError))?
we can write
cm!(x + y)
2022-03-13 15:45:50 +01:00
Christian Kamm
fce2316b03
Simplify health fn call, use in place serum order
2022-03-12 14:13:19 +01:00
Christian Kamm
16c0a95679
PlaceSerumOrder instruction stub
2022-03-12 14:13:19 +01:00
microwavedcola1
e742926ce2
change seeds literals to camelcase, camel case was how mango did in v3, also matches struct names
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-11 20:10:15 +01:00
microwavedcola1
241dd6080a
Merge pull request #24 from blockworks-foundation/mc/re-org
...
move unused to a unused mod, preparation for working on perp markets
2022-03-11 17:51:32 +01:00
Christian Kamm
693ac17996
Serum: Store open orders pubkey in account
2022-03-11 17:50:04 +01:00
microwavedcola1
c2f91489af
move unused to a unused mod
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-11 17:11:46 +01:00
Christian Kamm
c86a6f8d29
Serum: Create OOs is functional and called from a test
2022-03-11 15:28:27 +01:00
Christian Kamm
9be5ad6488
Test: Add CreateSerumOpenOrders test stub
2022-03-11 14:26:42 +01:00
Christian Kamm
da31b6317f
Drop unnecessary rent accounts
2022-03-11 13:02:20 +01:00
Christian Kamm
dbd8409ce8
Test: Add RegisterSerumMarket test stub
2022-03-11 12:59:42 +01:00
Christian Kamm
e3960dc5e2
Outlines of RegisterSerumMarket / CreateSerumOpenOrders
2022-03-11 12:40:16 +01:00
microwavedcola1
4dc0262546
reformat
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-08 12:45:59 +01:00
microwavedcola1
b3f2ca51fa
fixes from cr
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-08 11:11:28 +01:00
Christian Kamm
f6d2df1ad4
Rename to Bank and Group
2022-03-07 16:16:34 +01:00
Christian Kamm
2d65078c23
Fix margin_trade instruction call
2022-03-07 15:43:29 +01:00
Christian Kamm
cea0f9441a
Build fixes
2022-03-07 15:29:44 +01:00
microwavedcola1
8921ac0441
todo
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-07 15:24:50 +01:00
microwavedcola1
2882476724
clipppy
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-07 15:24:50 +01:00
microwavedcola1
dcacadbcbf
margin trade test
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-07 15:24:50 +01:00
Christian Kamm
425e22a086
Deposit: Compute account health
...
Even if it's currently unused, it will become useful in the future.
Make a function to get the list of accounts needed for health checks in
tests, which is now shared between deposit and withdraw.
2022-03-07 15:22:23 +01:00
Christian Kamm
98cf8a7cff
Position lifetime, dust etc
...
- withdraw and deposit may deactivate positions explicitly
- adjusting bank positions may collect dust for positions between
0 and 1 native tokens
- health check always assumes all active and new banks/oracles are
passed
2022-03-07 15:21:19 +01:00
Christian Kamm
51991d8546
Add global address lookup table test
2022-03-04 20:57:33 +01:00
Christian Kamm
c6031acbdb
Move to global address lookup tables
2022-03-04 20:57:33 +01:00
Christian Kamm
9692f9976f
Compile and warning fixes
2022-03-03 13:10:20 +01:00
microwavedcola1
ce5f2027a1
extract health, flesh out margin trade, todo - test
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-03 11:43:56 +01:00
microwavedcola1
6702cdbba6
mc/pyth ( #14 )
...
* pyth integration
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-02 21:11:05 +01:00
Christian Kamm
01e8458093
Tests: Read banks/oracles from address lookup table
2022-03-01 15:12:53 +01:00
Christian Kamm
fa008a8aa1
Move address map functions into separate module
2022-03-01 15:01:50 +01:00
Christian Kamm
eb38fb4f18
Make module for address_lookup_table functions
2022-03-01 13:57:46 +01:00
Christian Kamm
a7975d390d
Tests: Fix warnings
2022-03-01 13:49:59 +01:00
microwavedcola1
2a698f3135
Merge pull request #13 from blockworks-foundation/mc/oracle-in-withdraw
...
basic stub oracle integration in tests and withdraw
2022-03-01 06:38:13 +01:00
microwavedcola1
d9c7260375
code review
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-01 06:28:12 +01:00
Christian Kamm
3e6d722e01
Deposit: Don't add accounts to lookup table twice
2022-02-28 20:12:37 +01:00
Christian Kamm
5ebf425a65
Deposit: Extend the lookup table with bank and oracle
...
When the position goes from inactive to active.
2022-02-28 19:43:40 +01:00
microwavedcola1
5299e31ff8
basic stub oracle integration in tests and withdraw
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-28 17:17:01 +01:00
Christian Kamm
9a50325718
fix outdated comment
2022-02-28 15:45:56 +01:00
Christian Kamm
75092f7681
CreateAccount: Initialize an address lookup table
2022-02-28 15:43:08 +01:00
microwavedcola1
c7cd564d11
fix test, was missing oracle
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-28 14:48:59 +01:00
microwavedcola1
362b180069
add oracle to to token registration
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-28 14:44:08 +01:00
microwavedcola1
12d2a9f962
make clippy happy
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-28 12:56:26 +01:00
microwavedcola1
1c47f0d004
add ix handling for stub oracles
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-28 12:37:12 +01:00
microwavedcola1
3355ed1dcf
dont need special crate for this
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-28 11:18:55 +01:00
microwavedcola1
364f5d895b
fix use statement location
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-28 11:18:35 +01:00
microwavedcola1
e8b1563223
optimise imports
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-28 11:07:04 +01:00
microwavedcola1
3648cba0d0
use discriminator to differentiate between oracles, removes need for a magic constant, same could be done for other oracles
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-28 11:05:15 +01:00
microwavedcola1
6345d3ebd4
add todo
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-28 10:45:03 +01:00
microwavedcola1
c0c115bd03
remove unused
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-28 10:44:08 +01:00
microwavedcola1
823fbeb6b5
stub oracle ix and account state
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-28 10:36:31 +01:00
Christian Kamm
b88989bf3a
Tests: Transport error info on send_tx()
2022-02-28 09:12:24 +01:00
Christian Kamm
7aa2cd7e13
Test cleanups
2022-02-28 09:03:43 +01:00
Christian Kamm
1b404cc652
Basic health check, no oracles yet
2022-02-26 17:47:16 +01:00
Christian Kamm
174d38a199
Don't check PDA seeds on use, instead store addresses
...
This saves about 5000 CU currently, making Deposit/Withdraw go from
26000 CU to 21000 CU.
2022-02-26 12:17:20 +01:00
Christian Kamm
2ef2424ac5
Move the asset/liab weights to the Bank account
2022-02-26 12:04:42 +01:00
Christian Kamm
8f5becc0d5
Asset/liab weights and withdraw amounts
2022-02-25 18:29:54 +01:00
Christian Kamm
d1e2cc28b7
Outline of withdraw instruction
2022-02-25 15:14:15 +01:00
Christian Kamm
5f5ba723d6
Add basic test setup
2022-02-25 13:12:16 +01:00
Christian Kamm
818bd6fe48
Enable anchor seeds extraction
2022-02-23 10:55:23 +01:00
Christian Kamm
70d3603cb4
Rename group.owner -> group.admin
2022-02-23 10:19:54 +01:00
Christian Kamm
9f013fb22a
Initialize bank indexes
2022-02-23 10:15:33 +01:00
Christian Kamm
5a4b6263ac
Add deposits/borrows tracking
2022-02-23 10:09:01 +01:00
Christian Kamm
8bc0416ef6
Helper functions to simplify
2022-02-22 17:13:26 +01:00
Christian Kamm
6b5162cce0
Remove root bank
2022-02-22 16:46:55 +01:00
Christian Kamm
1b935335fb
Drop Default impls, manually set account space
...
This fixes stack issues.
I don't know why anchor uses bytemuck::from_bytes(&T::default()).len()
2022-02-22 15:55:30 +01:00
Christian Kamm
13d1ebb614
Remove bad annotation
2022-02-22 14:40:49 +01:00
Christian Kamm
fdfab14e43
Drop unneeded associated token account program
2022-02-22 14:35:10 +01:00
Christian Kamm
c9ad4f0c94
Very basic deposit instruction
2022-02-22 14:23:13 +01:00
Christian Kamm
901062d0c1
Add token bank and vault accounts
2022-02-22 13:31:18 +01:00
Christian Kamm
76a4e717c3
Add forgotten create_account.rs
2022-02-22 13:31:03 +01:00
Christian Kamm
9b16feaf44
CreateAccount instruction outline
2022-02-22 13:15:13 +01:00
Christian Kamm
6a7881b725
RegisterToken instruction outline
2022-02-22 10:19:40 +01:00
Christian Kamm
cb94c7c598
CreateGroup instruction outline
2022-02-22 10:16:13 +01:00
Christian Kamm
6160a80457
First ideas for MangoGroup and MangoAccount accounts
2022-02-22 10:15:37 +01:00
Christian Kamm
d4246f7da1
Upgrade to anchor 0.22.0
2022-02-22 10:09:40 +01:00
Christian Kamm
a79ee2c8e2
Fix compile by disabling unadapted state/ structs
2022-02-22 10:09:40 +01:00
microwavedcola1
b362d3320b
notes for self
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-10 10:50:57 +01:00
microwavedcola1
f2921d2272
add todos
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-10 10:49:45 +01:00
microwavedcola1
268db58294
fix imports
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-10 10:04:47 +01:00
microwavedcola1
5ab8f6e09e
copy structs from v3, next goal is to see what we can retain and what to change
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-10 09:07:34 +01:00
microwavedcola1
d7229d7a48
Program struct
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-02 11:55:44 +01:00
microwavedcola1
b35802c555
turn off doc tests, make script executable
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-01-21 19:25:13 +01:00
microwavedcola1
66172881a1
First commit
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-01-21 19:21:46 +01:00