All Projects → microwavedcola1 → mango-v3-service

microwavedcola1 / mango-v3-service

Licence: other
REST API Service for mango markets version 3

Programming Languages

typescript
32286 projects
python
139335 projects - #7 most used programming language
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to mango-v3-service

guild
Guild - Build Your Guild and award employees with Crypto 💰
Stars: ✭ 3 (-89.66%)
Mutual labels:  solana
expo-solana-wallet
Cross-Platform Solana Wallet built with Expo and Solana/web3.js
Stars: ✭ 122 (+320.69%)
Mutual labels:  solana
spl-token-ui
Interface for creating and managing SPL Tokens
Stars: ✭ 130 (+348.28%)
Mutual labels:  solana
serum-price-api
An easy to use API to know SPL Tokens price.
Stars: ✭ 23 (-20.69%)
Mutual labels:  solana
dex-v4
Orderbook-based on-chain SPL token swap market
Stars: ✭ 36 (+24.14%)
Mutual labels:  solana
kyve
KYVE - A protocol for verified data-streams
Stars: ✭ 51 (+75.86%)
Mutual labels:  solana
raydium-sdk
An SDK for building applications on top of Raydium.
Stars: ✭ 66 (+127.59%)
Mutual labels:  solana
MetaplexMetadata-js
Get the Metaplex Metadata from NFTs with Metaplex standard
Stars: ✭ 48 (+65.52%)
Mutual labels:  solana
solana-web3-demo
a quick demo for solana web3
Stars: ✭ 93 (+220.69%)
Mutual labels:  solana
metaplex-cli
Command line interface for Solana Metaplex programs.
Stars: ✭ 16 (-44.83%)
Mutual labels:  solana
Open Crypto Tracker
Bitcoin / Alts private portfolio tracker, with email / text / alexa / telegram price alerts, charts, leverage support and much more.
Stars: ✭ 59 (+103.45%)
Mutual labels:  solana
Solana.Swift
This is a open source library on pure swift for Solana protocol.
Stars: ✭ 107 (+268.97%)
Mutual labels:  solana
air-support
Airdrop automation tools for Solana from The Skeleton Crew
Stars: ✭ 112 (+286.21%)
Mutual labels:  solana
bonfida-utils
Collection of different utilities in use across various Bonfida projects
Stars: ✭ 22 (-24.14%)
Mutual labels:  solana
timelock-crate
Streamflow Community program (inaptly named) deployed on Solana mainnet.
Stars: ✭ 26 (-10.34%)
Mutual labels:  solana
solana-go-sdk
Solana Golang SDK
Stars: ✭ 162 (+458.62%)
Mutual labels:  solana
nina
a self-publishing protocol for musicians - on solana
Stars: ✭ 27 (-6.9%)
Mutual labels:  solana
arloader
Rust command line application and client for uploading files to Arweave.
Stars: ✭ 79 (+172.41%)
Mutual labels:  solana
swap-ui
React Component for Swapping on the Serum DEX
Stars: ✭ 107 (+268.97%)
Mutual labels:  solana
solana-py
Solana Python SDK
Stars: ✭ 445 (+1434.48%)
Mutual labels:  solana

Introduction

REST and WEBSOCKET API Services for mango markets version 3, and some simple clients and examples. Aimed to follow spec as close as possible to popular exchanges like ftx, etc. Current motivation is to enable traders to bring their existing tools to mango markets.

Note

REST Service requires the user to run a local copy with his/her own private key. An alternative approach which is known and was not taken is to prepare solana transactions in a centrally hosted REST API Service and send them back to the client for signing using their wallet. The advantages of this would be that we could have a centrally hosted service, and would save local hosting, the disadvantages of this would be complicating the REST clients users want to use with solana specific signing code and would need us to ship and maintain clients for various programming languages. Also such a centrally hosted service would then need authorization, authentication, rate limiting, etc. to prevent abuse of the configured RPC node, which so far is not the aim of this project.

WEBSOCKET API currently streams L1, and L2 level orderbook data.

Documentation

See https://microwavedcola1.github.io/mango-service-v3/#tag/default

Directory structure

.
├── README.md
├── mango-service-v3 - REST API Service for mango markets version 3
├── mango-bowl       - WEBSOCKET API Service for L1, L2 orderbook data for mango markets version 3  
└── py               - python3 client for above REST API Service

How to run

  • docker-compose up starts the REST API Service and the WEBSOCKET API Service, and a ngninx reverse proxy
  • The REST API is then available e.g. curl http://localhost/api/wallet/balances
  • the WEBSOCKET API is then available e.g.wscat --connect ws://localhost/ws (note by default the websocket program when run in isolation is available at ws://localhost/v1/ws )

Todos

losely sorted in order of importance/priority

  • rpc node related issues
    • ensure that order has been placed or definitely not placed on the server side
    • some off chain services are used, these might use other nodes, mixing data from various nodes, might be problematic, what if one node is behind?
  • populate still undefined fields in various endpoints
  • todos sprinkled over code
  • when null vs when undefined as return field value,- doublecheck for every endpoint/dto
  • serum-history might be decomissioned, seek replacement
  • technical debt
    • cleanup tsconfig.json
    • add pre commit tools e.g. husky/pre-commit for code formatting and linting

Feedback

so far from beta tasters, from twitter, discord, etc.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].