This repository contains the source code to start building on AO and AOS quickly. Includes testing and ci/cd configurations. Testing and building is done in typescript, with the module code designed for eval again AOS-Lua ao modules.
First install the npm dependencies
yarn
Then install the ao cli - read the docs here Below is latest version as of writing, refer to the docs for the latest version.
curl -L https://arweave.net/iVthglhSN7G9LuJSU_h5Wy_lcEa0RE4VQmrtoBMj7Bw | bash
You may need to follow the instructions in the cli to add the program to your PATH.
To test the module, you can use the following command to run the testing suites that use AoLoader and node native testing (requires node 20+)
yarn test
This bundles the ant-aos code and outputs it to dist
folder. This can then be used to send to the Eval
method on AOS to load the ANT source code.
yarn aos:build
Ensure that in the tools
directory you place you Arweave JWK as key.json
yarn aos:publish
This will load an AOS module into the loader, followed by the bundled aos Lua file to verify that it is a valid build.
yarn aos:load
this will spawn an aos process and load the bundled lua code into it.
yarn aos:spawn
This will deploy the bundled lua file to arweave as an L1 transaction, so your wallet will need AR to pay the gas.
Using the ao-dev-cli.
This will compile the standalone ANT module to wasm, as a file named process.wasm
and loads the module in AO Loader to validate the WASM program is valid.
yarn module:build
Publishes the custom ANT module to arweave - requires you placed your JWK in the tools
directory. May require AR in the wallet to pay gas.
yarn module:publish
Loads the module in AO Loader to validate the WASM program is valid.
yarn module:load
Requires module:build
to have been called so that process.wasm
exists.
Spawns a process with the process.wasm
file.
yarn module:spawn
For interacting with handlers please refer to the AO Cookbook
Retrieves the Name, Ticker, Total supply, Logo, Denomination, and Owner of the ANT.
Tag Name | Type | Pattern | Required | Description |
---|---|---|---|---|
Action | string | "Info" | true | Action tag for triggering handler |
-
Clone the repository and navigate to the project directory.
-
Install
lua
brew install lua@5.3
-
Add the following to your
.zshrc
or.bashrc
file:echo 'export LDFLAGS="-L/usr/local/opt/lua@5.3/lib"' >> ~/.zshrc echo 'export CPPFLAGS="-I/usr/local/opt/lua@5.3/include"' >> ~/.zshrc echo 'export PKG_CONFIG_PATH="/usr/local/opt/lua@5.3/lib/pkgconfig"' >> ~/.zshrc echo 'export PATH="/usr/local/opt/lua@5.3/bin:$PATH"' >> ~/.zshrc
-
Run
source ~/.zshrc
orsource ~/.bashrc
to apply the changes. -
Run
lua -v
to verify the installation.
To load the module into the aos
REPL, run the following command:
aos --load src/main.lua
The code is formatted using stylua
. To install stylua
, run the following command:
cargo install stylua
stylua contract
To run the tests, execute the following command:
yarn test