mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-11-06 10:51:10 +00:00
Add missing 63/64 rule documentation and a test (#462)
- Prominently point out the important differences of the `pallet-revive` runtime. - Add a test case illustrating the problem. See also: https://github.com/paritytech/contract-issues/issues/257 --------- Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
This commit is contained in:
1 parent
99b73ec083
commit
95ae938ddf
29 files changed
+172
-30
No files matched your search
@@ -7,12 +7,20 @@ Yul recompiler to LLVM, targetting RISC-V on [PolkaVM](https://github.com/koute/
|
||||
|
||||
Check the [docs](https://paritytech.github.io/revive/) or visit [contracts.polkadot.io](https://docs.polkadot.com/develop/smart-contracts/) to learn more about `revive` and contracts on Polkadot!
|
||||
|
||||
## Status
|
||||
|
||||
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).
|
||||
|
||||
> [!WARNING]
|
||||
>
|
||||
> Solidity on PVM is running on the `pallet-revive` runtime. This introduces **observable semantic differences** in comparison with the EVM.
|
||||
>
|
||||
> Study the [differences](https://paritytech.github.io/revive/user_guide/differences.html) section carefully. **Ignoring these differences may lead to defunct contracts.**
|
||||
>
|
||||
> Notable examples:
|
||||
> - The 63/64 gas rule isn't implemented in the pallet (introduces potential DoS vector when calling other contracts)
|
||||
> - Contract instantiation works differently (by hash instead of by code)
|
||||
> - The gas model implemented by `pallet-revive` differs from Ethereum
|
||||
> - The heap size is fixed instead of gas-metered and there's a fixed amount of stack size (contracts working fine on EVM may trap on PVM)
|
||||
|
||||
## Installation
|
||||
|
||||
Building Solidity contracts for PolkaVM requires installing the following two compilers:
|
||||
|
||||
Reference in new issue
Block a user