Introducing EOSFactory v1.1 - the go-to IDE for EOS smart contract testing

in #eos6 years ago (edited)

After several weeks of refactoring of the code, TOKENIKA is proud to announce a new release of EOSFactory, tagged v1.1. It is our third update within the last 2 months, as the project is gaining momentum and new features. Previous releases are described in-depth here, v0.8 and here, v1.0.

For those unfamiliar with EOSFactory, here is a brief introduction. Feel free to skip it, if you already know what EOSFactory is about.

Smart contract testing is critically important part of the Dapp development cycle. Errors in smart contracts range from problematic to extremely costly/lethal, and have in the past derailed entire multi-million dollar blockchain startups. The testing procedure involves tasks that need to be executed hundreds of times, each time in the exact same way and context. EOSFactory has been created to facilitate that and it allows you to use Python to write complex unit tests for EOS smart-contracts.

EOSFactory main features

What are the main features in this release?

1. Full compatibility with the production version of EOS

As of now EOSFactory is compatible with EOS v1.0.8 or higher (previously EOSFactory was only compatible with EOS dawn-v4.0.0).

To achieve that we needed to change the entire architecture of EOSFactory by making it reliant directly on cleos, the official EOS client, instead of teos, our own C++ client for nodeos.

The previous approach was well justified at the time when cleos was unstable and lacking some essential functionalities, but there was a costly side effect: we had to constantly play a catching-up game with the changing nodeos API.

Since EOSFactory is now hooked up directly to cleos, in most cases we expect it to be compatible with whatever changes are introduced in the nodeos backend.

2. Ability to interact with a public testnet

Smart-contracts built with EOSFactory can be now be deployed and tested on a public testnet, e.g. Jungle Testnet. This feature may seem like an easy extension of the existing dependency on a local testnet.

However, it turns out smart-contract unit testing with a remote testnet is far from trivial.

The main reason is that you do not have full control of a public testnet (as is the case with a local testnet), you cannot reset it any time you want and thus each time you use a public testnet for your smart-contract testing you need to either create a new set of accounts (which is ineffective and time consuming) or you need to carefully recycle the same set of accounts (each having a unique random name).

This release of EOSFactory uses the latter approach and offers a built-in mechanism for mapping random account names (as required by the public testnet) to fixed names used in smart-contract testing.

Additional difficulty lies in the fact that a remote testnet cannot manage your wallet (as is the case in a private testnet) and the only option is using keosd, the official wallet management tool. Therefore, especially for the sake of an external testnet we've introduced support for keosd, which is a bit harder to use, as you cannot easily reset it, but fortunately you can have multiple wallets, each using its own unique name.

3. Other features

This release comes with several other minor improvements, including color differentiation in console output and improved error reporting.

Support and Questions

Starting with this release we will be supoporting Q&A's through a dedicated Telegram channel. EOSFactory is also fully documented here and the documentation will be updated on regular basis.

Final words

We hope that EOSFactory will be of use in the building of the EOS ecosystem, as real applications are needed to take EOS to the level everybody hopes to see it at. Developers need all the help they can get, and as Tokenika we will strive to make this easier and accessible to the largest possible talent pool. If you like what we do, please support us by voting tokenika4eos in the EOS Block Producer Vote. Thank you for your support, and also, feel free to reach out to us - we will be happy to answer whatever relevant questions you may have.

Sort:  

This will help a lot! Thank you!

You're welcome, we're happy to help :)

it's so cool :) adore it

Thank you for your kindness :)