Coder Social home page Coder Social logo

solnet.serum's Introduction

GitHub Workflow Build Status (master) Coverage Status Code License Follow on Twitter Discord

What is Solnet.Serum?

Solnet is Solana's .NET integration library, a number of packages that implement features to interact with Solana from .Net applications.

Solnet.Serum is a package within the same Solnet. namespace that implements a Client for Serum, this project is in a separate repository so it is contained, as the goal for Solnet was to be a core SDK.

Features

  • Decoding of Serum data structures:
    • Market
    • OpenOrdersAccount
    • Slabs, which are used for order book data stored under OrderBookSide and OrderBook which holds both sides
    • EventQueue (Event data, used to process and filter for TradeEvents)
  • SerumProgram instructions implemented:
    • NewOrderV3
    • CancelOrderV2
    • CancelOrderByClientIdV2
    • SettleFunds
    • ConsumeEvents
    • InitOpenOrders
    • CloseOpenOrders
    • Prune
  • SerumClient class which allows to:
    • Get these structures and decode them only by having their address
    • Subscribing to these accounts in real time, getting notifications with their decoded structures
  • MarketManager class which has:
    • Various overloads of NewOrder, NewOrders, CancelOrder and CancelAllOrders, these:
      • craft a transaction or several transactions, in the case where they interact with several orders
      • request a signature using the defined delegate method
      • submit the transaction to the cluster
      • and subscribe to the confirmation of the signature, notifying the user when it happens
      • if the transaction is subject to a custom error defined by the Serum Program here, it is parsed into the appropriate SerumProgramError enum value
  • Factory patterns for both ISerumClient and IMarketManager

Requirements

  • net 5.0

Dependencies

  • Solnet.Rpc v0.4.9
  • Solnet.Wallet v0.4.9
  • Solnet.Programs v0.4.9

Examples

The Solnet.Serum.Examples project features some examples on how to use both the IMarketManager and the ISerumClient, these examples include:

  • Streaming market data directly into user-friendly values using the IMarketManager interface
  • Submitting new orders and cancelling existing ones

Contribution

We encourage everyone to contribute, submit issues, PRs, discuss. Every kind of help is welcome.

Contributors

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE file for details

solnet.serum's People

Contributors

hoakbuilds avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.