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

|

|
||||||
|
[](https://contracts.polakdot.io)
|
||||||
|
|
||||||
# revive
|
# revive
|
||||||
|
|
||||||
YUL and EVM assembly recompiler to LLVM, targetting RISC-V on [PolkaVM](https://github.com/koute/polkavm).
|
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
|
## 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).
|
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
|
## 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).
|
`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