From 15e120bb149e192eb665d0087fd5513745475ea8 Mon Sep 17 00:00:00 2001 From: Rene Vergara Date: Mon, 16 Dec 2024 16:08:50 +0000 Subject: [PATCH] Maintenance (#106) This PR contains maintenance code to align with Zebra 2.1.0 and updated Haskell dependencies. Reviewed-on: https://git.vergara.tech/Vergara_Tech/zenith/pulls/106 Co-authored-by: Rene Vergara Co-committed-by: Rene Vergara --- CHANGELOG.md | 6 ++ cabal.project.freeze | 147 +++++++++++++++++++++--------------------- src/Zenith/CLI.hs | 35 ++++------ src/Zenith/GUI.hs | 35 ++++------ src/Zenith/RPC.hs | 28 +++----- src/Zenith/Scanner.hs | 33 +++------- zcash-haskell | 2 +- zenith.cabal | 2 +- 8 files changed, 122 insertions(+), 166 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f041b4..30d4a3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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). +## [0.7.1.0-beta] + +### Changed + +- Removed workaround to obtain block time + ## [0.7.0.0-beta] ### Added diff --git a/cabal.project.freeze b/cabal.project.freeze index b836f57..34022e4 100644 --- a/cabal.project.freeze +++ b/cabal.project.freeze @@ -9,19 +9,18 @@ constraints: any.Cabal ==3.10.3.0, any.OneTuple ==0.4.2, any.OpenGLRaw ==3.3.4.1, OpenGLRaw -osandroid +usegles2 +useglxgetprocaddress +usenativewindowslibraries, - any.QuickCheck ==2.14.3, + any.QuickCheck ==2.15.0.1, QuickCheck -old-random +templatehaskell, any.RSA ==2.4.1, any.SHA ==1.6.4.4, SHA -exe, any.StateVar ==1.2.2, - any.X11 ==1.10.3, - X11 -pedantic, + any.X11 ==1.9.2, any.adjunctions ==4.4.2, any.aeson ==2.2.3.0, aeson +ordered-keymap, any.alex ==3.5.1.0, - any.ansi-terminal ==1.1.1, + any.ansi-terminal ==1.1.2, ansi-terminal -example, any.ansi-terminal-types ==1.1, any.appar ==0.1.8, @@ -39,11 +38,11 @@ constraints: any.Cabal ==3.10.3.0, attoparsec -developer, any.attoparsec-aeson ==2.2.2.0, any.authenticate-oauth ==1.7, - any.auto-update ==0.2.1, + any.auto-update ==0.2.4, any.base ==4.18.2.1, - any.base-compat ==0.13.1, - any.base-compat-batteries ==0.13.1, - any.base-orphans ==0.9.2, + any.base-compat ==0.14.1, + any.base-compat-batteries ==0.14.1, + any.base-orphans ==0.9.3, any.base16 ==1.0, any.base16-bytestring ==1.0.2.0, any.base58-bytestring ==0.1.0, @@ -62,18 +61,16 @@ constraints: any.Cabal ==3.10.3.0, any.boring ==0.2.2, boring +tagged, any.borsh ==0.3.0, - any.brick ==2.4, + any.brick ==2.6, brick -demos, any.bsb-http-chunked ==0.0.0.4, any.byteorder ==1.0.4, - any.bytes ==0.17.3, + any.bytes ==0.17.4, any.bytestring ==0.11.5.3, - any.bytestring-builder ==0.10.8.2.0, - bytestring-builder +bytestring_has_builder, any.bytestring-to-vector ==0.3.0.1, any.c2hs ==0.28.8, c2hs +base3 -regression, - any.cabal-doctest ==1.0.10, + any.cabal-doctest ==1.0.11, any.call-stack ==0.4.0, any.case-insensitive ==1.2.1.0, any.cborg ==0.2.10.0, @@ -84,10 +81,10 @@ constraints: any.Cabal ==3.10.3.0, any.clock ==0.8.4, clock -llvm, any.colour ==2.3.6, - any.comonad ==5.0.8, + any.comonad ==5.0.9, comonad +containers +distributive +indexed-traversable, any.concurrent-output ==1.10.21, - any.conduit ==1.3.5, + any.conduit ==1.3.6, any.conduit-extra ==1.3.6, any.config-ini ==0.2.7.0, config-ini -enable-doctests, @@ -101,21 +98,20 @@ constraints: any.Cabal ==3.10.3.0, any.crypto-api ==0.13.3, crypto-api -all_cpolys, any.crypto-pubkey-types ==0.4.3, - any.crypton ==1.0.0, + any.cryptohash-md5 ==0.11.101.0, + any.cryptohash-sha1 ==0.11.101.0, + any.crypton ==1.0.1, 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.4.1, + any.crypton-connection ==0.4.3, 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, + any.crypton-x509-validation ==1.6.13, any.cryptonite ==0.30, cryptonite -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq -support_pclmuldq +support_rdrand -support_sse +use_target_attributes, any.data-clist ==0.2, - any.data-default ==0.7.1.1, - any.data-default-class ==0.1.2.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-default ==0.8.0.0, + any.data-default-class ==0.2.0.0, any.data-fix ==0.3.4, any.dec ==0.0.6, any.deepseq ==1.4.8.1, @@ -129,11 +125,11 @@ constraints: any.Cabal ==3.10.3.0, any.easy-file ==0.2.5, any.entropy ==0.4.1.10, entropy -donotgetentropy, - any.envy ==2.1.3.0, - any.esqueleto ==3.5.11.2, + any.envy ==2.1.4.0, + any.esqueleto ==3.5.13.1, any.exceptions ==0.10.7, - any.extra ==1.7.16, - any.fast-logger ==3.2.3, + any.extra ==1.8, + any.fast-logger ==3.2.5, any.file-embed ==0.0.16.0, any.filepath ==1.4.300.1, any.fixed ==0.3, @@ -142,8 +138,6 @@ constraints: any.Cabal ==3.10.3.0, any.formatting ==7.2.0, formatting -no-double-conversion, any.free ==5.2, - any.generic-deriving ==1.14.5, - generic-deriving +base-4-9, any.generically ==0.1.1, any.generics-sop ==0.5.1.4, any.ghc ==9.6.5, @@ -153,33 +147,34 @@ constraints: any.Cabal ==3.10.3.0, 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.half ==0.3.2, + any.happy ==2.1.3, + any.happy-lib ==2.1.3, any.hashable ==1.4.7.0, hashable -arch-native +integer-gmp -random-initial-seed, - any.haskell-lexer ==1.1.1, + any.haskell-lexer ==1.1.2, any.haskoin-core ==1.1.0, any.hexstring ==0.12.1.0, any.hourglass ==0.2.12, any.hpc ==0.6.2.0, any.hsc2hs ==0.68.10, hsc2hs -in-ghc-tree, - any.hspec ==2.11.9, - any.hspec-core ==2.11.9, - any.hspec-discover ==2.11.9, + any.hspec ==2.11.10, + any.hspec-core ==2.11.10, + any.hspec-discover ==2.11.10, any.hspec-expectations ==0.8.4, any.http-api-data ==0.6.1, http-api-data -use-text-show, any.http-client ==0.7.17, http-client +network-uri, - any.http-client-tls ==0.3.6.3, - any.http-conduit ==2.3.8.3, + any.http-client-tls ==0.3.6.4, + any.http-conduit ==2.3.9.1, http-conduit +aeson, any.http-date ==0.0.11, any.http-media ==0.8.1.1, - any.http-semantics ==0.1.2, + any.http-semantics ==0.3.0, any.http-types ==0.12.4, - any.http2 ==5.2.6, + any.http2 ==5.3.9, http2 -devel -h2spec, any.indexed-traversable ==0.1.4, any.indexed-traversable-instances ==0.1.2, @@ -187,19 +182,19 @@ constraints: any.Cabal ==3.10.3.0, 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.invariant ==0.6.4, + any.iproute ==1.7.15, any.kan-extensions ==5.2.6, - any.language-c ==0.9.3, - language-c -allwarnings +iecfpextension +usebytestrings, + any.language-c ==0.10.0, + language-c +iecfpextension +usebytestrings, 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, + any.lift-type ==0.1.2.0, any.lifted-base ==0.2.3.12, any.linear ==1.22, linear -herbie +template-haskell, - any.megaparsec ==9.6.1, + any.megaparsec ==9.7.0, megaparsec -dev, any.memory ==0.18.0, memory +support_bytestring +support_deepseq, @@ -213,30 +208,31 @@ constraints: any.Cabal ==3.10.3.0, monad-logger +template_haskell, any.monad-loops ==0.4.3, monad-loops +base4, - any.mono-traversable ==1.0.17.0, + any.mono-traversable ==1.0.21.0, any.monomer ==1.6.0.1, monomer -examples, 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.2.1.0, + any.network ==3.2.7.0, network -devel, any.network-byte-order ==0.1.7, - any.network-control ==0.1.1, + any.network-control ==0.1.3, + any.network-info ==0.2.1, any.network-uri ==2.6.4.2, any.old-locale ==1.0.0.7, any.old-time ==1.1.0.4, any.optparse-applicative ==0.18.1.0, optparse-applicative +process, - any.os-string ==2.0.6, + any.os-string ==2.0.7, any.parallel ==3.2.2.0, any.parsec ==3.1.16.1, any.parser-combinators ==1.3.0, parser-combinators -dev, any.path-pieces ==0.2.1, any.pem ==0.2.4, - any.persistent ==2.14.6.1, + any.persistent ==2.14.6.3, any.persistent-sqlite ==2.13.3.0, persistent-sqlite -build-sanity-exe +full-text-search +have-usleep +json1 -systemlib +uri-filenames -use-pkgconfig -use-stat3 +use-stat4, any.persistent-template ==2.12.0.0, @@ -250,13 +246,13 @@ constraints: any.Cabal ==3.10.3.0, any.psqueues ==0.2.8.0, any.pureMD5 ==2.1.4, pureMD5 -test, - any.qrcode-core ==0.9.9, - any.qrcode-juicypixels ==0.8.5, + any.qrcode-core ==0.9.10, + any.qrcode-juicypixels ==0.8.6, any.quickcheck-io ==0.2.0, any.quickcheck-transformer ==0.3.1.2, any.random ==1.2.1.2, any.recv ==0.1.0, - any.reflection ==2.1.8, + any.reflection ==2.1.9, reflection -slow +template-haskell, any.regex-base ==0.94.0.2, any.regex-compat ==0.95.2.1, @@ -271,7 +267,7 @@ constraints: any.Cabal ==3.10.3.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.secp256k1-haskell ==1.4.2, any.semialign ==1.3.1, semialign +semigroupoids, any.semigroupoids ==6.0.1, @@ -280,9 +276,9 @@ constraints: any.Cabal ==3.10.3.0, semigroups +binary +bytestring -bytestring-builder +containers +deepseq +hashable +tagged +template-haskell +text +transformers +unordered-containers, any.serialise ==0.2.6.1, serialise +newtime15, - any.servant ==0.20.1, - any.servant-server ==0.20, - any.silently ==1.2.5.3, + any.servant ==0.20.2, + any.servant-server ==0.20.2, + any.silently ==1.2.5.4, any.simple-sendfile ==0.2.32, simple-sendfile +allow-bsd -fallback, any.singleton-bool ==0.1.8, @@ -301,8 +297,10 @@ constraints: any.Cabal ==3.10.3.0, any.strict ==0.5.1, any.string-conversions ==0.4.0.1, any.system-cxx-std-lib ==1.0, - any.tagged ==0.8.8, + any.tagged ==0.8.9, tagged +deepseq +transformers, + any.tasty ==1.5.2, + tasty +unix, any.template-haskell ==2.20.0.0, any.terminal-size ==0.3.4, any.terminfo ==0.4.1.6, @@ -310,42 +308,43 @@ constraints: any.Cabal ==3.10.3.0, any.text-iso8601 ==0.1.1, any.text-short ==0.1.6, text-short -asserts, - any.text-show ==3.10.5, - text-show +base-4-9 +integer-gmp +new-functor-classes +template-haskell-2-11, + any.text-show ==3.11, + text-show +integer-gmp, any.text-zipper ==0.13, any.tf-random ==0.5, - any.th-abstraction ==0.7.0.0, - any.th-compat ==0.1.5, - any.th-lift ==0.8.4, + any.th-abstraction ==0.7.1.0, + any.th-compat ==0.1.6, + any.th-lift ==0.8.6, any.th-lift-instances ==0.1.20, any.these ==1.2.1, any.time ==1.12.2, any.time-compat ==1.9.7, any.time-locale-compat ==0.1.1.5, time-locale-compat -old-locale, - any.time-manager ==0.1.0, - any.tls ==2.1.0, + any.time-manager ==0.2.1, + any.tls ==2.1.5, tls -devel, 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.typed-process ==0.2.12.0, any.unix ==2.8.4.0, - any.unix-compat ==0.7.2, - any.unix-time ==0.4.15, + any.unix-compat ==0.7.3, + any.unix-time ==0.4.16, 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 ==1.3.16, any.uuid-types ==1.0.6, any.vault ==0.3.1.5, vault +useghc, - any.vector ==0.13.1.0, + any.vector ==0.13.2.0, vector +boundschecks -internalchecks -unsafechecks -wall, - any.vector-algorithms ==0.9.0.2, + any.vector-algorithms ==0.9.0.3, vector-algorithms +bench +boundschecks -internalchecks -llvm +properties -unsafechecks, any.vector-stream ==0.1.0.1, any.void ==0.7.3, @@ -357,10 +356,10 @@ constraints: any.Cabal ==3.10.3.0, any.wai ==3.2.4, any.wai-app-static ==3.1.9, wai-app-static +crypton -print, - any.wai-extra ==3.1.15, + any.wai-extra ==3.1.17, wai-extra -build-example, - any.wai-logger ==2.4.0, - any.warp ==3.4.1, + any.wai-logger ==2.5.0, + any.warp ==3.4.7, warp +allow-sendfilefd -network-bytestring -warp-debug +x509, any.wide-word ==0.1.6.0, any.witherable ==0.5, @@ -370,4 +369,4 @@ constraints: any.Cabal ==3.10.3.0, wreq -aws -developer +doctest -httpbin, any.zlib ==0.7.1.0, zlib -bundled-c-zlib +non-blocking-ffi +pkg-config -index-state: hackage.haskell.org 2024-07-10T18:40:26Z +index-state: hackage.haskell.org 2024-12-14T09:52:48Z diff --git a/src/Zenith/CLI.hs b/src/Zenith/CLI.hs index c2fa1a7..41642d0 100644 --- a/src/Zenith/CLI.hs +++ b/src/Zenith/CLI.hs @@ -528,7 +528,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.7.0.0-beta")) <=> + (withAttr titleAttr (str "Zcash Wallet v0.7.1.0-beta")) <=> C.hCenter (withAttr blinkAttr $ str "Press any key...")) else emptyWidget capCommand3 :: String -> String -> String -> Widget Name @@ -894,29 +894,16 @@ scanZebra dbP zHost zPort b eChan znet = do _ <- liftIO $ completeSync pool Failed liftIO $ BC.writeBChan eChan $ TickMsg e1 Right blk -> do - r2 <- - liftIO $ - makeZebraCall - zHost - zPort - "getblock" - [Data.Aeson.String $ T.pack $ show bl, jsonNumber 0] - case r2 of - Left e2 -> do - _ <- liftIO $ completeSync pool Failed - liftIO $ BC.writeBChan eChan $ TickMsg e2 - Right hb -> do - let blockTime = getBlockTime hb - bi <- - saveBlock pool $ - ZcashBlock - (fromIntegral $ bl_height blk) - (HexStringDB $ bl_hash blk) - (fromIntegral $ bl_confirmations blk) - blockTime - (ZcashNetDB znet) - mapM_ (processTx zHost zPort bi pool) $ bl_txs blk - liftIO $ BC.writeBChan eChan $ TickVal step + bi <- + saveBlock pool $ + ZcashBlock + (fromIntegral $ bl_height blk) + (HexStringDB $ bl_hash blk) + (fromIntegral $ bl_confirmations blk) + (fromIntegral $ bl_time blk) + (ZcashNetDB znet) + mapM_ (processTx zHost zPort bi pool) $ bl_txs blk + liftIO $ BC.writeBChan eChan $ TickVal step appEvent :: BT.BrickEvent Name Tick -> BT.EventM Name State () appEvent (BT.AppEvent t) = do diff --git a/src/Zenith/GUI.hs b/src/Zenith/GUI.hs index 304d960..0c9dfdf 100644 --- a/src/Zenith/GUI.hs +++ b/src/Zenith/GUI.hs @@ -1729,29 +1729,16 @@ scanZebra dbPath zHost zPort net sendMsg = do _ <- completeSync pool Failed sendMsg (ShowError $ showt e1) Right blk -> do - r2 <- - liftIO $ - makeZebraCall - zHost - zPort - "getblock" - [Data.Aeson.String $ showt bl, jsonNumber 0] - case r2 of - Left e2 -> do - _ <- completeSync pool Failed - sendMsg (ShowError $ showt e2) - Right hb -> do - let blockTime = getBlockTime hb - bi <- - saveBlock pool $ - ZcashBlock - (fromIntegral $ bl_height blk) - (HexStringDB $ bl_hash blk) - (fromIntegral $ bl_confirmations blk) - blockTime - (ZcashNetDB net) - mapM_ (processTx zHost zPort bi pool) $ bl_txs blk - sendMsg (SyncVal step) + bi <- + saveBlock pool $ + ZcashBlock + (fromIntegral $ bl_height blk) + (HexStringDB $ bl_hash blk) + (fromIntegral $ bl_confirmations blk) + (fromIntegral $ bl_time blk) + (ZcashNetDB net) + mapM_ (processTx zHost zPort bi pool) $ bl_txs blk + sendMsg (SyncVal step) shieldTransaction :: Config -> ZcashNet -> ZcashAccountId -> (AppEvent -> IO ()) -> IO () @@ -2023,7 +2010,7 @@ runZenithGUI config = do Left _e -> print "Zebra not available" where params hd = - [ appWindowTitle "Zenith - Zcash Full Node Wallet" + [ appWindowTitle "Zenith - Zcash Full Node Wallet - 0.7.1.0-beta" , appWindowState $ MainWindowNormal (1000, 700) , appTheme zenithTheme , appFontDef diff --git a/src/Zenith/RPC.hs b/src/Zenith/RPC.hs index a32fb8f..6dbf72f 100644 --- a/src/Zenith/RPC.hs +++ b/src/Zenith/RPC.hs @@ -932,22 +932,12 @@ scanZebra dbPath zHost zPort net = do case r of Left _ -> completeSync pool Failed Right blk -> do - r2 <- - makeZebraCall - zHost - zPort - "getblock" - [Data.Aeson.String $ T.pack (show bl), jsonNumber 0] - case r2 of - Left _ -> completeSync pool Failed - Right hb -> do - let blockTime = getBlockTime hb - bi <- - saveBlock pool $ - ZcashBlock - (fromIntegral $ bl_height blk) - (HexStringDB $ bl_hash blk) - (fromIntegral $ bl_confirmations blk) - blockTime - (ZcashNetDB net) - mapM_ (processTx zHost zPort bi pool) $ bl_txs blk + bi <- + saveBlock pool $ + ZcashBlock + (fromIntegral $ bl_height blk) + (HexStringDB $ bl_hash blk) + (fromIntegral $ bl_confirmations blk) + (fromIntegral $ bl_time blk) + (ZcashNetDB net) + mapM_ (processTx zHost zPort bi pool) $ bl_txs blk diff --git a/src/Zenith/Scanner.hs b/src/Zenith/Scanner.hs index 50d6235..8bef9f6 100644 --- a/src/Zenith/Scanner.hs +++ b/src/Zenith/Scanner.hs @@ -133,29 +133,16 @@ processBlock host port pool pg net b = do _ <- completeSync pool Failed liftIO $ throwIO $ userError e Right blk -> do - r2 <- - liftIO $ - makeZebraCall - host - port - "getblock" - [Data.Aeson.String $ T.pack $ show b, jsonNumber 0] - case r2 of - Left e2 -> do - _ <- completeSync pool Failed - liftIO $ throwIO $ userError e2 - Right hb -> do - let blockTime = getBlockTime hb - bi <- - saveBlock pool $ - ZcashBlock - (fromIntegral $ bl_height blk) - (HexStringDB $ bl_hash blk) - (fromIntegral $ bl_confirmations blk) - blockTime - net - mapM_ (processTx host port bi pool) $ bl_txs blk - liftIO $ tick pg + bi <- + saveBlock pool $ + ZcashBlock + (fromIntegral $ bl_height blk) + (HexStringDB $ bl_hash blk) + (fromIntegral $ bl_confirmations blk) + (fromIntegral $ bl_time blk) + net + mapM_ (processTx host port bi pool) $ bl_txs blk + liftIO $ tick pg -- | Function to process a raw transaction processTx :: diff --git a/zcash-haskell b/zcash-haskell index d45bd7d..4289a9d 160000 --- a/zcash-haskell +++ b/zcash-haskell @@ -1 +1 @@ -Subproject commit d45bd7dcf3c3cf4e893900a1774d24b14bf56591 +Subproject commit 4289a9ded67ef2ca432abc412934fb5b8b59a9cf diff --git a/zenith.cabal b/zenith.cabal index 5ee487b..8691137 100644 --- a/zenith.cabal +++ b/zenith.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: zenith -version: 0.7.0.0-beta +version: 0.7.1.0-beta license: MIT license-file: LICENSE author: Rene Vergara