Commit Graph

52 Commits

Author SHA1 Message Date
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
Christian Kamm f844720130 Review fixes 2022-05-24 13:00:32 +02:00
microwavedcola1 717b72857d
Remove anchor dummy type workaround (#53)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-18 17:16:14 +02:00
microwavedcola1 be73106ce1
perp funding (#51)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-16 15:34:56 +02:00
microwavedcola1 db82fcbbcc perp cancel order instructions
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-16 10:49:11 +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 6db679d35e support longer account names
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-12 20:23: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
Christian Kamm 6f3673bcdf Perp: Track taker and maker orders in the account; test 2022-04-04 10:39:13 +02:00
microwavedcola1 d6fe317ac9 checked math
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-03 06:06:03 +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
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 6505abcd54 Side: Make inversion function be associated 2022-04-01 12:21:19 +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
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
microwavedcola1 64e3ba0d7c --wip-- [skip ci] 2022-03-28 21:13:16 +02:00
Christian Kamm c391c29347 liq token: Instruction outline 2022-03-27 14:46:51 +02:00
microwavedcola1 27eaa5f8f5 ported fees
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-25 09:46:38 +01:00
microwavedcola1 f135ca4d9b fix clippy warnings
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-23 09:33:51 +01:00
microwavedcola1 974724cfe1 fix some clippy warnings
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-22 11:19:12 +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 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 9d05db68f9 Serum: Prefix instructions with serum3_ and related renames 2022-03-18 13:42:20 +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 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 baa980c659 PlaceSerumOrder: Track vault balances before and after 2022-03-15 14:44:47 +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 693ac17996 Serum: Store open orders pubkey in account 2022-03-11 17:50:04 +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 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 75092f7681 CreateAccount: Initialize an address lookup table 2022-02-28 15:43:08 +01:00
microwavedcola1 12d2a9f962 make clippy happy
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-28 12:56:26 +01:00
microwavedcola1 e8b1563223 optimise imports
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-28 11:07:04 +01:00
Christian Kamm 1b404cc652 Basic health check, no oracles yet 2022-02-26 17:47:16 +01:00
Christian Kamm d1e2cc28b7 Outline of withdraw instruction 2022-02-25 15:14:15 +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 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 c9ad4f0c94 Very basic deposit instruction 2022-02-22 14:23:13 +01:00
Christian Kamm 9b16feaf44 CreateAccount instruction outline 2022-02-22 13:15:13 +01:00
Christian Kamm 6160a80457 First ideas for MangoGroup and MangoAccount accounts 2022-02-22 10:15:37 +01:00
microwavedcola1 f2921d2272 add todos
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-10 10:49:45 +01:00