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