;
}
return ;
diff --git a/packages/nextjs/public/challenges/challenge_1/steps.json b/packages/nextjs/public/challenges/circom/challenge_1/steps.json
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_1/steps.json
rename to packages/nextjs/public/challenges/circom/challenge_1/steps.json
diff --git a/packages/nextjs/public/challenges/challenge_2/files/KnightsKnaves.circom b/packages/nextjs/public/challenges/circom/challenge_2/files/KnightsKnaves.circom
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_2/files/KnightsKnaves.circom
rename to packages/nextjs/public/challenges/circom/challenge_2/files/KnightsKnaves.circom
diff --git a/packages/nextjs/public/challenges/challenge_2/files/Knightsknaves.wasm b/packages/nextjs/public/challenges/circom/challenge_2/files/Knightsknaves.wasm
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_2/files/Knightsknaves.wasm
rename to packages/nextjs/public/challenges/circom/challenge_2/files/Knightsknaves.wasm
diff --git a/packages/nextjs/public/challenges/challenge_2/files/input.json b/packages/nextjs/public/challenges/circom/challenge_2/files/input.json
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_2/files/input.json
rename to packages/nextjs/public/challenges/circom/challenge_2/files/input.json
diff --git a/packages/nextjs/public/challenges/challenge_2/files/knightsknaves_0001.zkey b/packages/nextjs/public/challenges/circom/challenge_2/files/knightsknaves_0001.zkey
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_2/files/knightsknaves_0001.zkey
rename to packages/nextjs/public/challenges/circom/challenge_2/files/knightsknaves_0001.zkey
diff --git a/packages/nextjs/public/challenges/challenge_2/files/verification_key.json b/packages/nextjs/public/challenges/circom/challenge_2/files/verification_key.json
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_2/files/verification_key.json
rename to packages/nextjs/public/challenges/circom/challenge_2/files/verification_key.json
diff --git a/packages/nextjs/public/challenges/challenge_2/statement.js b/packages/nextjs/public/challenges/circom/challenge_2/statement.js
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_2/statement.js
rename to packages/nextjs/public/challenges/circom/challenge_2/statement.js
diff --git a/packages/nextjs/public/challenges/challenge_2/steps.json b/packages/nextjs/public/challenges/circom/challenge_2/steps.json
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_2/steps.json
rename to packages/nextjs/public/challenges/circom/challenge_2/steps.json
diff --git a/packages/nextjs/public/challenges/challenge_3/files/CircomCustomLogic.sol b/packages/nextjs/public/challenges/circom/challenge_3/files/CircomCustomLogic.sol
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_3/files/CircomCustomLogic.sol
rename to packages/nextjs/public/challenges/circom/challenge_3/files/CircomCustomLogic.sol
diff --git a/packages/nextjs/public/challenges/challenge_3/steps.json b/packages/nextjs/public/challenges/circom/challenge_3/steps.json
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_3/steps.json
rename to packages/nextjs/public/challenges/circom/challenge_3/steps.json
diff --git a/packages/nextjs/public/challenges/challenge_4/files/KnightsKnaves.circom b/packages/nextjs/public/challenges/circom/challenge_4/files/KnightsKnaves.circom
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_4/files/KnightsKnaves.circom
rename to packages/nextjs/public/challenges/circom/challenge_4/files/KnightsKnaves.circom
diff --git a/packages/nextjs/public/challenges/challenge_4/files/Knightsknaves.wasm b/packages/nextjs/public/challenges/circom/challenge_4/files/Knightsknaves.wasm
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_4/files/Knightsknaves.wasm
rename to packages/nextjs/public/challenges/circom/challenge_4/files/Knightsknaves.wasm
diff --git a/packages/nextjs/public/challenges/challenge_4/files/index.html b/packages/nextjs/public/challenges/circom/challenge_4/files/index.html
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_4/files/index.html
rename to packages/nextjs/public/challenges/circom/challenge_4/files/index.html
diff --git a/packages/nextjs/public/challenges/challenge_4/files/knightsknaves_0000.zkey b/packages/nextjs/public/challenges/circom/challenge_4/files/knightsknaves_0000.zkey
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_4/files/knightsknaves_0000.zkey
rename to packages/nextjs/public/challenges/circom/challenge_4/files/knightsknaves_0000.zkey
diff --git a/packages/nextjs/public/challenges/challenge_4/files/verification_key.json b/packages/nextjs/public/challenges/circom/challenge_4/files/verification_key.json
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_4/files/verification_key.json
rename to packages/nextjs/public/challenges/circom/challenge_4/files/verification_key.json
diff --git a/packages/nextjs/public/challenges/challenge_4/files/verify.js b/packages/nextjs/public/challenges/circom/challenge_4/files/verify.js
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_4/files/verify.js
rename to packages/nextjs/public/challenges/circom/challenge_4/files/verify.js
diff --git a/packages/nextjs/public/challenges/challenge_4/files/verifyProofPlonk.js b/packages/nextjs/public/challenges/circom/challenge_4/files/verifyProofPlonk.js
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_4/files/verifyProofPlonk.js
rename to packages/nextjs/public/challenges/circom/challenge_4/files/verifyProofPlonk.js
diff --git a/packages/nextjs/public/challenges/challenge_4/statement.js b/packages/nextjs/public/challenges/circom/challenge_4/statement.js
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_4/statement.js
rename to packages/nextjs/public/challenges/circom/challenge_4/statement.js
diff --git a/packages/nextjs/public/challenges/challenge_4/steps.json b/packages/nextjs/public/challenges/circom/challenge_4/steps.json
similarity index 100%
rename from packages/nextjs/public/challenges/challenge_4/steps.json
rename to packages/nextjs/public/challenges/circom/challenge_4/steps.json
diff --git a/packages/nextjs/public/challenges/noir/challenge_1/steps.json b/packages/nextjs/public/challenges/noir/challenge_1/steps.json
new file mode 100644
index 0000000..a1066cd
--- /dev/null
+++ b/packages/nextjs/public/challenges/noir/challenge_1/steps.json
@@ -0,0 +1,35 @@
+{
+ "title": "Noir installation",
+ "steps": [
+ {
+ "step": "Step 1 - Install Rust",
+ "description": ["Noir is built using Rust, so you need to install Rust first. Run the following command to install Rust:"],
+ "commands": ["curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh"]
+ },
+ {
+ "step": "Step 2",
+ "description": "After installation, you need to add Rust to your PATH by running:",
+ "commands": ["gsource $HOME/.cargo/env"]
+ },
+ {
+ "step": "Step 3",
+ "description": "Verify that Rust is installed correctly by checking its version:",
+ "commands": ["rustc --version"]
+ },
+ {
+ "step": "Step 4 - Install Noir",
+ "description": "With Rust installed, you can now install Noir using Cargo, the Rust package manager. To install the Noir version manager (noirup), run:",
+ "commands": ["cargo install noirup"]
+ },
+ {
+ "step": "Step 5",
+ "description": "This installs the version manager, noirup, which helps you install and manage versions of Noir. To install the latest version of Noir, run:",
+ "commands": ["noirup install"]
+ },
+ {
+ "step": "Step 6 - Create a New Noir Project",
+ "description": "Once Noir is installed, you can create a new project to start writing zk-SNARK circuits. To initialize a new Noir project inside a directory, use this command:",
+ "commands": ["nargo init"]
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/packages/nextjs/utils/getStep.ts b/packages/nextjs/utils/getStep.ts
index c697f8b..11cb2ba 100644
--- a/packages/nextjs/utils/getStep.ts
+++ b/packages/nextjs/utils/getStep.ts
@@ -1,8 +1,8 @@
import fs from "fs/promises";
import path from "path";
-export const getSteps = async (slug: string) => {
- const filePath = path.join(process.cwd(), "public", "challenges", `challenge_${slug}/steps.json`);
+export const getSteps = async (slug: string, lang: string) => {
+ const filePath = path.join(process.cwd(), "public", "challenges", `${lang}/challenge_${slug}/steps.json`);
const jsonData = await fs.readFile(filePath, "utf-8");
const data = JSON.parse(jsonData);