|
| 1 | +# @1hive/evmcrispr |
| 2 | + |
| 3 | +## 0.7.0 |
| 4 | + |
| 5 | +### Minor Changes |
| 6 | + |
| 7 | +- 05b03b6: This version comprises a complete refactoring, restructuring and abstraction of the library and the formalization of the evmcl language (now call cas11) by applying computer programming theory concepts. |
| 8 | + |
| 9 | + The functionality (commands and helpers) has been move to separated modules and the library is now a set of composable parsers that scan the cas11 scripts producing an AST (Abstract Syntax Tree) structure which is later processed by an interpreter (the evmcrispr). |
| 10 | + |
| 11 | + ## New features |
| 12 | + |
| 13 | + - New `switch <network name or id>` command that allows you to dynamically switch the chain at any point of the script. |
| 14 | + |
| 15 | + - New `load <module> [as <alias>]` command that allows you import modules containing a set of commands and helpers. At the moment there are two modules: |
| 16 | + |
| 17 | + - `std`: core module which is not required to import. It contains the following: |
| 18 | + - Commands: `load`, `exec`, `set` and `switch`. |
| 19 | + - Helpers: `@date`, `@get`, `@id`, `@ipfs`, `@me`, `@token` and `@token.balance`. |
| 20 | + |
| 21 | + - `aragonos`: aragon module which contains the following: |
| 22 | + - Commands: `act`, `connect`, `forward`, `grant`, `install`, `new-dao`, `new-token`, `revoke` and `upgrade`. |
| 23 | + - Helpers: `@aragonEns`. |
| 24 | + |
| 25 | + - New read-only method call operator `<contractAddress>::<method>(<args>)`. It also supports chainable calls. Example: `token-manager::token()::decimals()`. |
| 26 | + |
| 27 | + - `@calc()` helper has been deprecated in favor of native arithmetic expression operations that supports priority parenthesis. Example: `set $var1 (@token.balance(DAI, @me) * (5 - myContract::aMethodReturningNumber()))`. |
| 28 | + |
| 29 | + * Complete support of nested expression structures (e.g. arrays, block command expressions, call expressions, helper expressions, etc). |
| 30 | + |
| 31 | + * Support to recursive `connect` commands that allows you to define DAO-to-DAO operations scripts and have access to different organizations apps inside a scope. |
| 32 | + |
| 33 | + * The `forward` command is back. It allows you to customize the forward path by not having to define it in the `connect` command. This can be helpful when creating scripts that will be send through a forwarding path compose of apps from different DAOs. |
| 34 | + |
| 35 | + * Option arguments can now be used in-between commands. Example `my-command --anOpt 1e18 anotherArg --anotherOpt 1e18 anotherArg`. |
| 36 | + |
| 37 | + * Improved and enhanced error handling logic that displays the location (line and column number) and type of the failed expression along with the error message. |
| 38 | + |
| 39 | + * Error recovering logic implemented: parsers scan the whole script looking for the maximum amount of errors possible. |
0 commit comments