Commit Graph

209 Commits

Author SHA1 Message Date
microwavedcola1 cae10bcdae Merge branch 'dev' 2022-11-02 11:52:43 +00:00
tjs 62b1944b2f use BN in perp cancel order 2022-11-01 17:37:21 +00:00
tjs 4368b79c03 cancel perp order client fn 2022-11-01 17:19:41 +00:00
silas 9f71cfce4a
eslint 2022-10-18 20:10:20 +01:00
silas 2e23ccaaec
prettier 2022-10-18 20:05:41 +01:00
silas fe1b7ab8e8
prettier changes 2022-10-18 19:48:43 +01: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
Conj0iner f0ae79b0f7 Refactor TS client anchor tests 2022-10-08 17:48:13 +07: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
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 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 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 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
microwavedcola1 dd83aeb156 ts: ALTs integration
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-28 17:09:59 +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
microwavedcola1 8d86883190 ts: remove debug code
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-09-27 17:33:51 +02:00
tjs 0def209608 allow fetching mango account by publickey 2022-09-26 17:12:58 -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
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 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
Christian Kamm 8c91541d12 ts client: Fix serum3DeregisterMarket
The indexReservation arg wasn't passed.
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
tjs 2b96965cc5 use send transaction in client 2022-09-14 01:44:00 -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 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 90630fa3de ts client: Enable accounts to have serum slots by default 2022-09-02 12:24:04 +02:00
Christian Kamm 3b3258769f ts: TokenEdit takes optional arguments 2022-09-02 12:24:04 +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 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
microwavedcola1 4a1865be6c Merge branch 'main' into dev 2022-08-31 11:35:19 +02:00
Christian Kamm e0437305ee SerumPlaceOrder: Only pass the payer bank/vault 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
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 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 17cd3c74c3 extend debug script
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-19 08:41:57 +02:00
microwavedcola1 5e617feb8a Merge branch 'main' into dev 2022-08-18 16:30:38 +02:00
microwavedcola1 443e6e69b2 cleanup
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-18 08:49:07 +02:00
Nicholas Clarke 808f0abde9
Clarkeni/ids from api (#177)
* Fetch ids from api. Use mint public key in client args instead of token name.

Fix tests

Add getFirstBankByMint and getFirstBankByTokenIndex

* prettier

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

* yarn fix

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

* fix usage of service

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

* cleanup

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

* clean up testing scripts

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

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-18 08:48:45 +02:00
Nicholas Clarke 8a1c58e723
FlashLoan: Add flash_loan_type (#164)
Co-authored-by: Christian Kamm <mail@ckamm.de>
2022-08-17 12:36:55 +02:00
Christian Kamm 421b2d3d19 FlashLoan: Fix validation holes
- Pass the group to Begin and End and ensure it is the same.
- Enforce target token accounts can't be group-owned.
- Now End can consistently derive the number of vaults/token accounts.
2022-08-16 13:10:05 +02:00
tjs 2483e7cc18 support passing additional signers to sendTransaction 2022-08-16 01:04:14 -04:00
tjs a9c4f54917 use custom sendTransaction in the client 2022-08-16 00:27:06 -04:00
microwavedcola1 b977556426 fix debug scripts
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-14 13:30:08 +02:00
microwavedcola1 017581e863 fix
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-13 20:51:09 +02:00
microwavedcola1 5221bbd53b Merge branch 'dev'
--wip-- [skip ci]
2022-08-13 19:55:37 +02:00
Christian Kamm ccba4ee597
Cleanups and bugfixes from the audit (#163)
* AccountExpand: cleanups from audit

* Group instructions: cleanups from audit

* AccountClose: cleanups from audit

* TokenAddBank: Audit fixes, including significant bugs

Must not take collected_fees and bump from the existing bank.

* Instruction comment updates

* GroupEdit: Add version/testing flag changes

Ported from mc/vanity
2022-08-13 19:54:58 +02:00
microwavedcola1 41e42da620 debug banks helper script
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-13 19:36:09 +02:00
tjs d68951e77d add custom sendTransaction to support post send callbacks 2022-08-12 17:15:12 -07:00
Christian Kamm 3257017770 ts: client and script fixes 2022-08-10 16:22:56 +02:00
Christian Kamm 29c7d5b45a ts: mb-admin-close script closes all groups for the key 2022-08-10 16:20:23 +02:00
microwavedcola1 5c34b60105 Fix health account builder code
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-10 10:15:28 +02:00
microwavedcola1 d6468082b6 Merge branch 'dev' 2022-08-10 09:08:11 +02:00
microwavedcola1 e0c57af53f some debugging scripts
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-10 07:32:21 +02:00
tjs 85bb7e3a25 add idempotent ata ix to withdraw fn 2022-08-09 18:16:08 -07:00
tjs e2acd28de9 use idempotentata instruction in marginTrade 2022-08-09 15:27:34 -07:00
tjs 49538df6ab skippreflight on accountCreate 2022-08-08 16:14:30 -07:00
microwavedcola1 9ded7ca007 optional args should be sent as null
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-08 21:04:49 +02:00
microwavedcola1 c3b6db4a3c optional args should be sent as null
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-08 21:04:19 +02:00
microwavedcola1 4f72985f2d
also allow editing group insurance fund (#149)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-07 14:16:23 +02:00
microwavedcola1 e06736660a
remove account size, make mango account feature position counts explicit (#148)
* remove account size from program, make position counts explicit

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

* cargo-fix

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-07 14:16:06 +02:00
Nicholas Clarke e4a073c83b
Clarkeni/group logging (#142)
* Add group logging and updateIndexAndRate anchor test
* Bugfix on health account ordering
2022-08-05 10:11:44 -07:00
tjs 1b1dbc0406 add eslint config and fix errors 2022-08-04 14:44:59 -04:00
microwavedcola1 38a5951558
remove extra signers from tokenDeposit, tokenWithdraw, createMangoAccount, liquidation ixs (#141)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-04 17:35:05 +02:00
microwavedcola1 331bb7ebf0 refactor,format
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-04 12:13:36 +02:00
microwavedcola1 f49990339c fix method name
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-04 09:28:18 +02:00
microwavedcola1 327ea8acff extend type
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-04 09:07:32 +02:00
microwavedcola1 cc17f2a95a Merge branch 'dev' 2022-08-04 08:03:59 +02:00
tjs bb8cdd4a8f tokenIndices need to be in order for remaininghealthaccounts 2022-08-04 01:20:03 -04:00
Nicholas Clarke 4f1f4ec84e
Clarkeni/anchor tests (#120)
* Anchor tests
* Liquidation client functions
* Add payer to client functions
2022-08-03 09:05:16 -07:00
microwavedcola1 505cbd48aa fixes from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-03 15:45:10 +02:00
microwavedcola1 e31ad9ce34 token register trustless
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-03 15:45:10 +02:00
microwavedcola1 a7654f43a1 update idl, and fix tsc errors
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-02 11:28:39 +02:00
Christian Kamm 157b322635 ts: fix scripts
- group create
- perp event queue + book side sizes
2022-08-02 09:45:12 +02:00
microwavedcola1 54b8a940f2 rename
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-02 09:38:28 +02:00
microwavedcola1 5c3b2c1189
mc/kill flash loan 1 & 2 and rename flash loan 3 to flash loan (#131)
* remove flash loan 1 & 2

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

* rename flash loan 3 to flash loan

* fix test

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-01 16:55:17 +02:00
microwavedcola1 e8e774a1a4
mc/feature gating (#129)
* feature gating

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

* Fixes from review

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-08-01 12:56:29 +02:00
microwavedcola1 91d59c1918 close insurance vault also
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-07-31 09:57:56 +02:00
microwavedcola1 0c3efe21a9 match latest changes in group creation
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-07-31 09:36:46 +02:00
microwavedcola1 c88297f42e
mc/ts and keeper improvements (#127)
* ts and keeper improvements

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

* remove stray heroku experiments

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

* Fixes from reviews

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-07-31 09:25:11 +02:00
microwavedcola1 0b2e1e6e6c
Mc/realloc 4 (#119)
Realloc + dynamic mango account

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: Christian Kamm <mail@ckamm.de>
2022-07-25 16:07:53 +02:00
Christian Kamm a75e282793 ts: Always increase stack trace limit 2022-07-17 13:26:57 +02:00
microwavedcola1 efed3a03ab Merge branch 'dev' 2022-07-14 08:52:12 +02:00
tjshipe fcf3da0a9b
patch anchor's simulate fn so signing is required for simulation (#106) 2022-07-14 08:42:21 +02:00
microwavedcola1 97d936c9ca attempt to skip wallet approve dialg box - dont sign
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-07-13 18:02:08 +02:00