62dcc47 | Eugen Zalinescu | 13 October 2019, 08:46:38 UTC | Doc, proof-of-stake: remove outdated statements | 31 October 2019, 08:21:32 UTC |
1a6b811 | Eugen Zalinescu | 12 October 2019, 14:27:06 UTC | Doc, proof-of-stake: remove ambiguous statement | 31 October 2019, 08:21:32 UTC |
7f57349 | Eugen Zalinescu | 12 October 2019, 14:25:16 UTC | Doc, proof-of-stake: CYCLES_BEFORE_DELEGATION -> PRESERVED_CYCLES | 31 October 2019, 08:21:32 UTC |
892a508 | Eugen Zalinescu | 12 October 2019, 14:16:29 UTC | Doc: update tokens_per_roll value | 31 October 2019, 08:21:32 UTC |
d54514b | Lacramioara Astefanoaei | 02 August 2019, 16:47:29 UTC | Doc: proof-of-stake overview | 31 October 2019, 08:21:32 UTC |
1885bd2 | Eugen Zalinescu | 24 July 2019, 08:48:24 UTC | Doc: update proof-of-stake to Emmy+ | 31 October 2019, 08:21:32 UTC |
5e12413 | b | 30 October 2019, 12:39:17 UTC | Doc: add some time durations to Test networks comments | 30 October 2019, 14:02:10 UTC |
0dce897 | Romain Bardou | 30 October 2019, 09:54:28 UTC | Doc: document test network constant differences | 30 October 2019, 14:02:10 UTC |
a094805 | b | 29 October 2019, 21:12:56 UTC | Doc: replace Alphanet - replace other mentions of Alphanet Babylonnet is used as little as possible so it remains easier to maintain during future upgrades - add anchor to the test networks page and hyperlinks to it | 30 October 2019, 14:02:10 UTC |
a1b89eb | Romain Bardou | 28 October 2019, 09:42:45 UTC | Doc: add faucet link and test network branches | 30 October 2019, 14:02:10 UTC |
3fc1a3f | Romain Bardou | 24 October 2019, 10:15:09 UTC | Doc: add Test Networks introduction page | 30 October 2019, 14:02:10 UTC |
bbc775e | Romain Bardou | 24 October 2019, 09:59:13 UTC | Doc: Alphanet becomes Babylonnet | 30 October 2019, 14:02:10 UTC |
871ee6a | Victor Allombert | 25 October 2019, 15:28:12 UTC | Bin_node: proper error when an inconsistent data dir is provided Solves issue 584 | 30 October 2019, 13:36:37 UTC |
658be07 | Julien Tesson | 28 October 2019, 22:53:22 UTC | Doc: manager.tz gas costs | 30 October 2019, 12:15:19 UTC |
975b226 | Julien Tesson | 24 October 2019, 15:02:43 UTC | Test/Python: adapt fees and gas to optimised lambda + switch to more robust mutez comparison | 30 October 2019, 12:15:19 UTC |
f566d2c | Julien Tesson | 23 October 2019, 19:49:54 UTC | Proto/Client: earlier check of set/remove_delegate entrypoint | 30 October 2019, 12:15:19 UTC |
5bef9f2 | Julien Tesson | 29 August 2019, 12:28:58 UTC | Proto/Client/managed_contract: optimizing the passed lambda Changing `Push unit Unit` for `Unit` Changing `PUSH address _ ; CONTRACT unit ; ASSERT_SOME` with `PUSH key_hash _ ;IMPLICIT_ACCOUNT` for implicit accounts. | 30 October 2019, 12:15:19 UTC |
45170f2 | Pietro Abate | 30 October 2019, 10:08:06 UTC | vendors: update version constraints for hex and fmt | 30 October 2019, 12:01:07 UTC |
fc9aae1 | vbot | 30 October 2019, 10:21:40 UTC | Daemons: fix the bootstrapping waiting phase | 30 October 2019, 11:05:10 UTC |
57230fe | Pietro Abate | 28 October 2019, 17:51:56 UTC | lib_shell_services: remove Unix reference Since this module should be Unix free, this patch removes the Unix.error data encoding and uses a string instead created by the function Unix.error_message to print the error. | 30 October 2019, 10:42:44 UTC |
6203cb2 | Sebastien Mondet | 28 October 2019, 17:03:36 UTC | Build: add `dune build @check` (`make build-test`) | 30 October 2019, 06:39:47 UTC |
4d15406 | Sebastien Mondet | 28 October 2019, 16:53:56 UTC | Vendors: add `dune` files to ignore test dirs | 30 October 2019, 06:39:47 UTC |
6546f4e | Pietro Abate | 29 October 2019, 12:28:13 UTC | lib_resto-cohttp: Remove unix dependency | 29 October 2019, 20:08:56 UTC |
a02e3d9 | Pietro Abate | 25 October 2019, 11:50:51 UTC | stdlib_unix/client_base_unix: Use re.str instead of str. The module re is more jsoo friendly | 29 October 2019, 11:16:55 UTC |
88321dd | Julien Tesson | 24 September 2019, 07:33:43 UTC | Test/Python: check balance after transfers + Test/Python: set fixed gas limit manager contract test | 28 October 2019, 19:38:12 UTC |
f13cb01 | Julien Tesson | 29 August 2019, 20:45:16 UTC | Tests/Python/Contracts: Test client on set/remove_delegate entrypoints + Test/Python: Comply with linting rules | 28 October 2019, 18:55:10 UTC |
f0213b5 | Julien Tesson | 24 October 2019, 09:11:32 UTC | Proto/client: fix tez/mutez conversion for transfer from KT1 | 28 October 2019, 18:55:10 UTC |
5818b98 | Benjamin Canou | 29 August 2019, 07:48:01 UTC | Proto/Client: more compact serialization | 28 October 2019, 18:55:10 UTC |
1702970 | Julien Tesson | 27 August 2019, 21:50:57 UTC | Test/Python,Contracts: test usage of the manager contract from the client - Originate the manager contract - Set/Change/Withdraw it's delegate from the client - transfer to/from the manager from/to implicit account - transfer from the manager to other kt1 with and without specifying entrypoints and arguments | 28 October 2019, 18:55:10 UTC |
cd5ebfc | Julien Tesson | 27 August 2019, 22:00:51 UTC | Test/Python: add delegation related operations in client | 28 October 2019, 18:55:10 UTC |
41f4f3c | Julien Tesson | 20 September 2019, 21:29:24 UTC | Proto/Client: operate transfer through manageable KT1 This commit make the client capable of handling the transfers from a KT1 with a "do" entrypoint. It mimmic as much as possible the behaviour of the client pre-Babylon on spendable KT1. However, fees are taken from the contract manager, and the ̀source`of the operation will be the manager, not the KT1. | 28 October 2019, 18:55:10 UTC |
d1d5960 | Julien Tesson | 23 July 2019, 17:18:10 UTC | Proto/Client: set delegate on manageable KT1 This commit make the client capable of handling the delegation of a KT1 with set/withdraw_delegate or do entrypoints It mimmic as much as possible the behaviour of the client pre-Babylon on delegatable KT1. However, fees are taken from the contract manager. | 28 October 2019, 18:55:10 UTC |
c9d449d | Julien Tesson | 23 July 2019, 17:10:04 UTC | Proto/Client: Client commands to inspect entrypoints Beside all the machinery added to interact internally with the entrypoints list and types, this commit does the following in the client commands Changing tezos-client get script storage for <contract> to tezos-client get contract storage for <contract> Changing tezos-client get script code for <contract> to tezos-client get contract code for <contract> adding tezos-client get contract unreachable paths for <contract> tezos-client get script unreachable paths for <contract> tezos-client get contract type of entrypoint <entrypoint> for <contract> tezos-client get script type of entrypoint <entrypoint> for <contract> tezos-client get contract entrypoints for <contract> tezos-client get script entrypoints for <contract> Tests/Bash: Reflect change of command name in bash tests | 28 October 2019, 18:55:10 UTC |
86b5227 | Marco Stronati | 28 October 2019, 16:15:29 UTC | Proto: remove .ocamlformat-ignore and make fmt | 28 October 2019, 18:31:24 UTC |
ae3c08d | Marco Stronati | 28 October 2019, 16:13:03 UTC | Proto: make dune file a link to protocol_compiler | 28 October 2019, 16:26:55 UTC |
8276606 | Marco Stronati | 28 October 2019, 16:04:56 UTC | Proto/Client: add verbose signing to submit ballot | 28 October 2019, 16:26:55 UTC |
8298b40 | Romain Bardou | 07 October 2019, 14:55:09 UTC | Node: remove get_exn to prevent Not_found errors We now get assert failures instead, which are much more helpful. Ideally we should make user friendly error messages though, as now the genesis hash is part of the configuration. | 28 October 2019, 13:27:54 UTC |
da3c808 | Philippe Bidinger | 19 September 2019, 08:56:43 UTC | Test/python: don't sigkill servers Currently, servers are sigkilled when tests terminate. This doesn't play well with code coverage tools. Now they are terminated with SIGTERM, and killed only after a 10s timeout. | 28 October 2019, 13:09:15 UTC |
c66eaf7 | Sebastien Mondet | 26 October 2019, 13:08:41 UTC | Remove non-built file (rebase mess up) | 26 October 2019, 13:09:58 UTC |
eafe06c | Philippe Bidinger | 23 October 2019, 14:15:01 UTC | Test/python: re-enable linter and fix linting | 25 October 2019, 18:35:26 UTC |
c9159dc | Seb Mondet | 25 October 2019, 10:07:18 UTC | File_descriptor_sink: split ≠ sink for stdout/err See comments <https://gitlab.com/tezos/tezos/merge_requests/1292> | 25 October 2019, 10:07:18 UTC |
508012a | Pierre Boutillier | 24 October 2019, 07:03:14 UTC | Documentation publication: preserve redirections {{main,alpha,zero}net,master}/index.html -> /index.html | 24 October 2019, 07:03:14 UTC |
a3c7714 | Pierre Boutillier | 23 October 2019, 17:00:23 UTC | Documentation: fixup publication on gitlab.io | 23 October 2019, 18:36:32 UTC |
9d51454 | Pierre Boutillier | 23 October 2019, 16:01:38 UTC | Documentation: only publish on gitlab.io 'master' doc As 'master' is the only case where the documentation is published, files are put the root of the repository instead of the in the master/ sub directory. | 23 October 2019, 16:02:00 UTC |
15a5779 | Adrian Brink | 23 October 2019, 10:02:25 UTC | Remove tzscan.io and replace it with other block explorers | 23 October 2019, 10:02:25 UTC |
4e42f5e | Raphaël Cauderlier | 23 October 2019, 06:43:54 UTC | Doc/Fix: Add the required double quotes around key_hash literals in the Babylon protocol documentation | 23 October 2019, 06:43:54 UTC |
ded75bb | Philippe Bidinger | 14 October 2019, 12:20:47 UTC | P2p: doc sockets/protocol | 22 October 2019, 16:00:33 UTC |
991a529 | Philippe Bidinger | 26 August 2019, 09:48:59 UTC | P2p_io_scheduler: variable renaming for clarity | 22 October 2019, 16:00:33 UTC |
18dbf6b | Raphaël Proust | 14 October 2019, 22:19:26 UTC | Tooling, CI, Makefile: check for tabs in script files during lint | 21 October 2019, 15:49:14 UTC |
33f2d23 | Raphaël Proust | 06 October 2019, 00:52:19 UTC | Scripts: replace tabs (\t) by spaces ( ) | 21 October 2019, 15:49:14 UTC |
218becb | Pierre Boutillier | 21 October 2019, 13:34:50 UTC | Flextesa: the default --protocol-kind is Babylon | 21 October 2019, 13:34:50 UTC |
36ced38 | Pierre Boutillier | 21 October 2019, 13:00:02 UTC | Run "make fmt" | 21 October 2019, 13:00:02 UTC |
ae3ab2e | Tomáš Zemanovič | 02 September 2019, 15:06:24 UTC | Test/python: Update client command 'hash data' expected output | 21 October 2019, 12:45:21 UTC |
22501ef | Tomáš Zemanovič | 14 August 2019, 12:07:10 UTC | Tests/Python: disable test_check_head until fixed | 21 October 2019, 12:45:16 UTC |
8963d6a | vbot | 20 September 2019, 12:06:41 UTC | Proto: add vanity nonce | 21 October 2019, 12:44:06 UTC |
f82226f | vbot | 18 September 2019, 15:09:54 UTC | Client: fix `run script` command output format | 21 October 2019, 12:44:05 UTC |
51f42ac | vbot | 18 September 2019, 15:05:44 UTC | Proto/Michelson: restore missing optional log argument to the step function | 21 October 2019, 12:44:04 UTC |
9559e5f | Raphaël Cauderlier | 17 September 2019, 15:00:55 UTC | Protocol/Michelson: Fix the computation of the big_map flag on type construtors | 21 October 2019, 12:44:03 UTC |
b660099 | Raphaël Cauderlier | 17 September 2019, 14:58:38 UTC | Tests: Add a failing test for big_maps | 21 October 2019, 12:44:02 UTC |
6c29c19 | Benjamin Canou | 01 August 2019, 12:49:09 UTC | Proto: update the tags of manager operations | 21 October 2019, 12:44:00 UTC |
9cc43ae | Benjamin Canou | 31 July 2019, 12:42:13 UTC | Proto: use only one size byte for entrypoint name | 21 October 2019, 12:43:59 UTC |
e95009e | Benjamin Canou | 31 July 2019, 12:41:42 UTC | Proto: update the fitness format for Emmy+ | 21 October 2019, 12:43:58 UTC |
74952c4 | Benjamin Canou | 18 June 2019, 14:36:20 UTC | Docs: synchronise Michelson specification - Updates the documentation of `big_map`s. - Adds a short documentation of entrypoints. - Adds the chain_id type and the `CHAIN_ID` instruction - Adds `COMPARE` variants. - Adds documentation for `APPLY`. | 21 October 2019, 12:43:56 UTC |
74f982d | Benjamin Canou | 23 July 2019, 15:52:42 UTC | Tests/Bash: adapt to the new protocol | 21 October 2019, 12:40:50 UTC |
bdc1eff | Benjamin Canou | 23 July 2019, 14:55:39 UTC | Tests/Contracts: update Michelson test contracts and bash tests - Update tests for the new semantics of CREATE_CONTRACT. - Adds tests for DIG, DUG, DROP and DIP. - Test the new CHAIN_ID instruction. - Test the new APPLY instruction. | 21 October 2019, 12:40:48 UTC |
f42e51e | Benjamin Canou | 23 July 2019, 14:57:53 UTC | Tests/Python: update Python tests - Add all constants to parameters. - Adapt the tests to the new constants and semantics. - Adapt for minimum proposal quorum. - Adapt test_multinode_snapshot to Emmy+. - Adapt to Michelson lightweight multiple entrypoints | 21 October 2019, 12:40:34 UTC |
c80e102 | Benjamin Canou | 23 July 2019, 16:18:27 UTC | Tests/OCaml: Adapt to the new protocol - Add test to quorum caps. - Adapt tests to the new endorsement semantics. - Adapt tests for delegatable implicit accounts. - Add tests for minimum proposal quorum. - Adapt tests for lightweight multiple entrypoints. - Adapt tests for disabled storage of values of type contract t | 21 October 2019, 12:25:37 UTC |
6ec45a6 | Tomáš Zemanovič | 05 June 2019, 09:13:18 UTC | Parameters: add constants for Emmy+, proposal_quorum and quorum caps This is not a patch for the protocol. It does not affect the hash, but it adds the new constants for Emmy+, proposal quorum and quorum caps to the parameters used to bootstrap a protocol in tests or test-nets. | 21 October 2019, 12:25:36 UTC |
974da48 | Raphaël Cauderlier | 23 July 2019, 12:10:04 UTC | Proto/Michelson: Deprecate instruction STEPS_TO_QUOTA The semantics of the STEPS_TO_QUOTA instruction changes each time the gas constants are modified to better reflect the real costs. Moreover, because of STEPS_TO_QUOTA, the interpreter is not monotonic: it is easy to write a contract that runs successfully at some gas amount but fails when more gas is given. | 21 October 2019, 12:25:35 UTC |
22d2fa7 | Ilias Garnier | 22 July 2019, 09:44:39 UTC | Proto/Michelson: expose internal function of the Michelson interpreter This patch is a refactor that does not change the semantics. It will allow external tools such as steppers or debuggers to control more finely the Michelson interpreter from outside the protocol. | 21 October 2019, 12:25:34 UTC |
2a3e4a3 | Galfour | 07 May 2019, 15:32:48 UTC | Proto/Michelson: add `APPLY` instruction to partially apply a lambda This instruction applies a tuplified function from the stack. Such a lambda is storable, and thus values that cannot be stored (values of type `operation`, `contract _` and `big_map _ _`) cannot be captured by `APPLY` (cannot appear in ``'a``). | 21 October 2019, 12:25:33 UTC |
c4872e3 | Benjamin Canou | 25 July 2019, 12:01:09 UTC | Client: adapt to relaxed big_map restrictions This is not a patch for the protocol. It does not affect the hash, but is needed for the client to work. | 21 October 2019, 12:25:32 UTC |
6f106df | Benjamin Canou | 02 July 2019, 22:00:29 UTC | Proto/Michelson: relax big_map restrictions A contract can now have more than one big_map, they can be placed anywhere in the storage. Big maps can be transferred from a contract to another, either as parameter (transactions) or storage (originations). In this case, they are morally duplicated (as opposed to shared) from the contract point of view. In the implementation, sharing happens. Big maps can be created with `EMPTY_BIG_MAP t` and cleared on the fly. The big_map type still cannot appear as argument of big_map, PUSH or UNPACK. When you duplicate a big map, you are charged with the full storage cost. This patch moves the big maps outside of the contracts in the context, in their own prefix path and indexed by integers. Big_map literals in Michelson expressions are now either the same as maps or their integer index. A temporary zone is introduced, necessary to make sure that big_maps are not spuriously cleared or left dangling during big_map transfers in internal operations. These are represented by negative indexes, and don't persist. | 21 October 2019, 12:25:31 UTC |
e722e9b | Ilias Garnier | 02 July 2019, 14:49:10 UTC | Proto/Michelson: new gas costs The cost functions in Michelson_v1_gas were to a large extent automatically generated. Please refer to meta_model.ml The (abstract) cost model makes large use of floating-point coefficient. These were converted to either integer multiplication/divisions or to statically generated fixed-point computations. | 21 October 2019, 12:25:30 UTC |
daea8ab | Ilias Garnier | 21 June 2019, 12:47:37 UTC | Proto/Michelson: finer-grained cost accounting for the interpreter I. Rescaling step cost - Rescale step_cost by 2^7 to allow finer cost accounting in the interpeter. - Expose new function atomic_step_cost exposing finer resolution step increments. II. Provide facilities for interpreter-specific cost accounting Introduce new functions `Gas.incr_interpreter_cost` and `Gas.bill_interpreter_cost`. - The context stores a new counter 'interpreter_cost' of type Gas_limit_repr.cost - functions are provided to: - increment this counter (incr_interpreter_cost) and - bill for the gas corresponding to this counter and reset this counter. Until bill_interpreter_cost is called, the interpreter_cost is _not_ taken into account into the effectively consumed gas. - Each call to incr_interpreter_cost still checks that we are under the operation and block gas limits. - The interpreter uses these functions instead of the usual Gas.consume. The invariant that has to be respected for this to be transparent to the rest of the protocol is that all continuations of the `step` function to other functions should bill and reset the interpreter_cost beforehand. This concerns calls to interp, calls to the typechecker, calls to read from a big map, calls to the serialization/deserialization mechanism, etc; in short, all calls to other parts of the protocol should have a context in a state where this fine-grained gas bookkeeping has been settled and reset. | 21 October 2019, 12:25:27 UTC |
c5bda6c | Ilias Garnier | 25 June 2019, 06:51:51 UTC | Proto/Michelson: add comparable_ty type witness in boxed sets Some cost functions require computing the size of keys/elts of maps/sets. Not being able to dispatch on the element type was making this impossible outside of the interpreter (where the element type of the set could be accessed elsewhere). This patch fixes that. | 21 October 2019, 12:25:27 UTC |
b2ad6e4 | Ilias Garnier | 19 July 2019, 09:14:17 UTC | Proto/Michelson: unshare cost functions of the interpeter & the rest of the protocol This patch is a refactor to prepare for the gas costs rehaul. It dissociates the gas consumed by the interpreter, which is the part that is updated according to thorough benchmarking, from other source of gas consumption in the protocol (typechecking, serialization etc.) which are left untouched in this update. | 21 October 2019, 12:25:26 UTC |
4487f84 | Benjamin Canou | 18 July 2019, 12:51:39 UTC | Proto/Michelson: extend comparison to linear pair structures Michelson's `COMPARE` instruction can currently only compare simple values (`string`s, `int`s, etc.). This limitation also applies to `set`, `map` and `big_map` indexes. This is an issue in particular for `big_map`s that cannot be nested, because it prevents indexing data by a pair of indexes, such as a `key_hash` and a `string`. This patch lifts that restriction, allowing to compare `pair`s of values, as long as their left component remains a simple value, impicitly making comparable values right combs whose leaves are simple values. The ordering is naturally lexicographic. This patch also refactors a bit the comparison code to simplify it and reduce code duplication. | 21 October 2019, 12:25:25 UTC |
5f92df5 | Raphaël Proust | 27 June 2019, 00:19:25 UTC | Proto/Michelson: comparisons return -1, 0, or 1, as per the documentation The Michelson documentation states that `COMPARE` pushes -1 (resp. 1) if the top element of the stack is smaller (resp. greater) than the second. However, the implementation can actually push a negative number instead of -1 and a positive number instead of 1 depending on the type and values. This semantics should not break any code as the result of `COMPARE` is almost always comsumed by comparison projectors such as `GT` or `LT` who only care about the sign. However, for the sake of consistency, this patches makes `COMPARE` return only -1, 0 or 1. This fixes issue #546 | 21 October 2019, 12:25:24 UTC |
36fbc8d | Tomáš Zemanovič | 11 July 2019, 15:35:46 UTC | Proto/Michelson: add special encoding for `do` and `set/remove_delegate` entrypoints This patch optimises the binary representation of transactions to usual entrypoints. The `do` entrypoint is used by manager.tz script and the `set_delegate` and `remove_delegate` by spendable script transformation. | 21 October 2019, 12:25:23 UTC |
55d1a6c | Tomáš Zemanovič | 14 May 2019, 14:48:56 UTC | Client: update to the new tz1/KT1 policy This is not a patch for the protocol. It does not affect the hash, but is needed for the client to work. | 21 October 2019, 12:25:20 UTC |
071d5eb | Tomáš Zemanovič | 09 May 2019, 14:34:42 UTC | Proto: all KT1s must now be scripted Contains BREAKING CHANGES (see end of message). It removes the manager, spendable and delegatable flags and counter from all KT1s. It deprecates CREATE_ACCOUNT from use in new contracts, as well as the manager, spendable and delegatable arguments from CREATE_CONTRACT. Already deployed contracts with deprecated instructions will continue to work by using legacy support scripts (deploying `manager.tz` for `CREATE_ACCOUNT` and adding entrypoints for `CREATE_CONTRACT`). This change will impact all users of the RPC API as well as anyone who forges operations. The source of manager operations is now a tz1, tz2 or tz3, and no longer a KT1. The manager field and the spendable and delegatable flags disappear from the origination operation format (JSON and binary) as well as everywhere in the RPC API. | 21 October 2019, 12:25:19 UTC |
daceb8b | Benjamin Canou | 23 July 2019, 14:45:36 UTC | Proto/Michelson: handle default entrypoint originated before migration This patch preserves the semantics of `CREATE_CONTRACT` instructions for contracts deployed before the migration that deploy a contract with a default entrypoint. This is done by adding a `%root` entrypoint as detailed in a previous patch. | 21 October 2019, 12:25:18 UTC |
f06c6a3 | Benjamin Canou | 17 July 2019, 14:11:11 UTC | Proto: add code stubs to handle `%default` entrypoints originated before migration This code stub adds a `%root` entrypoint to contracts that have a default entrypoint, and rewrite their calls to `SELF` into `SELF %root`. This is used to preserve the typing of `SELF` within contracts with deployed before the migration that have a `%default` entrypoint. | 21 October 2019, 12:25:17 UTC |
bff82e0 | Raphaël Cauderlier | 17 June 2019, 17:28:53 UTC | Client: add a chain_id parameter to RPCs and update the multisig support This is not a patch for the protocol. It does not affect the hash, but is needed for the client to work. | 21 October 2019, 12:25:16 UTC |
530ca59 | Raphaël Cauderlier | 17 June 2019, 17:28:53 UTC | Proto/Michelson: Add CHAIN_ID and chain_id Add an abstract type and an instruction to obtain the chain id from Michelson code. This is to implement replay protection between the main chain and the test chain spawned in phase 3 of the voting procedure. | 21 October 2019, 12:25:15 UTC |
d92e04e | Tomáš Zemanovič | 14 June 2019, 10:39:26 UTC | Proto: add Michelson code stubs to replicate manager operations on KT1s Spendable, scriptless contracts are simulated by the 'manager.tz' script, which replaces their functionality. It allows for the contract's manager to set and withdraw delegate, spend the contract's funds and to set a new manager, which is written into script's storage. The 'manager.tz' script's parameters have field annotations, which in combination with script entry-points allows for friendlier commands for running the script. Spendable and delegatable flags are simulated by adding entrypoints to a scripted contract. | 21 October 2019, 12:25:15 UTC |
9bdc929 | Tomáš Zemanovič | 18 June 2019, 15:16:36 UTC | Client: Add client 'call' command aliasing 'transfer 0' This is not a patch for the protocol. | 21 October 2019, 12:25:13 UTC |
7839bd6 | Tomáš Zemanovič | 14 June 2019, 14:26:49 UTC | Client: fix 'Invalid_arity' error pretty-print argument order This is not a patch for the protocol. | 21 October 2019, 12:25:12 UTC |
3f33632 | Raphaël Proust | 15 July 2019, 16:31:22 UTC | Proto: do not use parallel iterators This patch does not change the semantics. Using serial iterators (map_s) instead of parallel iterators (map_p) increases the determinism of the protocol. | 21 October 2019, 12:25:10 UTC |
8f488e9 | Benjamin Canou | 28 May 2019, 12:10:13 UTC | Client: make macros DIIIP and DUUUP use new indexed instructions This is not a patch for the protocol. It makes existing macros produce cheaper code thatnks to the new stack instructions. | 21 October 2019, 12:25:08 UTC |
01c321d | Georges Dupéron | 03 May 2019, 11:41:04 UTC | Proto/Michelson: new instructions `DIG n`, `DUG n`, `DIP n { code }`, `DROP n` - `DIG n` : get the element at top of the n-th tail of the stack and move it to the top. `DIG 0` is a no-op. - `DUG n` : get the element at the top of the stack, and move it downwards n slots. `DUG 0` is a no-op. - `DIP n { code }` : execute code after removing the top n elements of the stack, and put these n elements back on top of the resulting stack. `DIP 0 { code }` is equivalent to `{ code }`. - `DROP n` : drop the top `n` elements of the stack. `DROP 0` is a no-op. Smart contract authors should switch to these new instructions in their developments. | 21 October 2019, 12:25:07 UTC |
351cb3e | Eugen Zalinescu | 17 January 2019, 19:46:14 UTC | Proto/Michelson: corrected error message for the contract type This is a minor fix for the Michelson typechecker to produce a better error message on some ill-typed contracts. | 21 October 2019, 12:25:06 UTC |
2ac0d97 | Vincent Botbol | 09 May 2019, 13:57:39 UTC | Proto/Michelson: modify semantics of NOW instruction The `NOW` instruction now pushes the minimal injection time on the stack for the current block/priority, instead of the actual timestamp put in the block by the baker. This is a change required by the switch to Emmy+, in which a baker could decide after having forged a block to include a late endorsement and update the timestamp to an earlier point. With the current semantics of `NOW`, this would mean reevaluating all operations to make sure they are still valid everytime such a change is decided. This patch prevents that issue by fixing the timestamp seen by Michelson independently of the number of endorsements. | 21 October 2019, 12:25:05 UTC |
7354c78 | Benjamin Canou | 05 July 2019, 13:30:48 UTC | Proto/Michelson: annotation semantics fixes Contains a BREAKING CHANGE (see end of message). Some instructions were missing consistency checks on the annotations of their arguments. For instance, it was possible to `CONS` a value of type `unit :A` on a `list (unit :B)`. Smart contracts already deployed before the migration will continue to work even if they present such issues. However, smart contract authors should already make sure that their annotations are consistent by using the new typechecker in a sandbox. This is even more recommended for contracts deployed before the migration that use the `CREATE_CONTRACT` instruction. If the code they deploy is ill-annotated according to the new stricter rule, these contracts will produce failing operations after the migration. | 21 October 2019, 12:25:04 UTC |
7d646d5 | Benjamin Canou | 24 June 2019, 15:58:37 UTC | Proto/Michelson: do not allow annotations inside data anymore Some Michelson values could bear type annotations. These were inconsistent and unspecified. Annotations inside data can now only appear inside lambdas. | 21 October 2019, 12:25:03 UTC |
6d10af1 | Benjamin Canou | 10 July 2019, 09:44:59 UTC | Proto/Michelson: option cannot bear field annotations anymore Contains a BREAKING CHANGE (see end of message). Field annotations on `option` types were inconsistent with other field annotations on other types, interfering with field annotations on their parent type, and the implementation was buggy. Smart contract authors should stop putting field annotations on their option types, or their contract will not be deployable after the migration. It is enough to erase the annotations. | 21 October 2019, 12:25:02 UTC |
ba21c64 | Benjamin Canou | 10 July 2019, 09:41:34 UTC | Client: adapt to Michelson lightweight multiple entrypoints This is not a patch for the protocol. It does not affect the hash, but is needed for the client to work. | 21 October 2019, 12:25:01 UTC |
810d0b3 | Julien Tesson | 23 July 2019, 17:06:05 UTC | Proto/Michelson: add services to list entrypoints This patchs adds four new URIs. - `/helpers/entrypoint_type` - `/helpers/list_entrypoints` - `/contracts/index/<KT1>/entrypoints/` - `/contracts/index/<KT1>/entrypoints/<name>` | 21 October 2019, 12:24:59 UTC |
296aec5 | Benjamin Canou | 10 July 2019, 10:15:51 UTC | Proto/Michelson: add lightweight multiple entrypoints Contains a BREAKING CHANGE (see end of message). This patch implements a way for a transaction to target a specific code path of a smart contract using a name. The implementation is piggy baking on Michelson's or type and field annotations. To take advantage of the multiple entrypoint feature, the parameter type of a contract must have at its toplevel a tree of `or` types. At each branching point in this tree, a field annotation (the ones with a %) can appear, providing the name of the entrypoint. Transactions now have to specify an entrypoint name. When a transaction is executed, the appropriate `Left` and `Right` constructors are automatically added to the value that is pushed onto the input stack, depending on the position of the entrypoint in the parameter type tree. This way, two contracts who share an entrypoint of the same type under the same name can be called exactly the same, even if the entrypoint is placed at a different point in their parameter type tree. From inside the smart contract, nothing changes. From within Michelson, this feature is also available. The `contract t` type now points to a specific entrypoint (of type `t`) of the contract. For this, the `CONTRACT` and `SELF` instructions now take an optional annotation (set to `%default` if not passed). The `TRANSFER_TOKEN` instruction will then use the entrypoint from the `contract t` value that it consumes from the stack. An exception to the semantics is made for the `%default` entrypoint : if present in the contract, it behaves as any other, however if not present, default is automatically attributed to the root of the parameter type. A special check is made at origination that there is no two entrypoints with the same name, and that if a default is present somewhere, then all entrypoints must be named, as otherwise some parts of the code would be unreachable. Smart contract developers can already use the feature, and their contracts will automatically take advantage of entrypoints after the migration. Smart contract developers should take great care when deploying contracts that use the `CREATE_CONTRACT` instruction, as this instruction will produce a failing operation after the migration if it tries to deploy a contract with ill formed entrypoints. To prevent this, contract authors should test their contract in a sandbox with the new protocol, or simply avoid hardcoding the `CREATE_CONTRACT` instruction when possible. | 21 October 2019, 12:24:58 UTC |