packages feed

solana-haskell-sdk-1.2.0.0: solana-haskell-sdk.cabal

cabal-version:   3.0
name:            solana-haskell-sdk
version:         1.2.0.0
synopsis:        Solana SDK: transaction building, signing, program clients, and JSON-RPC.
homepage:        https://github.com/mariusgeorgescu/solana-haskell-sdk
bug-reports:     https://github.com/mariusgeorgescu/solana-haskell-sdk/issues

-- A longer description of the package.
description:
  This library includes features like key generation and management,
  transaction and instruction construction, and a JSON-RPC API client.

  This library is aimed at developers building Solana dApps, tools, or infrastructure in Haskell.

  All serialization is verified byte-for-byte against the official Rust SDK by golden-vector tests.

license:         Apache-2.0
license-file:    LICENSE
author:          Marius Georgescu
maintainer:      georgescumarius@live.com
copyright:       2024 Marius Georgescu
category:        Blockchain, Web3, Solana
build-type:      Simple
tested-with:     GHC ==9.6.7

-- Extra doc files to be distributed with the package, such as a CHANGELOG or a README.
extra-doc-files:
  CHANGELOG.md
  README.md

-- Extra source files to be distributed with the package, such as examples, or a tutorial module.
extra-source-files:
  test/fixtures/*.json

flag integration
  description:
    Build the local-validator integration test suite. Off by default so that
    building this package's tests needs no WebSocket dependency and no running
    validator; see the Integration tests section of the README.

  default:     False
  manual:      True

common warnings
  ghc-options: -Wall

library
  -- Import common warning flags.
  import:           warnings

  -- Modules exported by the library.
  exposed-modules:
    Network.Solana.Constants
    Network.Solana.Core.Account
    Network.Solana.Core.Block
    Network.Solana.Core.Borsh
    Network.Solana.Core.Compact
    Network.Solana.Core.Crypto
    Network.Solana.Core.Instruction
    Network.Solana.Core.Message
    Network.Solana.Core.Pda
    Network.Solana.Core.Transaction
    Network.Solana.Core.VersionedMessage
    Network.Solana.Metaplex.TokenMetadata
    Network.Solana.NativePrograms.AddressLookupTable
    Network.Solana.NativePrograms.BpfLoaderUpgradeable
    Network.Solana.NativePrograms.ComputeBudget
    Network.Solana.NativePrograms.Secp256k1
    Network.Solana.NativePrograms.Stake
    Network.Solana.NativePrograms.SystemProgram
    Network.Solana.NativePrograms.Vote
    Network.Solana.SplPrograms.AssociatedTokenAccount
    Network.Solana.SplPrograms.Memo
    Network.Solana.SplPrograms.Token
    Network.Solana.RPC.HTTP.Account
    Network.Solana.RPC.HTTP.Block
    Network.Solana.RPC.HTTP.Chain
    Network.Solana.RPC.HTTP.Ledger
    Network.Solana.RPC.HTTP.Token
    Network.Solana.RPC.HTTP.Tokenomics
    Network.Solana.RPC.HTTP.Transaction
    Network.Solana.RPC.HTTP.Types
    Network.Solana.RPC.WebSocket
    Network.Solana.SolanaWeb3
    Network.Solana.Sysvar

  -- Modules included in this library but not exported.
  -- other-modules:

  -- LANGUAGE extensions used by modules in this package.
  -- other-extensions:

  -- Other library packages from which modules are imported.
  build-depends:
    , aeson               ^>=2.2
    , base                ^>=4.18.0.0
    , base58-bytestring   ^>=0.1
    , base64              ^>=1.0
    , binary              ^>=0.8
    , bytestring          ^>=0.11
    , containers          ^>=0.6
    , crypton             ^>=1.0
    , ed25519             ^>=0.0.5
    , either              ^>=5.0
    , extra               ^>=1.8
    , jsonrpc-tinyclient  ^>=1.1
    , memory              ^>=0.18
    , mtl                 ^>=2.3
    , text                ^>=2.0
    , vector              ^>=0.13
    , web3                ^>=1.1

  -- Directories containing source files.
  hs-source-dirs:   src

  -- Base language which the package is written in.
  default-language: GHC2021

executable solana-haskell-sdk
  -- Import common warning flags.
  import:           warnings

  -- .hs or .lhs file containing the Main module.
  main-is:          Main.hs

  -- Modules included in this executable, other than Main.
  -- other-modules:    Demos

  -- LANGUAGE extensions used by modules in this package.
  -- other-extensions:

  -- Other library packages from which modules are imported.
  build-depends:
    , base                ^>=4.18.0.0
    , solana-haskell-sdk
    , web3-provider       ^>=1.1

  -- Directories containing source files.
  hs-source-dirs:   app

  -- Base language which the package is written in.
  default-language: GHC2021

test-suite solana-haskell-sdk-test
  import:           warnings
  default-language: GHC2021
  type:             exitcode-stdio-1.0
  hs-source-dirs:   test
  main-is:          Main.hs
  other-modules:
    Test.Core.Account
    Test.Core.Block
    Test.Core.Borsh
    Test.Core.Compact
    Test.Core.Crypto
    Test.Core.Instruction
    Test.Core.Message
    Test.Core.Pda
    Test.Core.VersionedMessage
    Test.Fixtures
    Test.Metaplex.TokenMetadata
    Test.NativePrograms.AddressLookupTable
    Test.NativePrograms.BpfLoaderUpgradeable
    Test.NativePrograms.ComputeBudget
    Test.NativePrograms.Secp256k1
    Test.NativePrograms.Stake
    Test.NativePrograms.SystemProgram
    Test.NativePrograms.Vote
    Test.RPC.Chain
    Test.RPC.Parsers
    Test.RPC.WebSocket
    Test.SplPrograms.AssociatedTokenAccount
    Test.SplPrograms.Memo
    Test.SplPrograms.Token
  build-depends:
    , aeson               ^>=2.2
    , base                ^>=4.18.0.0
    , base16-bytestring   ^>=1.0
    , binary              ^>=0.8
    , bytestring          ^>=0.11
    , containers          ^>=0.6
    , solana-haskell-sdk
    , tasty               ^>=1.5
    , tasty-hunit         ^>=0.10
    , tasty-quickcheck    ^>=0.11
    , text                ^>=2.0

test-suite integration-tests
  import:           warnings
  default-language: GHC2021
  type:             exitcode-stdio-1.0
  hs-source-dirs:   test-integration
  main-is:          Main.hs
  other-modules:
    Test.Integration.Alt
    Test.Integration.Nonce
    Test.Integration.PriorityFee
    Test.Integration.Setup
    Test.Integration.Token
    Test.Integration.Transfer
    Test.Integration.WebSocket
  build-depends:
    , base                ^>=4.18.0.0
    , solana-haskell-sdk
    , tasty               ^>=1.5
    , tasty-hunit         ^>=0.10
    , web3-provider       ^>=1.1
    , websockets          ^>=0.13

  if !flag(integration)
    buildable: False

source-repository head
  type:     git
  location: https://github.com/mariusgeorgescu/solana-haskell-sdk