{-# LANGUAGE DeriveGeneric #-}
module Blockchain.Data.Code where
import qualified Data.ByteString as B
import GHC.Generics
import Blockchain.Data.RLP
data Code
= Code { codeBytes :: B.ByteString }
| PrecompiledCode Int
deriving (Show, Eq, Read, Ord, Generic)
instance RLPSerializable Code where
rlpEncode (Code bytes) = rlpEncode bytes
rlpEncode (PrecompiledCode _) =
error
"Error in call to rlpEncode for Code: Precompiled contracts can not be serialized."
rlpDecode = Code . rlpDecode
-- instance Format Code where
-- format Code {codeBytes=c} = B.unpack c