From 0bac3f2857ec2e822edc32545c6825d17c4de812 Mon Sep 17 00:00:00 2001 From: Nicolas Ayache Date: Thu, 5 Oct 2023 14:43:19 +0200 Subject: [PATCH 1/4] Doc/Michelson: swap subsections. --- docs/alpha/michelson.rst | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/docs/alpha/michelson.rst b/docs/alpha/michelson.rst index 5a7f5491fc33..9e156f3b8905 100644 --- a/docs/alpha/michelson.rst +++ b/docs/alpha/michelson.rst @@ -900,6 +900,14 @@ A detailed description of the following instructions can be found in the `intera - ``EMIT %tag 'ty``: constructs an operation that will write an event into the transaction receipt (`documentation `__). +.. _MichelsonViews_alpha: + +Operations on views +~~~~~~~~~~~~~~~~~~~~ + +A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. + +- ``VIEW name 'return``: Call the view named ``name`` from the contract whose address is the second element of the stack, sending it as input the top element of the stack (`documentation `__). Removed instructions and types ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -950,16 +958,6 @@ reject any contract using it. used to authenticate layer-2 operations to transfer tickets from this account. -.. _MichelsonViews_alpha: - -Operations on views -~~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``VIEW name 'return``: Call the view named ``name`` from the contract whose address is the second element of the stack, sending it as input the top element of the stack (`documentation `__). - - Macros ------ -- GitLab From 087a64528f5cd4dc00bcf6976633847c3e0f2a31 Mon Sep 17 00:00:00 2001 From: Nicolas Ayache Date: Thu, 5 Oct 2023 14:44:03 +0200 Subject: [PATCH 2/4] Doc/Michelson: make removed instructions a section. --- docs/alpha/michelson.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/alpha/michelson.rst b/docs/alpha/michelson.rst index 9e156f3b8905..3292b40d99d2 100644 --- a/docs/alpha/michelson.rst +++ b/docs/alpha/michelson.rst @@ -910,7 +910,7 @@ A detailed description of the following instructions can be found in the `intera - ``VIEW name 'return``: Call the view named ``name`` from the contract whose address is the second element of the stack, sending it as input the top element of the stack (`documentation `__). Removed instructions and types -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +------------------------------ :doc:`../protocols/005_babylon` deprecated the following instructions. Because no smart contract used these on Mainnet before they got deprecated, they have been -- GitLab From e4bfc97a150b5a4de67b415dbed5d4aa6157c636 Mon Sep 17 00:00:00 2001 From: Nicolas Ayache Date: Thu, 5 Oct 2023 14:51:38 +0200 Subject: [PATCH 3/4] Doc/Michelson: add pointers to the interactive reference. --- docs/alpha/michelson.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/alpha/michelson.rst b/docs/alpha/michelson.rst index 3292b40d99d2..7b62525dffd0 100644 --- a/docs/alpha/michelson.rst +++ b/docs/alpha/michelson.rst @@ -449,6 +449,17 @@ as well-typed. This is because the implementation uses a simple single pass typechecking algorithm, and does not handle any form of polymorphism. +Types and instructions +---------------------- + +The complete sets of Michelson types and instructions are detailed in the +`interactive Michelson reference page `__. + +- Specifically, it contains synthesis tables for `types `__ + and for `instructions `_. +- Instructions are also organized by `categories `__. +- Each instruction is precisely defined using typing and semantic inference rules. + Core data types and notations ----------------------------- -- GitLab From 8fad76c9daf8f7acfa8410eca897991ffa2874e8 Mon Sep 17 00:00:00 2001 From: Nicolas Ayache Date: Thu, 5 Oct 2023 14:52:38 +0200 Subject: [PATCH 4/4] Doc/Michelson: remove all supported types and instructions. Because can already be found at https://tezos.gitlab.io/michelson-reference. --- docs/alpha/michelson.rst | 460 --------------------------------------- 1 file changed, 460 deletions(-) diff --git a/docs/alpha/michelson.rst b/docs/alpha/michelson.rst index 7b62525dffd0..48c5e18ea6ea 100644 --- a/docs/alpha/michelson.rst +++ b/docs/alpha/michelson.rst @@ -460,466 +460,6 @@ The complete sets of Michelson types and instructions are detailed in the - Instructions are also organized by `categories `__. - Each instruction is precisely defined using typing and semantic inference rules. -Core data types and notations ------------------------------ - -- ``string``, ``nat``, ``int`` and ``bytes``: The core primitive - constant types. - -- ``bool``: The type for booleans whose values are ``True`` and - ``False``. - -- ``unit``: The type whose only value is ``Unit``, to use as a - placeholder when some result or parameter is not necessary. For - instance, when the only goal of a contract is to update its storage. - -- ``never``: The empty type. Since ``never`` has no inhabitant, no value of - this type is allowed to occur in a well-typed program. - -- ``list (t)``: A single, immutable, homogeneous linked list, whose - elements are of type ``(t)``, and that we write ``{}`` for the empty - list or ``{ first ; ... }``. In the semantics, we use chevrons to - denote a subsequence of elements. For instance: ``{ head ; }``. - -- ``pair (l) (r)``: A pair of values ``a`` and ``b`` of types ``(l)`` - and ``(r)``, that we write ``(Pair a b)``. - -- ``pair (t{1}) ... (t{n})`` with ``n > 2``: A shorthand for ``pair (t{1}) (pair (t{2}) ... (pair (t{n-1}) (t{n})) ...)``. - -- ``option (t)``: Optional value of type ``(t)`` that we write ``None`` - or ``(Some v)``. - -- ``or (l) (r)``: A union of two types: a value holding either a value - ``a`` of type ``(l)`` or a value ``b`` of type ``(r)``, that we write - ``(Left a)`` or ``(Right b)``. - -- ``set (t)``: Immutable sets of values of type ``(t)`` that we write as - lists ``{ item ; ... }``, of course with their elements unique, and - sorted. - -- ``map (k) (t)``: Immutable maps from keys of type ``(k)`` of values - of type ``(t)`` that we write ``{ Elt key value ; ... }``, with keys - sorted. - -- ``big_map (k) (t)``: Lazily deserialized maps from keys of type - ``(k)`` of values of type ``(t)``. - These maps should be used if you intend to store large amounts of data in a map. - Using ``big_map`` can reduce gas costs significantly compared to standard maps, as data is lazily deserialized. - Note however that individual operations on ``big_map`` have higher gas costs than those over standard maps. - A ``big_map`` also has a lower storage cost than a standard map of the same size, when large keys are used, since only the hash of each key is stored in a ``big_map``. - - A ``big_map`` cannot appear inside another ``big_map``. - See the section on :ref:`operations on big maps ` for a description of the syntax of values of type ``big_map (k) (t)`` and available operations. - -Core instructions ------------------ - -Control structures -~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``FAILWITH``: Explicitly abort the current program (`documentation `__). -- ``{}``: Empty sequence (`documentation `__). -- ``{ I ; C }``: Sequence (`documentation `__). -- ``IF bt bf``: Conditional branching (`documentation `__). -- ``LOOP body``: A generic loop (`documentation `__). -- ``LOOP_LEFT body``: A loop with an accumulator (`documentation `__). -- ``DIP code``: Runs code protecting the top element of the stack (`documentation `__). -- ``DIP n code``: Runs code protecting the ``n`` topmost elements of the stack (`documentation `__). -- ``EXEC``: Execute a function from the stack (`documentation `__). -- ``APPLY``: Partially apply a tuplified function from the stack (`documentation `__). - -Stack operations -~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``DROP``: Drop the top element of the stack (`documentation `__). -- ``DROP n``: Drop the ``n`` topmost elements of the stack (`documentation `__). -- ``DUP``: Duplicate the top element of the stack (`documentation `__). -- ``DUP n``: Duplicate the ``n``-th element of the stack (`documentation `__). -- ``SWAP``: Exchange the top two elements of the stack (`documentation `__). -- ``DIG n``: Take the element at depth ``n`` of the stack and move it - on top (`documentation `__). -- ``DUG n``: Place the element on top of the stack at depth ``n`` (`documentation `__). -- ``PUSH 'a x``: Push a constant value of a given type onto the stack (`documentation `__). -- ``LAMBDA 'a 'b code``: Push a lambda with the given parameter type ``'a`` and return type ``'b`` onto the stack (`documentation `__). -- ``LAMBDA_REC 'a 'b code``: Push a recursive lambda onto the stack (`documentation `__). - -Generic comparison -~~~~~~~~~~~~~~~~~~ - -Comparison only works on a class of types that we call comparable. A -``COMPARE`` operation is defined in an ad hoc way for each comparable -type, but the result of compare is always an ``int``, which can in turn -be checked in a generic manner using the following combinators. The -result of ``COMPARE`` is ``0`` if the top two elements of the stack are -equal, negative if the first element in the stack is less than the -second, and positive otherwise. - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``EQ``: Checks that the top element of the stack is equal to zero (`documentation `__). -- ``NEQ``: Checks that the top element of the stack is not equal to zero (`documentation `__). -- ``LT``: Checks that the top element of the stack is less than zero (`documentation `__). -- ``GT``: Checks that the top element of the stack is greater than zero (`documentation `__). -- ``LE``: Checks that the top element of the stack is less than or equal to - zero (`documentation `__). -- ``GE``: Checks that the top of the stack is greater than or equal to - zero (`documentation `__). - -Operations ----------- - -Operations on unit -~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``UNIT``: Push a unit value onto the stack (`documentation `__). -- ``COMPARE``: Unit comparison (`documentation `__). - -Operations on type never -~~~~~~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``NEVER``: Close a forbidden branch (`documentation `__). -- ``COMPARE``: Trivial comparison on type ``never`` (`documentation `__). - - -Operations on booleans -~~~~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``OR`` (`documentation `__). -- ``AND`` (`documentation `__). -- ``XOR`` (`documentation `__). -- ``NOT`` (`documentation `__). -- ``COMPARE``: Boolean comparison (`documentation `__). - -Operations on integers and natural numbers -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``NEG`` (`documentation `__). -- ``ABS`` (`documentation `__). -- ``ISNAT`` (`documentation `__). -- ``INT`` (`documentation `__). -- ``ADD`` (`documentation `__). -- ``SUB`` (`documentation `__). -- ``MUL`` (`documentation `__). -- ``EDIV``: Perform Euclidean division (`documentation `__). -- ``OR`` (`documentation `__). -- ``AND`` (`documentation `__). -- ``XOR`` (`documentation `__). -- ``NOT``: Two's complement (`documentation `__). -- ``LSL`` (`documentation `__). -- ``LSR`` (`documentation `__). -- ``COMPARE``: Integer/natural comparison (`documentation `__). - -Operations on strings -~~~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``CONCAT``: String concatenation (`documentation `__). -- ``SIZE``: number of characters in a string (`documentation `__). -- ``SLICE``: String access (`documentation `__). -- ``COMPARE``: Lexicographic comparison (`documentation `__). - -Operations on pairs and right combs -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``PAIR``: Build a binary pair from the stack's top two elements (`documentation `__). -- ``PAIR n``: Fold ``n`` values on the top of the stack in a right comb (`documentation `__). -- ``UNPAIR``: Split a pair into its components (`documentation `__). -- ``UNPAIR n``: Unfold ``n`` values from a right comb on the top of the stack (`documentation `__). -- ``CAR``: Access the left part of a pair (`documentation `__). -- ``CDR``: Access the right part of a pair (`documentation `__). -- ``GET k``: Access an element or a sub comb in a right comb (`documentation `__). -- ``UPDATE k``: Update an element or a sub comb in a right comb (`documentation `__). -- ``COMPARE``: Lexicographic comparison (`documentation `__). - -Operations on sets -~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``EMPTY_SET 'elt``: Build a new, empty set for elements of a given - type (`documentation `__). -- ``MEM``: Check for the presence of an element in a set (`documentation `__). -- ``UPDATE``: Inserts or removes an element in a set, replacing a - previous value (`documentation `__). -- ``ITER body``: Apply the body expression to each element of a set (`documentation `__). -- ``SIZE``: Get the cardinality of the set (`documentation `__). - -Operations on maps -~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``EMPTY_MAP 'key 'val``: Build a new, empty map (`documentation `__). -- ``GET``: Access an element in a map (`documentation `__). -- ``MEM``: Check for the presence of a binding for a key in a map (`documentation `__). -- ``UPDATE``: Add, update, or remove an element in a map (`documentation `__). -- ``GET_AND_UPDATE``: A combination of the ``GET`` and ``UPDATE`` instructions (`documentation `__). -- ``MAP body``: Apply the body expression to each element of a map (`documentation `__). -- ``ITER body``: Apply the body expression to each element of a map (`documentation `__). -- ``SIZE``: Get the cardinality of the map (`documentation `__). - - -Operations on ``big_maps`` -~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. _OperationsOnBigMaps_alpha: - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``EMPTY_BIG_MAP 'key 'val``: Build a new, empty big map (`documentation `__). -- ``GET``: Access an element in a ``big_map`` (`documentation `__). -- ``MEM``: Check for the presence of an element in a ``big_map`` (`documentation `__). -- ``UPDATE``: Add, update, or remove an element in a ``big_map`` (`documentation `__). -- ``GET_AND_UPDATE``: A combination of the ``GET`` and ``UPDATE`` instructions (`documentation `__). - - -Operations on optional values -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``SOME``: Pack a value as an optional value (`documentation `__). -- ``NONE 'a``: The absent optional value (`documentation `__). -- ``IF_NONE bt bf``: Inspect an optional value (`documentation `__). -- ``COMPARE``: Optional values comparison (`documentation `__). -- ``MAP body``: Apply the body expression to the value inside the option if there is one (`documentation `__). - -Operations on unions -~~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``LEFT 'b``: Pack a value in a union (left case) (`documentation `__). -- ``RIGHT 'a``: Pack a value in a union (right case) (`documentation `__). -- ``IF_LEFT bt bf``: Inspect a value of a union (`documentation `__). -- ``COMPARE``: Unions comparison (`documentation `__). - -Operations on lists -~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``CONS``: Prepend an element to a list (`documentation `__). -- ``NIL 'a``: Push an empty list (`documentation `__). -- ``IF_CONS bt bf``: Inspect a list (`documentation `__). -- ``MAP body``: Apply the body expression to each element of the list (`documentation `__). -- ``SIZE``: Get the number of elements in the list (`documentation `__). -- ``ITER body``: Iterate the body expression over each element of a list (`documentation `__). - -Domain specific data types --------------------------- - -- ``timestamp``: Dates in the real world. - -- ``mutez``: A specific type for manipulating tokens. - -- ``address``: An untyped address (implicit account or smart contract). - -- ``contract 'param``: A contract, with the type of its code, - ``contract unit`` for implicit accounts. - -- ``operation``: An internal operation emitted by a contract. - -- ``key``: A public cryptographic key. - -- ``key_hash``: The hash of a public cryptographic key. - -- ``signature``: A cryptographic signature. - -- ``chain_id``: An identifier for a chain, used to distinguish the test and the main chains. - -- ``bls12_381_g1``, ``bls12_381_g2`` : Points on the BLS12-381 curves G\ :sub:`1`\ and G\ :sub:`2`\ , respectively. - -- ``bls12_381_fr`` : An element of the scalar field F\ :sub:`r`\ , used for scalar multiplication on the BLS12-381 curves G\ :sub:`1`\ and G\ :sub:`2`\ . - -- ``sapling_transaction ms``: A :doc:`Sapling ` transaction - -- ``sapling_state ms``: A :doc:`Sapling ` state - -- ``ticket (t)``: A ticket used to authenticate information of type ``(t)`` on-chain. - -- ``chest``: a timelocked chest containing bytes and information to open it. - see :doc:`Timelock ` . - -- ``chest_key``: used to open a chest, also contains a proof - to check the correctness of the opening. see :doc:`Timelock ` . - - -Domain specific operations --------------------------- - -Operations on timestamps -~~~~~~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``ADD`` Increment / decrement a timestamp of the given number of - seconds (`documentation `__). -- ``SUB`` Subtract a number of seconds from a timestamp (`documentation `__). -- ``SUB`` Subtract two timestamps (`documentation `__). -- ``COMPARE``: Timestamp comparison (`documentation `__). - - -Operations on Mutez -~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``ADD`` (`documentation `__). -- ``SUB_MUTEZ`` (`documentation `__). -- ``MUL`` (`documentation `__). -- ``EDIV`` (`documentation `__). -- ``COMPARE``: Mutez comparison (`documentation `__). - -Operations on contracts -~~~~~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``CREATE_CONTRACT { storage 'g ; parameter 'p ; code ... }``: - Forge a new contract from a literal (`documentation `__). -- ``TRANSFER_TOKENS``: Forge a transaction (`documentation `__). -- ``SET_DELEGATE``: Set or withdraw the contract's delegation (`documentation `__). -- ``BALANCE``: Push the current amount of mutez held by the executing - contract, including any mutez added by the calling transaction (`documentation `__). -- ``ADDRESS``: Cast the contract to its address (`documentation `__). -- ``CONTRACT 'p``: Cast the address to the given contract type if possible (`documentation `__). -- ``SOURCE``: Push the contract that initiated the current - transaction (`documentation `__). -- ``SENDER``: Push the contract that initiated the current - internal transaction (`documentation `__). -- ``SELF``: Push the current contract (`documentation `__). -- ``SELF_ADDRESS``: Push the address of the current contract (`documentation `__). -- ``AMOUNT``: Push the amount of the current transaction (`documentation `__). -- ``IMPLICIT_ACCOUNT``: Push on the stack the contract value corresponding to the implicit account of a public key hash (`documentation `__). -- ``VOTING_POWER``: Push the voting power of a given contract (`documentation `__). - -Special operations -~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``NOW``: Push the estimated injection time for the current block (`documentation `__). -- ``CHAIN_ID``: Push the chain identifier (`documentation `__). -- ``COMPARE``: Chain identifier comparison (`documentation `__). -- ``LEVEL``: Push the level of the current transaction's block (`documentation `__). -- ``TOTAL_VOTING_POWER``: Push the total voting power of all contracts (`documentation `__). -- ``MIN_BLOCK_TIME``: Push the current minimal block time in seconds (`documentation `__). - -Operations on bytes -~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``PACK``: Serializes a piece of data to its optimized - binary representation (`documentation `__). -- ``UNPACK 'a``: Deserializes a piece of data, if valid (`documentation `__). -- ``CONCAT``: Concatenate two byte sequences or a list of byte sequences (`documentation `__). -- ``SIZE``: Size of a sequence of bytes (`documentation `__). -- ``SLICE``: Access a subsequence of a byte sequence (`documentation `__). -- ``COMPARE``: Lexicographic comparison (`documentation `__). -- ``OR``: Bitwise ``OR`` (`documentation `__). -- ``AND``: Bitwise ``AND`` (`documentation `__). -- ``XOR``: Bitwise ``XOR`` (`documentation `__). -- ``NOT``: Bitwise ``NOT`` (`documentation `__). -- ``LSL``: Logically left shift of a byte sequence (`documentation `__). -- ``LSR``: Logically right shift of a byte sequence (`documentation `__). -- ``NAT``: Convert ``bytes`` to type ``nat`` using big-endian encoding (`documentation `__). -- ``INT``: Convert ``bytes`` to type ``int`` using big-endian two's complement encoding (`documentation `__). -- ``BYTES``: Convert a ``nat`` or an ``int`` to type ``bytes`` using big-endian encoding (and two's complement for ``int``) (`documentation `__). - -Cryptographic primitives -~~~~~~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``HASH_KEY``: Compute the b58check of a public key (`documentation `__). -- ``BLAKE2B``: Compute a cryptographic hash of the value contents using the - Blake2b-256 cryptographic hash function (`documentation `__). -- ``KECCAK``: Compute a cryptographic hash of the value contents using the - Keccak-256 cryptographic hash function (`documentation `__). -- ``SHA256``: Compute a cryptographic hash of the value contents using the - Sha256 cryptographic hash function (`documentation `__). -- ``SHA512``: Compute a cryptographic hash of the value contents using the - Sha512 cryptographic hash function (`documentation `__). -- ``SHA3``: Compute a cryptographic hash of the value contents using the - SHA3-256 cryptographic hash function (`documentation `__). -- ``CHECK_SIGNATURE``: Check that a sequence of bytes has been signed - with a given key (`documentation `__). -- ``COMPARE``: Key hash, key and signature comparison (`documentation `__). - -BLS12-381 primitives -~~~~~~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``NEG``: Negate a curve point or field element (`documentation `__). -- ``ADD``: Add two curve points or field elements (`documentation `__). -- ``MUL``: Multiply a curve point or scalar field element by an integer or a scalar field element (`documentation `__). -- ``INT``: Convert a field element to type ``int`` (`documentation `__). -- ``PAIRING_CHECK``: Verify that the product of pairings of the given list of points is equal to 1 in Fq12 (`documentation `__). - - -Sapling operations -~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``SAPLING_VERIFY_UPDATE``: Verify and apply a transaction on a Sapling state (`documentation `__). -- ``SAPLING_EMPTY_STATE ms``: Push an empty state on the stack (`documentation `__). - -.. _MichelsonTickets_alpha: - -Operations on tickets -~~~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``TICKET``: Create a ticket with the given content and amount (`documentation `__). -- ``READ_TICKET``: Retrieve the information stored in a ticket (`documentation `__). -- ``SPLIT_TICKET``: Delete the given ticket and create two tickets with the - same content and ticketer as the original, but with the new provided amounts (`documentation `__). -- ``JOIN_TICKETS``: The inverse of ``SPLIT_TICKET`` (`documentation `__). - -Operations on timelock -~~~~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instruction can be found in the `interactive Michelson reference manual `__. - -- ``OPEN_CHEST``: Open a timelocked chest given its key and the time (`documentation `__). - - -Events -~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``EMIT %tag 'ty``: constructs an operation that will write an event into - the transaction receipt (`documentation `__). - -.. _MichelsonViews_alpha: - -Operations on views -~~~~~~~~~~~~~~~~~~~~ - -A detailed description of the following instructions can be found in the `interactive Michelson reference manual `__. - -- ``VIEW name 'return``: Call the view named ``name`` from the contract whose address is the second element of the stack, sending it as input the top element of the stack (`documentation `__). - Removed instructions and types ------------------------------ -- GitLab