Replace fendermint_vm_interpreter::fvm::state::ipc::GatewayCaller with a new system actor in
fendermint_vm_actor_interface called Platform Actor with minimal, consensus-related functionality for the subnet network as a child subnet.
This means that the IPC subnet should be instantiated without using the following Solidity artifacts dependency:
GatewayGetterFacet
CheckpointingFacet
TopDownFinalityFacet
XnetMessagingFacet
GatewayManagerFacet
Main Functionality
| Module |
Feature |
Current Module |
Current Function |
| Checkpointting |
commit bottom-up checkpoint |
CheckpointingFacet |
.commitCheckpoint() |
| Topdown |
commit to parent finality |
TopDownFinalityFacet |
.commitParentFinality() |
| Topdown |
store validator change requests |
TopDownFinalityFacet |
.storeValidatorChanges() |
| Topdown |
apply topdown committed changes |
TopDownFinalityFacet |
.applyFinalityChanges() |
| GMP |
system actor applies incoming cross-net messages |
XnetMessagingFacet |
.applyCrossMessages() |
Testing:
- Port relevant Solidity integration tests to Rust
- E2E tests to check against regression for the limited child-subnet functionality (checkpoint submission, topdown finality, inbound cross-net messages)
Replace
fendermint_vm_interpreter::fvm::state::ipc::GatewayCallerwith a new system actor infendermint_vm_actor_interfacecalled Platform Actor with minimal, consensus-related functionality for the subnet network as a child subnet.This means that the IPC subnet should be instantiated without using the following Solidity artifacts dependency:
GatewayGetterFacetCheckpointingFacetTopDownFinalityFacetXnetMessagingFacetGatewayManagerFacetMain Functionality
Testing: