Cobo Smart Account is a simple smart contract wallet for storing digital assets and sending transactions.
The Account Address of a Cobo Smart Account will be the address of the underlying smart contract.
Cobo Smart Account sends transactions using call and delegatecall as follows:
contractCoboSmartAccountisBaseAccount {/// @dev Perform a call directly from the contract itself.function_executeTransaction(TransactionDatamemory transaction ) internaloverridereturns (TransactionResultmemory result) {address to = transaction.to;uint256 value = transaction.value;bytesmemory data = transaction.data;if (transaction.flag.isDelegateCall()) {// Ignore value here as we are doing delegatecall. (result.success, result.data) =address(to).delegatecall(data); } else { (result.success, result.data) =address(to).call{value: value}(data); } }/// @dev The contract itself.function_getAccountAddress() internalviewoverridereturns (address account) {return (address(this)); }}