v0.5.0
New features:
- We restructured the EVMcrispr library in modules to make it easier to extend with other frameworks in the future.
- We separated the code between the
std
(standard) module and thearagonos
module. - The
std
module contains the genericexec
command and the@token
,@me
,@id
, and@date
helpers. - The
aragonos
module contains all the Aragon-specific commands (connect
,install
,upgrade
,grant
,revoke
,exec
, andact
) and the@aragonEns
helper.
- We separated the code between the
- We introduced
@id
and@date
helpers.- The
@id
helper can be used to obtain the hash of a string - The
@date
helper is a more powerful helper than the@now
helper (that we will not need to implement):- We can use
@date(now)
to get the current time - We can also use a date in ISO 8601 format to specify an exact date, for instance,
@date(2022-02-02Z)
to obtain the timestamp for 2nd February 2022. - We can also add or remove periods to those dates. Examples:
@date(now,+3d)
for three days from now, and@date(2015-07-30Z,-2y-4m)
for 2 years and 4 months ago from the Ethereum genesis block date.
- We can use
- The
- We introduced major support to named parameters in commands.
- New
--oracle
option ingrant
command, replacing the@params
and@params.oracle
helpers we had planned. It allows an EVMcrispr user to set up permissions only available when the oracle returns true. An excellent example of that is the 1hive token oracle Aragon app, which is an ACL oracle that returns true when the address that acts has a specific token.# grant any entity permission to create votes if they have a specific token grant ANY_ENTITY voting CREATE_VOTES_ROLE voting --oracle token-oracle.open
- New
--version
option in commandinstall
, so we can choose to install a different version, not just the last one. Example:# install voting v1.0.0 install voting:new @token(HNY) $support $quorum $duration --version 1.0.0
- New positional options in command
upgrade
make it optional and allow to specify a specific version. Example:# upgrade voting to the latest version upgrade voting # downgrade voting to 1.0.0 upgrade voting 1.0.0 # upgrade voting to a different contract (be very careful with this one) upgrade voting 0x...
- New
- We now allow multi-transaction sending scripts, so we can create many votes in many different DAOs in just one script.
- This is the first version in which we can use EVMcrispr to execute any transaction in the blockchain, without having to be attached to a DAO. Do you want to claim and re-stake your Unipool rewards? Easy:
# No DAO needed; these actions are performed directly from your address exec $contract getReward() exec $contract stake(uint256) @token.balance(@me)
- You can also create many votes in the same script!
connect dao1 token-manager voting ( # <actions to normal Aragon DAO> ) connect dao2 disputable-voting.open --context "Optional link" ( # <actions to Gardens> )
- On top of that, you can even interact with the DAO apps from your address without forwarding.
connect dao1 ( # Cast a vote on vote #1 directly from your address, voting yes exec voting vote 1 true true )
- This is the first version in which we can use EVMcrispr to execute any transaction in the blockchain, without having to be attached to a DAO. Do you want to claim and re-stake your Unipool rewards? Easy:
- New option to command
new
to create DAOs:new dao <aragonId>
.- It creates an empty DAO. Once available in the graph, you can install as many apps as you want and grant them permissions within a
connect
command. - Connecting to the DAO just after creating it does not work yet; it needs to be done in a different script.
- It creates an empty DAO. Once available in the graph, you can install as many apps as you want and grant them permissions within a
- New
@aragonEns
helper to find the addresses pointed by subdomains ofaragonpm.eth
andaragonid.eth
. Real example used last week:set $repo @aragonEns(hooked-token-manager-no-controller.open.aragonpm.eth) exec $repo newVersion(uint16[3],address,bytes) [2,0,0] 0x7cdB48CBF25F4f044eEaE83187E3825Ae301C93d ipfs:Qma2cVx7i9eTu9VSBexWVbfqeS1qwKc8zFFnwV4zrjTMUJ
- We migrated the UI to use Chakra React components, which will make it easier to expand the frontend next to the subsequent iterations.