Suppose I have a multisig wallet like a Gnosis Safe, which requires (say) two or three signers to approve any given transaction. In other words, the multisig wallet has its own wallet address, and 2 or 3 other wallet addresses must approve any transaction that is made.
What I want is for one of these "other" wallets to actually be a smart contract. There will be an owner of that contract who of course launches the contract and puts it into an active state. In the active state, it automatically approves any transaction that is launched by the other wallet owner for this multisig wallet. The smart contract also has a function where the contract owner can take it out of the active state so that no transactions are approved.
If the owner of Smart Contract ever decides that they don't want John making any more transactions then they can set the contract into the inactive state, and now John cannot make any more transactions.
Is this possible in a smart contract? For the function that John calls to request an approval, how is the transaction information passed, or is there some other way that Smart Contract can use to get access to this pending transaction? How can Smart Contract approve this transaction?
Finally, suppose I want to have this capability of the Eth, BSC, Avax and Polygon chains. I assume this means I have to have a version of this smart contract running on each of these chains?
Yes I have a good reason for asking if this is possible. It has to do with regulatory and taxation issues.