ZencypherSolutions / semaphore-stellar-contracts

MIT License
1 stars 8 forks source link

[Soroban Core] Issue 1: Organize Smart Contracts File Structure #17

Open bitfalt opened 4 days ago

bitfalt commented 4 days ago

Each smart contract should have their own directory, according to Soroban.

Create a folder for each smart contract, at the moment we only have 3 (Group, Verifier, SemaphoreKeyPts).

Following the Soroban recommended structure which is the following:

.
├── contracts
│   └── hello_world
│       ├── src
│       │   ├── lib.rs
│       │   └── test.rs
│       └── Cargo.toml
├── Cargo.toml
└── README.md
raizo07 commented 1 day ago

Could I be assigned to this? I'm a software developer with over four years of experience

ETA: 5 hours

BrunoAmbricca commented 1 day ago

I would like to work on this issue

BraCR10 commented 1 day ago

Hello maintainers I’m BRACR10 a contributor from Dojo Coding. I would love to take this issue, I have been exploring the Stellar ecosystem and Soroban, I seem interested in contributing to the project,I plan to organize contracts according to structure and supporting me of documentation if necessary.

khayss commented 1 day ago

I’d like to work on this.

My Background and How It Can Be Leveraged

I am an intermediate fullstack developer with experience in organizing Rust-based projects. I’ve worked on structuring smart contract codebases, making me well-suited to implement Soroban's recommended file structure.

Plan to Tackle This Issue

Josue19-08 commented 1 day ago

Hi, I'm Josué, and I'm part of the Dojo Coding community. I have experience in programming languages such as Angular, React, C#, .NET, C++, PHP, Python, Java, Node.js, and JavaScript, among others. I'm passionate about software development and enjoy contributing to open-source projects, applying my knowledge to solve problems in a practical way. Additionally, I’m working on the project Citizen Of Arcanis, where I’ve had to use Unity, so I’m also skilled with this tool.

To comply with the recommended Soroban structure, I would create a contracts folder and assign a subfolder for each Solidity file (Constants, SemaphoreGroups, SemaphoreVerifier, SemaphoreVerifierKeyPts) within it. I would place each .sol file in its respective subfolder, ensuring adherence to the structured format that includes a Cargo.toml file.

Iwueseiter commented 1 day ago

Can I work on this, please? I'm a frontend and smart contract developer. I have a solid background in tailwindCSS, react, nextjs, javascript, typescript, cairo, rust ETC. I will look at the structure provided and create a standard structure for each smart contract. Then I will create a folder for each smart contract

ETA: 12hrs.

joanne-cmd commented 1 day ago

hello, my name is joanne, i have a background in software development , currently i have been learning rust and creating projects in rust , i would love to work on this issues , i would start by creating the required folders and naming them in the right way

SoarinSkySagar commented 1 day ago

May i work on this issue @bitfalt?

I will change the file directory as you mentioned and also make sure everything works after the restructuring.

eta: 2 days

gethsun1 commented 1 day ago

Let me handle this issue!

KoxyG commented 1 day ago

Hi @evgongora with my experience with Soroban. I can also help to properly arrange these contracts asap.

josephpdf commented 1 day ago

Hi! @bitfalt I'm Joseph Poveda, I'm a member of the Dojo Coding community. A bit about my background is that I'm just starting out with Only Dust and I want to contribute as much as I can to the project. My knowledge of different programming languages ​​will allow me to better solve problems. To solve this issue I will:

  1. Create Directories for Each Smart Contract:
    • Create a separate directory for each smart contract (Group, Verifier, SemaphoreKeyPts) under the contracts directory.
  2. Follow Soroban Recommended Structure:
    • For each smart contract directory, follow the Soroban recommended structure
  3. Move Existing Files:
    • Move the existing source files (lib.rs, test.rs) and Cargo.toml for each smart contract into their respective directories.
  4. Update Project Configuration:
    • Ensure that the main Cargo.toml and any other project configuration files are updated to reflect the new directory structure.
  5. *Verify Functionality:
    • Test each smart contract to ensure that they work correctly after the reorganization.
ryzen-xp commented 23 hours ago

Hi, I am proficient Blockchain developer expert in Cairo , Rust and Solidity and also in web development. please /assign this issue . Thank You

mamicho16 commented 22 hours ago

I'd like to help implement this directory structure for the smart contracts. Here's my proposed approach:

  1. I will create the following structure for each contract while maintaining the recommended Soroban layout:

contracts/ ├── group/ │ ├── src/ │ │ ├── lib.rs │ │ └── test.rs │ └── Cargo.toml ├── verifier/ │ ├── src/ │ │ ├── lib.rs │ │ └── test.rs │ └── Cargo.toml └── semaphore_key_pts/ ├── src/ │ ├── lib.rs │ └── test.rs └── Cargo.toml

  1. Each contract will follow the same structure as the example hello_world contract, ensuring consistency across the project.

  2. I will make sure each contract has its own Cargo.toml with appropriate dependencies and configurations.

I can start working on this if you assign this issue to me. Please let me know if you'd like any modifications to this approach.