Environment Variables
To make developing with the Maven CLI easier you can incorporate environment variables into your workflow. The Aion plugin for Maven is configured to watch for certain variables. If it finds these variables then it skips repetitive steps in the smart contract workflow.
Private Key
Adding the private key pk
variable allows you to run Maven commands without having to specify which account you would like to use for a particular action. Actions such as deploying a contract can benefit from this massively. If Maven finds a pk
variable within a user’s terminal environment then it will automatically attempt to use that private key to sign transactions and deployments.
To export your private key run the following in a terminal window:
# On Linux / MacOS
export pk=0x5e444d8bf64f9f6d9022...
# On Windows
set pk=0x5e444d8bf64f9f6d9022...
Instead of this:
mvn aion4j:deploy -Dpk=4b45d22a2f042d9... -Dweb3rpc.url=http://192.168.0.9 -Premote
You can run this:
mvn aion4j:deploy -Dweb3rpc.url=http://192.168.0.9 -Premote
When combined with the web3rpc
variable, this command shrinks down to:
mvn aion4j:deploy -Premote
Web3 RPC
Tell Maven to always route requests through a specific node without having to repeat the node URL for every command. This can be achieved by either exporting web3rpc
as an environment variable, or by specifying the node you want to use in your project’s pom.xml
file.
Using Environment Variables
To use your computers environment variables, enter the following in a terminal window:
# For Mac / Linux
export web3rpc_url=http://host:port
# For Windows
set web3rpc_url=http://host:port
Modifying the Pom File
Specifying the Web3 RPC URL within your project’s pom.xml
file allows you to use different nodes for different projects.
In your project’s pom.xml
file find the <web3rpcUrl>
field. Within this field enter the URL of the node you want to connect to:
<plugin>
...
<web3rpcUrl>http://192.168.0.9</web3rpcUrl>
...
</plugin>
Override an Existing Web3 RPC URL
With that variable supplied any calls made within Maven using the -Premote
argument will automatically be routed to the specified node. You can tell Maven to ignore the node specified within the pom.xml
file by supplying the -Dweb3rpc
argument with a different node:
mvn aion4j:deploy -Dweb3rpc="https://new.aion.node/v1/Amity/jsonrpc?apiKey=123456abcdef..." -Premote