Commit Graph

701 Commits

Author SHA1 Message Date
microwavedcola1 784ef88927
document unused (#581)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-05-13 10:03:28 +02:00
Christian Kamm 5a05e9cb2e
Update anchor to v0.27.0, stop using submodule (#582) 2023-05-12 13:54:53 +02:00
Christian Kamm 9429d3991d Bump program version to v0.16.0 and add deploy info 2023-05-11 13:46:43 +02:00
Christian Kamm 450f446032
Make clippy happy (#580) 2023-05-09 21:08:55 +02:00
Christian Kamm 2205fe7260
Changelog for program v0.15.0, version bump, idl update (#577) 2023-05-08 08:13:50 +02:00
Christian Kamm d20ae0abcb
Perp: Exit matching loop when no more base lots can be filled (#576) 2023-05-08 06:40:38 +02:00
Nicholas Clarke c0ea9970b6
Clarkeni/oracle confidence (#568)
* Add oracle confidence and oracle type to update funding logs.

* Return price and OracleState struct from oracle_price_and_state.
2023-05-05 23:44:14 -07:00
Christian Kamm 2f4976e81f
Improve error message for FixedAccountRetriever (#566)
When an invalid number of accounts is passed in, which is one of the
most common error messages new integrators will see.
2023-05-05 09:11:25 +02:00
microwavedcola1 abba3de4ce
Fix bug in flash loan for delegates where compute budget program was not allowed, also improved logging (#572)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-05-04 14:46:09 +02:00
Christian Kamm 0da1b6728b
OpenBook place order: respect bank reduce_only flags (#569) 2023-05-04 08:02:28 +02:00
Christian Kamm 6f47ad92d6
token_register_trustless: Disable borrowing by default (#567)
Previously tokens listed this way could be borrowed. Now tokens start
with reduce-only set to the "no borrows" mode.

Also decrease the default soft borrow/deposit limits significantly, even
if they don't come into effect when there are no borrows and the deposit
weight is 0 anyway.
2023-05-04 07:59:39 +02:00
Christian Kamm 4504ed8ff9 Compile fix and idl update 2023-04-26 09:07:05 +02:00
microwavedcola1 4e4af83d98
Fix bugs for release (#564)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-04-25 16:18:35 +02:00
Christian Kamm 7ec8fbffe5 Fix build without enable-gpl 2023-04-25 13:39:01 +02:00
Nicholas Clarke 2dce1398d3
Fix to seq num logging. Seq num was incremented between event and logging (#556) 2023-04-25 13:38:31 +02:00
Nicholas Clarke 5d77ba6834
Add PerpForceClosePositionLog and TokenForceCloseBorrowsWithTokenLog (#555) 2023-04-25 13:38:08 +02:00
Christian Kamm 507cb500e9
Fix settle limit accounting for positive pnl takeover (#562) 2023-04-25 13:37:34 +02:00
microwavedcola1 3741f78da5
insurance fund withdraw ix (#561)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-04-25 09:20:44 +02:00
Christian Kamm fe8d1a63bd
Fix building with "no-entrypoint" feature (#558)
Without this, anchor complains about a missing lifetime on a struct
relating to Benchmark.
2023-04-24 09:52:44 +02:00
Christian Kamm 898788909e
Fix account borrow issue in perp_liq_force_cancel_orders (#557) 2023-04-24 09:52:33 +02:00
Christian Kamm 10113443df Minor test compile fix 2023-04-24 09:35:46 +02:00
microwavedcola1 497012042c
Force close for serum3 market (#551)
* force close for serum3 market

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* Fixes from review

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* always require admin

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>

* Fixes from review

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* format

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* Fixes from review

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* update client

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* Fixes from review

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

---------

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-04-20 10:19:23 +02:00
microwavedcola1 6fba1692e9 Fix type
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-04-20 10:13:14 +02:00
microwavedcola1 6ac9f19287
Perp force close positions in a market (#525)
* force close tokens

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>

* Fixes from review

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* Fixes from review

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* add test

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>

* 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>

* reset

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* force close perp market

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>

* rename

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* test

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* update

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* add back staleness slot check

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* Fixes from review

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

---------

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-04-19 17:42:01 +02:00
microwavedcola1 55bfcc3a76
fix bug where flash loans couldnt be executed by delegates (#552)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-04-19 16:17:26 +02:00
microwavedcola1 fa5b39adad bump version for next release
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-04-14 16:59:02 +02:00
Christian Kamm 0e831db687
IxGate: Fix check for re-enabling instructions (#540)
The bug allowed the security admin to enable instructions. This was
supposed to require the group admin.
2023-04-14 16:12:17 +02:00
Christian Kamm 98a79505e1
FlashLoan: Don't deduce vault_len, add more checks (#542)
It looks like it wasn't possible to exploit the program by
re-initializing the user-owned token accounts used in flash loan because
the later use of health_ais with the health computation would error out
if any token account was included there.

However, the check and a few others were too indirect. In this patch:
- We pass the number of loans into FlashLoanEnd explicitly (verified
  from FlashLoanBegin)
- Add explicit checks for token mints, so it's no longer possible to use
  token accounts for foreign mints in Begin when the loan amount is zero,
  and it's clearer to see that the bookkeeping in End won't break if the
  user reinited the account for a different mint.
- Also add a few other extra comments and checks.

The updated FlashLoanEnd instruction is called FlashLoanEndV2
2023-04-14 15:18:02 +02:00
Christian Kamm 13279536aa Drop leftover conflict markers 2023-04-14 08:26:05 +02:00
Nicholas Clarke 37ae7549fb
Clarkeni/perp trade logging (#535)
* Emit the slot corresponding to the oracle price to PerpUpdateFundingLog.

* Emit a new FilledPerpOrderLog consisting of just the group, perp market and seq num. This will be used to correlate perp fills to the transactions they were matched (not consumed).
2023-04-13 10:50:39 -07:00
microwavedcola1 c813940054 Fix method calls
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-04-13 19:34:45 +02:00
microwavedcola1 b07857c696
force close tokens program part (#518)
* force close tokens

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>

* Fixes from review

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* Fixes from review

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* add test

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>

* 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>

* reset

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

---------

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-04-13 12:44:12 +02:00
microwavedcola1 2dca3003df
Don't incentivise using asset tokens with high liquidation fee during liquidation (#536)
* Don't incentivise using non-usdc coins to liquidate tokens

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* fix tests

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* fix tests

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* review: add back test comment

---------

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: Christian Kamm <mail@ckamm.de>
2023-04-13 12:43:31 +02:00
Christian Kamm 61a4f62ea4 Bump program version to v0.13.0 and update idl 2023-04-13 09:53:15 +02:00
Christian Kamm 74f7282d4e Bump program version to v0.12.0 and update idl 2023-04-13 09:46:58 +02:00
Christian Kamm da2a7f4e0c
Net borrow limit: Separate out tracking and checking (#534)
That way it's easier to be specific about where the limit should be
checked.
2023-04-13 08:56:33 +02:00
Nicholas Clarke 0ba41e3471
Emit perp fees settled on update_funding. Required to have a full picture of total perp market fees. (#530) 2023-04-06 22:09:50 -07:00
Christian Kamm 535b0b2d0c Changelog for program-v0.11.0, bump version, update idl 2023-03-31 18:47:34 +02:00
Christian Kamm 762608ecce
Limit funding and interest accrual during downtimes (#529)
Previously, if the funding or interest updating instruction wasn't
called for a long time (like for a solana downtime or the security
council halting the program), the next update would apply funding or
interest for the whole time interval since the last update.

This could lead to a bad downtime situation becoming worse. Instead,
limit the maximum funding and interest time interval to one hour.
2023-03-31 12:48:34 +02:00
microwavedcola1 7080c9bf3c
sync rate params to latest proposal (#523)
* sync rate params to latest proposal

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>

---------

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-03-31 12:45:26 +02:00
microwavedcola1 cd39a9f432 Fix test
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-03-31 12:45:05 +02:00
Christian Kamm 8559d3ef07
Perp funding: Fix logging in update funding + deactivate pos (#528) 2023-03-31 10:58:04 +02:00
Christian Kamm 312a60fe4f
Net borrow limits: Use correct price for check (#527) 2023-03-30 17:25:29 +02:00
microwavedcola1 2957796de8
in perp settle fees, dont error, rather return early, this enables blindly concatenating perp settle fees to perp settle pnl (#526)
* in perp settle fees, dont error, rather return early

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* Fixes from review

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

---------

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-03-30 17:00:41 +02:00
microwavedcola1 258d95d035
Fix bug: only account for borrows we are offsetting (#513)
* Fix bug: only account for borrows we are offsetting

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* fix

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* Bank: Unittest for net borrow limits

---------

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: Christian Kamm <mail@ckamm.de>
2023-03-22 09:58:31 +01:00
Christian Kamm 7c02075c80 Bump program version to v0.10.0 2023-03-21 12:51:21 +01:00
Christian Kamm b22a1e7f57
HealthRegion: Whitelist allowed instruction types (#508)
This fixes a security issue where bankruptcy related instructions could
be called inside a health region. Now health regions are limited to
compute optimization like when placing multiple orders in one
transaction.

This limitation also makes it impossible to abuse health regions for
flash loans. Use the FlashLoan instructions for that purpose.
2023-03-20 14:02:35 +01:00
Christian Kamm 658a220095 Allow token/market names to fill storage bytes completely
Previously the last byte was always zero.
2023-03-20 14:02:03 +01:00
Christian Kamm 99360e69a3 TokenRegister: Sanity checks on token_index 2023-03-20 14:02:03 +01:00
Christian Kamm d1e3da2b75 IxGateSet: Log AccountBuybackFeesWithMngo state 2023-03-20 14:02:03 +01:00