Skip to content

Commit

Permalink
Add documentation portal (#99)
Browse files Browse the repository at this point in the history
  • Loading branch information
xermicus authored Nov 14, 2024
1 parent f947984 commit c9dd347
Show file tree
Hide file tree
Showing 16 changed files with 35 additions and 37 deletions.
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -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).

Expand Down Expand Up @@ -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 changes: 30 additions & 0 deletions STATUS.md
Original file line number Diff line number Diff line change
@@ -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 change: 0 additions & 1 deletion docs/.gitignore

This file was deleted.

6 changes: 0 additions & 6 deletions docs/book.toml

This file was deleted.

3 changes: 0 additions & 3 deletions docs/src/README.md

This file was deleted.

13 changes: 0 additions & 13 deletions docs/src/SUMMARY.md

This file was deleted.

1 change: 0 additions & 1 deletion docs/src/architecture.md

This file was deleted.

1 change: 0 additions & 1 deletion docs/src/cli.md

This file was deleted.

1 change: 0 additions & 1 deletion docs/src/development.md

This file was deleted.

1 change: 0 additions & 1 deletion docs/src/difference-evm.md

This file was deleted.

1 change: 0 additions & 1 deletion docs/src/differences-evm.md

This file was deleted.

1 change: 0 additions & 1 deletion docs/src/hardhat.md

This file was deleted.

1 change: 0 additions & 1 deletion docs/src/installation.md

This file was deleted.

1 change: 0 additions & 1 deletion docs/src/overview.md

This file was deleted.

3 changes: 0 additions & 3 deletions docs/src/runtime.md

This file was deleted.

1 change: 0 additions & 1 deletion docs/src/user-guide.md

This file was deleted.

0 comments on commit c9dd347

Please sign in to comment.