diff --git a/CHANGELOG.md b/CHANGELOG.md index cf7b6d7..9f95949 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.6.2.0] + +### Changed + +- Performance enhancement for transaction creation + ## [0.6.1.1] ### Added diff --git a/src/ZcashHaskell/Utils.hs b/src/ZcashHaskell/Utils.hs index 59b38ed..0f67ed7 100644 --- a/src/ZcashHaskell/Utils.hs +++ b/src/ZcashHaskell/Utils.hs @@ -136,22 +136,25 @@ createTransaction :: -> Bool -- ^ True to build, False to estimate fee -> Either TxError HexString createTransaction sapAnchor orchAnchor tSpend sSpend oSpend outgoing sParams oParams znet bh build = - if BS.length (hexBytes txResult) > 1 - then Right txResult - else case head (BS.unpack $ hexBytes txResult) of - 0 -> Left InsufficientFunds - 1 -> Left ChangeRequired - 2 -> Left Fee - 3 -> Left Balance - 4 -> Left TransparentBuild - 5 -> Left SaplingBuild - 6 -> Left OrchardBuild - 7 -> Left OrchardSpend - 8 -> Left OrchardRecipient - 9 -> Left SaplingBuilderNotAvailable - 10 -> Left OrchardBuilderNotAvailable - _ -> Left ZHError + processResult $! txResult where + processResult :: HexString -> Either TxError HexString + processResult input = + if BS.length (hexBytes input) > 1 + then Right input + else case head (BS.unpack $ hexBytes input) of + 0 -> Left InsufficientFunds + 1 -> Left ChangeRequired + 2 -> Left Fee + 3 -> Left Balance + 4 -> Left TransparentBuild + 5 -> Left SaplingBuild + 6 -> Left OrchardBuild + 7 -> Left OrchardSpend + 8 -> Left OrchardRecipient + 9 -> Left SaplingBuilderNotAvailable + 10 -> Left OrchardBuilderNotAvailable + _ -> Left ZHError txResult = withPureBorshVarBuffer $ rustWrapperCreateTx diff --git a/zcash-haskell.cabal b/zcash-haskell.cabal index 361d33e..fc861ab 100644 --- a/zcash-haskell.cabal +++ b/zcash-haskell.cabal @@ -5,7 +5,7 @@ cabal-version: 3.0 -- see: https://github.com/sol/hpack name: zcash-haskell -version: 0.6.1.1 +version: 0.6.2.0 synopsis: Utilities to interact with the Zcash blockchain description: Please see the README on the repo at category: Blockchain