diff --git a/README.md b/README.md index 8492470..96fcf66 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,6 @@ The aim is to create a trustworthy Stellar transaction signer (and, by necessity, a pretty printer) using only Glasgow Haskell compiler code and Haskell Core libraries, reducing the possible supply chain attack surface. -To build and run it, install `cabal-install` and use `cabal run`. The program expects your transaction coming from the standard input, and your private (S...) key residing in `$HOME/~/.stellar-veritas-key`. It will produce the decoded transaction description afterwards, with simple descriptions of the most popular operations. When it is ran from an interactive terminal, it will ask for a confirmation before signing the transaction. +To build and run it, install `cabal-install` and use `cabal run`. The project contains the code of trimmed-down non-core dependencies, mainly cryptographic libraries. To avoid using bundled libraries (to build against the current Hackage), do the same in the `src` directory. To further reduce the amount of code under audit, weeder can be used, although the utility is dubious. diff --git a/src/Main.hs b/src/Main.hs index 70e4a86..0b420c9 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -4,9 +4,11 @@ module Main where import Control.Monad import qualified Data.ByteString as B -import Data.ByteString.Base32 (encodeBase32) +import Data.ByteString.Base32 (decodeBase32, encodeBase32) import qualified Data.ByteString.Base64 as B64 import qualified Data.ByteString.Char8 as BC8 +import Data.Coerce +import Data.Char import Data.List import Data.Maybe import qualified Data.Text as T @@ -29,7 +31,7 @@ main = do let parsedTransaction = case xdrDeserialize transaction :: Either String TransactionEnvelope of Left err -> error err Right x -> x - T.hPutStrLn stderr $ pretty parsedTransaction + T.putStrLn $ pretty parsedTransaction proceed <- confirm when proceed $ do key <- getPrivateKey diff --git a/src/stellar-veritas.cabal b/src/stellar-veritas.cabal index 3fc5f93..e6d37d6 100644 --- a/src/stellar-veritas.cabal +++ b/src/stellar-veritas.cabal @@ -2,19 +2,22 @@ cabal-version: 3.0 name: stellar-veritas -- semver version: 0 -synopsis: Stellar transaction signer and pretty-printer -description: The aim is to create a trustworthy Stellar transaction signer (and, by necessity, a pretty printer) using only Glasgow Haskell compiler code and Haskell Core libraries, reducing the possible supply chain attack surface. +synopsis: Stellar transaction signer and pretty-printer +-- description: license: AGPL-3.0-only -license-file: COPYING -author: La Ancapo +license-file: LICENSE +-- author: +-- maintainer: +-- copyright: category: Network, Stellar build-type: Simple tested-with: GHC == 9.12.3 executable stellar-veritas main-is: Main.hs - ghc-options: -W -Wcompat -fno-warn-tabs -rtsopts=ignoreAll -optl-Wl,-s + ghc-options: -W -Wcompat -fno-warn-tabs -g other-modules: + -- other-extensions: build-depends: base >= 4.9 && < 5, text >= 1.2.4.1 && < 2.2, bytestring ^>= 0.12, diff --git a/stellar-veritas.cabal b/stellar-veritas.cabal index 3bc5527..65522a4 100644 --- a/stellar-veritas.cabal +++ b/stellar-veritas.cabal @@ -13,7 +13,7 @@ tested-with: GHC == 9.12.3 executable stellar-veritas main-is: Main.hs - ghc-options: -W -Wcompat -fno-warn-tabs -rtsopts=ignoreAll -optl-Wl,-s + ghc-options: -W -Wcompat -fno-warn-tabs -g other-modules: build-depends: base >= 4.9 && < 5, text >= 1.2.4.1 && < 2.2,