filecoin-project / filecoin-project/fvm-workbench

Ethereum tests don't work on the real FVM

Open
#40 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
6
Forks
0
PR merge metrics
No merged PRs in 30d

Description

An example test like `placeholder_deploy_test` fails to run to completion on the workbench.
```
v.execute_message_implicit(
&EAM_ACTOR_ADDR, // so this works even if "m2-native" is disabled.
&INIT_ACTOR_ADDR,
&TokenAmount::zero(),
fil_actor_init::Method::Exec4 as u64,
Some(serialize_ok(&fil_actor_init::Exec4Params {
code_cid: *MULTISIG_ACTOR_CODE_ID,
constructor_params: msig_ctor_params.clone(),
subaddress: subaddr[..].to_owned().into(),
})),
)
.unwrap()
```

However, the call from the INIT_ACTOR_ADDR to the placeholder's address returns with ExitCode::10, failing to deploy an actor over the placeholder.

```
InvocationTrace {
from: 10,
to: Address { payload: ID(1) },
value: TokenAmount(0.0),
method: 3,
params: Some(IpldBlock {...}),
error_number: None,
exit_code: ExitCode { value: 10 },
return_value: None,
subinvocations: [
InvocationTrace {
from: 1,
to: Address { payload: ID(103) },
value: TokenAmount(0.0),
method: 1,
params: Some(IpldBlock {...}),
error_number: None,
exit_code: ExitCode { value: 10 },
return_value: None,
subinvocations: []
}
]
}
```

The backtrace shows that this happens when trying to instantiate the placeholder module from this code in ref_fvm/fvm/src/call_manager/default.rs

```
// Instantiate the module.
let instance = engine
.instantiate(&mut store, &state.code)?
.context("actor not found")
.map_err(Abort::Fatal)?;

```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.