General development information

This page contains general information about development such as languages, libraries and tools we use
Languages
Code Libraries
Tools
Languages

Frontend

  • Javascript (vanilla)

  • React

  • CSS

  • HTML

  • JSON

Blockchain

  • Solidity

Others

  • MarkDown (MD for simple documents)

  • YAML (Docker images and Github Actions)

Code Libraries

Web3 (Javascript)

NPM version by official dev team web3 - npm (npmjs.com)

Browser version (named Web3Browser) by EthereansOS dev team dfo-hub/web3.min.js at master · b-u-i-d-l/dfo-hub (github.com)

A multi utility library to:

  • Communicate with Ethereum Wallet custodian apps (e.g.Metamask/Ganache) for signing messages and transactions to be sent on the Ethereum Blockchain;

  • Communicate with Ethereum Blockchain Nodes via HTTP/WS protocols, using JSON-RPC methods, to send transactions and retrieve info (e.g. Smart Contract Calls/Events) by the Ethereum blockchain;

  • Access all utility methods to operate with Smart Contracts and Transactions (e.g. Big Numbers Math Operations/Conversions, Hashes).

EthersJS (Javascript)

@typechain/ethers-v5 - npm (npmjs.com)

A Javascript library to manage Ethereum ABI v2 Encode and Decode Routines

Monaco editor (Javascript)

NPM version by official dev team monaco-editor - npm (npmjs.com)

Browser version by EthereansOS dev team dfo-hub/assets/plugins/monaco.editor at master · b-u-i-d-l/dfo-hub (github.com)

A on-line visual code editor for on-the-fly code and compilation of Smart Contracts.

SolidityUtilities by EtheransOS (Javascript)

dfo-hub/solidity.utilities.min.js at master · b-u-i-d-l/dfo-hub (github.com)

A toolset for Dapps that can be used directly in browser to easily:

  • Fetch, Download and manage different versions of the Javascript Solidity Compiler binaries;

  • Compile Smart Contracts;

  • Compare Solidity source Code and Smart Contract binaries;

  • Retrieve Solidity Version by already-on-chain Smart Contract address.

Ganache-Core (Javascript)

NPM version by official dev team ganache-core - npm (npmjs.com)

Browser version by EthereansOS dev team b-u-i-d-l/ganache-browser: Run Ganache instance directly in Browser (github.com)

A Ethereum Blockchain Node with forking capabilities to easily develop and test Smart Contracts and Dapps

Mocha (Javascript)

Mocha - the fun, simple, flexible JavaScript test framework (mochajs.org)

A tool to easily manage Javascript tests and prototypes

Solidity Version Manager by EthereansOS (Javascript/CLI)

vasapower/solc-vm: Wrapper for different solc versions (github.com)

A simple Solidity Version Manager to easily download and manage different versions of the official C++ Solidity Compiler Binaries

EthereansOS Test Suite (Javascript)

ETHITEM/util at main · b-u-i-d-l/ETHITEM (github.com)

A set of tools to easily compile, run and test general purpose Smart Contracts, DFOs and related Proposals in a forked Ethereum Mainnet Blockchain in order to obtain Dapps which source code works with a fidelity tending to 100% with the real final execution environment for both on-chain and off-chain sides.

NODEJS & NPM (Javascript)

Node.js

A Javascript runtime engine

OpenZeppelin Contracts (Solidity)

A set of common Solidity Interfaces and code stubs to easily integrate the most-used protocols.

OpenZeppelin/openzeppelin-contracts: OpenZeppelin Contracts is a library for secure smart contract development. (github.com)