Open Issues Need Help
View All on GitHubAI Summary: This issue proposes adding a `SECURITY.md` file to the repository. The purpose of this file is to document the process for reporting security vulnerabilities, which is a critical step for open-source projects, especially during security audits.
AI Summary: This issue requests the implementation of gas usage tests for key smart contract calls. The primary goal is to measure and monitor the gas consumption of critical functions to ensure efficiency and cost-effectiveness before contract deployment.
AI Summary: This GitHub issue requests the addition of Rustdoc comments (`///`) to all structs, enums, and functions within the codebase. The primary purpose of this task is to facilitate the auto-generation of documentation for the project.
AI Summary: This issue requests an update to the contract's README file. The goal is to add a CLI command snippet demonstrating how to deploy a contract and then call one of its methods, providing a practical example for users.
AI Summary: This issue proposes adding `// TODO:` comments throughout the codebase to highlight areas where features are still pending or incomplete. The goal is to make the backlog and missing functionality visible directly within the code.
AI Summary: Implement a function to soft-delete a user account. The function should accept a user ID, only allow deletion by an admin or the user themselves, mark the user as inactive instead of permanently deleting, and emit an event upon deactivation. It depends on an existing 'get user' function for validation.
AI Summary: Implement a new function within the `course_registry` contract to assign a category to a course. This function will take the course ID and category ID as input and update the course's metadata accordingly. Error handling and appropriate data validation should be included.
AI Summary: Implement a function, `update_user_profile`, within a Soroban smart contract to allow users to update their profile information. The function should only permit updates by the profile owner, disallow address changes, accept partial updates using Option<T>, and emit an event upon successful updates.
AI Summary: Implement a function to retrieve a user's profile information (excluding sensitive data) by their ID. The function should only be accessible by the user or an administrator. This requires a pre-existing user profile structure and assumes the existence of user authentication and authorization mechanisms.
AI Summary: Implement a function, `archive_course`, within a Soroban smart contract to archive a course. The function should accept a course ID as input and only allow the course creator to archive the course. Archived courses should be hidden from default listings but not deleted. The function must also emit an archive event.
AI Summary: Implement a function, `is_course_creator`, within the `course_registry` contract that verifies if a given address is the creator of a specified course. The function should accept the course ID and user address as input and return a boolean indicating whether the address matches the course's creator.
AI Summary: Implement a function, `list_all_users`, within a Soroban smart contract to retrieve a paginated list of registered users. The function should return lightweight user profile data (name, country, profession) and be accessible only to administrators.
AI Summary: Implement a `get_user_profile` function in a Soroban smart contract to retrieve user profile data (name, email, country, profession, goals) based on their address. The function should use the same struct as `save_profile.rs` and consider public/self-view access based on privacy settings.
AI Summary: Implement a function within the `course_registry` contract that returns an array of unique course categories. The function requires no input and should output an array of objects, each representing a course category. This likely involves iterating through existing course data and extracting unique category values.
AI Summary: Implement a new function within the `course_registry` contract to allow administrators to create course categories. The function should accept a category name and an optional description as input and return a unique category ID. This requires extending the existing contract's schema and adding appropriate logic to handle category creation and ID generation.
AI Summary: Implement a paginated and filtered list function for users, accessible only to admins. This function should support filtering by role, country, and active status, and return lightweight user profiles. This task depends on the completion of role assignment and profile schema definition.
AI Summary: Implement a Rust function `course_registry_get_course` within the `course_registry` contract to retrieve a `Course` struct from storage based on its ID. The function should handle cases where the course ID is invalid and include unit tests to cover both successful and unsuccessful retrieval scenarios. The function should be placed in a new file named `get_course.rs` within the `src/functions/` directory.