Hi All, I want to use multisig like gnosis safe for my contract, which means when I try to upgrade my contract with a new implementation address, that upgradable transaction must be approved by 3 addresses (owners)… Then only the transaction must be executable.
And I went through some openzeppelin documents which exactly match my requirement, but for that, I need to connect with Openzeppelin defender through that I can able to connect with gnosis safe and able to upgrade the contract (which deployed on BSC Testnet) after three approval.
https://docs.openzeppelin.com/defender/guide-upgrades#process-of-upgrading
So My doubt is ,Is there any possibility to directly connect my contract with Gnosis safe Multisig for binance and make transaction(like upgarding contract ) with 3 approvals. ?
or only option is i need to connect through openzeppelin defender.
can anyone help me regarding this Multisig mechanism. Thanks in advance.
Hey @prakash25! Defender Admin is just a user interface on top of Gnosis Safe. You can certainly set up the Gnosis Safe directly from their Binance interface and manage upgrades there, though the process will be a bit more manual for creating the upgrade txs.
1 Like
Thanks@spalladino, Now I am able to make upgradable tx through gnosis safe for binance Mainnet, and Is there any official gnosis safe Interface for bsc testnet is available. If it is available let me know, please.
Not that I know of. You can use a free Defender account for that though, since testnet access is free.
1 Like
Thanks, @spalladino, I will use defender for testnet, and I have one doubt now I can able to use gnosis for the upgradable transactions, but when I try to execute the normal function in my contract(for eg:setTaxfee function which is only called by owner) through gnosis of binance, I am facing an issue.
This transaction will most likely fail. To save gas costs, avoid creating the transaction.
can you have any idea about calling normal functions (setter function)through gnosis safe(with 3 approval).Thanks in advance.
This transaction will most likely fail.
That depends entirely on your contract. If you're calling a function that can only be called by an owner, make sure the multisig is appointed as the owner of the contract. Also make sure you're setting a value that's valid (eg you're not setting a fee of zero when you have a require(fee > 0)
in your code). Whether you call directly or via a Safe should not make a difference here, as long as you call with the correct params and the caller is the owner.
1 Like
Thanks for the response @spalladino.
1 Like