Cobo Safe Account

Cobo Safe Account uses Safe (previously Gnosis Safe)as the underlying smart contract wallet. It is a multi-sig wallet where each transaction will require signatures from multiple Safe Owners for approval. Cobo Safe Account is the default account supported on Cobo Argus.

By leveraging the Cobo Safe framework, Safe Owners can delegate DeFi permissions to Delegates.The Delegates can then initiate transactions in the Cobo Safe Account and complete their authorized operations using a single signature.

Cobo Safe Account is built on top of the Gnosis Safe Module. As such, the Cobo Safe Account is also referred to as the Cobo Safe Module.

The Account Address of a Cobo Safe Account is the underlying contract address of Safe.

Cobo Safe Account sends transactions with execTransactionFromModuleReturnData as follows:

contract CoboSafeAccount is BaseAccount {

    /// @dev Execute the transaction from the Safe.
    function _executeTransaction(
        TransactionData memory transaction
    ) internal override returns (TransactionResult memory result) {
        // execute the transaction from Gnosis Safe, note this call will bypass
        // Safe owners confirmation.
        (result.success, result.data) = IGnosisSafe(payable(safe())).execTransactionFromModuleReturnData(
            transaction.to,
            transaction.value,
            transaction.data,
            transaction.flag.isDelegateCall() ? Enum.Operation.DelegateCall : Enum.Operation.Call
        );
    }

    /// @dev The account address is the Safe address.
    function _getAccountAddress() internal view override returns (address account) {
        account = safe();
    }
}

Last updated