Web3j CLI has been incorporated into the Epirus CLI

The Web3j CLI has been incorporated into the Epirus CLI. Anyone using the Web3j CLI should download the Epirus CLI instead and work with it from now on. It’s available here.

Other then the name change, all existing commands are exactly the same in the Epirus CLI as the Web3j CLI. The Epirus CLI provides a number of awesome additional features including the building of Docker containers, wallet management and network connectivity, simplifying developer workflows everywhere.

For more information, head to the Epirus CLI docs.

That the web3j cli is integrated into the new epirus cli is fine. From a community standpoint however, it is very undesirable that now you must have an account to use the epirus cli. This will be a major concern for adoption as it is a lock in. Also this is not clearly stated at the very beginning of your doc. If then a developer gets a runtime exception like this: “java.lang.IllegalStateException: Epirus config file exists but does not contain a login token. Please log in to the Epirus platform using the CLI.” it is more than scaring people away. It is an absolute NO GO.

Hey Dan, the only action that should require an account is using Epirus’ run command - this provides ether and network connectivity behind the scenes so we need some way of monitoring usage of the service.

What sequence of steps did you run that resulted in you encountering this message?

Hi Conor, I migrate from web3j cli to epirus cli, created project epirus new ... using Java and Gradle.

First problem I encountered was that the generated Gradle build task, regardless of the Gradle config, always defaulted to the outdated solc version 0.4.x but I need 0.7.x at least.

So I could not use the epirus gradle plugin.

Never mind, I created the Java wrappers with eprius cli.

Then I realized that all the deploy functions with explicit gaz are deprecated. So I gave the overload

deploy(Web3j web3j, Credentials credentials, ContractGasProvider contractGasProvider)

a try. This results in that exception, as I did not log in. The deprecated versions work. BTW I use Ganache.

Hope that helps.

Hi Dan, these issues are getting addressed:

  1. The Solidity project generated had a pragma for a 0.4.x version of Solidity - this is getting upped to 0.7.x.
  2. When a project is created by epirus new, then run using gradlew run or as a regular jar, it will request that the user specifies a node endpoint and wallet file via config if they are not using an Epirus account.

We anticipate these fixes will be released next week - we’re about to release a new version of our Gradle plugin that supports OpenAPI project generation too, so the CLI update will come just after this.

I hope that’s OK!