ref-fvm icon indicating copy to clipboard operation
ref-fvm copied to clipboard

Reference implementation of the Filecoin Virtual Machine

Results 298 ref-fvm issues
Sort by recently updated
recently updated
newest added

This is pretty dangerous as it implicitly turns any ExecutionError into a fatal error. This caused https://github.com/filecoin-project/ref-fvm/pull/1487, and I'm concerned that we may have other cases.

Remix errors logged on sending messages: ``` 2023-02-15T14:44:01.991+0100 WARN rpc [email protected]/handler.go:406 error in RPC call to 'eth_call': failed to apply message: github.com/filecoin-project/lotus/node/impl/full.(*EthModule).EthCall /Users/maciejwitowski/Documents/protocol-labs/lotus/node/impl/full/eth.go:1018 - message execution failed: exit 33, msg...

We should have a "mock sdk" for native unit testing (i.e., without a wasm VM). For completeness, we should provide both an SDK mock and a low-level syscall mock. The...

Kind: Improvement
Topic: Testing

When a contract self-destructs, it marks itself as dead. If a subsequent transaction calls EXTCODEHASH, we return whatever the EVM actor [returned](https://github.com/filecoin-project/builtin-actors/blob/1df034de24bcb1f880564fabfa54454ea1063525/actors/evm/src/interpreter/instructions/ext.rs#L40) from `GetBytecodeHash`. For dead contracts, [this is the...

The current integration testing framework: https://github.com/filecoin-project/ref-fvm/blob/7c44970d968c8c49c4eedd5168eb16b08d095f26/testing/integration/src/tester.rs#L51-L72 Has some warts: 1. There's no distinct "builder" versus "tester". This means the executor/state-tree get stashed in options. We _should_ have: 1. A `TesterBuilder`...

Technically, assuming the FVM gas model is accurate, there's no real reason to enforce the 25KiB bytecode size limit. We _could_ raise this to 1MiB (the system blocksize limit). However,...

Kind: Idea

We currently limit the EVM stack depth to 1024 to match the spec. However, we have no real _reason_ to do so, at least from a security perspective. This limit...

Kind: Idea

We need a mechanism to ensure that an actor is running with sufficient resources to perform an operation. Specifically, a way to assert that: 1. There's at least X amount...

## Situation Developers of smart contracts use randomness for a variety of use cases: generation of NFTs, drawing winners of lotteries, and in future timelock encryption (and decryption). As the...

Whenever the EVM implicitly "sends" to another actor (e.g., to lookup their evm code), we just blindly bubble the actor error (which may contain the exit code from the caller)....