Aqua CLI
Last updated
Was this helpful?
Last updated
Was this helpful?
Aqua CLI allows you to manage all aspects of development and includes:
Compiler
Client Peer
Utilities
To install the Aqua CLI package:
The compiler turns high-level Aqua code into either JS/TS handlers wrapping AIR, the default, or pure AIR.
The quickest way to compile Aqua code is to take all .aqua
files from the specified input directory, e.g., src/aqua
, and place the generated JavaScript code in some output directory of your choosing, e.g. src/generated
. Please note that if the specified output directory does not exist, the CLI creates it for you:
Of course, we can be more specific and name a filename:
As mentioned in the intro, the Aqua compiler generates .js
with .d.ts
TypeScript files by default. Output files will contain functions exported from .aqua
files and methods for registering defined services. You can read more about calling functions and service registration in the .
Additional compiler options are:
--js
flag, which generates only .js
files
--air
or -a
flag, which generates pure AIR code
--scheduled
, which generates AIR code suitable for script storage
Use aqua --help
for a complete listing of available flags, subcommands and explanations.
The CLI provides additional features and utilities via subcommands.
The aqua run
command creates a one-shot client peer over the compiled Aqua code specified allowing you to quickly and effectively test Aqua code against deployed services on the network.
For the following Aqua script:
We instantiate our aqua client peer:
The aqua run
command provides additional features such as:
--sk
or -s
allows you to provide your secret key (sk) in base64
--data
or -d
allows you to specify data arguments as a json map:
--data-path
or p
allows you to specify data arguments, see --data
, as a file. Note that --data
and --data-path
are mutually exclusive.
--json-service
or -j
allows you to describe a service that will return a JSON. This service must be described in Aqua. There can be multiple functions strictly without any arguments. Also, you can use this flag multiple times targeting multiple services in different files. There is an example of a service description in Aqua and JSON:
Use aqua run --help
for a complete listing of available flags and explanations.
The aqua key create
utility allows you to create an ed25519-based keypair in base64:
And produces the following json document:
A critical step is to get our WASm modules and service configuration files to our target hosts. The Aqua cli provides the capability to upload and configure our assets into hosted services under the aqua remote
namespace:
shows a list of testnet
peers:
--addr
or -a
allows you to specify a relay in format, e.g., /dns4/kras-04.fluence.dev/tcp/19001/wss/p2p/12D3KooWFEwNWcHqi9rtsmDhsYcDbRUCDXH84RC4FW6UfsFWaoHi
. The aqua config default_peers <krasnodar, testnet, stage>
command enumerates you the respective network multiaddresses of available Fluence nodes.
--import
or -m
allows you to from one or more source folders by using the flag repeatedly
See the section for details and examples.
The aqua config default_peers
utility shows a list of peers in format for a specific Fluence network. Currently, there are three environments: krasnodar
, the default network,stage
and testnet
.