{-| Module : Data.Bitcoin.PaymentChannel.Types Copyright : (c) Rune K. Svendsen, 2016 License : PublicDomain Maintainer : runesvend@gmail.com Utility functions for "Data.Bitcoin.PaymentChannel". -} module Data.Bitcoin.PaymentChannel.Util ( getFundingAddress, setSenderChangeAddress, serialize, serialize', BitcoinLockTime, parseBitcoinLocktime, toWord32, fromDate, deserEither ) where import Data.Bitcoin.PaymentChannel.Internal.Types (PaymentChannelState(..), PaymentTxConfig(..)) -- import Data.Bitcoin.PaymentChannel.Internal.State -- (ptcSenderChangeAddress) import Data.Bitcoin.PaymentChannel.Internal.Script (getP2SHFundingAddress) import Data.Bitcoin.PaymentChannel.Internal.Util (BitcoinLockTime, parseBitcoinLocktime, toWord32, fromDate, deserEither, serialize, serialize') import Data.Bitcoin.PaymentChannel.Internal.State (setClientChangeAddress) import Data.Bitcoin.PaymentChannel.Types -- (ChannelParameters, FundingTxInfo) import qualified Network.Haskoin.Crypto as HC -- | Derive a Bitcoin address, for funding a payment channel, from -- 'ChannelParameters'. -- The transaction which pays to this address is the channel funding transaction, -- and information about this transaction is contained in -- 'FundingTxInfo'. getFundingAddress = getP2SHFundingAddress -- |Set new value sender change address setSenderChangeAddress :: PaymentChannel a => a -> HC.Address -> a setSenderChangeAddress pch addr = _setChannelState pch (setClientChangeAddress (getChannelState pch) addr)