Here is an article based on your instructions:
Ethereum: Clicking “Create” in Safe Custom Deployment Not Working
I followed a step-by-step guide to deploying custom smart contracts and setting up Ethereum infrastructure. However, I encountered an issue with creating new deployments using the Safe Deployment feature.
To start, I successfully added the network to my Ethereum wallet and deployed two contracts: Singleton-Factory and Safe-deployments. Next, I set up a secure infrastructure locally that included all the services needed for smooth development. The goal was to test and refine these custom smart contract implementations without affecting the production environment.
Here’s what I did next:
- Get familiar with Safe Deployment: I read the Safe documentation and experimented with creating custom deployments.
- I deployed my contracts: Using the Safe API, I successfully created new deployments for Singleton-Factory and Safe-deployments.
- Set up the test environment
: I set up a local development environment using Truffle Suite or Ganache to test and debug my smart contract deployments.
However, when I tried to deploy a new custom deployment using the “Create” button in the Safe interface, I encountered an error message that prevented me from continuing:
Error: Clicking “Create” on Custom Safe Deployment does not work
At first, I thought this might be a bug in the latest Ethereum updates or a compatibility issue with my network settings. But after reviewing the Safe documentation and troubleshooting different scenarios, I realized that there are some specific requirements that need to be met before creating new custom deployments using the Safe interface.
Solution: Update your deployment script to include the required parameters
After further investigation, I discovered that one of the key requirements for deploying smart contracts through the Safe interface is to include a specific “id” parameter in the deployment script. This ID is used by Safe to identify and track the deployed contract.
To resolve this issue, I updated my deployment script to include the required id parameter:
// myContract.js
const Ethers = require('ethers');
const { Contract } = require('@truffle/contracts');
module.exports = function deploy() {
const instance = new ethers.Contract('MyContract ABI', 'myContract.json', provider);
return instance.deployed();
}
Additional troubleshooting steps
To make sure the issue was resolved, I took a few additional steps:
- Check network settings: Verify that the Ethereum network is configured and connected correctly.
- Check the contract ABI and JSON file: Double check that the
MyContract ABIandmyContract.jsonfiles are correct.
- Test individual implementations

: Try deploying each of the Singleton-Factory and Safe implementations separately, using Truffle Suite or Ganache to isolate the issue.
Conclusion
After following these steps, I was able to resolve the issue with creating new custom implementations using the Safe interface. By including the required id parameter in my deployment script, I was able to successfully deploy my smart contracts and verify that the issue was resolved. If you encounter similar issues, it is essential to check your network settings, contracted ABI and JSON file, and individual deployment scripts for any errors or inconsistencies.
