Commit Graph

101 Commits

Author SHA1 Message Date
microwavedcola1 d74cc78a84
edit tokens, perp markets, mango accounts, allow delegate to perform certain operations (#94)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-07-05 19:31:47 +02:00
microwavedcola1 dff3f7cd8c client functions via program simulation
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-07-04 14:11:38 +02:00
microwavedcola1 e8cb27610e
close mango account without checks when testing flag is set on the group, workaround weird issues when all dust cant be withdraw (#92)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-07-01 13:38:50 +02:00
microwavedcola1 1c02ccd21d
Transfer dust from bank vaults to a dust account, without this we wont be able to close bank vaults (#88) 2022-06-29 09:11:14 +02:00
Christian Kamm 86d635f5d0 FlashLoan3: Variant that transfers directly
FlashLoan2 requires the user to set up transfers to and from the Mango
vault accounts. This version directly provides the loaned funds into a
target token account and repays everything that exceeds the initial
token account balance at the end.
2022-06-28 15:32:26 +02:00
Christian Kamm d786a672f1 FlashLoan2: API with Begin and End instructions
For FlashLoan users had to pass the target cpi programs, accounts and
data to the FlashLoan instruction itself.

The new API allows existing instructions to be used unchanged, they
just need to be bracketed by FlashLoan2Begin and FlashLoan2End.
2022-06-28 15:30:13 +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
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 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
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 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
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
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 b1fcb4a7e6 CreateGroup: Allow multiple groups per admin 2022-05-27 11:36:50 +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 53a5e208fd margin_trade: loan origination fees, limited withdraws 2022-05-23 08:55:30 +02:00
Christian Kamm 21af012d1f Improvements to margin_trade
- don't hard-code the group as the first passed account
- token::approve() banks for each token vault
- sign for each bank
- deal with using tokens without an existing position
- handle deactivation of token account if balance goes to 0
2022-05-20 10:16:09 +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 6ecd4a0da9 Update funding for keeper
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-17 15:59:47 +02:00
microwavedcola1 fac9b4a57a perp funding
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-17 10:07:24 +02:00
microwavedcola1 db82fcbbcc perp cancel order instructions
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-05-16 10:49:11 +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 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 7ead988ba4 small ticker size
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-12 20:38:35 +02:00
microwavedcola1 e3a60a637a format
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-12 17:35:39 +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 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 257ccf76ad multi legged interest rates + keeper ix
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-09 16:53:30 +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 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
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 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 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
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
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 d6ebffd346 liq: functionality fixes and test 2022-03-29 17:47:19 +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
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