diff --git a/CHANGELOG.md b/CHANGELOG.md index ed06a68..c8a191c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [0.6.0.0-beta] ### Added @@ -25,10 +25,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Unconfirmed balance display on TUI and GUI - Tracking of unconfirmed notes +### Changed + +- Upgraded to GHC 9.6.5 + ### Fixed - Validation of input of amount for sending in TUI +### Removed + +- Legacy interface to `zcashd` + ## [0.5.3.1-beta] ### Added diff --git a/app/Main.hs b/app/Main.hs index 2a2dcd6..6305fa3 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -11,7 +11,8 @@ import Data.Sort import qualified Data.Text as T import qualified Data.Text.IO as TIO import Data.Time.Clock.POSIX -import System.Console.StructuredCLI + +{-import System.Console.StructuredCLI-} import System.Environment (getArgs) import System.Exit import System.IO @@ -23,7 +24,7 @@ import Zenith.GUI (runZenithGUI) import Zenith.Types (Config(..), ZcashAddress(..), ZcashPool(..), ZcashTx(..)) import Zenith.Utils import Zenith.Zcashd - + {- prompt :: String -> IO String prompt text = do putStr text @@ -197,21 +198,22 @@ processUri user pwd = _ -> False _ <- liftIO $ sendWithUri user pwd (addList !! (idx - 1)) u repTo return NoAction +-} main :: IO () main = do config <- load ["zenith.cfg"] args <- getArgs dbFilePath <- require config "dbFilePath" - nodeUser <- require config "nodeUser" - nodePwd <- require config "nodePwd" + {-nodeUser <- require config "nodeUser"-} + {-nodePwd <- require config "nodePwd"-} zebraPort <- require config "zebraPort" zebraHost <- require config "zebraHost" let myConfig = Config dbFilePath zebraHost zebraPort if not (null args) then do - case head args of - "legacy" -> do + case head args + {-"legacy" -> do checkServer nodeUser nodePwd void $ runCLI @@ -220,7 +222,8 @@ main = do { getBanner = " ______ _ _ _ \n |___ / (_) | | | \n / / ___ _ __ _| |_| |__ \n / / / _ \\ '_ \\| | __| '_ \\ \n / /_| __/ | | | | |_| | | |\n /_____\\___|_| |_|_|\\__|_| |_|\n Zcash Full Node CLI v0.4.0" } - (root nodeUser nodePwd) + (root nodeUser nodePwd) -} + of "gui" -> runZenithGUI myConfig "tui" -> runZenithTUI myConfig "rescan" -> clearSync myConfig @@ -231,6 +234,6 @@ printUsage :: IO () printUsage = do putStrLn "zenith [command] [parameters]\n" putStrLn "Available commands:" - putStrLn "legacy\tLegacy CLI for zcashd" + {-putStrLn "legacy\tLegacy CLI for zcashd"-} putStrLn "tui\tTUI for zebrad" putStrLn "rescan\tRescan the existing wallet(s)" diff --git a/cabal.project b/cabal.project index 217198a..d245ac1 100644 --- a/cabal.project +++ b/cabal.project @@ -2,7 +2,7 @@ packages: ./*.cabal zcash-haskell/zcash-haskell.cabal -with-compiler: ghc-9.4.8 +with-compiler: ghc-9.6.5 source-repository-package type: git diff --git a/cabal.project.freeze b/cabal.project.freeze index 698a2eb..175cc2c 100644 --- a/cabal.project.freeze +++ b/cabal.project.freeze @@ -1,12 +1,12 @@ active-repositories: hackage.haskell.org:merge -constraints: any.Cabal ==3.8.1.0, - any.Cabal-syntax ==3.8.1.0, +constraints: any.Cabal ==3.10.3.0, + any.Cabal-syntax ==3.10.3.0, any.Clipboard ==2.3.2.0, any.HUnit ==1.6.2.0, any.Hclip ==3.0.0.4, - any.JuicyPixels ==3.3.8, + any.JuicyPixels ==3.3.9, JuicyPixels -mmap, - any.OneTuple ==0.4.1.1, + any.OneTuple ==0.4.2, any.OpenGLRaw ==3.3.4.1, OpenGLRaw -osandroid +usegles2 +useglxgetprocaddress +usenativewindowslibraries, any.QuickCheck ==2.14.3, @@ -18,32 +18,32 @@ constraints: any.Cabal ==3.8.1.0, any.X11 ==1.10.3, X11 -pedantic, any.adjunctions ==4.4.2, - any.aeson ==2.2.1.0, + any.aeson ==2.2.3.0, aeson +ordered-keymap, any.alex ==3.5.1.0, - any.ansi-terminal ==1.1, + any.ansi-terminal ==1.1.1, ansi-terminal -example, any.ansi-terminal-types ==1.1, any.appar ==0.1.8, - any.array ==0.5.4.0, + any.array ==0.5.6.0, any.ascii-progress ==0.3.3.0, ascii-progress -examples, any.asn1-encoding ==0.9.6, any.asn1-parse ==0.9.5, any.asn1-types ==0.3.4, - any.assoc ==1.1, - assoc +tagged, + any.assoc ==1.1.1, + assoc -tagged, any.async ==2.2.5, async -bench, any.attoparsec ==0.14.4, attoparsec -developer, - any.attoparsec-aeson ==2.2.0.1, + any.attoparsec-aeson ==2.2.2.0, any.authenticate-oauth ==1.7, - any.auto-update ==0.1.6, - any.base ==4.17.2.1, - any.base-compat ==0.13.1, - any.base-compat-batteries ==0.13.1, - any.base-orphans ==0.9.1, + any.auto-update ==0.2.1, + any.base ==4.18.2.1, + any.base-compat ==0.14.0, + any.base-compat-batteries ==0.14.0, + any.base-orphans ==0.9.2, any.base16 ==1.0, any.base16-bytestring ==1.0.2.0, any.base58-bytestring ==0.1.0, @@ -53,14 +53,14 @@ constraints: any.Cabal ==3.8.1.0, bifunctors +tagged, any.bimap ==0.5.0, any.binary ==0.8.9.1, - any.binary-orphans ==1.0.4.1, + any.binary-orphans ==1.0.5, any.bitvec ==1.1.5.0, bitvec +simd, any.blaze-builder ==0.4.2.3, any.blaze-html ==0.9.2.0, any.blaze-markup ==0.8.3.0, any.borsh ==0.3.0, - any.brick ==2.3.1, + any.brick ==2.4, brick -demos, any.byteorder ==1.0.4, any.bytes ==0.17.3, @@ -70,19 +70,20 @@ constraints: any.Cabal ==3.8.1.0, any.bytestring-to-vector ==0.3.0.1, any.c2hs ==0.28.8, c2hs +base3 -regression, - any.cabal-doctest ==1.0.9, + any.cabal-doctest ==1.0.10, any.call-stack ==0.4.0, any.case-insensitive ==1.2.1.0, any.cborg ==0.2.10.0, cborg +optimize-gmp, any.cereal ==0.5.8.3, cereal -bytestring-builder, + any.character-ps ==0.1, any.clock ==0.8.4, clock -llvm, any.colour ==2.3.6, any.comonad ==5.0.8, comonad +containers +distributive +indexed-traversable, - any.concurrent-output ==1.10.20, + any.concurrent-output ==1.10.21, any.conduit ==1.3.5, any.conduit-extra ==1.3.6, any.config-ini ==0.2.7.0, @@ -92,14 +93,14 @@ constraints: any.Cabal ==3.8.1.0, any.containers ==0.6.7, any.contravariant ==1.5.5, contravariant +semigroups +statevar +tagged, - any.cookie ==0.4.6, + any.cookie ==0.5.0, any.crypto-api ==0.13.3, crypto-api -all_cpolys, any.crypto-pubkey-types ==0.4.3, - any.crypton ==0.34, + any.crypton ==1.0.0, crypton -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq +support_pclmuldq +support_rdrand -support_sse +use_target_attributes, - any.crypton-connection ==0.3.2, - any.crypton-x509 ==1.7.6, + any.crypton-connection ==0.4.1, + any.crypton-x509 ==1.7.7, any.crypton-x509-store ==1.6.9, any.crypton-x509-system ==1.6.7, any.crypton-x509-validation ==1.6.12, @@ -111,9 +112,9 @@ constraints: any.Cabal ==3.8.1.0, any.data-default-instances-containers ==0.0.1, any.data-default-instances-dlist ==0.0.1, any.data-default-instances-old-locale ==0.0.1, - any.data-fix ==0.3.2, - any.deepseq ==1.4.8.0, - any.directory ==1.3.7.1, + any.data-fix ==0.3.4, + any.deepseq ==1.4.8.1, + any.directory ==1.3.8.4, any.distributive ==0.6.2.1, distributive +semigroups +tagged, any.dlist ==1.0, @@ -125,13 +126,11 @@ constraints: any.Cabal ==3.8.1.0, entropy -donotgetentropy, any.envy ==2.1.3.0, any.esqueleto ==3.5.11.2, - any.exceptions ==0.10.5, - any.extra ==1.7.14, - any.fast-logger ==3.2.2, - any.filepath ==1.4.2.2, + any.exceptions ==0.10.7, + any.extra ==1.7.16, + any.fast-logger ==3.2.3, + any.filepath ==1.4.300.1, any.fixed ==0.3, - any.foldable1-classes-compat ==0.1, - foldable1-classes-compat +tagged, any.foreign-rust ==0.1.0, any.foreign-store ==0.2.1, any.formatting ==7.2.0, @@ -141,30 +140,29 @@ constraints: any.Cabal ==3.8.1.0, generic-deriving +base-4-9, any.generically ==0.1.1, any.generics-sop ==0.5.1.4, - any.ghc ==9.4.8, + any.ghc ==9.6.5, any.ghc-bignum ==1.3, - any.ghc-boot ==9.4.8, - any.ghc-boot-th ==9.4.8, - any.ghc-heap ==9.4.8, - any.ghc-prim ==0.9.1, - any.ghci ==9.4.8, + any.ghc-boot ==9.6.5, + any.ghc-boot-th ==9.6.5, + any.ghc-heap ==9.6.5, + any.ghc-prim ==0.10.0, + any.ghci ==9.6.5, any.half ==0.3.1, any.happy ==1.20.1.1, - any.hashable ==1.4.4.0, - hashable +integer-gmp -random-initial-seed, - any.haskeline ==0.8.2, + any.hashable ==1.4.7.0, + hashable -arch-native +integer-gmp -random-initial-seed, any.haskell-lexer ==1.1.1, any.haskoin-core ==1.1.0, any.hexstring ==0.12.1.0, any.hourglass ==0.2.12, - any.hpc ==0.6.1.0, + any.hpc ==0.6.2.0, any.hsc2hs ==0.68.10, hsc2hs -in-ghc-tree, - any.hspec ==2.11.7, - any.hspec-core ==2.11.7, - any.hspec-discover ==2.11.7, + any.hspec ==2.11.9, + any.hspec-core ==2.11.9, + any.hspec-discover ==2.11.9, any.hspec-expectations ==0.8.4, - any.http-api-data ==0.6, + any.http-api-data ==0.6.1, http-api-data -use-text-show, any.http-client ==0.7.17, http-client +network-uri, @@ -172,18 +170,18 @@ constraints: any.Cabal ==3.8.1.0, any.http-conduit ==2.3.8.3, http-conduit +aeson, any.http-types ==0.12.4, - any.indexed-traversable ==0.1.3, - any.indexed-traversable-instances ==0.1.1.2, - any.integer-conversion ==0.1.0.1, + any.indexed-traversable ==0.1.4, + any.indexed-traversable-instances ==0.1.2, + any.integer-conversion ==0.1.1, any.integer-gmp ==1.1, any.integer-logarithms ==1.0.3.1, integer-logarithms -check-bounds +integer-gmp, any.invariant ==0.6.3, any.iproute ==1.7.12, - any.kan-extensions ==5.2.5, + any.kan-extensions ==5.2.6, any.language-c ==0.9.3, language-c -allwarnings +iecfpextension +usebytestrings, - any.lens ==5.2.3, + any.lens ==5.3.2, lens -benchmark-uniplate -dump-splices +inlining -j +test-hunit +test-properties +test-templates +trustworthy, any.lens-aeson ==1.2.3, any.lift-type ==0.1.1.1, @@ -196,7 +194,7 @@ constraints: any.Cabal ==3.8.1.0, memory +support_bytestring +support_deepseq, any.microlens ==0.4.13.1, any.microlens-mtl ==0.2.0.3, - any.microlens-th ==0.4.3.14, + any.microlens-th ==0.4.3.15, any.mime-types ==0.1.2.0, any.monad-control ==1.0.3.1, any.monad-logger ==0.3.40, @@ -206,16 +204,16 @@ constraints: any.Cabal ==3.8.1.0, any.mono-traversable ==1.0.17.0, any.monomer ==1.6.0.1, monomer -examples, - any.mtl ==2.2.2, + any.mtl ==2.3.1, any.murmur3 ==1.0.5, any.nanovg ==0.8.1.0, nanovg -examples -gl2 -gles3 -stb_truetype, - any.network ==3.1.4.0, + any.network ==3.2.1.0, network -devel, any.network-uri ==2.6.4.2, any.old-locale ==1.0.0.7, any.old-time ==1.1.0.4, - any.os-string ==2.0.2, + any.os-string ==2.0.6, any.parallel ==3.2.2.0, any.parsec ==3.1.16.1, any.parser-combinators ==1.3.0, @@ -228,7 +226,7 @@ constraints: any.Cabal ==3.8.1.0, any.persistent-template ==2.12.0.0, any.pretty ==1.1.3.6, any.primitive ==0.9.0.0, - any.process ==1.6.18.0, + any.process ==1.6.19.0, any.profunctors ==5.6.2, any.psqueues ==0.2.8.0, any.pureMD5 ==2.1.4, @@ -238,7 +236,7 @@ constraints: any.Cabal ==3.8.1.0, any.quickcheck-io ==0.2.0, any.quickcheck-transformer ==0.3.1.2, any.random ==1.2.1.2, - any.reflection ==2.1.7, + any.reflection ==2.1.8, reflection -slow +template-haskell, any.regex-base ==0.94.0.2, any.regex-compat ==0.95.2.1, @@ -249,14 +247,14 @@ constraints: any.Cabal ==3.8.1.0, any.rts ==1.0.2, any.safe ==0.3.21, any.safe-exceptions ==0.1.7.4, - any.scientific ==0.3.7.0, - scientific -bytestring-builder -integer-simple, + any.scientific ==0.3.8.0, + scientific -integer-simple, any.sdl2 ==2.5.5.0, sdl2 -examples -no-linear -opengl-example +pkgconfig +recent-ish, any.secp256k1-haskell ==1.2.0, - any.semialign ==1.3, + any.semialign ==1.3.1, semialign +semigroupoids, - any.semigroupoids ==6.0.0.1, + any.semigroupoids ==6.0.1, semigroupoids +comonad +containers +contravariant +distributive +tagged +unordered-containers, any.semigroups ==0.20, semigroups +binary +bytestring -bytestring-builder +containers +deepseq +hashable +tagged +template-haskell +text +transformers +unordered-containers, @@ -273,57 +271,53 @@ constraints: any.Cabal ==3.8.1.0, any.stm-chans ==3.0.0.9, any.streaming-commons ==0.2.2.6, streaming-commons -use-bytestring-builder, - any.strict ==0.5, + any.strict ==0.5.1, any.string-conversions ==0.4.0.1, - any.structured-cli ==2.7.0.1, - structured-cli -debug, any.system-cxx-std-lib ==1.0, any.tagged ==0.8.8, tagged +deepseq +transformers, - any.template-haskell ==2.19.0.0, + any.template-haskell ==2.20.0.0, any.terminal-size ==0.3.4, - any.terminfo ==0.4.1.5, + any.terminfo ==0.4.1.6, any.text ==2.0.2, - any.text-iso8601 ==0.1, - any.text-short ==0.1.5, + any.text-iso8601 ==0.1.1, + any.text-short ==0.1.6, text-short -asserts, - any.text-show ==3.10.4, + any.text-show ==3.10.5, text-show +base-4-9 +integer-gmp +new-functor-classes +template-haskell-2-11, any.text-zipper ==0.13, any.tf-random ==0.5, - any.th-abstraction ==0.6.0.0, + any.th-abstraction ==0.7.0.0, any.th-compat ==0.1.5, any.th-lift ==0.8.4, any.th-lift-instances ==0.1.20, - any.these ==1.2, + any.these ==1.2.1, any.time ==1.12.2, - any.time-compat ==1.9.6.1, - time-compat -old-locale, + any.time-compat ==1.9.7, any.time-locale-compat ==0.1.1.5, time-locale-compat -old-locale, - any.tls ==2.0.2, + any.tls ==2.1.0, tls -devel, - any.transformers ==0.5.6.2, + any.transformers ==0.6.1.0, any.transformers-base ==0.4.6, transformers-base +orphaninstances, any.transformers-compat ==0.7.2, transformers-compat -five +five-three -four +generic-deriving +mtl -three -two, any.typed-process ==0.2.11.1, - any.unix ==2.7.3, - any.unix-compat ==0.7.1, - unix-compat -old-time, - any.unix-time ==0.4.12, + any.unix ==2.8.4.0, + any.unix-compat ==0.7.2, + any.unix-time ==0.4.15, any.unliftio ==0.2.25.0, any.unliftio-core ==0.2.1.0, any.unordered-containers ==0.2.20, unordered-containers -debug, any.utf8-string ==1.0.2, - any.uuid-types ==1.0.5.1, + any.uuid-types ==1.0.6, any.vault ==0.3.1.5, vault +useghc, any.vector ==0.13.1.0, vector +boundschecks -internalchecks -unsafechecks -wall, - any.vector-algorithms ==0.9.0.1, + any.vector-algorithms ==0.9.0.2, vector-algorithms +bench +boundschecks -internalchecks -llvm +properties -unsafechecks, any.vector-stream ==0.1.0.1, any.void ==0.7.3, @@ -333,10 +327,10 @@ constraints: any.Cabal ==3.8.1.0, vty-crossplatform -demos, any.vty-unix ==0.2.0.0, any.wide-word ==0.1.6.0, - any.witherable ==0.4.2, + any.witherable ==0.5, any.word-wrap ==0.5, any.wreq ==0.5.4.3, wreq -aws -developer +doctest -httpbin, - any.zlib ==0.6.3.0, + any.zlib ==0.7.1.0, zlib -bundled-c-zlib +non-blocking-ffi +pkg-config -index-state: hackage.haskell.org 2024-04-07T10:14:52Z +index-state: hackage.haskell.org 2024-07-10T18:40:26Z diff --git a/src/Zenith/CLI.hs b/src/Zenith/CLI.hs index e7498fe..b10b7e0 100644 --- a/src/Zenith/CLI.hs +++ b/src/Zenith/CLI.hs @@ -450,7 +450,7 @@ drawUI s = [splashDialog s, helpDialog s, displayDialog s, inputDialog s, ui s] (str " _____ _ _ _ \n|__ /___ _ __ (_) |_| |__\n / // _ \\ '_ \\| | __| '_ \\\n / /| __/ | | | | |_| | | |\n/____\\___|_| |_|_|\\__|_| |_|") <=> C.hCenter - (withAttr titleAttr (str "Zcash Wallet v0.5.3.1-beta")) <=> + (withAttr titleAttr (str "Zcash Wallet v0.6.0.0-beta")) <=> C.hCenter (withAttr blinkAttr $ str "Press any key...")) else emptyWidget capCommand3 :: String -> String -> String -> Widget Name @@ -631,19 +631,6 @@ mkNewABForm = label s w = padBottom (Pad 1) $ vLimit 1 (hLimit 10 $ str s <+> fill ' ') <+> w -isRecipientValid :: T.Text -> Bool -isRecipientValid a = - case isValidUnifiedAddress (E.encodeUtf8 a) of - Just _a1 -> True - Nothing -> - isValidShieldedAddress (E.encodeUtf8 a) || - (case decodeTransparentAddress (E.encodeUtf8 a) of - Just _a3 -> True - Nothing -> - case decodeExchangeAddress a of - Just _a4 -> True - Nothing -> False) - listDrawElement :: (Show a) => Bool -> a -> Widget Name listDrawElement sel a = let selStr s = @@ -735,9 +722,6 @@ abSelAttr = A.attrName "abselected" abMBarAttr :: A.AttrName abMBarAttr = A.attrName "menubar" -validBarValue :: Float -> Float -validBarValue = clamp 0 1 - scanZebra :: T.Text -> T.Text -> Int -> Int -> BC.BChan Tick -> IO () scanZebra dbP zHost zPort b eChan = do _ <- liftIO $ initDb dbP diff --git a/zenith.cabal b/zenith.cabal index e90d4eb..46af28d 100644 --- a/zenith.cabal +++ b/zenith.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: zenith -version: 0.5.3.1-beta +version: 0.6.0.0-beta license: MIT license-file: LICENSE author: Rene Vergara @@ -53,7 +53,7 @@ library , exceptions , monad-logger , vty-crossplatform - , secp256k1-haskell + , secp256k1-haskell >= 1 , pureMD5 , ghc , haskoin-core @@ -100,7 +100,7 @@ executable zenith , configurator , data-default , sort - , structured-cli + --, structured-cli , text , time , zenith