{-# 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