create account

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

View this thread on: hive.blogpeakd.comecency.com
· @tokenika · (edited)
$19.15
Introducing EOSFactory v1.1 - the go-to IDE for EOS smart contract testing
https://www.youtube.com/watch?v=7R12-ulAyUM

After several weeks of refactoring of the code, [TOKENIKA](https://tokenika.io) is proud to announce a new release of [EOSFactory](https://github.com/tokenika/eosfactory), tagged [v1.1](https://github.com/tokenika/eosfactory/releases/tag/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](https://steemit.com/eos/@tokenika/introducing-eosfactory-an-eos-smart-contract-development-and-testing-framework) and [here, v1.0](https://steemit.com/eos/@tokenika/introducing-eosfactory-v1-0-with-standardized-unit-testing-and-visual-studio-code-integration).

For those unfamiliar with [EOSFactory](https://github.com/tokenika/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 

- **Good compatibility with [Visual Studio Code IDE](https://code.visualstudio.com/) (though it can also be used without VSC)**.
- **Integrated support for the [CMake](https://cmake.org/) toolset**.
- **Fully cross-platform (including Windows, thanks to [Windows Subsystem for Linux](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux))**.
- **Utilising [advanced Python tools](https://docs.python.org/3/library/unittest.html) for unit testing**.


## 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](https://github.com/EOSIO/eos/releases/tag/v1.0.8) or higher (previously EOSFactory was only compatible with [EOS dawn-v4.0.0](https://github.com/EOSIO/eos/releases/tag/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](http://dev.cryptolions.io/). 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](https://t.me/EOSFactorySupport). EOSFactory is also fully documented [here](http://eosfactory.io/sphinx/build/html/) 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.
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
properties (23)
authortokenika
permlinkintroducing-eosfactory-v1-1-the-go-to-ide-for-eos-smart-contract-testing
categoryeos
json_metadata{"tags":["eos","eosio","blockchain","development","crypto"],"image":["https://img.youtube.com/vi/7R12-ulAyUM/0.jpg"],"links":["https://www.youtube.com/watch?v=7R12-ulAyUM","https://tokenika.io","https://github.com/tokenika/eosfactory","https://github.com/tokenika/eosfactory/releases/tag/v1.1","https://steemit.com/eos/@tokenika/introducing-eosfactory-an-eos-smart-contract-development-and-testing-framework","https://steemit.com/eos/@tokenika/introducing-eosfactory-v1-0-with-standardized-unit-testing-and-visual-studio-code-integration","https://code.visualstudio.com/","https://cmake.org/","https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux","https://docs.python.org/3/library/unittest.html","https://github.com/EOSIO/eos/releases/tag/v1.0.8","https://github.com/EOSIO/eos/releases/tag/dawn-v4.0.0","http://dev.cryptolions.io/","https://t.me/EOSFactorySupport","http://eosfactory.io/sphinx/build/html/"],"app":"steemit/0.1","format":"markdown"}
created2018-07-11 13:08:39
last_update2018-07-11 22:30:18
depth0
children5
last_payout2018-07-18 13:08:39
cashout_time1969-12-31 23:59:59
total_payout_value14.552 HBD
curator_payout_value4.593 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length5,266
author_reputation5,007,110,235,602
root_title"Introducing EOSFactory v1.1 - the go-to IDE for EOS smart contract testing"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id64,285,003
net_rshares9,087,227,192,201
author_curate_reward""
vote details (54)
@eosys ·
it's so cool :) adore it
properties (22)
authoreosys
permlinkre-tokenika-introducing-eosfactory-v1-1-the-go-to-ide-for-eos-smart-contract-testing-20180712t113605328z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-07-12 11:36:06
last_update2018-07-12 11:36:06
depth1
children1
last_payout2018-07-19 11:36:06
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length24
author_reputation2,610,488,815,388
root_title"Introducing EOSFactory v1.1 - the go-to IDE for EOS smart contract testing"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id64,399,078
net_rshares0
@tokenika ·
Thank you for your kindness :)
properties (22)
authortokenika
permlinkre-eosys-re-tokenika-introducing-eosfactory-v1-1-the-go-to-ide-for-eos-smart-contract-testing-20180719t020359605z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-07-19 02:04:00
last_update2018-07-19 02:04:00
depth2
children0
last_payout2018-07-26 02:04:00
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length30
author_reputation5,007,110,235,602
root_title"Introducing EOSFactory v1.1 - the go-to IDE for EOS smart contract testing"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id65,182,887
net_rshares0
@igorsamo ·
@tokenika
properties (22)
authorigorsamo
permlinkre-tokenika-introducing-eosfactory-v1-1-the-go-to-ide-for-eos-smart-contract-testing-20180711t193848410z
categoryeos
json_metadata{"tags":["eos"],"users":["tokenika"],"app":"steemit/0.1"}
created2018-07-11 19:38:48
last_update2018-07-11 19:38:48
depth1
children0
last_payout2018-07-18 19:38:48
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length9
author_reputation9,357,660,789
root_title"Introducing EOSFactory v1.1 - the go-to IDE for EOS smart contract testing"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id64,326,081
net_rshares0
@natp ·
This will help a lot! Thank you!
properties (22)
authornatp
permlinkre-tokenika-introducing-eosfactory-v1-1-the-go-to-ide-for-eos-smart-contract-testing-20180711t205227883z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-07-11 20:52:27
last_update2018-07-11 20:52:27
depth1
children1
last_payout2018-07-18 20:52:27
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length32
author_reputation1,107,962,212
root_title"Introducing EOSFactory v1.1 - the go-to IDE for EOS smart contract testing"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id64,331,529
net_rshares0
@tokenika ·
You're welcome, we're happy to help :)
👍  
properties (23)
authortokenika
permlinkre-natp-re-tokenika-introducing-eosfactory-v1-1-the-go-to-ide-for-eos-smart-contract-testing-20180712t083023225z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-07-12 08:30:24
last_update2018-07-12 08:30:24
depth2
children0
last_payout2018-07-19 08:30:24
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length38
author_reputation5,007,110,235,602
root_title"Introducing EOSFactory v1.1 - the go-to IDE for EOS smart contract testing"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id64,383,306
net_rshares0
author_curate_reward""
vote details (1)