ppad-script-0.1.0: bench/Weight.hs
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE PackageImports #-}
{-# LANGUAGE StandaloneDeriving #-}
module Main where
import Bitcoin.Prim.Script
import Control.DeepSeq
import qualified Data.ByteString as BS
import GHC.Generics
import qualified Weigh as W
deriving stock instance Generic Script
instance NFData Script
deriving stock instance Generic Term
instance NFData Term
deriving stock instance Generic Opcode
instance NFData Opcode
main :: IO ()
main = W.mainWith $ do
W.func "bs_to_ba" bs_to_ba (BS.replicate 1024 0x00)
W.func "ba_to_bs" ba_to_bs ba
W.func "to_script" to_script terms
W.func "from_script" from_script script
where
ba = bs_to_ba (BS.replicate 1024 0x00)
script = to_script terms
terms = [
OPCODE OP_DUP,OPCODE OP_HASH160,OPCODE OP_PUSHBYTES_20,BYTE 0x89,BYTE 0xab
, BYTE 0xcd,BYTE 0xef,BYTE 0xab,BYTE 0xba,BYTE 0xab,BYTE 0xba,BYTE 0xab
, BYTE 0xba,BYTE 0xab,BYTE 0xba,BYTE 0xab,BYTE 0xba,BYTE 0xab,BYTE 0xba
, BYTE 0xab,BYTE 0xba,BYTE 0xab,BYTE 0xba,OPCODE OP_EQUALVERIFY
, OPCODE OP_CHECKSIG
]