def METHOD_NAME(self) -> Tuple[Set[str], int]:
    acct_key_list = self._msg.account_keys
    # required accounts should be included into the transaction
    required_key_list: List[str] = [str(key) for key in acct_key_list[:self._msg.header.num_required_signatures]]
    # programs should be included into the transaction
    prog_key_list: List[str] = list(set([str(acct_key_list[ix.program_id_index]) for ix in self._msg.instructions]))
    # the result set of accounts in the static part of a transaction
    tx_acct_key_set = set(required_key_list + prog_key_list)
    if not len(tx_acct_key_set):
        raise ALTError('Zero number of static transaction accounts')
    elif len(tx_acct_key_set) != len(required_key_list) + len(prog_key_list):
        raise ALTError('Transaction uses signature from a program?')
    elif len(tx_acct_key_set) > ALTLimit.max_tx_account_cnt:
        raise ALTError(
            f'Too big number of transactions account keys: {len(tx_acct_key_set)} > {ALTLimit.max_tx_account_cnt}'
        )
    return tx_acct_key_set, len(prog_key_list)