mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-04-22 04:27:58 +00:00
Add documentation portal (#99)
This commit is contained in:
@@ -1,14 +1,15 @@
|
||||

|
||||
[](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`.
|
||||
|
||||
@@ -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 +0,0 @@
|
||||
book
|
||||
@@ -1,6 +0,0 @@
|
||||
[book]
|
||||
authors = ["Cyrill Leutwiler <cyrill@parity.io>"]
|
||||
language = "en"
|
||||
multilingual = false
|
||||
src = "src"
|
||||
title = "revive documentation"
|
||||
@@ -1,3 +0,0 @@
|
||||
# revive documentation
|
||||
|
||||
Welcome to the revive Solidty compiler documentation!
|
||||
@@ -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 +0,0 @@
|
||||
# Architecture
|
||||
@@ -1 +0,0 @@
|
||||
# CLI guide
|
||||
@@ -1 +0,0 @@
|
||||
# Development
|
||||
@@ -1 +0,0 @@
|
||||
# Differences from EVM
|
||||
@@ -1 +0,0 @@
|
||||
# Differences from EVM
|
||||
@@ -1 +0,0 @@
|
||||
# Hardhat integration
|
||||
@@ -1 +0,0 @@
|
||||
# Installation
|
||||
@@ -1 +0,0 @@
|
||||
# Overview
|
||||
@@ -1,3 +0,0 @@
|
||||
# Runtime
|
||||
|
||||
revive compiled contract target the new contracts pallet runtime environment API.
|
||||
@@ -1 +0,0 @@
|
||||
# User guide
|
||||
Reference in New Issue
Block a user