Commit Graph

490 Commits

Author SHA1 Message Date
microwavedcola1 6808171ee3 ts: disable versioned txs for now because wallets dont support them
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-10-07 08:28:05 +02:00
Christian Kamm f2cc869795 Perps: Prepare for settlement token != oracle token
Make sure the setting is available and that the needed accounts are
passed to the perp instructions.
2022-10-06 08:32:58 +02:00
tjs dd4175b401 add back get serum3marketbypk 2022-10-04 16:35:38 -04: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
Christian Kamm b906e3dc78 Token deposit: Split into signed and permissionless ix
Token accounts are a limited resource, so allowing other users to make
use of them can cause problems.
2022-10-02 16:06:39 +02: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 d1079bb1b9
Mc/ts increase error tolerance for binary search (#258)
* ts: a higher error tolerance is sufficient

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

* Fixes from review

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

* program: fix error size

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-30 14:59:12 +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 4b52d9a072
ts: simplify getOrCreateMangoAccount (#256)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-30 12:16:24 +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
Christian Kamm 7e180c7b3a Perps: Support trusted markets 2022-09-29 15:40:31 +02:00
Christian Kamm 8ba52f46c2
Perp settle pnl: incentive for settler (#252)
This adds three new options to perp markets:
- a flat fee, that is paid for all perp settlements
- given that they exceed the configured min settle amount threshold to
  be eligible for fees
- and a fractional fee, that only applies when the benefiting account
  has low health and gradually becomes bigger as the account slides
  towards liquidation
2022-09-29 12:59:55 +02:00
Nicholas Clarke 01a958cd22
Clarkeni/onchain interest (#244)
* Onchain interest calculation
* Fix to TokenBalanceLog for token_liq_bankruptcy (was previously using liqee liab position for liqor liab position).
* Log cumulative interest when token position is deactivated.
2022-09-28 23:04:33 -07:00
Christian Kamm 12864e15a6
Merge pull request #245 from blockworks-foundation/ckamm/perp-settle
Liquidator: Settle pnl on perp accounts
2022-09-29 07:35:37 +02:00
microwavedcola1 dd83aeb156 ts: ALTs integration
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-28 17:09:59 +02:00
Christian Kamm 15d3a0cdfa ts client: fix reading perp event queue 2022-09-28 10:48:41 +02:00
Christian Kamm 15d0a98c94 liquidator: settle pnl on liquidatable accounts 2022-09-28 10:48:41 +02:00
Christian Kamm 9cbc352197 liquidator: force-cancel perp orders, liq perp base positions 2022-09-28 10:47:05 +02:00
conj0iner a97b40a521
Merge pull request #234 from blockworks-foundation/cj/ioc_fees
Extra fees for IOC orders
2022-09-28 00:05:25 +08:00
tjs 1380481781 script to view unowned mango account 2022-09-27 11:40:22 -04:00
microwavedcola1 8d86883190 ts: remove debug code
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-27 17:33:51 +02:00
microwavedcola1 b57e50c75b ts: fix tsc issues
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-27 13:59:00 +02:00
tjs 0def209608 allow fetching mango account by publickey 2022-09-26 17:12:58 -04:00
tjs 3b1ea91903 consistent naming to get serum markets 2022-09-25 21:11:38 -04: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 f486a6c381 helper fn to get serum3 external market 2022-09-25 16:23:43 -04:00
microwavedcola1 b7aa6dbd5d
ts: tiny liabs pushes health ratio beyond what I80F48 can support (#243)
* ts: tiny liabs pushes health ratio beyond what I80F48 can support

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

* add alias

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-24 07:11:57 +02: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
Nicholas Clarke 1320451e1a
Add serum open orders balance logging. Remove price from token and perp balances. (#236) 2022-09-23 10:42:43 -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
Christian Kamm 39bdf20813 ts: Add group.findPerpMarket() 2022-09-23 09:48:35 +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 ecbd4028f7 ts client: Fix remaining accounts when opening a perp position 2022-09-23 08:42:01 +02:00
Conj0iner a8ae59f0fe IDL and client changes 2022-09-23 01:03:45 +08:00
Christian Kamm 96218fb7ba Update IDL and merge issue fixups 2022-09-21 10:19:23 +02:00
Christian Kamm 52f8b61240 Merge remote-tracking branch 'origin/dev' 2022-09-21 10:14:34 +02:00
Christian Kamm a41a245e24 PerpLiqBankruptcy instruction 2022-09-21 09:46:54 +02:00
conj0iner 1c67b8ed5f
remove base_token_index from perps and include oracles (#224)
Co-authored-by: Conj0iner <conj0iner@users.noreply.github.com>
2022-09-21 09:42:45 +02:00
microwavedcola1 f96b9ded0d ts: fix event queue rawevents
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-20 19:50:21 +02:00
Christian Kamm 8c91541d12 ts client: Fix serum3DeregisterMarket
The indexReservation arg wasn't passed.
2022-09-20 16:58:07 +02:00
Christian Kamm 6399e6cb6c Fix PerpMarket data layout breakage
The new fees_settled must be added at the end and the reserved amount
needs to be reduced.
2022-09-20 16:58:07 +02:00
Christian Kamm 347b225480 TokenEdit: remove bank_num arg 2022-09-20 14:22:25 +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 1b3a2b07db Update idl 2022-09-15 09:24:35 +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 2b96965cc5 use send transaction in client 2022-09-14 01:44:00 -04:00
tjs fc63328af1 set lastValidBlockHeight for tx confirmation 2022-09-05 17:36:42 -04:00
tjs 27c42e70e9 reload mango account with slot 2022-09-05 12:31:57 -04:00
tjs 2d0772833b filter out jupiter token ledger instruction to save space 2022-09-02 18:47:26 -04:00
tjs c359ce26a7 return new mango account instance from reload 2022-09-02 18:47:09 -04:00
tjs 3f456393a5 use custom sendTransaction in closeMangoAccount 2022-09-02 13:50:01 -04:00
Christian Kamm 3fbc3ca32d TokenEdit: remove bank_num arg 2022-09-02 13:55:00 +02:00
Christian Kamm ef5552c1c0 Liqtest: Build serum test case 2022-09-02 12:24:18 +02:00
Christian Kamm 90630fa3de ts client: Enable accounts to have serum slots by default 2022-09-02 12:24:04 +02:00
Christian Kamm d566db7db0 Liqtest: Settle-and-close settles and closes open serum orders 2022-09-02 12:24:04 +02:00
Christian Kamm 3b3258769f ts: TokenEdit takes optional arguments 2022-09-02 12:24:04 +02:00
Christian Kamm 22dc07df1d Liquidation test: Fix scripts 2022-09-02 10:22:35 +02:00
Christian Kamm 3b93a38395
Merge pull request #208 from blockworks-foundation/ckamm/fix-index-reservation
Serum: Index reservation account has 8 bytes
2022-09-01 13:23:27 +02:00
Christian Kamm 868c55fef1 Serum index reservation: use a real account
Makes it easier and more future-proof
2022-09-01 12:28:37 +02:00
Christian Kamm c31f11013f Serum deregister: Close index reservation account
Only safe because this is a testing-only instruction
2022-09-01 12:15:00 +02:00
microwavedcola1 c420d71943 ts: fix withdraw wrapped sol -> sol
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-01 12:11:31 +02:00
microwavedcola1 0222ca8954
ts fixes (#207)
* ts: use gpa path if rest services has not caught up yet

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

* ts: convert wrapped sol to sol when withdrawing

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-01 11:25:58 +02:00
microwavedcola1 149e0eb0c7 Fix client and remove excessive logging in scripts
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-01 10:48:50 +02:00
microwavedcola1 2479107d9a
Prepare serum3 release (#206) 2022-09-01 10:18:47 +02:00
microwavedcola1 a889e6c206 Fix scripts
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-01 09:56:17 +02: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 0c6cc16023
ts: serum display function for max leverage (#202)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-31 14:37:45 +02:00
microwavedcola1 cec0fcab99 patch script for strictness
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-31 13:55:15 +02: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 42f22003d8
deployment script for vanity (#184)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-31 11:40:39 +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
microwavedcola1 4a1865be6c Merge branch 'main' into dev 2022-08-31 11:35:19 +02:00
microwavedcola1 2fb569cc75 make script net agnostic
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-30 17:01:17 +02:00
Christian Kamm e0437305ee SerumPlaceOrder: Only pass the payer bank/vault 2022-08-30 12:05:07 +02:00
Christian Kamm 36723792a1 SerumRegister: Block using the same market index twice 2022-08-30 12:05:07 +02:00
tjs ff7638f04b throw error when reloading account if simulation fails 2022-08-27 03:55:55 -04:00
tjs a12457eeb5 log in getTokenVaultBalanceByMint 2022-08-27 01:58:20 -04:00
tjs b35bca95a1 improve transaction confirmation 2022-08-26 15:42:10 -04:00
tjs 2e88889043 remove async and unused arg in getTokenVaultBalanceByMint 2022-08-26 13:54:14 -04:00
microwavedcola1 4025624738 Merge branch 'main' into dev 2022-08-26 10:45:56 +02:00
microwavedcola1 177770c580 small updates to debug scripts, also log vault balance in ui and native, filter mango accounts by name instead of pubkeys
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-26 10:45:50 +02:00
microwavedcola1 7fbf2b592a fix imports
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-26 10:10:33 +02:00
microwavedcola1 3e44dde696 Merge branch 'main' into dev 2022-08-26 10:09:52 +02:00
microwavedcola1 ab4c0e3de5 reset script
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-26 10:09:36 +02: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 453248bbe5
token_deregister: remove redundant token index and add doc (#192)
* token_deregister: remove redundant token index

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

* fix test

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-25 19:25:56 +02:00
Christian Kamm 38b349a401 Rename PerpOpenOrders -> PerpOpenOrder, since it's a single one 2022-08-24 15:22:55 +02:00
microwavedcola1 b65fb0f630 Merge branch 'main' into dev 2022-08-24 10:17:22 +02:00
microwavedcola1 aae3c32c78
mc/switchboard ts support (#182)
* switchboard oracle v2 parsing

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

* fix

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-24 10:16:43 +02:00
Christian Kamm 2d2cef35a0 Add HealthRegion instructions
You can do
- HealthRegionBegin
- ... mango instructions ...
- HealthRegionEnd

and the account health will only be checked at the start and end
instead of for every instruction.
2022-08-24 10:07:45 +02:00
microwavedcola1 430e7469c4 fix
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-23 16:23:20 +02:00
microwavedcola1 4c4a9cbb73 Small changes for consistency
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-23 16:21:05 +02:00