55Unforgettable Contracts is a set of Solidity smart contracts designed for smart account or vault access recovery
66on top of the [ EIP-7947] ( https://eips.ethereum.org/EIPS/eip-7947 ) .
77
8- It provides mechanisms for managing different recovery methods with subscription-based access.
8+ It provides mechanisms for managing different recovery methods with subscription-based access, including crosschain
9+ subscription synchronization via Wormhole.
910
1011### Contracts
1112
@@ -22,12 +23,17 @@ contracts
2223│ ├── subscription
2324│ │ ├── modules
2425│ │ │ ├── BaseSubscriptionModule — "Basic subscription extension logic"
26+ │ │ │ ├── CrossChainModule — "Crosschain subscription synchronization module"
2527│ │ │ ├── SBTPaymentModule — "Subscription payments using SBTs mapped to fixed durations"
2628│ │ │ ├── SignatureSubscriptionModule — "Subscription extension using signed EIP-712 permits"
2729│ │ │ └── TokensPaymentModule — "Subscription payments in ETH or ERC-20 tokens"
2830│ │ └── BaseSubscriptionManager — "Subscription manager coordinating multiple payment modules"
2931│ ├── HelperDataRegistry — "Helper data storage updated via EIP-712 signatures"
3032│ └── RecoveryManager — "Central recovery coordinator with pluggable strategies"
33+ ├── crosschain
34+ │ ├── SideChainSubscriptionManager — "Subscription manager for side chains with crosschain sync support"
35+ │ ├── SubscriptionsStateReceiver — "Receives and processes crosschain subscription state updates"
36+ │ └── SubscriptionsSynchronizer — "Synchronizes subscription states across chains via Wormhole"
3137├── libs
3238│ ├── EIP712SignatureChecker — "A wrapper around OZ SignatureChecker for EIP-712 signature validations"
3339│ └── TokensHelper — "ETH/ERC-20 transfer utilities"
@@ -41,14 +47,35 @@ contracts
4147 └── VaultSubscriptionManager — "Vault-specific subscription manager"
4248```
4349
44- #### Usage
50+ ### Setup
4551
46- Install all the required dependencies:
52+ This project uses both Hardhat and Foundry. Follow these steps to set up the repository:
53+
54+ #### Prerequisites
55+
56+ 1 . ** Install Node.js** (v18 or later)
57+ 2 . ** Install Foundry** :
58+ ``` bash
59+ curl -L https://foundry.paradigm.xyz | bash
60+ foundryup
61+ ```
62+
63+ #### Installation
64+
65+ Install all required dependencies:
4766
4867``` bash
4968npm install
5069```
5170
71+ Initialize Foundry submodules:
72+
73+ ``` bash
74+ git submodule update --init --recursive
75+ ```
76+
77+ ### Usage
78+
5279To run the tests, execute the following command:
5380
5481``` bash
0 commit comments