diff --git a/README.md b/README.md index 582b8d0a..c376f1e4 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ To unload an owner: > unload_cli_owners ``` -Operations currently supported: +## Operations currently supported: - `send_custom
[--delegate] [--safe-nonce ]`: Sends a custom transaction from the Safe to a contract. If `--delegate` is set a `delegatecall` will be triggered. @@ -166,6 +166,34 @@ configured by default. If you want to use your own you can edit the file `safe_c Be careful when modifying these addresses, the funds in a Safe can get stuck if an invalid address it's used when updating to an invalid Safe Master Copy. +## Recovery Safe Deployment Guide +This guide will walk you through the process of recreating a Safe with the same address on the desired network. +### Recreate Safe 1.3.0 or 1.1.1 +To recreate a Safe (version 1.3.0 or 1.1.1), you'll need the following essential data:: +- The `Singleton` address +- The `ProxyFactory` address +- The `FallbackHandler` address +- The `Owners` addresses with which Safe was created +- The `SaltNonce` value +- The `threeshold` value +- RPC node provider for the target chain. +- The private-key of deployer address + +The previous necessary data can be collected from [safe-deployments](https://github.com/safe-global/safe-deployments/tree/main/src/assets). +Ensure that the `Singleton`, `ProxyFactory`, and `FallbackHandler` are deployed in the target chain with the same address as the previous chain. +To recreate the Safe is necessary execute `safe-creator` as follows: +```commandline +safe-creator --owners --safe-contract +--callback-handler --proxy-factory +--threshold --salt-nonce +``` +The Safe should have been successfully recreated with the same address on the target chain. If not, double-check the data collected from the transaction and ensure that all the necessary contracts are deployed in the chain. + +### Migrate a Safe from Non L2 to L2 +If you've recreated a Safe originally using the L1 singleton on a L2 network, it implies that our services aren't currently indexing the new Safe. +To address this, you'll need to update it to the L2 singleton with command `update_to_l2` or consider transferring the funds to a new Safe on L2 that you control with `drain` command. +For detailed instructions on running these commands, please refer to the [operations supported](#Operations-currently-supported) section for more information. + ## Safe contracts - [Safe contracts](https://github.com/safe-global/safe-contracts) - [Safe contracts deployment info and addreses](https://github.com/safe-global/safe-deployments/tree/main/src/assets)