Compare commits

..

No commits in common. "09a78164d3b76553c45c4ee10cd73c38eb401546" and "c101616e6246a275c6c30ea0175f2f069e7a54ff" have entirely different histories.

4 changed files with 14 additions and 9 deletions

View file

@ -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.

View file

@ -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

View file

@ -3,18 +3,21 @@ 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.
-- 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,

View file

@ -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,