We are building our contract to be all on-chain multisig, effectively a propose + vote flow. When a proposal to invoke other soroban contracts passes (final vote gets approved) this approach currently only supports first-level invocations (such as a simple transfer of a SAC asset), but fails when we want something that can call any number of other contracts.
I believe we can get what we need by implementing the CustomAccountInterface via __check_auth , allowing the final vote to allow the potential tree of invocations all on behalf of the contract. Is that a correct understanding? I can't seem to get a multi-leg contract call chain to work and call the entrypoint contract's __check_auth in unit testing, but that may not be possible since there's a specialized testing handler for even checking that method in the first place?
One thing I haven't found a good example of is how to build the transaction on the client side for if we also need to provide some custom data in the user provided Self::Signature , if you could point me to one - that would also be very helpful.