diff --git a/README.md b/README.md index 6e89f6a..acd610c 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,15 @@ ![CI](https://github.com/paritytech/revive/actions/workflows/rust.yml/badge.svg) +[![Docs](https://img.shields.io/badge/Docs-contracts.polkadot.io-brightgreen.svg)](https://contracts.polakdot.io) # revive YUL and EVM assembly recompiler to LLVM, targetting RISC-V on [PolkaVM](https://github.com/koute/polkavm). -[Frontend](https://github.com/matter-labs/era-compiler-solidity) and [code generator](https://github.com/matter-labs/era-compiler-llvm-context) are based of ZKSync `zksolc`. +Visit [contracts.polkadot.io](contracts.polkadot.io) to learn more about contracts on Polkadot! ## Status -This is experimental software in active development and not ready just yet for production usage. +This is experimental software in active development and not ready just yet for production usage. Please do report any compiler related issues or missing features that are [not yet known to us](https://contracts.polkadot.io/known_issues/) here. Discussion around the development is hosted on the [Polkadot Forum](https://forum.polkadot.network/t/contracts-update-solidity-on-polkavm/6949#a-new-solidity-compiler-1). @@ -36,3 +37,5 @@ Ensure that your branch passes `make test` locally when submitting a pull reques ## Design overview `revive` uses [solc](https://github.com/ethereum/solidity/), the Ethereum Solidity compiler, as the [Solidity frontend](crates/solidity/src/lib.rs) to process smart contracts written in Solidity. The YUL IR code (or legacy EVM assembly as a fallback for older `solc` versions) emitted by `solc` is then translated to LLVM IR, targetting [Polkadots `revive` pallet](https://docs.rs/pallet-revive/latest/pallet_revive/trait.SyscallDoc.html). + +[Frontend](https://github.com/matter-labs/era-compiler-solidity) and [code generator](https://github.com/matter-labs/era-compiler-llvm-context) are based of ZKSync `zksolc`. diff --git a/STATUS.md b/STATUS.md new file mode 100644 index 0000000..c8029fe --- /dev/null +++ b/STATUS.md @@ -0,0 +1,30 @@ +# Known issues + +The following is known and we are either working on it or it is a hard limitation. Please do not open a new issue. + +## Release + +`0.1.0-dev-2` + +## Missing features + +- [Libraries with public functions are not supported](https://github.com/paritytech/revive/issues/91) +- [Automatic import resolution is not supported](https://github.com/paritytech/revive/issues/98) +- The emulated EVM linear contract memory is limited to 64kb in size. Will be fixed with support for metered dynamic memory. +- [The contract calldata is currently limited to 1kb in size](https://github.com/paritytech/revive/issues/57) +- [EIP-4844 opcodes are not supported](https://github.com/paritytech/revive/issues/64) +- [Delegate calls are not supported](https://github.com/paritytech/revive/issues/67) +- [The `blockhash` opcode is not supported](https://github.com/paritytech/revive/issues/61) +- [The `extcodesize` opcode is not supported](https://github.com/paritytech/revive/issues/58) +- [The `origin` opcode is not supported](https://github.com/paritytech/revive/issues/59) +- [Gas limits for contract calls are ignored](https://github.com/paritytech/revive/issues/60) +- [Gas related opcodes are not supported](https://github.com/paritytech/revive/issues/60) +- IPFS metadata hashes are not supported +- [Compiled contract artifacts can exceed the pallet static memory limit and fail to deploy](https://github.com/paritytech/revive/issues/96). +- [Transfers to inexistant accounts will fail if the transferred value lies below the ED.](https://github.com/paritytech/revive/issues/83) Will be fixed in the pallet to make the ED completely transparent for contracts. + +## Wontfix + +Please consult our documentation to learn more about Solidity and EVM features likely to remain unsupported (and why they will not be supported). + +TODO: Insert link to the relevant documentation section. diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index 7585238..0000000 --- a/docs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -book diff --git a/docs/book.toml b/docs/book.toml deleted file mode 100644 index 10c7f95..0000000 --- a/docs/book.toml +++ /dev/null @@ -1,6 +0,0 @@ -[book] -authors = ["Cyrill Leutwiler "] -language = "en" -multilingual = false -src = "src" -title = "revive documentation" diff --git a/docs/src/README.md b/docs/src/README.md deleted file mode 100644 index b89824c..0000000 --- a/docs/src/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# revive documentation - -Welcome to the revive Solidty compiler documentation! diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md deleted file mode 100644 index 8f1b324..0000000 --- a/docs/src/SUMMARY.md +++ /dev/null @@ -1,13 +0,0 @@ -# Summary - -[Introduction](README.md) - -- [User guide](./user-guide.md) - - [Installation](./installation.md) - - [CLI guide](./cli.md) - - [Hardhat integration](./hardhat.md) -- [Architecture](./architecture.md) - - [Overview](./overview.md) - - [Runtime](./runtime.md) - - [Differences from EVM](./differences-evm.md) -- [Development](./development.md) diff --git a/docs/src/architecture.md b/docs/src/architecture.md deleted file mode 100644 index c79bec1..0000000 --- a/docs/src/architecture.md +++ /dev/null @@ -1 +0,0 @@ -# Architecture diff --git a/docs/src/cli.md b/docs/src/cli.md deleted file mode 100644 index 6a9c9ab..0000000 --- a/docs/src/cli.md +++ /dev/null @@ -1 +0,0 @@ -# CLI guide diff --git a/docs/src/development.md b/docs/src/development.md deleted file mode 100644 index 459110d..0000000 --- a/docs/src/development.md +++ /dev/null @@ -1 +0,0 @@ -# Development diff --git a/docs/src/difference-evm.md b/docs/src/difference-evm.md deleted file mode 100644 index 77b6f38..0000000 --- a/docs/src/difference-evm.md +++ /dev/null @@ -1 +0,0 @@ -# Differences from EVM diff --git a/docs/src/differences-evm.md b/docs/src/differences-evm.md deleted file mode 100644 index 77b6f38..0000000 --- a/docs/src/differences-evm.md +++ /dev/null @@ -1 +0,0 @@ -# Differences from EVM diff --git a/docs/src/hardhat.md b/docs/src/hardhat.md deleted file mode 100644 index fe3b534..0000000 --- a/docs/src/hardhat.md +++ /dev/null @@ -1 +0,0 @@ -# Hardhat integration diff --git a/docs/src/installation.md b/docs/src/installation.md deleted file mode 100644 index 25267fe..0000000 --- a/docs/src/installation.md +++ /dev/null @@ -1 +0,0 @@ -# Installation diff --git a/docs/src/overview.md b/docs/src/overview.md deleted file mode 100644 index 07dd0c5..0000000 --- a/docs/src/overview.md +++ /dev/null @@ -1 +0,0 @@ -# Overview diff --git a/docs/src/runtime.md b/docs/src/runtime.md deleted file mode 100644 index d1ce326..0000000 --- a/docs/src/runtime.md +++ /dev/null @@ -1,3 +0,0 @@ -# Runtime - -revive compiled contract target the new contracts pallet runtime environment API. diff --git a/docs/src/user-guide.md b/docs/src/user-guide.md deleted file mode 100644 index 023ee7c..0000000 --- a/docs/src/user-guide.md +++ /dev/null @@ -1 +0,0 @@ -# User guide