* point to serum dex upstream for now; add in max_ts for PlaceSpotOrder and PlaceSpotOrder2; DOES NOT COMPILE UNTIL OUR SERUM DEX FORK IS UPDATED
* point to blockworks-foundation version of serum-dex
* add serum_dex.so from anchor build registry; fix initialize market in tests; tests still don't pass because of liquidate_token_and_token
* fixed tests breaking because of new fees in serum dex
* got rid of compile warnings in tests; made tests run faster
* implementing cancel all spot orders instruction
* solving formatting issues
* Adding limit as argument, adding checks on root bank
* fixing format
* minor ident changes and adding a check on progId
* Test: Add one calling ConsumeEvents for 10 pending events
To check that the maximum number of events configured by that
instruction can be processed without running out of compute or memory.
* Avoid log-related heap allocation in ConsumeEvents
- rename mango_emit to mango_emit_heap, so callers know it'll put lots
of data on the heap
- introduce mango_emit_stack which allocates fixed-size buffers on the
stack
- introduce mango_emit_buffers which allows users to manage buffers
themselves
* ConsumeEvents: Increase events limit back to 8
The memory bottleneck has been resolved. Compute for 8 events is at
around 120k CU.
* fixup! Avoid log-related heap allocation in ConsumeEvents
Add comment about solana allocator
* first draft of ref link implementation
* partial implementation of ref fee; does not compile; do not run
* implemented instructions; moved all the ref logic into matching.rs
* Added SetReferrerMemory instruction as a useful instruction for UI
* CI: Soteria performance improvements
* Prompt job run
* Prompt cached re-run
* Dd/pyth status (#127)
* accept Unknown status for pyth oracle
* accept Unknown status for pyth oracle
* Pyth status check temporarily removed to let people use accounts with COPE
Co-authored-by: dd <dafydd.durairaj@gmail.com>
* first draft of ref link implementation
* partial implementation of ref fee; does not compile; do not run
* implemented instructions; moved all the ref logic into matching.rs
* add register_referrer_id
* taker fees apply at time of trade, not on event queue
* if referrer mango account is invalid, don't error
* do price limit check only if post_allowed
* reflinks logging
* add referree_mango_account to ReferralFeeAccrualLog
* moved referrer_mango_account_ai to end of the array
* make seed_and_create_pda return MangoError
* debug msg in seed_and_create_pda
* removed debug msg
* review changes
* add back pyth status check
* add taker fees to perp health simulation
* limit consume_events to 6 after adding the logging
* add parens
* ref_surcharge_centibps >= ref_share_centibps
Co-authored-by: dd <dafydd.durairaj@gmail.com>
Co-authored-by: silas <95582913+silas-x@users.noreply.github.com>
Co-authored-by: dafyddd <daffy321@gmail.com>
Co-authored-by: Nicholas Clarke <nicholasgclarke@gmail.com>
An extra account can be passed to
- create_mango_account
- create_spot_open_orders
which will take the lamport cost for creating the new account.
If you want to compose on mango and have a PDA account as an owner, it's
impossible to also use it as a payer because accounts with data cannot
pay for PDA creation.
* Add instructions for closing a mango account
* Check owner account is signer
* Use checked functions to load mango accounts
* add wip create_dust_account and resolve_dust
* Make resolve_dust fail silently
* Add max account checking
* Add upgrade mango account instruction
* Update version
* Run cargo fmt
* Fix instruction number, make owner read, fix padding
* added cancel_all_side functions to mathcing
* added cancel_perp_orders_side; haven't tested
* added not_upgradable flag to MangoAccount and amended InitMangoAccount to set that flag to true.
* logging for cancel all perp orders; get_complete_base_pos for reduce only check
* complete_base_pos for trigger order exec as well
* added changelog
* fixed check enter bankruptcy bug
* added deploy time
* merged in v3.2.12 and updated cancel_side to do logging
* Most code review changes, check dust account health
* Remove whitespace
* changed dust_account owner to admin
* make resolve_dust not take in OpenOrders for DustAccount because it doesn't have any; Add more checks for MangoAccount in resolve_dust
* merged in main v3.2.13
* do in_margin_basket check in CloseSpotOpenOrders
* do in_margin_basket check in CloseSpotOpenOrders
* small edits to errors
* upgrade anchor and packages
* added some additional info to PlacePerpOrder in instruction.rs
* mc/add alternative authority which cant withdraw (#97)
* Support account delegation, delegate should be able to trade, but not withdraw assets to his own wallet
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* comment
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* comment
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* comment
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* newline
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* bump solana in tests
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* cargo-fmt
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* bump rust
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* fix solana verison
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* linter
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* note
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* typo
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* changed name from alternative_authority to delegate to be consistent with Solana naming and more accurate
Co-authored-by: dd <dafydd.durairaj@gmail.com>
* Fixes from code review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* Tests: Fix program log output
The log scope for these changed in solana 1.9
* Remove unnecessary owner check
* fix: remove not used account from ix interface spec
* Fix instruction builder, owner will pay, and his lamports would need to be adjusted
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* implement price limit in place_spot_order and place_spot_order2
* remove print
* CI: add apt-get update (#116)
Installing libudev-dev failed
* README: Document branches (#114)
* remove a todo; cleanup devnet_deploy.sh
* mc/change spot market params (#110)
* Soteria and Cargo Audit Automation (#106)
* Create audit.toml
Cargo audit configuration file
* Create ci-cargo-audit.yml
Action to build and run cargo audit using arguments from the .cargo/audit.toml file
* Update and rename program.yml to ci-lint-test.yml
Minor name changes and addition of Soteria
* Update ci-lint-test.yml
update environment settings
* Update ci-lint-test.yml
adding apt-get update as the job fails to find packages
* Update ci-cargo-audit.yml
* Ignore tokio upstream vuln
Reported to Solana for upstream patching
* impose price limits (#108)
* impose price limits
* update deploy time
Co-authored-by: dd <dafydd.durairaj@gmail.com>
* checked math in all areas touched by place_perp_order (#109)
* checked math in all areas touched by place_perp_order
* update deploy time
* update deploy time
Co-authored-by: dd <dafydd.durairaj@gmail.com>
* change_spot_market_params
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* linter
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* in ci, perform apt-get update to prevent failure to install apt packages
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* fix from review
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* remove a todo; cleanup devnet_deploy.sh
Co-authored-by: silas <95582913+silas-x@users.noreply.github.com>
Co-authored-by: dafyddd <daffy321@gmail.com>
Co-authored-by: dd <dafydd.durairaj@gmail.com>
* fix integer overflow issue in get_total_native_borrow
* update changelog.md
* optimize create_dust_account
* added some checked math in execute_perp_trigger_order where dealing with bids_quantity
* Do pyth price filtering only on mainnet
* Add CreateSpotOpenOrders
* add tests for CreateSpotOpenOrders
* upgrade anchor version to 0.20.1
* update deploy time
Co-authored-by: Riordan Panayides <riordan@panayid.es>
Co-authored-by: dd <dafydd.durairaj@gmail.com>
Co-authored-by: microwavedcola1 <89031858+microwavedcola1@users.noreply.github.com>
Co-authored-by: microwavedcola1 <microwavedcola@gmail.com>
Co-authored-by: Christian Kamm <mail@ckamm.de>
Co-authored-by: Jakob Povšič <jakob.povsic@gmail.com>
Co-authored-by: silas <95582913+silas-x@users.noreply.github.com>
* implemented reduce_only and market order for PlacePerpOrder; untested
* added root bank cache valid check under MangoCache
* fixed the root bank cache function and made it compiling
* added some stuff during live stream. still not finished
* Cache validation moved to impl
* All cache validations moved to appropriate struct implementations
* Increase valid_interval for RootBankCache check
* implemented place_spot_order2; still not finished reducing size of the tx
* more progress on place_spot_order2
* finished implementing place_spot_order2
* intermediate work on advanced orders
* compiling and deployed to devnet; advanced orders still unfinished
* changed get_spot_val to use Option for open_orders; more work on advanced orders but not completed
* added testi80f48 into placespotorder2
* removed test_i80f48; removed rent_ai into invoke_place_order
* removed test_i80f48; removed rent_ai into invoke_place_order
* cleaned up compiler warnings
* use serum order v3 serialization
* add perp stop order instruction
* implement correctly register order
* connect instructions with impl
* changed name to PerpTriggerOrder. Still need to implement RemovePerpTriggerOrder and test;
* Added RemoveAdvancedOrder and rearranged some of the instruction discriminants
* remove perp trigger order instruction
* Fix pda_signer_seeds
* fixed borrow issue in AddPerpTriggerOrder
* Move transfer_lamports
* fix accounts comment
* fixed borrow checker issue in execute adv order; added signed version of transfer lamports
* added order_type into LeafNode to help with trading view order movement
* fixed issues with transfering lamports so now RemoveAdvancedOrder works
* added some TODOs for logs; added simulation of perp order to prevent exploits in ExecutePerpTriggerOrder
* added exp to liquidity mining params
* Replaced json logging of FillEvent with borsh serialized LoggableFillEvent base64 encoding
* Added accounts to logs where necessary (mango_group_pk, liqee, liqor). Fixed malformed json. Added logging to cache_perp_markets. Made 'init_health above zero' an error'.
* updated the LoggableFillEvent
* revert throwing zero on 'Account init_health above zero'
* Added accounts to logs where necessary (mango_group_pk, liqee, liqor)… (#55)
* Added accounts to logs where necessary (mango_group_pk, liqee, liqor). Fixed malformed json. Added logging to cache_perp_markets. Made 'init_health above zero' an error'.
* revert throwing zero on 'Account init_health above zero'
* fixed liquidate_perp_market log
* fixed zero open interest bug in perp bankruptcy
* fixed zero open interest bug in perp bankruptcy
* added anchor events framework in mango-logs directory. See the README on how to use it.
* added stubs for all the logs that need to be replaced
* Added mango group to FillLog and added cache prices log, CacheRootBanksLog
* added support for all logs; added OpenOrdersBalanceLog as well whereever OpenOrders changes
* Added PostOnlySlide
* fixed PostOnlySlide
* added MngoAccrual
* added MngoAccrualLog
* rearrange
* removed reduce_only restriction on AddPerpTriggerOrder
* added msg into exec perp trigger
* fixed check in ExecutePerpTriggerOrder
* Fix test build: don't require &'a [AccountInfo<'a>] lifetimes (#59)
It's sufficient to propagate the lifetimes on
checked_unpack_open_orders.
* Add log events for deposit, withdraw and redeem mngo (#58)
* updated I80F48 to u64 in new log structs
* Fix serialization of instructions (#60)
Now it matches what MangoInstruction::unpack() expects.
- Side, OrderType, AssetType, TriggerCondition are serialized into u8
- the Option fields in ChangePerpMarketParams have a fixed width
* merged in changes from main
* Update serum-dex program fixture to 0.4.0
Built from 1be91f2863d8ecede32daaae7e768034e24bbc79
* quantity == u64::max in withdraw now withdraws max possible (if allow borrow false)
* UpdateFunding now caches funding; new UpdateFundingLog
* Add perp trigger order unittests (#61)
* Fix sim_new_bid/ask when the book is empty
* Add first perp trigger order unittest
This test only runs with "cargo test-bpf" as the non-bpf runtime does
not allow creation of pda accounts.
- Test users are now owned by the system program, not by themselves
- MangoProgramTest::process_transaction no longer always returns success
(must check for error; all existing users do)
* Test: Add perp trigger order test around health
* Minor fixes to mango-logs (#63)
* Add mango-logs to Anchor.toml
* mango-logs: Disable doctests
There's nothing to test and they fail spuriously with an ambiguity error
on the mango_logs program.
* Add github actions CI workflow (#64)
* Apply rustfmt
To allow the formatting lint CI job to pass
* Add github actions CI workflow
Adapted from https://github.com/solana-labs/dapp-scaffold
Co-authored-by: dafyddd <daffy321@gmail.com>
* updated github workflows
* added max_withdrawable utility function in processor.rs
* moved max_withdrawable into MangoAccount and now also uses existing deposits
* Added market index to FillLog
* removed some debug logging in execute trigger order
* added the deploy time for v3.1
Co-authored-by: dd <dafydd.durairaj@gmail.com>
Co-authored-by: Ralfs <lagzda7@inbox.lv>
Co-authored-by: Tyler Shipe <tjshipe@gmail.com>
Co-authored-by: Maximilian Schneider <mail@maximilianschneider.net>
Co-authored-by: Riordan Panayides <riordan@panayid.es>
Co-authored-by: root <nicholasgclarke@gmail.com>
Co-authored-by: Christian Kamm <ckamm@delightful-solutions.de>
* add spot/perp market without index but with oracle pk
* cleaned up the checks a little in AddPerpMarket and AddSpotMarket
* ralfs/test assertions v2 (#49)
* More precise assertions for spot
* add spot/perp market without index but with oracle pk (#48)
* add spot/perp market without index but with oracle pk
* cleaned up the checks a little in AddPerpMarket and AddSpotMarket
Co-authored-by: dd <dafydd.durairaj@gmail.com>
* Assertions cleaner
* Updated assertion code
Co-authored-by: Maximilian Schneider <mail@maximilianschneider.net>
Co-authored-by: dd <dafydd.durairaj@gmail.com>
* Remove compiler warning
Co-authored-by: Maximilian Schneider <mail@maximilianschneider.net>
Co-authored-by: dd <dafydd.durairaj@gmail.com>
Co-authored-by: Ralfs <lagzda@users.noreply.github.com>
Co-authored-by: Ralfs <lagzda7@inbox.lv>
* cleaned up socialized loss; forcing caching in the update root bank instruction now
* Added bankruptcy check to ForceSettleQuotePositions
* deprecated FSQP
Co-authored-by: dd <dafydd.durairaj@gmail.com>
* Moved from u64 to f64 for price and size types
* Rewrote match spot order scenario to conform to the rest of scenarios
* Assertions modularized and consume_perp_events
* Tests on new program
* Adjust the assertion code to work with new layouts
* Test interest rates
* Removed ralfs tests
* Clean up of new tests
* Coompiler warning cleanup
Co-authored-by: Ralfs <lagzda7@inbox.lv>
Co-authored-by: dd <dafydd.durairaj@gmail.com>
* Moved from u64 to f64 for price and size types
* Rewrote match spot order scenario to conform to the rest of scenarios
* Assertions modularized and consume_perp_events
* Tests on new program
* Adjust the assertion code to work with new layouts
* Test interest rates
* Removed ralfs tests
Co-authored-by: Ralfs <lagzda7@inbox.lv>
* reorganized and added Anchor.toml and cargo workspace to top level
* Added proper anchor file with solana version
Co-authored-by: dd <dafydd.durairaj@gmail.com>
* Test spot order matching and init liq testing
* Test liquidate_token_and_token
* Rewrite into cookies
* settle_funds test fix
* Removed <Option> from mango_group_cookie
* Removed the Option wrappers where unnecessary for cookies
* Clean up compiler warnings
* Liq test rewrite, added scenarios
* Some more rewrites
* Worst case test with fractions, 10 spot orders and 15 perp orders
* Increment order_id in the test cookie
* Corrected max_coin_qty for spot_order tests
* More readability improvements
* Started rewriting HealthCache again as HealthCache2
* Wrote new more efficient HealthCache and updated place_spot_order
* Fixed liquidate_token_and_token to use new HealthCache method; compiles but is untested
* Added open orders checks everywhere in processor.rs
Co-authored-by: Ralfs <lagzda7@inbox.lv>
Co-authored-by: dd <dafydd.durairaj@gmail.com>
* maker and taker both executing async on event queue now
* Updated liquidate function to properly update open interest
* implemented socialize loss for perp market bankruptcy
* implemented socialize loss for perp market bankruptcy
* implemented settle_fees; upgraded to 1.7.3
* resolve_token_bankruptcy done
* moved interest rate function params into RootBank and added set_rate_params
* Added dao vault to init_mango_group
* added force_cancel_spot_orders
* Wire up liquidate instructions, fix compiler warning
* Added force cancenl perp orders; fixed stack error with inline(never)
* fixed withdraw function
* fixed set_rate_params
* Took out the '***' markers. Incomplete list of changes:
settle borrow is gone
borrow is gone
interest rate params are now stored on root bank
add spot market params changed
add perp market params changed
fees added to PerpMarketInfo
perp cancel order accounts changed
perp cancel order by client id accounts changed
InitMangoGroup accounts + params changed
* Helper functions
* Add new liquidation instructions to the list
* Remove todos
* Added in liquidity incentive fields into PerpMarket, FillEvent and PerpOpenOrders; plumbing unfinished
* Working but apply_incentives still not working
* Implemented apply incentives for cancel perp order functions; Still no tests
* Added liquidity incentive params to add_perp_market instruction
* init_perp_market, deposit, place_and_cancel
* Deposit implemented
* Test deposits re-implemented
* remove logs
* Testing place perp order
* merged in ralfs
* fixed consume events
* Fix tests to work with changes, create mngo and msrm mints in localnet
* Scenarios for place and cancel orders
* Add all spot markets to mango group
* added test_compute
* removed print statements to improve compute
* OO inits as Bids
* added some tx size optimization ideas
* added fast mul for unsigned I80F48
* started implementing Fast fixed point library
* Place spot order test working
* Code cleanup for previous
* Worst case scenario test
* Clock implemented
* started pushing in FI80F48
* Fix add oracle test bug
* Mint order fix
* 31 spot open orders test working
* 32 deposits, 31 spot open orders test
* cleaned up get_health and adding logging options for tests
* Perps added to test
* do an active_asset check on perp market before calculating health for it
* bunch of stuff
* Mint fixes
* uncommented perps
* clean up
* Fix duplicate borrows
* Resolve compiler warnings
* Massive cleanup of the tests
* fixed place perp order with reduce_only
* Massive cleanup of the tests part 2
* updated naming of fastmath checked ops
* updated liquidate token and token with optimizations
* optimized bankruptcy and liquidation functions
* wip to get fraction deposits
* not compiling; llvm intrinsics error
* removed llvm stuff
* Tests with fractions
* AddPerpMarket instruction changed
PerpMarket layout changed substantially
EventQueueHeader layout increased by 32 bytes to hold fee info
MangoGroup add 64 bytes padding at the end for expansions
MangoAccount add 32 byte buffer for info; add extra 64 byte padding at end for expansions
CancelPerpOrder and CancelPerpOrderByClientId now take in perp_market_ai as write
InitSpotOpenOrders instruction added and placeSpotOrder does not implicitly initialize an OpenOrders account. Look at mango-client-v3 in placeSpotOrder method to see new way to call
* AddPerpMarket instruction changed
PerpMarket layout changed substantially
EventQueueHeader layout increased by 32 bytes to hold fee info
MangoGroup add 64 bytes padding at the end for expansions
MangoAccount add 32 byte buffer for info; add extra 64 byte padding at end for expansions
CancelPerpOrder and CancelPerpOrderByClientId now take in perp_market_ai as write
InitSpotOpenOrders instruction added and placeSpotOrder does not implicitly initialize an OpenOrders account. Look at mango-client-v3 in placeSpotOrder method to see new way to call
MAX_TOKENS=16
Co-authored-by: dd <dafydd.durairaj@gmail.com>
Co-authored-by: Riordan Panayides <riordan@panayid.es>
Co-authored-by: Ralfs <lagzda7@inbox.lv>
* maker and taker both executing async on event queue now
* Updated liquidate function to properly update open interest
* implemented socialize loss for perp market bankruptcy
* implemented socialize loss for perp market bankruptcy
* implemented settle_fees; upgraded to 1.7.3
* resolve_token_bankruptcy done
* moved interest rate function params into RootBank and added set_rate_params
* Added dao vault to init_mango_group
* added force_cancel_spot_orders
* Wire up liquidate instructions, fix compiler warning
* Added force cancenl perp orders; fixed stack error with inline(never)
* fixed withdraw function
* fixed set_rate_params
* Took out the '***' markers. Incomplete list of changes:
settle borrow is gone
borrow is gone
interest rate params are now stored on root bank
add spot market params changed
add perp market params changed
fees added to PerpMarketInfo
perp cancel order accounts changed
perp cancel order by client id accounts changed
InitMangoGroup accounts + params changed
* Helper functions
* Add new liquidation instructions to the list
* Remove todos
* Added in liquidity incentive fields into PerpMarket, FillEvent and PerpOpenOrders; plumbing unfinished
* Working but apply_incentives still not working
* Implemented apply incentives for cancel perp order functions; Still no tests
* Added liquidity incentive params to add_perp_market instruction
* init_perp_market, deposit, place_and_cancel
* Deposit implemented
* Test deposits re-implemented
* remove logs
* Testing place perp order
* merged in ralfs
* fixed consume events
* Fix tests to work with changes, create mngo and msrm mints in localnet
* Scenarios for place and cancel orders
* Add all spot markets to mango group
* added test_compute
* removed print statements to improve compute
* OO inits as Bids
* added some tx size optimization ideas
* added fast mul for unsigned I80F48
* started implementing Fast fixed point library
* Place spot order test working
* Code cleanup for previous
* Worst case scenario test
* Clock implemented
* started pushing in FI80F48
* Fix add oracle test bug
* Mint order fix
* 31 spot open orders test working
* 32 deposits, 31 spot open orders test
* cleaned up get_health and adding logging options for tests
* Perps added to test
* do an active_asset check on perp market before calculating health for it
* bunch of stuff
* Mint fixes
* uncommented perps
* clean up
* Fix duplicate borrows
* Resolve compiler warnings
* Massive cleanup of the tests
* fixed place perp order with reduce_only
* Massive cleanup of the tests part 2
* updated naming of fastmath checked ops
* updated liquidate token and token with optimizations
* optimized bankruptcy and liquidation functions
* wip to get fraction deposits
* not compiling; llvm intrinsics error
* removed llvm stuff
* Tests with fractions
* AddPerpMarket instruction changed
PerpMarket layout changed substantially
EventQueueHeader layout increased by 32 bytes to hold fee info
MangoGroup add 64 bytes padding at the end for expansions
MangoAccount add 32 byte buffer for info; add extra 64 byte padding at end for expansions
CancelPerpOrder and CancelPerpOrderByClientId now take in perp_market_ai as write
InitSpotOpenOrders instruction added and placeSpotOrder does not implicitly initialize an OpenOrders account. Look at mango-client-v3 in placeSpotOrder method to see new way to call
* AddPerpMarket instruction changed
PerpMarket layout changed substantially
EventQueueHeader layout increased by 32 bytes to hold fee info
MangoGroup add 64 bytes padding at the end for expansions
MangoAccount add 32 byte buffer for info; add extra 64 byte padding at end for expansions
CancelPerpOrder and CancelPerpOrderByClientId now take in perp_market_ai as write
InitSpotOpenOrders instruction added and placeSpotOrder does not implicitly initialize an OpenOrders account. Look at mango-client-v3 in placeSpotOrder method to see new way to call
MAX_TOKENS=16
* merged in main; test-bpf worst_case_scenario still doesn't work; ready for mergin into main
Co-authored-by: dd <dafydd.durairaj@gmail.com>
Co-authored-by: Riordan Panayides <riordan@panayid.es>
Co-authored-by: Ralfs <lagzda7@inbox.lv>
* maker and taker both executing async on event queue now
* Updated liquidate function to properly update open interest
* implemented socialize loss for perp market bankruptcy
* implemented socialize loss for perp market bankruptcy
* implemented settle_fees; upgraded to 1.7.3
* resolve_token_bankruptcy done
* moved interest rate function params into RootBank and added set_rate_params
* Added dao vault to init_mango_group
* added force_cancel_spot_orders
* Wire up liquidate instructions, fix compiler warning
* Added force cancenl perp orders; fixed stack error with inline(never)
* fixed withdraw function
* fixed set_rate_params
* Took out the '***' markers. Incomplete list of changes:
settle borrow is gone
borrow is gone
interest rate params are now stored on root bank
add spot market params changed
add perp market params changed
fees added to PerpMarketInfo
perp cancel order accounts changed
perp cancel order by client id accounts changed
InitMangoGroup accounts + params changed
* Helper functions
* Add new liquidation instructions to the list
* Remove todos
* Added in liquidity incentive fields into PerpMarket, FillEvent and PerpOpenOrders; plumbing unfinished
* Working but apply_incentives still not working
* Implemented apply incentives for cancel perp order functions; Still no tests
* Added liquidity incentive params to add_perp_market instruction
* init_perp_market, deposit, place_and_cancel
* Deposit implemented
* Test deposits re-implemented
* remove logs
* Testing place perp order
* merged in ralfs
* fixed consume events
* Fix tests to work with changes, create mngo and msrm mints in localnet
* Scenarios for place and cancel orders
* Add all spot markets to mango group
* added test_compute
* removed print statements to improve compute
Co-authored-by: dd <dafydd.durairaj@gmail.com>
Co-authored-by: Riordan Panayides <riordan@panayid.es>
Co-authored-by: Ralfs <lagzda7@inbox.lv>