This document is primarily written to facilitate the Code4rena audit that will kick off 10th Feb(??).
We previously wrote a complete litepaper that describes the Recall protocol in full. This paper is linked below. However this audit will be focused on the IPC framework upon which Recall is built.
Note that Recall was previously codenamed “Hoku”.
Recall leverages the IPC (InterPlanetary Consensus) framework to create an L2 on Filecoin. This is facilitated by two main components: (1) a set of smart contracts deployed to Filecoin, and (2) a FVM (Filecoin Virtual Machine) based blockchain built using CometBFT. These type of L2s are referred to as ‘subnets’, and will eventually allow us to orchestrate multiple blockchains hierarchically and in parallel, but for our mainnet v1 we will only operate one such subnet. This audit will be primarily focused on the IPC framework implemented in Rust. A general description of the IPC framework can be found here.
https://www.loom.com/share/964b9d722ec24ef7902bdc802318287d
The contracts listed below starts with the Hoku ERC20 token which is used by operators to stake and become validators in the network.
/contracts
This repo contains the general IPC related solidity code. These contracts are provided by the IPC framework
GatewayDiamond.sol
Implementation of the IPC GatewayActor within the Diamond pattern.
SubnetActorDiamond.sol
Reference implementation of an IPC SubnetActor within the Diamond pattern.
SubnetRegistry.sol
Registry contract for seamlessly deploying subnet actors.