I have a simple NFT smart contract that withdraws funds to multiple addresses including one Safe address. However, the execution reverts.
I've duplicated the contract on goerli testnet:
https://goerli.etherscan.io/address/0x57468D4b4f45950898b65a8E3Dc3B7DAdA9d72B9
Also, I've created a goerli safe:
https://goerli.etherscan.io/address/0xf13B6e39203186ce04E35434FE701F83C6353191
Here's the code snippet that handles the withdrawal:
function withdraw() public onlyOwner nonReentrant {
uint256 balance = address(this).balance;
bool success;
(success, ) = payable(0xf13B6e39203186ce04E35434FE701F83C6353191).call{value: ((balance * 35) / 100)}("Dao");
require(success, "Dao Transaction Unsuccessful");
Here's one execution of the withdrawal:
https://goerli.etherscan.io/tx/0x0ea40311cb1de1cd14961c9b76f33437143dd282d1df49131d28cb36662745f2
I've tried multiple solutions like transferring ownership to the Safe and then executing the withdrawal from within the safe. That results in GS103 error.
0x1a2e2ED504BdE006c724f9ff90fa1b03A74e6Bec
and a new safe:0x228Dd1F90A492F7278EDE4DEd63C02a3d2Db664E
Here's the code snippet I've copied from the similar issue: ibb.co/8P62TsW