Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Michelson instructions in untyped model.
Synopsis
- data InstrAbstract f op
- = EXT (ExtInstrAbstract f op)
- | DROPN Word
- | DROP
- | DUP VarAnn
- | DUPN VarAnn Word
- | SWAP
- | DIG Word
- | DUG Word
- | PUSH VarAnn Ty (Value' f op)
- | SOME TypeAnn VarAnn
- | NONE TypeAnn VarAnn Ty
- | UNIT TypeAnn VarAnn
- | IF_NONE (f op) (f op)
- | PAIR TypeAnn VarAnn FieldAnn FieldAnn
- | UNPAIR VarAnn VarAnn FieldAnn FieldAnn
- | PAIRN VarAnn Word
- | UNPAIRN Word
- | CAR VarAnn FieldAnn
- | CDR VarAnn FieldAnn
- | LEFT TypeAnn VarAnn FieldAnn FieldAnn Ty
- | RIGHT TypeAnn VarAnn FieldAnn FieldAnn Ty
- | IF_LEFT (f op) (f op)
- | NIL TypeAnn VarAnn Ty
- | CONS VarAnn
- | IF_CONS (f op) (f op)
- | SIZE VarAnn
- | EMPTY_SET TypeAnn VarAnn Ty
- | EMPTY_MAP TypeAnn VarAnn Ty Ty
- | EMPTY_BIG_MAP TypeAnn VarAnn Ty Ty
- | MAP VarAnn (f op)
- | ITER (f op)
- | MEM VarAnn
- | GET VarAnn
- | GETN VarAnn Word
- | UPDATE VarAnn
- | UPDATEN VarAnn Word
- | GET_AND_UPDATE VarAnn
- | IF (f op) (f op)
- | LOOP (f op)
- | LOOP_LEFT (f op)
- | LAMBDA VarAnn Ty Ty (f op)
- | LAMBDA_REC VarAnn Ty Ty (f op)
- | EXEC VarAnn
- | APPLY VarAnn
- | DIP (f op)
- | DIPN Word (f op)
- | FAILWITH
- | CAST VarAnn Ty
- | RENAME VarAnn
- | PACK VarAnn
- | UNPACK TypeAnn VarAnn Ty
- | CONCAT VarAnn
- | SLICE VarAnn
- | ISNAT VarAnn
- | ADD VarAnn
- | SUB VarAnn
- | SUB_MUTEZ VarAnn
- | MUL VarAnn
- | EDIV VarAnn
- | ABS VarAnn
- | NEG VarAnn
- | LSL VarAnn
- | LSR VarAnn
- | OR VarAnn
- | AND VarAnn
- | XOR VarAnn
- | NOT VarAnn
- | COMPARE VarAnn
- | EQ VarAnn
- | NEQ VarAnn
- | LT VarAnn
- | GT VarAnn
- | LE VarAnn
- | GE VarAnn
- | INT VarAnn
- | VIEW VarAnn ViewName Ty
- | SELF VarAnn FieldAnn
- | CONTRACT VarAnn FieldAnn Ty
- | TRANSFER_TOKENS VarAnn
- | SET_DELEGATE VarAnn
- | CREATE_CONTRACT VarAnn VarAnn (Contract' op)
- | IMPLICIT_ACCOUNT VarAnn
- | NOW VarAnn
- | AMOUNT VarAnn
- | BALANCE VarAnn
- | VOTING_POWER VarAnn
- | TOTAL_VOTING_POWER VarAnn
- | CHECK_SIGNATURE VarAnn
- | SHA256 VarAnn
- | SHA512 VarAnn
- | BLAKE2B VarAnn
- | SHA3 VarAnn
- | KECCAK VarAnn
- | HASH_KEY VarAnn
- | PAIRING_CHECK VarAnn
- | SOURCE VarAnn
- | SENDER VarAnn
- | ADDRESS VarAnn
- | CHAIN_ID VarAnn
- | LEVEL VarAnn
- | SELF_ADDRESS VarAnn
- | NEVER
- | TICKET VarAnn
- | TICKET_DEPRECATED VarAnn
- | READ_TICKET VarAnn
- | SPLIT_TICKET VarAnn
- | JOIN_TICKETS VarAnn
- | OPEN_CHEST VarAnn
- | SAPLING_EMPTY_STATE VarAnn Natural
- | SAPLING_VERIFY_UPDATE VarAnn
- | MIN_BLOCK_TIME [AnyAnn]
- | EMIT VarAnn FieldAnn (Maybe Ty)
- | BYTES VarAnn
- | NAT VarAnn
- data ExpandedOp
- type ExpandedInstr = InstrAbstract [] ExpandedOp
- flattenExpandedOp :: ExpandedOp -> [ExpandedInstr]
Documentation
data InstrAbstract f op Source #
Michelson instruction with abstract parameter op
. This
parameter is necessary, because at different stages of our pipeline
it will be different. Initially it can contain macros and
non-flattened instructions, but then it contains only vanilla
Michelson instructions.
Instances
data ExpandedOp Source #
Instances
type ExpandedInstr = InstrAbstract [] ExpandedOp Source #
flattenExpandedOp :: ExpandedOp -> [ExpandedInstr] Source #
Flatten all SeqEx
in ExpandedOp
. This function is mostly for
testing. It returns instructions with the same logic, but they are
not strictly equivalent, because they are serialized differently
(grouping instructions into sequences affects the way they are
PACK'ed).