Git Product home page Git Product logo

savant-ide's Introduction

Build Status License Gitter chat

Savant IDE

A souped-up IDE for testing Scilla smart contracts painlessly. It can be tried out at https://savant-ide.zilliqa.com/ (works best on Chrome).

Scilla is a smart contract language being developed for Zilliqa. To learn more about the language, visit https://scilla-lang.org/.

Motivation

The previous iteration of Scilla IDE was useful for context-free testing of arbitrary Scilla smart contracts. However, its user experience was not ideal for testing of complex contracts due to the need to manually copy-and-paste state transitions and/or to manually adjust parameters to simulate real blockchain behavior.

It was a time sink for developers coming looking for a quick and easy way to try Scilla out. Savant attempts to address this shortcoming by enabling an automated development environment, in-browser, with quick and intuitive controls.

Features

Savant best works with Chrome browser and supports the following features:

  • Fast, in-browser pseudo-blockchain with persistent state, including previous calls/events/messages.
  • Intuitive UI for easy deployment/contract invocation.
  • Automatic block height counter for contracts that depend on block height.
  • Simple, persistent file manager for managing your contracts that allows for renaming/deletion.
  • Support for event in contracts, with automatic notifications in the UI.
  • Support for arbitrary gas price/gas limit in deployment/calls.
  • Toggle between raw Scilla output and native JS representation when viewing state.

Building and running locally

Savant is easy to build and run locally. Because Savant relies on IndexedDB, it is possible to use it offline, without suffering a loss of data as long as you serve the app from the same address (default: localhost:3000), and the cache is not cleared.

To build and run Savant:

git clone https://github.com/Zilliqa/savant-ide && cd savant-ide

# install all dependencies, including system dependencies
# to use specific branch of scilla, append SCILLA_BRANCH=my_specific_branch:
# make SCILLA_BRANCH=some_other_branch
make

# start IDE app dev server
yarn run start

Note: the makefile only supports Ubuntu and MacOS.

Roadmap

  • Additional unit tests.
  • Account-to-account transfers of ZIL.
  • Multi-contract calls.
  • 'REPL' mode that behaves like the IDE, for full control over parameters.
  • Adjustable block height increment speed.

Contributing

Contributions/critiques are most welcome. If you wish to contribute, please submit a PR.

savant-ide's People

Contributors

amritkumar avatar iantanwx 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.