Bird
Raised Fist0
Blockchain / Solidityprogramming~5 mins

Development tools setup (Hardhat, Remix) in Blockchain / Solidity - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Development tools setup (Hardhat, Remix)
O(n)
Understanding Time Complexity

When setting up blockchain development tools like Hardhat or Remix, it's important to understand how the time to complete tasks grows as your project gets bigger.

We want to know how the setup and running of these tools scale with the size of your smart contracts and tests.

Scenario Under Consideration

Analyze the time complexity of the following Hardhat test script snippet.


const { expect } = require("chai");
describe("Token contract", function () {
  it("Deployment should assign total supply", async function () {
    const Token = await ethers.getContractFactory("Token");
    const token = await Token.deploy();
    await token.deployed();
    const totalSupply = await token.totalSupply();
    expect(totalSupply).to.equal(1000000);
  });
});
    

This code deploys a token contract and checks its total supply in a test.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Running each test case which deploys contracts and calls functions.
  • How many times: Once per test case; if you have many tests, this repeats for each.
How Execution Grows With Input

As you add more tests or your contracts get larger, the time to deploy and test grows.

Input Size (n)Approx. Operations
10 testsAbout 10 deployments and checks
100 testsAbout 100 deployments and checks
1000 testsAbout 1000 deployments and checks

Pattern observation: The time grows roughly in direct proportion to the number of tests you run.

Final Time Complexity

Time Complexity: O(n)

This means the time to run your tests grows linearly with the number of tests you have.

Common Mistake

[X] Wrong: "Adding more tests won't affect the total time much because each test is small."

[OK] Correct: Each test deploys contracts and runs calls, which takes time. More tests add up and increase total time linearly.

Interview Connect

Understanding how your development tools scale helps you write efficient tests and manage project growth confidently.

Self-Check

"What if we reused the same deployed contract instance for all tests instead of deploying each time? How would the time complexity change?"

Practice

(1/5)
1. Which of the following best describes Hardhat in blockchain development?
easy
A. A hardware device to store private keys securely
B. A local development environment to write and test smart contracts
C. An online marketplace for buying cryptocurrencies
D. A blockchain explorer to view transactions

Solution

  1. Step 1: Understand Hardhat's purpose

    Hardhat is designed as a local tool to help developers write, test, and deploy smart contracts easily on their computer.
  2. Step 2: Compare options with Hardhat's role

    Options A, B, and D describe other blockchain tools or devices, not Hardhat.
  3. Final Answer:

    A local development environment to write and test smart contracts -> Option B
  4. Quick Check:

    Hardhat = Local development tool [OK]
Hint: Hardhat runs locally for coding and testing smart contracts [OK]
Common Mistakes:
  • Confusing Hardhat with hardware wallets
  • Thinking Hardhat is an online platform
  • Mixing Hardhat with blockchain explorers
2. Which command correctly initializes a new Hardhat project in your terminal?
easy
A. npx hardhat
B. npx hardhat init
C. hardhat start
D. hardhat create project

Solution

  1. Step 1: Recall Hardhat initialization command

    The standard way to start a Hardhat project is by running npx hardhat which launches the setup wizard.
  2. Step 2: Evaluate other options

    Options A, B, and C are not valid Hardhat commands for project initialization.
  3. Final Answer:

    npx hardhat -> Option A
  4. Quick Check:

    Initialize Hardhat with 'npx hardhat' [OK]
Hint: Use 'npx hardhat' to start a new project setup [OK]
Common Mistakes:
  • Using 'hardhat create project' which is invalid
  • Trying 'hardhat start' instead of 'npx hardhat'
  • Using 'npx hardhat init' which is not a valid command
3. What will be the output when you run this Hardhat command in a new project folder?
npx hardhat compile
medium
A. Starts a local blockchain node
B. Throws an error: command not found
C. Deletes all compiled files
D. Compiles smart contracts and shows success message

Solution

  1. Step 1: Understand the 'compile' command in Hardhat

    The command npx hardhat compile compiles all smart contracts in the project and outputs success or error messages.
  2. Step 2: Check other options

    Throws an error: command not found is wrong because the command exists. Deletes all compiled files is incorrect as it does not delete files. Starts a local blockchain node is for running nodes, not compiling.
  3. Final Answer:

    Compiles smart contracts and shows success message -> Option D
  4. Quick Check:

    'npx hardhat compile' compiles contracts [OK]
Hint: Compile contracts with 'npx hardhat compile' to check code [OK]
Common Mistakes:
  • Expecting 'compile' to start blockchain node
  • Thinking 'compile' deletes files
  • Assuming command is invalid without setup
4. You tried to deploy a contract using Hardhat but got this error:
Error: Cannot find module '@nomiclabs/hardhat-ethers'
What is the most likely fix?
medium
A. Install the missing plugin with npm install --save-dev @nomiclabs/hardhat-ethers
B. Restart your computer
C. Delete the node_modules folder without reinstalling
D. Run npx hardhat compile again

Solution

  1. Step 1: Identify the missing module error

    The error says the plugin '@nomiclabs/hardhat-ethers' is missing, meaning it is not installed in the project.
  2. Step 2: Fix by installing the missing plugin

    Running npm install --save-dev @nomiclabs/hardhat-ethers adds the plugin so Hardhat can use it.
  3. Final Answer:

    Install the missing plugin with npm install --save-dev @nomiclabs/hardhat-ethers -> Option A
  4. Quick Check:

    Missing module error = install plugin [OK]
Hint: Install missing packages with npm to fix module errors [OK]
Common Mistakes:
  • Restarting computer without installing packages
  • Deleting node_modules without reinstalling
  • Running compile without fixing dependencies
5. You want to quickly test a simple smart contract without installing anything locally. Which tool should you use and why?
hard
A. Use Hardhat because it runs in the browser without installation
B. Use a hardware wallet to write contracts securely
C. Use Remix because it is an online editor that requires no local setup
D. Use a blockchain explorer to deploy contracts

Solution

  1. Step 1: Identify tools for quick testing without local setup

    Remix is an online IDE that lets you write, compile, and deploy contracts directly in the browser.
  2. Step 2: Compare with other options

    Hardhat requires local installation, hardware wallets store keys but don't write contracts, and blockchain explorers only view data.
  3. Final Answer:

    Use Remix because it is an online editor that requires no local setup -> Option C
  4. Quick Check:

    Quick test without install = Remix online editor [OK]
Hint: Remix runs in browser, no install needed for quick tests [OK]
Common Mistakes:
  • Thinking Hardhat runs in browser without install
  • Confusing hardware wallets with development tools
  • Trying to deploy contracts via blockchain explorers
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard