Go to file
Geoff Taylor 930aaef449 Updated RootBank output rounding (only applies to display). 2021-10-05 11:21:13 +01:00
.vscode Added to_streaming_observable() method to OracleProviders. Added polling observable to Pyth and Serum providers, and websocket observable to FTX provider. 2021-06-13 16:01:36 +01:00
bin Start of work on account calculations. 2021-10-04 18:27:07 +01:00
data Fixed SOL symbol in SOL-PERP. 2021-09-20 18:02:00 +01:00
docs Updated Quickstart to request 1 SOL instead of 10 SOL (new devnet airdrop limit). 2021-09-28 10:13:11 +01:00
mango Updated RootBank output rounding (only applies to display). 2021-10-05 11:21:13 +01:00
meta Added --log-suppress-timestamp parameter. Centralised much CLI argument handling. 2021-09-13 14:05:19 +01:00
scripts Switched random taker oracle to FTX. 2021-09-09 21:41:53 +01:00
tests Added simple RootBank parsing tests. 2021-10-05 10:47:41 +01:00
.dockerignore Debug logging now outputs the version details. 2021-09-30 11:54:43 +01:00
.envrc Moved development commands to 'scripts', so 'bin' is for actual commands. 2021-04-29 10:53:01 +01:00
.flake8 Moved library code to .py files instead of notebooks. 2021-06-07 15:10:18 +01:00
.gitignore Debug logging now outputs the version details. 2021-09-30 11:54:43 +01:00
.mypy.ini Brought up to date for new Group structures. New websocket approach. 2021-07-12 10:57:05 +01:00
Dockerfile Updates to allow some market making on Serum. 2021-07-13 20:01:32 +01:00
LICENSE Initial import. 2021-04-14 16:51:39 +01:00
Makefile Updated Makefile to be able to build latest or experimental docker images. 2021-08-23 15:40:51 +01:00
README.md Updated README now that V3 code is in main. 2021-08-30 15:52:34 +01:00
ShowAccount.ipynb Updated notebooks. Fixed ones that could be fixed, removed ones that require functionality not in V3. 2021-09-09 09:51:41 +01:00
ShowGroup.ipynb Updated notebooks. Fixed ones that could be fixed, removed ones that require functionality not in V3. 2021-09-09 09:51:41 +01:00
ShowMangoAccount.ipynb Updated notebooks. Fixed ones that could be fixed, removed ones that require functionality not in V3. 2021-09-09 09:51:41 +01:00
requirements.txt Added base64+zstd as a compression option for encoding. 2021-09-15 20:44:28 +01:00
setup.py Moved library code to .py files instead of notebooks. 2021-06-07 15:10:18 +01:00

README.md

🥭 Mango Explorer

⚠ Warning

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Run these notebooks on Binder: Binder

Introduction

I am not yet confident in the figures and calculations. Please don't rely on this code yet!

There are some notebook pages to explore Mango account structures for your own accounts.

There is also a functional liquidator (in the V2 branch) and a functional marketmaker (in the main branch).

Running the marketmaker

There is a Marketmaking Quickstart - a walkthrough of setting up and running the marketmaker, from setting up the account, depositing tokens, to running the marketmaker itself.

It can take around 30 minutes to run through.

Requirements:

  • A server with docker installed

Note This walkthrough is devnet-only so no actual funds are used or at-risk.

Running the liquidator

There is a Liquidator Quickstart - a walkthrough of setting up and running the liquidator, from creating the account, 'balancing' the wallet across the different tokens, and running the liquidator itself.

It can take around 30 minutes to run through.

Requirements:

  • A server with docker installed
  • Some SOL to pay for transactions
  • Some USDC to fund the liquidation wallet

Note This is only for liquidating Mango V2. There is no Python V3 liquidator for Mango here (yet).

References

Support

You can contact me @OpinionatedGeek on Twitter.