Being able to develop dApps on EOSIO in the easiest, fastest and the most straightforward way is our understanding of how we’re going to reach mass adoption of the EOSIO network. A blockchain network is valuable only and when we’re building on top of it. And building EOSIO dApps is now becoming easier than ever…

As blockchain developers coming from Ethereum, our team at Infinite X Labs is constantly looking for solutions that would make dApps easier to develop. However, even with all the fantastic tools out there we still couldn’t find what we were looking for.

The tool which we believe will help all future EOSIO developers and make the transition for ethereum developers coming to EOS less painful.

That is how infeos was born.

What is infeos?

infeos is a javascript & npm based framework for development, building, testing and deploying of EOSIO based dApps.

What’s so special about infeos?

As we said earlier we were looking to find the easiest, fastest and the most straightforward way to develop on EOSIO.

With infeos you can:

Set up your development environment in a matter of minutes and in less than 1 minute for each new project after the first one. Starting a full local node in a matter of seconds with only one command and choosing your preferred network: EOS, Telos or Worbli. And with the development of the ecosystem even more. For the first time ever: Unit tests your EOSIO smart contracts using javascript. Testing our smart contracts as blockchain developers is our number one priority. Now testing EOSIO smart contracts will become easier than ever. Full control over your environment configurations and deployment setup. You can set up your node and deployments scripts Optimized dApp project structure — with infeos we’re introducing a new EOSIO dApp projects structure where you have one master smart contract that rule them all. More on that later With infeos, you don’t need to be an EOSIO developer, neither blockchain developer to work with dApp smart contracts. All back-ends and front-ends developers now have the power to work with you dApp on blockchain level in just learning a few commands

Let us show you why we’re so excited about this, and we hope you are as well!

Using infeos

There are a few main commands which you need to learn in order to master the infeos framework and the EOSIO development.

Install infeos

infeos is npm based framework. To start using it you just need to install via npm:

npm install infeos

Initialize a new project

infeos gives you a basic EOSIO dApp template for you to start developing on EOSIO. We integrated a project structure which will help you in making more optimized high-quality and efficient smart contracts.

To initialize a new project just execute the following command in your chosen working folder:

infeos init

This will create everything you need to start developing. That includes example smart contracts, ricardian contracts, unit tests, configuration and deployment files

With the example template included you don’t need to write any code to test the next commands.

Run a local node

The power of the local EOSIO nodes is hidden in the Docker containers. We created small but yet powerful images that can be directly used for each local node.

Run the following command to start your local node:

infeos run-node

Only the first time it could take some time before the whole image is downloaded locally. By default, the command starts an EOS node. It automatically set up a wallet, import keys and create a deployer account. Re-running the command will rebuild your node with a fresh and clear new instance.

Compile EOSIO smart contracts

You have a running node!

Before the first deploy, we need to compile our smart contract. To do that run the following command:

infeos compile

The command will automatically create a build folder and place the generated WASM file inside it. If you want to generate both WASM & ABI run the command with the abi option

infeos compile --abi

Use the generated abi for the example contract here.

Take note that if the project and the objects are too complex abigen (from eosio-cpp) will fail to generate correct ABI. In most cases it will be empty. We suggest you build your ABI manually and then to use the command without the abi option. That way any further compilations won’t override the current ABI with an empty one. Please refer to https://developers.eos.io/eosio-home/docs/the-abi for more details.

Deploying EOSIO smart contracts

It’s time to deploy!

With infeos, the deploying process is so much easier and fast. Run the following command to deploy the sample contracts to the local node:

infeos deploy

Behind the scenes, the command uses the compiled WASM & ABI files previously and together with your pre-setup deployer account, it will automatically deploy the master contract to the blockchain.

At the end of the deployment process, the EOSIODeployer will return you an instance of the contract which you can use to interact with all the actions.

Check the deploy.js file in the deployment folder for more details where you’ll find the deployment logic.

Testing

And here comes the most exciting part!

Let’s face it, writing unit tests in javascript it’s way much easier, faster and intuitive than in c++. All blockchain developers coming from Ethereum write their tests in javascript and now all EOSIO developers can write their tests in javascript too.

Testing EOS smart contracts have never been so much easier. You just type:

infeos test

and the magic is happening!

With infeos, the EOSIO universe is in your hands!

What’s coming next?

A lot of things!

Be able to switch between different nodes and networks — EOS, Telos, Worbli. We’re already working on integrating Telos and Worbli in infeos. Testing EOSIO smart contracts with javascript becoming even easier Full documentation on how to use infeos

These and even more features are coming. Check our GitHub repo for updates, issues, and new releases.

As infeos is still in development we would love to hear your feedback, help us find bugs, tell us what you want to include.

Telegram

Don’t hesitate to join us at our telegram group: infeos where we’ll be sharing news, releases. You can contact us there if you need help with infeos