Safe Haskell | None |
---|---|
Language | Haskell2010 |
Module, containing data types for Michelson value.
Synopsis
- data Comparability t where
- CanBeCompared :: Comparable t => Comparability t
- CannotBeCompared :: IsComparable t ~ 'False => Comparability t
- class IsComparable t ~ 'True => Comparable t
- type ComparabilityScope t = (SingI t, Comparable t)
- data CreateContract instr cp st = (forall i o. Show (instr i o), forall i o. Eq (instr i o)) => CreateContract {
- ccOriginator :: Address
- ccDelegate :: Maybe KeyHash
- ccBalance :: Mutez
- ccStorageVal :: Value' instr st
- ccContract :: Contract' instr cp st
- ccCounter :: GlobalCounter
- data Operation' instr where
- OpTransferTokens :: ParameterScope p => TransferTokens instr p -> Operation' instr
- OpSetDelegate :: SetDelegate -> Operation' instr
- OpCreateContract :: (forall i o. Show (instr i o), forall i o. NFData (instr i o), Typeable instr, ParameterScope cp, StorageScope st) => CreateContract instr cp st -> Operation' instr
- data SetDelegate = SetDelegate {}
- data TransferTokens instr p = TransferTokens {
- ttTransferArgument :: Value' instr p
- ttAmount :: Mutez
- ttContract :: Value' instr ('TContract p)
- ttCounter :: GlobalCounter
- data Value' instr t where
- VKey :: PublicKey -> Value' instr 'TKey
- VUnit :: Value' instr 'TUnit
- VSignature :: Signature -> Value' instr 'TSignature
- VChainId :: ChainId -> Value' instr 'TChainId
- VOption :: forall t instr. SingI t => Maybe (Value' instr t) -> Value' instr ('TOption t)
- VList :: forall t instr. SingI t => [Value' instr t] -> Value' instr ('TList t)
- VSet :: forall t instr. (SingI t, Comparable t) => Set (Value' instr t) -> Value' instr ('TSet t)
- VOp :: Operation' instr -> Value' instr 'TOperation
- VContract :: forall arg instr. (SingI arg, HasNoOp arg) => Address -> SomeEntrypointCallT arg -> Value' instr ('TContract arg)
- VTicket :: forall arg instr. Comparable arg => Address -> Value' instr arg -> Natural -> Value' instr ('TTicket arg)
- VPair :: forall l r instr. (Value' instr l, Value' instr r) -> Value' instr ('TPair l r)
- VOr :: forall l r instr. (SingI l, SingI r) => Either (Value' instr l) (Value' instr r) -> Value' instr ('TOr l r)
- VLam :: forall inp out instr. (SingI inp, SingI out, forall i o. Show (instr i o), forall i o. Eq (instr i o), forall i o. NFData (instr i o)) => RemFail instr (inp ': '[]) (out ': '[]) -> Value' instr ('TLambda inp out)
- VMap :: forall k v instr. (SingI k, SingI v, Comparable k) => Map (Value' instr k) (Value' instr v) -> Value' instr ('TMap k v)
- VBigMap :: forall k v instr. (SingI k, SingI v, Comparable k, HasNoBigMap v) => Maybe Natural -> Map (Value' instr k) (Value' instr v) -> Value' instr ('TBigMap k v)
- VInt :: Integer -> Value' instr 'TInt
- VNat :: Natural -> Value' instr 'TNat
- VString :: MText -> Value' instr 'TString
- VBytes :: ByteString -> Value' instr 'TBytes
- VMutez :: Mutez -> Value' instr 'TMutez
- VBool :: Bool -> Value' instr 'TBool
- VKeyHash :: KeyHash -> Value' instr 'TKeyHash
- VTimestamp :: Timestamp -> Value' instr 'TTimestamp
- VAddress :: EpAddress -> Value' instr 'TAddress
- VBls12381Fr :: Bls12381Fr -> Value' instr 'TBls12381Fr
- VBls12381G1 :: Bls12381G1 -> Value' instr 'TBls12381G1
- VBls12381G2 :: Bls12381G2 -> Value' instr 'TBls12381G2
- VChest :: Chest -> Value' instr 'TChest
- VChestKey :: ChestKey -> Value' instr 'TChestKey
- data RemFail (instr :: k -> k -> Type) (i :: k) (o :: k) where
- RfNormal :: instr i o -> RemFail instr i o
- RfAlwaysFails :: (forall o'. instr i o') -> RemFail instr i o
- rfMerge :: (forall o'. instr i1 o' -> instr i2 o' -> instr i3 o') -> RemFail instr i1 o -> RemFail instr i2 o -> RemFail instr i3 o
- rfAnyInstr :: RemFail instr i o -> instr i o
- rfMapAnyInstr :: (forall o'. instr i1 o' -> instr i2 o') -> RemFail instr i1 o -> RemFail instr i2 o
- addressToVContract :: forall t instr. (ParameterScope t, ForbidOr t) => Address -> Value' instr ('TContract t)
- buildVContract :: Value' instr ('TContract arg) -> Builder
- checkComparability :: Sing t -> Comparability t
- compileEpLiftSequence :: EpLiftSequence arg param -> Value' instr arg -> Value' instr param
- comparabilityPresence :: Sing t -> Maybe (Dict $ Comparable t)
- getComparableProofS :: Sing (a :: T) -> Maybe (Dict (Comparable a))
- liftCallArg :: EntrypointCallT param arg -> Value' instr arg -> Value' instr param
- valueTypeSanity :: Value' instr t -> Dict (SingI t)
- withValueTypeSanity :: Value' instr t -> (SingI t => a) -> a
- eqValueExt :: Value' instr t1 -> Value' instr t2 -> Bool
Documentation
data Comparability t where Source #
CanBeCompared :: Comparable t => Comparability t | |
CannotBeCompared :: IsComparable t ~ 'False => Comparability t |
class IsComparable t ~ 'True => Comparable t Source #
tcompare
Instances
type ComparabilityScope t = (SingI t, Comparable t) Source #
Alias for comparable types.
data CreateContract instr cp st Source #
(forall i o. Show (instr i o), forall i o. Eq (instr i o)) => CreateContract | |
|
Instances
Eq (CreateContract instr cp st) Source # | |
Defined in Morley.Michelson.Typed.Value (==) :: CreateContract instr cp st -> CreateContract instr cp st -> Bool # (/=) :: CreateContract instr cp st -> CreateContract instr cp st -> Bool # | |
Show (CreateContract instr cp st) Source # | |
Defined in Morley.Michelson.Typed.Value showsPrec :: Int -> CreateContract instr cp st -> ShowS # show :: CreateContract instr cp st -> String # showList :: [CreateContract instr cp st] -> ShowS # | |
(forall (i :: [T]) (o :: [T]). NFData (instr i o)) => NFData (CreateContract instr cp st) Source # | |
Defined in Morley.Michelson.Typed.Value rnf :: CreateContract instr cp st -> () # | |
Buildable (CreateContract instr cp st) Source # | |
Defined in Morley.Michelson.Typed.Value build :: CreateContract instr cp st -> Builder # |
data Operation' instr where Source #
Data type, representing operation, list of which is returned by Michelson contract (according to calling convention).
These operations are to be further executed against system state after the contract execution.
OpTransferTokens :: ParameterScope p => TransferTokens instr p -> Operation' instr | |
OpSetDelegate :: SetDelegate -> Operation' instr | |
OpCreateContract :: (forall i o. Show (instr i o), forall i o. NFData (instr i o), Typeable instr, ParameterScope cp, StorageScope st) => CreateContract instr cp st -> Operation' instr |
Instances
data SetDelegate Source #
Instances
data TransferTokens instr p Source #
TransferTokens | |
|
Instances
data Value' instr t where Source #
Representation of Michelson value.
Type parameter instr
stands for Michelson instruction
type, i.e. data type to represent an instruction of language.
VKey :: PublicKey -> Value' instr 'TKey | |
VUnit :: Value' instr 'TUnit | |
VSignature :: Signature -> Value' instr 'TSignature | |
VChainId :: ChainId -> Value' instr 'TChainId | |
VOption :: forall t instr. SingI t => Maybe (Value' instr t) -> Value' instr ('TOption t) | |
VList :: forall t instr. SingI t => [Value' instr t] -> Value' instr ('TList t) | |
VSet :: forall t instr. (SingI t, Comparable t) => Set (Value' instr t) -> Value' instr ('TSet t) | |
VOp :: Operation' instr -> Value' instr 'TOperation | |
VContract :: forall arg instr. (SingI arg, HasNoOp arg) => Address -> SomeEntrypointCallT arg -> Value' instr ('TContract arg) | |
VTicket :: forall arg instr. Comparable arg => Address -> Value' instr arg -> Natural -> Value' instr ('TTicket arg) | |
VPair :: forall l r instr. (Value' instr l, Value' instr r) -> Value' instr ('TPair l r) | |
VOr :: forall l r instr. (SingI l, SingI r) => Either (Value' instr l) (Value' instr r) -> Value' instr ('TOr l r) | |
VLam :: forall inp out instr. (SingI inp, SingI out, forall i o. Show (instr i o), forall i o. Eq (instr i o), forall i o. NFData (instr i o)) => RemFail instr (inp ': '[]) (out ': '[]) -> Value' instr ('TLambda inp out) | |
VMap :: forall k v instr. (SingI k, SingI v, Comparable k) => Map (Value' instr k) (Value' instr v) -> Value' instr ('TMap k v) | |
VBigMap | |
VInt :: Integer -> Value' instr 'TInt | |
VNat :: Natural -> Value' instr 'TNat | |
VString :: MText -> Value' instr 'TString | |
VBytes :: ByteString -> Value' instr 'TBytes | |
VMutez :: Mutez -> Value' instr 'TMutez | |
VBool :: Bool -> Value' instr 'TBool | |
VKeyHash :: KeyHash -> Value' instr 'TKeyHash | |
VTimestamp :: Timestamp -> Value' instr 'TTimestamp | |
VAddress :: EpAddress -> Value' instr 'TAddress | |
VBls12381Fr :: Bls12381Fr -> Value' instr 'TBls12381Fr | |
VBls12381G1 :: Bls12381G1 -> Value' instr 'TBls12381G1 | |
VBls12381G2 :: Bls12381G2 -> Value' instr 'TBls12381G2 | |
VChest :: Chest -> Value' instr 'TChest | |
VChestKey :: ChestKey -> Value' instr 'TChestKey |
Instances
data RemFail (instr :: k -> k -> Type) (i :: k) (o :: k) where Source #
Wrapper over instruction which remembers whether this instruction always fails or not.
RfNormal :: instr i o -> RemFail instr i o | |
RfAlwaysFails :: (forall o'. instr i o') -> RemFail instr i o |
Instances
Eq (instr i o) => Eq (RemFail instr i o) Source # | Ignoring distinction between constructors here, comparing only semantics. |
(forall (o' :: k). Show (instr i o')) => Show (RemFail instr i o) Source # | |
(forall (o' :: k). NFData (instr i o')) => NFData (RemFail instr i o) Source # | |
Defined in Morley.Michelson.Typed.Value |
rfMerge :: (forall o'. instr i1 o' -> instr i2 o' -> instr i3 o') -> RemFail instr i1 o -> RemFail instr i2 o -> RemFail instr i3 o Source #
Merge two execution branches.
rfAnyInstr :: RemFail instr i o -> instr i o Source #
Get code disregard whether it always fails or not.
rfMapAnyInstr :: (forall o'. instr i1 o' -> instr i2 o') -> RemFail instr i1 o -> RemFail instr i2 o Source #
Modify inner code.
addressToVContract :: forall t instr. (ParameterScope t, ForbidOr t) => Address -> Value' instr ('TContract t) Source #
Make value of contract
type which refers to the given address and
does not call any entrypoint.
checkComparability :: Sing t -> Comparability t Source #
compileEpLiftSequence :: EpLiftSequence arg param -> Value' instr arg -> Value' instr param Source #
Turn EpLiftSequence
into actual function on Value
s.
comparabilityPresence :: Sing t -> Maybe (Dict $ Comparable t) Source #
getComparableProofS :: Sing (a :: T) -> Maybe (Dict (Comparable a)) Source #
liftCallArg :: EntrypointCallT param arg -> Value' instr arg -> Value' instr param Source #
Lift entrypoint argument to full parameter.
withValueTypeSanity :: Value' instr t -> (SingI t => a) -> a Source #
Provide a witness of that value's type is known.