A browser-based Scilla IDE.
Branch: master
Clone or download
iantanwx Merge pull request #35 from Zilliqa/fix/ft
fix(client): update fungible token contract
Latest commit b20c8d1 Feb 21, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config chore(): fix caching issues Sep 10, 2018
public fix(index): Add frame-busting code Feb 14, 2019
scripts fix(): clean up deployment scripts Feb 18, 2019
src fix(client): update fungible token contract Feb 21, 2019
.dockerignore
.env.development chore(): add dotenv files Sep 7, 2018
.env.production chore(): add dotenv files Sep 7, 2018
.gitignore fix(): fix ECS automated deployment Feb 18, 2019
.prettierrc
.travis.yml fix(): clean up deployment scripts Feb 18, 2019
Dockerfile
LICENSE
Makefile fix(): do not make scilla before building docker container Feb 18, 2019
README.md
images.d.ts Initial commit Aug 14, 2018
package.json
tsconfig.browser.json
tsconfig.json feat(editor): improve scilla syntax highlighting Sep 18, 2018
tsconfig.prod.json feat(server): add server component with scilla checker route Aug 28, 2018
tsconfig.server.json
tsconfig.test.json
tslint.json
yarn.lock feat(footer): add footer Sep 14, 2018

README.md

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.