Add documentation portal (#99)

This commit is contained in:
Cyrill Leutwiler
2024-11-14 20:21:48 +07:00
committed by GitHub
parent f947984671
commit c9dd347755
16 changed files with 35 additions and 37 deletions
+5 -2
View File
@@ -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`.
+30
View File
@@ -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.
-1
View File
@@ -1 +0,0 @@
book
-6
View File
@@ -1,6 +0,0 @@
[book]
authors = ["Cyrill Leutwiler <cyrill@parity.io>"]
language = "en"
multilingual = false
src = "src"
title = "revive documentation"
-3
View File
@@ -1,3 +0,0 @@
# revive documentation
Welcome to the revive Solidty compiler documentation!
-13
View File
@@ -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)
-1
View File
@@ -1 +0,0 @@
# Architecture
-1
View File
@@ -1 +0,0 @@
# CLI guide
-1
View File
@@ -1 +0,0 @@
# Development
-1
View File
@@ -1 +0,0 @@
# Differences from EVM
-1
View File
@@ -1 +0,0 @@
# Differences from EVM
-1
View File
@@ -1 +0,0 @@
# Hardhat integration
-1
View File
@@ -1 +0,0 @@
# Installation
-1
View File
@@ -1 +0,0 @@
# Overview
-3
View File
@@ -1,3 +0,0 @@
# Runtime
revive compiled contract target the new contracts pallet runtime environment API.
-1
View File
@@ -1 +0,0 @@
# User guide