AMAX Quickstart Web IDE lets developers start building full-stack AMAX applications in a matter of minutes.
Powered by Gitpod.io and Docker, it provides developers with a personal single-node AMAX blockchain for development and testing purposes without a need of going through advanced local environment setup. It also includes an example application with a smart contract and web frontend, connected to the blockchain. Developers can also use AMAX tools like amcli and amax.cdt straight out of the box. This project requires zero installation on the user's machine. All code is stored and managed on the developer's personal GitHub account, with the changes saved automatically.
We built this project with ease of use and simplicity in mind. It can be used by new developers trying out or learning AMAX, as well as advanced developers and teams. It is especially useful in the environments where users don't have full control over the systems they work on (universities, banks, government organizations, etc.) or when they have lower-than-required computer specs to run AMAX locally.
We hope you will find this project useful and welcome feedback on future improvements.
-
Fork this repo to your personal GitHub account so that you can save your work into your personal Github account.
-
Point your browser to the following URL https://gitpod.io/#https://github.com/armoniax/amax-web-ide to start the IDE. You will be automatically prompted to create a Gitpod account (all types of Gitpod accounts (including free) will work). You can also choose to provide multiple developers push access to your personal github fork of this repo to collaborate with them (one developer working on the smart contract (C++) while the other working on the front-end decentralized application (EOSJS), etc.). Each such developer sharing access to the forked repo will get their own copy of the AMAX blockchain components to enable independent development.
You can test drive the system by accessing the IDE at https://gitpod.io/#https://github.com/armoniax/amax-web-ide (however you will not be able to save your work into the AMAX/amax-web-ide Github repository)
The following instructions assume that the Web IDE was started successfully (see Setup).
To open a terminal, use the Terminal drop-down menu in the IDE user interface.
The source code for the sample smartcontract is at contract/talk.cpp
within the IDE. To compile the contract, run this in a terminal:
amax-cpp contract/talk.cpp
This will produce talk.abi
and talk.wasm
.
Run this in a terminal:
amcli create account amax talk AM6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
amcli set code talk talk.wasm
amcli set abi talk talk.abi
Run this in a terminal:
amcli create account amax bob AM6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
amcli create account amax jane AM6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
amcli push action talk post '[1000, 0, bob, "This is a new post"]' -p bob
amcli push action talk post '[2000, 0, jane, "This is my first post"]' -p jane
amcli push action talk post '[1001, 2000, bob, "Replying to your post"]' -p bob
Run this in a terminal:
amcli get table talk '' message
The source code for the React WebApp is at webapp/src/index.tsx
within the IDE. To preview the WebApp run this in a terminal:
gp preview $(gp url 8000)
The source code for the unit test is at the tests
directory within the IDE. To build the tests, run this in the terminal:
./build-tests
This will produce the tester
binary, which can be run from the terminal to start the actual unit test:
./tester
The unit test creates the talk_tests
test suite and verifies that the following statements are executed without error:
- Create user account
talk
. - Load the
talk
smart contract in thetalk
account sandbox. - Create user accounts
john
andjane
. - Test the
post
action by performing the following:- Push the
post
action fromtalk
tojohn
with message "post 1
" identified as1
and addressed to message0
(sent by noone).
This posts the message1
fromjohn
to noone in the chat. - Push the
post
action fromtalk
tojane
with message "post 2
" identified as2
and addressed to message0
(sent by noone).
This posts the message2
fromjane
to noone in the chat. - Push the
post
action fromtalk
tojohn
with message "post 3: reply
" identified as3
and addressed to message2
(sent byjane
).
This posts the reply message3
fromjohn
tojane
in the chat.
- Push the
- Test failure of the
post
action if message is addressed to a non-existant message id.
To remove the existing chain and create another:
- Switch to the terminal running
amnod
- Press
ctrl+c
to stop it - Run the following
rm -rf ~/amax/chain
amnod --config-dir ~/amax/chain/config --data-dir ~/amax/chain/data -e -p amax --plugin amax::chain_api_plugin --contracts-console
Note: if the web app is currently open, then it will cause errors like the following. You may ignore them:
FC Exception encountered while processing chain.get_table_rows
See LICENSE for copyright and license terms.
All repositories and other materials are provided subject to the terms of this IMPORTANT notice and you must familiarize yourself with its terms. The notice contains important information, limitations and restrictions relating to our software, publications, trademarks, third-party resources, and forward-looking statements. By accessing any of our repositories and other materials, you accept and agree to the terms of the notice.