Git Product home page Git Product logo

eosfactory's Introduction

Welcome to EOSFactory

EOSFactory is a smart-contract development framework, created by Tokenika.

The goal is to achieve a similar functionality to Ethereum's Truffle Framework.

With a single command-line interface you can create a private testnet and then compile, unit-test and deploy EOS smart-contracts.

All of this using simple yet powerful Python3 syntax.

Why it’s needed?

Undoubtedly, everything that EOSFactory offers can be done with the official EOSIO toolset, i.e. cleos and eosiocpp. Does it make EOSFactory just a simple alternative to those tools? Not really.

Try to go through EOS tutorials based on cleos and you'll see how much concentration is required to follow those simple examples without making a single mistake. And now imagine doing it 10 or 100 times. Surely, it's a daunting task!

Code development and unit-testing involve tasks that need to be executed hundreds of times, and each time in exactly the same way and exactly the same context. Therefore those tasks need to be fully automated, as otherwise a lot of time is being wasted and, what’s even worse, a lot of additional uncertainty is introduced. Manually performed actions are prone to errors.

And this is what EOSFactory actually brings to the table: an easy & intuitive way to automate the process of dealing with smart-contracts. Write down, in the form of a Python script, what needs to be done multiple times in exactly the same way and exactly the same context, and then just run the script. EOSFactory will take care of everything else: it will compile your smart-contract, create a new testnet, deploy the contract, invoke its methods and verify the response, then tear down the testnet, and finally report the results. And all of this done in a couple of seconds.

Main features

Object-oriented

When you use tools like cleos all you have at your disposal is issuing separate, one-off commands, as cleos is not able to keep your state. Thus each time you interact with a contract, you need to tell cleos which contract and which account you mean. Contrary to that, in EOSFactory everything is an object. You create a contract (or an account), keep reference to it and then invoke its various methods.

Simple syntax

The front-end of EOSFactory is simply a Python3 Command Line Interface. This way you can interact with EOS smart-contract, and prove it works as expected, without having to deal with the complexity of a low-level language like C++. In most cases Python’s syntax is clear for everyone.

Real testnet

As EOS full node is very quick we don’t need to rely on a testnet simulator similar to TestRPC in Ethereum. Instead, we can work with a real testnet and this makes unit-tests much more reliable. Thus EOSFactory has the ability to launch and tear down an EOS testnet in a very efficient way, so that you can fully test your smart-contract in a couple of seconds and do it multiple times.

Truly cross-platform

We make sure everything we do is fully compatible with Windows - our toolset enables you to run an EOS node and interact with it on any operating system, including Windows, MacOS and Linux.

Architecture

EOSFactory is composed of two layers:

  • C++ bridge connected to an EOS node running a private testnet
  • Python wrapper acting as a convenient human-oriented interface

Using Python will allow us to build interactive tutorials for EOS smart-contracts.

User documentation

Developer documentation

Please refer to this index of Python modules which constitute the front-end of EOSFactory.

Roadmap

EOSFactory is currently at an MVP stage. It was initially released in May 2018 and there are subsequent releases to be expected in the near future.

eosfactory's People

Contributors

stefanzarembinski avatar jakub-zarembinski avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.