Ergo

Programming Language for Smart Legal Contracts
Alternatives To Ergo
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Tenderly Cli46510a month ago134October 26, 202330gpl-3.0Go
CLI tool for Smart Contract error tracking, monitoring and alerting.
Theta Protocol Ledger353
21 days ago27February 23, 202253gpl-3.0Go
Reference implementation of the Theta Blockchain Ledger Protocol
Near Cli17776 months ago32August 15, 2022171mitJavaScript
General purpose command line tools for interacting with NEAR Protocol
Ergo144109a year ago960November 08, 202246apache-2.0Coq
Programming Language for Smart Legal Contracts
Vvisp91434 years ago19June 24, 201916mitJavaScript
A Smart Way to Operate Smart Contracts on EVM Based Blockchains like Ethereum
Techdocs49
10 months ago30apache-2.0CSS
Accord Project Documentation
Solidity Cli464125 years ago6November 27, 20181apache-2.0TypeScript
Compile solidity-code faster, easier and more reliable
Cli3823 days ago30November 16, 202314apache-2.0TypeScript
Develop WASM smart contracts with the Archway network developer CLI
Framework32
2 years ago7mitTypeScript
Lightweight, open source and magic-free framework for testing solidity smart contracts.
Web3j Openapi2926 months ago15January 28, 20213Solidity
OpenAPI compliant service generator for Solidity Smart contracts
Alternatives To Ergo
Select To Compare


Alternative Project Comparisons
Readme

Ergo logo

Build Status Build Mechanization Status Coverage Status GitHub license downloads npm version Join the Accord Project Discord Server

Introduction

This is the source code for the Ergo compiler. Ergo is the Accord Project language for Smart Legal Contracts.

The Ergo compiler is distributed as an npm package.

The Ergo compiler is written using the Coq proof assistant, with parsing and support code written in OCaml. It makes extensive use of the Q*cert compiler for code generation and type checking.

Both the Ergo language and its compiler are in early development phase. If you would like to build from source or to contribute, consult the DEVELOPERS file.

Try Ergo online

If you want to take a peek at Ergo without installing anything, check out the interactive REPL (read-eval-print-loop) for Ergo stand-alone, or the Accord Project Template Studio which illustrates Ergo in Accord Project templates.

Documentation

The most recent Ergo documentation is in the [Ergo Language Guide][docergo].

Structure of the Code Repository

Top level repository (ergo), with sub packages. Each sub-package is published as an independent npm module using lerna:

  • ergo-cli : Command line interface for the Ergo compiler
  • ergo-compiler : Core classes for the Ergo compiler
  • ergo-engine : A Node.js VM based execution engine for Ergo
  • ergo-test : Cucumber based testing for Ergo

Installation

The easiest way to install Ergo is as a Node.js package. Once you have Node.js installed on your machine, you can get the Ergo compiler and command-line using the Node.js package manager by typing the following in a terminal:

$ npm install -g @accordproject/ergo-cli

This will install the Ergo command-line (ergo) and Read-Eval-Print-Loop (ergotop). Those will allow you to create, test and compile Ergo contracts. You can check your installed version by typing the following in a terminal:

$ ergo --version

Or to get command line help:

$ ergo --help
ergo <command>

Commands:
  ergo draft       create a contract text from data
  ergo trigger     send a request to the contract
  ergo invoke      invoke a clause of the contract
  ergo initialize  initialize the state for a contract
  ergo compile     compile a contract

Options:
  --help         Show help                                             [boolean]
  --version      Show version number                                   [boolean]
  --verbose, -v                                                 [default: false]

Create contract text

To create a contract text from a contract:

$ ergo draft --template ./tests/volumediscount --data ./tests/volumediscount/data.json

Initialize a contract

To obtain the initial state of the contract:

$ ergo initialize --template ./tests/volumediscount --data ./tests/volumediscount/data.json
06:40:29 - info:

Send a request to a contract

To send a request to a contract:

$ ergo trigger --template ./tests/volumediscount --data ./tests/volumediscount/data.json --request ./tests/volumediscount/request.json --state ./tests/volumediscount/state.json
06:40:01 - info:
{
  "clause": "orgXaccordprojectXvolumediscountXVolumeDiscount",
  "request": {
    "$class": "org.accordproject.volumediscount.VolumeDiscountRequest",
    "netAnnualChargeVolume": 10.4
  },
  "response": {
    "$class": "org.accordproject.volumediscount.VolumeDiscountResponse",
    "discountRate": 2.8,
    "transactionId": "13fa7cb6-03fc-4fd8-8e12-9a85ac8d5eb7",
    "timestamp": "2019-10-12T23:56:33.688Z"
  },
  "state": {
    "$class": "org.accordproject.cicero.contract.AccordContractState",
    "stateId": "1"
  },
  "emit": []
}

Invoke a clause

To invoke a specific clause of the contract:

$ ergo invoke --template ./tests/volumediscount --clauseName volumediscount --data ./tests/volumediscount/data.json --params ./tests/volumediscount/params.json --state ./tests/volumediscount/state.json

Compile a contract

To compile your first Ergo contract to JavaScript:

$ ergo compile ./tests/volumediscount/model/model.cto ./tests/volumediscount/logic/logic.ergo
Processing file: ./tests/volumediscount/logic.ergo -- compiled to: ./tests/volumediscount/logic.js

By default, Ergo compiles to JavaScript for execution. You can inspect the compiled JavaScript code in ./tests/volumediscount/logic.js


Accord Project Logo

GitHub license Join the Accord Project Discord Server

Accord Project is an open source, non-profit, initiative working to transform contract management and contract automation by digitizing contracts. Accord Project operates under the umbrella of the Linux Foundation. The technical charter for the Accord Project can be found here.

Learn More About Accord Project

Overview

Documentation

Contributing

The Accord Project technology is being developed as open source. All the software packages are being actively maintained on GitHub and we encourage organizations and individuals to contribute requirements, documentation, issues, new templates, and code.

Find out what’s coming on our blog.

Join the Accord Project Technology Working Group Discord Server to get involved!

For code contributions, read our CONTRIBUTING guide and information for DEVELOPERS.

README Badge

Using Accord Project? Add a README badge to let everyone know: accord project

[![accord project](https://img.shields.io/badge/powered%20by-accord%20project-19C6C8.svg)](https://www.accordproject.org/)

License

Accord Project source code files are made available under the Apache License, Version 2.0. Accord Project documentation files are made available under the Creative Commons Attribution 4.0 International License (CC-BY-4.0).

Copyright 2018-2019 Clause, Inc. All trademarks are the property of their respective owners. See LF Projects Trademark Policy.

Popular Smart Contracts Projects
Popular Command Line Projects
Popular Blockchain Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Javascript
Cli
Markdown
Language
Blockchain
Ethereum
Smart Contracts
Hyperledger
Coq