Commit Graph

199 Commits

Author SHA1 Message Date
microwavedcola1 f3a7c5ca14 make consistent with other sim functions
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-07-17 15:23:47 +02:00
microwavedcola1 7e917bb85d Fix type
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-07-14 14:02:06 +02:00
microwavedcola1 e623b8c276
Enforce safety limits while borrowing, while computing max swap source, and max spot order base/quote (#642)
* --wip-- [skip ci]

* enforce safety limits while borrowing

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

* --wip-- [skip ci]

* --wip-- [skip ci]

* --wip-- [skip ci]

* 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-07-13 16:29:13 +02:00
microwavedcola1 604c38ed5b fix max swap
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-07-12 09:53:38 +02:00
microwavedcola1 a6fe8dfd48 fix max swap
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-07-12 09:38:48 +02:00
microwavedcola1 05b9f8f5da ui helper
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-07-06 18:17:24 +02:00
microwavedcola1 7ab0164d38 v0.17.1 2023-07-05 07:32:26 +02:00
microwavedcola1 7e4ec9e14f Merge branch 'deploy-2' into dev 2023-07-04 11:05:39 +02:00
microwavedcola1 1ffa65d01b optimise getAllMangoAccounts
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-07-04 09:26:59 +02:00
Christian Kamm 35064d4ab0
Token conditional swaps (#604)
Users can request token swaps to happen when the oracle price
is within a price band. Once the price is right, an executor can
trigger the swap. The executors are rewarded with a premium
over the oracle price.

This allows limit and stop loss orders on arbitrary spot pairs.

The PR comes with basic ts support and adjustments to the liquidator,
to execute available token conditional swaps.

Co-authored-by: microwavedcola1 <microwavedcola@gmail.com>
2023-07-03 14:09:11 +02:00
microwavedcola1 c2e48df051 Merge branch 'main' into deploy 2023-07-03 09:02:25 +02:00
microwavedcola1 0e180ed380
Mc/perp liq price 2 (#625)
* perp position liquidation price calculator

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

* refactor

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

* ui method

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-06-26 16:45:52 +02:00
microwavedcola1 66ccd962bc
mc/break even price ts client: account for unsettled funding (#617)
* v0.16.3

* ts: break even price, account for unsettled funding

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

* script

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

---------

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-06-23 14:32:04 +02:00
microwavedcola1 b84b135dae add realized pnl helpers, reorder methods
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-06-22 08:40:06 +02:00
microwavedcola1 6a76476acd
referrerRebatesAccrued - these accrue to the ui now (#596)
* these accrue to the ui now

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-05-28 07:44:45 +02:00
Christian Kamm 5fc7aa1092
Configurable perp settle token (#550)
This changes perp market margining to no longer assume all pnl is in USD
while settlement is in USDC. Instead, a configurable settle token is used for
pnl and settlement, defaulting to USDC. 

There is no difference while the USDC price is forced to $1 and the init and liab
weights are 1. But with this patch, it becomes possible to change that.

For now it is not recommended to use a token other than USDC or USDT (or
another USD targeting stable token) for perp settlement.

The patch also updates all insurance vault use to be aware that the insurance
fund is not in USD but in USDC and apply the USDC price before payouts.
To do this, the previous PerpLiqNegativePnlOrBankruptcy was replaced by
a new PerpLiqNegativePnlOrBankruptcyV2 instruction.

Co-authored-by: microwavedcola1 <89031858+microwavedcola1@users.noreply.github.com>
2023-05-17 15:50:05 +02:00
microwavedcola1 5d31d6bf32
merge deploy changes to dev (#586)
* expose perp order type on perp order

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

* v0.9.17

* Fix funding rate method

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

* Fix scrript

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

* v0.9.18

* ts-client v0.9.19

* fix script

* update reduce only and force close flags in ts client

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

* v0.13.1

* expose underlying property

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

* v0.13.2

* Fix bug in closing mango account (#559)

* reafactor code for collecting health accounts, fix bug where bank oracle was skipped while closing account

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>

---------

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

* v0.13.3

* fix client code for building health accounts

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

* v0.13.4

* Fix bug in sim max serum3 bid

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

* v0.13.5

* increase charge

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

* ts-client v0.14.0

* Fix getBorrowRate() to include loan upkeep

* ts-client v0.14.1

* Client: Move jup's CU ix outside of flash loan

That makes a flash loan based jup swap usable with delegates.

* liquidator: Don't attempt to close in-use token positions

This could happen if the user manually used serum on the liquidator
account.

* Mc/ci cd (#570)

* prettier

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

* Fix branch

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

---------

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

* rename

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

* Increase iterations for max swap to fix some edge case, fix debug script since fees are already accounted for

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

* v0.14.2

* Risk notification bot (#565)

* risk stuff

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>

* cleanup

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

* client function

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

---------

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

* fix

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

* v0.15.0

* fix risk computati

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

* Fixes from review

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

* v0.15.2

* Fix units

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

* dont drop or rally stable assets

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

* dont skip usdc

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

* Fixes from review

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

* v0.15.3

* Fix

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

* v0.15.4

* update

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

* v0.15.5

* update

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

* v0.15.6

* add highlight

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

* v0.15.7

* Fix math

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

* Fix

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

* v0.15.10

* Fix

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

* v0.15.12

---------

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: Christian Kamm <mail@ckamm.de>
2023-05-16 19:20:43 +02:00
microwavedcola1 8255d53a09 Risk notification bot (#565)
* risk stuff

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>

* cleanup

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

* client function

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

---------

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-05-13 11:55:24 +02:00
microwavedcola1 08dfb0ddba
Risk notification bot (#565)
* risk stuff

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>

* cleanup

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

* client function

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

---------

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-05-13 11:55:08 +02:00
microwavedcola1 01ae9175e9 Fix bug in sim max serum3 bid
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-04-25 13:50:30 +02:00
riordanp 24d8a5753a
Merge dev changes (#532)
* Fix script

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

* Fix docs build job (#501)

* workaround where rpc rejects base58 encoded pubkeys (#502)

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

* Rename settle-bot to settler, fix build (#492)

* Fix settler build, rename due to heroku not liking '-'

* Temporarily remove ref tag

* Remove temporary branch trigger

* Add oracleProvider to Bank and PerpMarket (#491)

* Add oracleProvider to Bank and PerpMarket

* v0.9.6

* Fix null checks on getters for PerpMarket and Bank (#505)

* Export OracleProvider

* Fix null checks on getters

* token_liq_bankruptcy: Use oracle for valuing insurance fund tokens (#503)

Previously a token from the insurance fund was valued at 1 USD. Now it
uses the oracle associated with it (USDC oracle).

* v0.9.7

* ts: Fix ix gate enum, add code for creating a disable-tx gov ix

* Fee buyback: Respect USDC oracle (#504)

* refactor script (#509)

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

* IxGateSet: Log AccountBuybackFeesWithMngo state

* TokenRegister: Sanity checks on token_index

* Allow token/market names to fill storage bytes completely

Previously the last byte was always zero.

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

* Add fly deploy scripts (#490)

* Bump program version to v0.10.0

* liquidator docs (#512)

* liquidator docs

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

* update

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

* update

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

---------

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

* Quality of life fixes (#511)

* breaking: make pegLimit an optional arg
* pass externally cached blockhashes to sendTransaction
* convenience accessors for connection & walletPk on client

* add script to sim accounts with leverage change (#514)

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

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

* extend script, fix util function

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

* Fix interest rate computation in client (#520)

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

* minor ts fixes

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

* Temporarily disable health region use on mm script (#507)

* Use new shared mango-feeds-connector crate for chain_data (#515)

* Add prometheus metrics to crank (#517)

* Add prometheus metrics to keeper

* update script

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

* fix bug where unrealised profit was not abs'ed

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

* Fix script

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

* update script

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

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

* update script

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

* Net borrow limits: Use correct price for check (#527)

* Changelog for program-v0.10.0 and idl update

* script for grabbing logs

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

* Perp funding: Fix logging in update funding + deactivate pos (#528)

* update

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

* Fix test

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

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

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

* Changelog for program-v0.11.0, bump version, update idl

* Don't reload openorders if there's no active markets

* update

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

* reorg

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

* Emit perp fees settled on update_funding. Required to have a full picture of total perp market fees. (#530)

---------

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: microwavedcola1 <89031858+microwavedcola1@users.noreply.github.com>
Co-authored-by: Christian Kamm <mail@ckamm.de>
Co-authored-by: Maximilian Schneider <mail@maximilianschneider.net>
Co-authored-by: tlrsssss <tjshipe@gmail.com>
Co-authored-by: Nicholas Clarke <nicholasgclarke@gmail.com>
2023-04-07 13:57:53 +01:00
Riordan Panayides cd3f6a684a Don't reload openorders if there's no active markets 2023-04-03 16:12:03 -04:00
Riordan Panayides 789a5135ac Don't reload openorders if there's no active markets 2023-04-03 20:07:00 +01:00
microwavedcola1 b7189696d8 update script
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-03-30 17:17:38 +02:00
microwavedcola1 613b062e8f fix bug where unrealised profit was not abs'ed
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-03-30 10:12:16 +02:00
microwavedcola1 47adfa6540 fix bug where unrealised profit was not abs'ed
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-03-30 09:39:49 +02:00
microwavedcola1 2adf7da861 Merge branch 'main' into ts-client 2023-03-13 11:09:19 +01:00
microwavedcola1 cb8ee54d0f Fix price unit used in health sim
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-03-07 13:08:54 +01:00
microwavedcola1 c7f577fc8e Fix price unit used in get max perp trade size
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-03-07 12:50:41 +01:00
microwavedcola1 679f8dd29b some more logginh
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-03-07 08:32:44 +01:00
microwavedcola1 73b626efff
ts client for max buyback of fees with mngo (#480)
* ts client for max buyback of fees with mngo

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-02-28 12:05:02 +01:00
Christian Kamm e4d46c3c5b
Buyback fees: Add staggered expiry (#478) 2023-02-27 16:36:27 +01:00
microwavedcola1 d88d44b34a
buyback perp fees with mngo at a discount (#464)
buyback perp fees with mngo

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-02-25 20:34:16 +01:00
microwavedcola1 330739364f
ts: add function on perp position to get notional value (#474)
* ts: add function on perp position to get notional value

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-02-24 10:43:37 +01:00
tylersssss 4c9f99832f
Update package.json build steps and move js scripts out of src folder (#470)
* extracts scripts from source; update tsc build configs and packages

* publish latest

* remove type module
2023-02-22 08:36:59 +01:00
tylersssss f41f2ab337
Ts/client fixes (#471)
* fix bug with marking perp orders as expired

* support passing in perp books to find mango account orders

* support force reloading of acct perp open orders

* make perp market _bids and _asks public

* dont fetch open order accts if no serum3active
2023-02-22 08:07:06 +01:00
Christian Kamm 1f66bef88f
Change liquidation end target to a new, third health type (#447)
Due to the safety features in v4, the init health can differ from maint
health a lot more than it used to in v3. This is because of stable-price
adjusted oracle prices used in init health, and the weight scaling based
on total deposits and borrows used in init health.

The effect is that once an account becomes liquidatable, it could be
liquidated a lot until it reaches init>=0.

The original idea of liquidating until init>=0 was just to provide some
buffer, such that liquidated accounts wouldn't immediately become
liquidatable again.

This patch decouples the buffer idea explicit from init health by
creating a new LiquidationEnd health type. Liquidation proceeds until
the LiquidationEnd health becomes positive.

Co-authored-by: microwavedcola1 <89031858+microwavedcola1@users.noreply.github.com>
2023-02-10 09:00:36 +01:00
microwavedcola1 184cf82e22
update settle limit before returning settleable pnl (#445)
* update settle limit before returning settleable pnl

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

* Revert "update settle limit before returning settleable pnl"

This reverts commit 29e38a85ef.

* provide a canSettlePnl to reflect constraints in perp settle pnl ix

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>

---------

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-02-09 13:31:56 +01:00
microwavedcola1 1e046685a9 small fix + helper method
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-01-24 17:44:22 +01:00
microwavedcola1 265f6a1a48
add helper method: settleTokenNativeToUi (#405)
* add helper method: settleTokenNativeToUi

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

* Revert "add helper method: settleTokenNativeToUi"

This reverts commit 43b19b3056.

* we can assume that quote is always in usd

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-01-21 11:35:43 +01:00
microwavedcola1 919f09bb8c
fix bug where serum oo where not loaded (#403)
* fix bug where serum oo where not loaded

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-01-19 11:31:54 +01:00
tylersssss 8fb231f2fc
fix getAverageEntryPrice so it divides instead of multiplies (#402) 2023-01-19 10:52:49 +01:00
microwavedcola1 fbbce98ec3 simply debug user
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-01-18 20:15:04 +01:00
Christian Kamm 9346c8e546
Perps: track overall realized pnl relating to a position (#392)
This includes trade pnl, funding and fees. Tracking this makes it easier
for uis to display a consistent position overall pnl value that doesn't
decrease by settling.

Co-authored-by: microwavedcola1 <microwavedcola@gmail.com>
2023-01-17 14:07:58 +01:00
microwavedcola1 7c69197505
mango account freeze (#372)
* mango account freeze

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>

* Fixes from review

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-01-12 13:08:10 +01:00
Christian Kamm c5d875e04d
Perp settle limit extension to realized pnl (#359)
Co-authored-by: microwavedcola1 <microwavedcola@gmail.com>
2023-01-11 14:32:15 +01:00
microwavedcola1 e34f9be60a
Apply loan origination fee only on loans (#364)
* Apply loan origination fee only on loans

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-01-06 08:42:16 +01:00
tjs b0164113f0 support healthtype of undefined to calculate with a weight of 1 2022-12-30 15:26:53 -05:00
microwavedcola1 44fb1037cf
Mc/serum fees (#350)
* maker rebate shouldnt be applied to maxQuoteQuantity

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

* update

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

* update

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

* Fixes from review

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

* fix

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-12-21 10:21:24 +01:00
microwavedcola1 f3dac89d3e Fix bug in getMaxBaseForSerum3AskUi where base returned was wrong
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-12-19 18:30:26 +01:00
Christian Kamm 7231ceea53 ts client: Fix avg entry price and break even price 2022-12-19 13:34:20 +01:00
Christian Kamm 071dc34ccc
Client: Rework max_swap function (#340)
* Client: Rework max_swap function

Determining the amounts at which the health function changes slope
becomes too difficult when serum3 open orders come in.

Instead, generally find the function's maximum and then work with that.

* max_swap: Add test for swapping into a trustless token

* ts port

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: microwavedcola1 <microwavedcola@gmail.com>
2022-12-16 16:33:37 +01:00
Adrian Brzeziński f31ef4642d Merge branch 'feature/modify-order' 2022-12-15 11:30:20 +01:00
Adrian Brzeziński 89c7ab7498 modify serum3 order 2022-12-15 10:40:45 +01:00
microwavedcola1 309f218c6e more debugging
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-12-15 09:41:03 +01:00
microwavedcola1 5c1304466b add account number to toString for debugging
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-12-14 15:50:10 +01:00
microwavedcola1 f4942fd674
cap max borrow in withdraw to safety constraint (#335)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-12-13 19:41:19 +01:00
tjs b6605bd120 fix perp open order deserializing 2022-12-08 15:53:14 -05:00
tjs fb8eb59355 add back getEquityUi for perp 2022-12-08 14:12:57 -05:00
microwavedcola1 7d9c3616af
ts client changes (#320)
* cleanup + small sync with program
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* Fixes from review

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

* Update lock file

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

* Fix tsc errors

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-12-08 10:16:06 +01:00
microwavedcola1 dde9ca69e8 sync fields
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-12-06 14:05:12 +01:00
microwavedcola1 fa09c557a1
ts client sync with program (#311)
mostly health related code
2022-12-02 15:48:43 +01:00
microwavedcola1 44d0170ea9
mc/settle pnl ts client (#292)
* oracle peg client support

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>

* perp pnl settle, candidate finder, and example

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-11-21 20:36:13 +01:00
Nicholas Clarke ff18ad6ba7
Add client function getCumulativeInterest (#280)
* Add client function getCumulativeInterest
2022-11-21 10:59:26 -08:00
conj0iner 39ed94aa87
client additions + extra tests + safety (#281)
Co-authored-by: Conj0iner <conj0iner@users.noreply.github.com>
Co-authored-by: Christian Kamm <mail@ckamm.de>
2022-11-18 08:58:56 +01:00
microwavedcola1 446b2e8d66 serum util functions
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-11-04 15:07:26 +00:00
microwavedcola1 ccc1d43a55 Port new fields on accounts from program to ts client
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-11-02 12:13:29 +00:00
tjs 032c9d43b0 get serum open orders only for active mkts 2022-10-31 19:08:26 +00:00
microwavedcola1 3efebb3ea6
ts: market maker improvements (#270)
* ts: fix typechecking on scripts

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

* ts: market maker round of improvements

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-10-11 09:39:57 +02:00
microwavedcola1 a66177a77e
ts: match client class definitions 1-1 to program state struct definitions (#268)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-10-11 09:34:02 +02:00
tjs cfd6fd2ca8 remove unnecessary undefined type returns 2022-10-07 13:48:05 -04:00
microwavedcola1 8e919bb741
ts: perp improvements (#263)
* ts: perp improvements

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

* ts: fixes from review

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

* ts: fixes from review

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-10-07 13:52:04 +02:00
tjs 8cdd0233d4 fix merge issues 2022-10-04 15:13:24 -04:00
tjs 56313b6eac Merge branch 'dev' into main 2022-10-04 14:54:42 -04:00
microwavedcola1 bafaf73745
Mc/ts numbers - cleanup usage of all numbers (#259)
* ts: a higher error tolerance is sufficient

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

* ts: move stuff around

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

* ts: string representation while printing

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

* ts: number cleanup

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

* ts: fix tsc errors

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

* ts: cleanup creation of I80F48 from BN

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

* ts: fixes from review

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

* ts: fixed from review

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

* revert

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

* ts: fix from call

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-30 15:07:43 +02:00
microwavedcola1 a2f4cef940
mc/ts derive and not hardcode size (#257)
* ts: simplify getOrCreateMangoAccount

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

* ts: derive and not hardcode sizes for perp accounts when creating

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

* ts: fix script

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

* ts: remove todo, not relevant anymore

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

* Fixes from review

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-30 13:33:21 +02:00
microwavedcola1 c22302a1da
ts client improvement (#254)
* Perps: Support trusted markets

* ts: health on client side

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

* ts: change perp lookup

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

* ts: reword error messages, refactor common uses of lookups

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

* ts: reformat

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

* ts: improve typing

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

* ts: fix some todos

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

* ts: fix some todos

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

* ts: fixes from review

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

* ts: type aliasing

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

* ts: remove '| undefined' where not required as return type

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

* ts: use trusted market flag for perp health

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: Christian Kamm <mail@ckamm.de>
2022-09-29 15:51:09 +02:00
microwavedcola1 8d86883190 ts: remove debug code
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-27 17:33:51 +02:00
tjs 92a33a0bf5 return the correct type 2022-09-25 20:27:44 -04:00
tjs b6bcc55fcb add type guard 2022-09-25 20:26:02 -04:00
tjs fa1a483493 func to load serum open orders accts for get balances 2022-09-23 23:14:12 -04:00
Nicholas Clarke e509a3ae9c
Clarkeni/overall pnl (#232)
* Add getPNL client function
2022-09-23 11:39:51 -07:00
microwavedcola1 bb6790e678
ts: use price factor in maxSourceForSwap + max perp bid and ask + tests (#237)
* ts: use price factor in maxSourceForSwap
ts: max perp bid and ask
ts: mocha test for max swap

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

* ts: comemnt

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-23 11:43:26 +02:00
microwavedcola1 4090cf407e ts: fix max serum bid and ask that can be placed by a mango account (#241)
* ts: fix getMaxQuoteForSerum3BidUi and getMaxBaseForSerum3AskUi where the zero amount was not tight enough for binary search

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

* Fixes from review

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-23 09:34:28 +02:00
microwavedcola1 59bb60c405
ts: fix max serum bid and ask that can be placed by a mango account (#241)
* ts: fix getMaxQuoteForSerum3BidUi and getMaxBaseForSerum3AskUi where the zero amount was not tight enough for binary search

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

* Fixes from review

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-23 09:34:08 +02:00
Christian Kamm 52f8b61240 Merge remote-tracking branch 'origin/dev' 2022-09-21 10:14:34 +02:00
microwavedcola1 b7e79a4663
WIP: ts/perps (#220)
* ts: further fleshing out of perps code

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

* cleanup scripts

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

* Fixes from reviews

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-20 12:57:01 +02:00
Christian Kamm 899b51e91c ts: fix getMaxWithdrawWithBorrowForToken 2022-09-14 10:23:06 -04:00
Christian Kamm 3e94ff4605 ts: fix getMaxWithdrawWithBorrowForToken 2022-09-14 09:03:29 +02:00
tjs 27c42e70e9 reload mango account with slot 2022-09-05 12:31:57 -04:00
tjs c359ce26a7 return new mango account instance from reload 2022-09-02 18:47:09 -04:00
microwavedcola1 5ff181d01d Merge branch 'dev' 2022-09-01 09:52:29 +02:00
microwavedcola1 5f62f15549
mc/i80F48 in-place cleanups (#203)
* ts: use in place I80F48 wherever applicable

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

* ts: dont overwrite I80F48 constants

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

* Fix script

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-01 09:48:23 +02:00
tjs 8296d660d8 return mangoAccount after reloading 2022-08-31 15:33:07 -04:00
microwavedcola1 5e33c00ec8 Merge branch 'main' into dev 2022-08-31 11:55:54 +02:00
tjshipe 263bc6ff1f
turn on strict null checks and fix issues (#201) 2022-08-31 11:41:12 +02:00
microwavedcola1 c66dd882b6
ts: Additional serum3 support (#196)
* get bids and asks for a user on a serum3 market
* get orderbook for a market
* get max bid or ask that a user can place for a market
* simulate health if a bid or ask were to be placed

misc:
* fix remaining accounts list for health when placing perp bids

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

format

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

format

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

remove testing code

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>

script adjustment

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

comments

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-31 11:36:44 +02:00
tjs ff7638f04b throw error when reloading account if simulation fails 2022-08-27 03:55:55 -04:00
microwavedcola1 b9a69bf59c extend debugging script to just take mango accounts directly
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-26 10:08:45 +02:00
microwavedcola1 4c4a9cbb73 Small changes for consistency
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-23 16:21:05 +02:00