/kraken

Kraken exchange API

Primary LanguageHaskellMIT LicenseMIT

Kraken

Haskell bindings to the Kraken API.

Early stage work in progress.

To do

  • Return types for all services
    • Time
    • Assets
    • AssetPairs
    • Ticker
    • OHLC
    • Depth
    • Trades
    • Spread
    • Balance
    • TradeBalance
    • OpenOrders
    • ClosedOrders
    • QueryOrders
    • TradeHistory
    • QueryTrades
    • OpenPosition
    • Ledgers
    • QueryLedgers
    • TradeVolume
    • AddOrder
    • CancelOrder
  • Add 'options' to field names for Options data types
  • Add underscore prefix to field names (for lens derivation)
  • Resolve duplication in private user data functions (first attempt failed due to difficulty in factoring out Proxy's)
  • Extract common functionality in JSON parsers
  • Env vars for api keys: handle read failure, maybe use an env var library (e.g. envy), make optional (for public services)
  • Enforce non-empty lists for relevant requests (e.g. query trades?)
  • Prefix enums with enum name
  • Untyped requests
  • Restrict OHLC bar intervals
  • Handle 'since' / 'last' - JSON can be number or string
  • Add tests
  • Add benchmarks
  • Develop kraken executable into a full command-line tool
  • Logging
  • Newtypes for amounts, etc.
  • Documentation
  • Items marked with a 'TBC' comment in code
  • Test optional PositionInfo on TradeHistory
  • TxnId -> RefId