Skip to content

salaheldinsoliman/solang

This branch is 1 commit ahead of, 18 commits behind hyperledger-solang/solang:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f2695f1 · Sep 12, 2024
Sep 4, 2024
Apr 26, 2024
Jan 7, 2024
Jun 10, 2024
Sep 12, 2024
Jun 3, 2024
Jul 1, 2024
Sep 12, 2024
Nov 9, 2023
Apr 11, 2024
Sep 12, 2024
Apr 8, 2024
Sep 22, 2023
Aug 19, 2023
Nov 1, 2023
May 12, 2023
Jan 12, 2024
Jul 3, 2023
Feb 6, 2020
Feb 6, 2020
Jun 25, 2024
Feb 28, 2024
Mar 15, 2021
Apr 9, 2024
Nov 20, 2023
Oct 30, 2023
Mar 24, 2021
May 12, 2023
Dec 17, 2021

Repository files navigation

Solang Logo

solang - Solidity Compiler for Solana and Polkadot

Discord CI Documentation Status license LoC

Welcome to Solang, a new Solidity compiler written in rust which uses llvm as the compiler backend. Solang can compile Solidity for Solana and Polkadot Parachains with the contracts pallet. Solang is source compatible with Solidity 0.8, with some caveats due to differences in the underlying blockchain.

Solang is under active development right now, and has extensive documentation.

Solana

Please follow the Solang Getting Started Guide.

Solang is part of the Solana Tools Suite (version v1.16.3 and higher). There is no need to install it separately.

Installation

Solang is available as a Brew cask for MacOS, with the following command:

brew install hyperledger/solang/solang

For other operating systems, please check the installation guide.

Build for Polkadot

Run the following command, selecting the flipper example available on Solang's repository:

solang compile --target polkadot examples/polkadot/flipper.sol

Alternatively if you want to use the solang container, run:

docker run --rm -it -v $(pwd):/sources ghcr.io/hyperledger/solang compile -v -o /sources --target polkadot /sources/flipper.sol

You will have a file called flipper.contract. You can use this directly in the Contracts UI, as if your smart contract was written using ink!.

Tentative roadmap

Solang has a high level of compatibility with many blockchains. We are trying to ensure the compiler stays up to date with the newest Solidity syntax and features. In addition, we focus on bringing new performance optimizations and improve developer experience. Here is a brief description of what we envision for the next versions.

V0.4

Feature Status
Improve management over optimization passes Not started
Adopt single static assignment for code generation In progress
Support openzeppelin on Polkadot target In progress
Provide Solidity -> Polkadot porting guide Not started
Declare accounts for a Solidity function on Solana In progress
Tooling for calls between ink! <> solidity In progress
Provide CLI for node interactions Done

License

Apache 2.0

About

Solidity Compiler for Solana, Substrate, and ewasm

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 82.6%
  • Solidity 12.1%
  • TypeScript 3.7%
  • C 1.2%
  • JavaScript 0.4%
  • Makefile 0.0%