Git Product home page Git Product logo

no-code-sol's Introduction

Overview

NoCodeSol is a visual sequential workflow design tool for building Solidity Smart Contracts with no actual Solidity syntax knowledge required.

Motivation

This tool essentially allows to involve a much broader amount of people to creating Smart Contracts for EVM based blockhains.

The tool is great for prototyping ideas because of low initial learning curve and general convenience of ready-to-use web based solution. The additional steps like setting up a local development environment and deployment infrastructure are essentially put aside. Anyone could just open a web page, design a desired logic for their Smart Contract and then export the result in a form of Solidity/ABI/AST/Bytecode files or deploy to EVM compatible blockchain directly from the browser.

The proof-of-concept implementation allows to create Smart Contracts with multiple functions and custom logic involving a (yet) limited set of operations.

The Market Fit

Here's a summary of advantages the platform gives comparing to existing alternatives:

  • Lower learning curve for designing and deploying SCs onto EVM blockchain.
  • Self-documented implementation which graphical representation could be used for presenting and pitching the project.
  • Testing the SC logic directly in a browser thanks to JavaScript emulator.
  • Potentially could be used to output other artifacts (think of WASM, JavaScript, etc.).

The Future

NoCodeSol is extendable in a fairly straightforward manner to support a wider set of operations available in Solidity language.

The target audience is yet unclear, as the tool could be adapted to either more granular control of the output or to provide more abstract components in exchange for flexibility.

Target audience could defined as one of the following:

  • Programmers, who want to debug their Smart Contracts quickly in a browser execution environment
  • Non-programmers, who just want to prototype their ideas quickly
  • Learners, who want to learn Solidity in a more visual and interactive way

How it's made

This project is based on NoCode JS framework which provides a model-agnostic UI and execution environment for bootstraping custom No-code tools.

Custom model was created from scratch to support building & emulating Solidity Smart Contracts behavior directly in the browser.

Then, a custom made compiler transforms the sequence of steps to the Solidity AST structure, which is then passed to solc compiler to generate ABI and Bytecode for deploying to the EVM blockchains.

Example Smart Contract

Consider downloading a dump file for importing into NoCodeSol.

/// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.16<0.9.0;

contract BasicToken {
    mapping(address => uint256) public balances;

    function mint(uint256 amount) public {
        balances[msg.sender] = balances[msg.sender] + amount;
    }

    function transfer(address recipient, uint256 amount) public {
        if (balances[msg.sender] >= amount) {
            balances[msg.sender] = balances[msg.sender] - amount;
            balances[recipient] = balances[recipient] + amount;
        } else {}
    }
}

Deployed to:

no-code-sol's People

Contributors

imajus avatar

Watchers

 avatar

Forkers

web3-agent

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.