Skip to content
This repository has been archived by the owner on Jun 20, 2024. It is now read-only.

chore: fix typos in starknet foundry chapter #365

Merged
merged 1 commit into from
Apr 19, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 29 additions & 28 deletions src/ch02-13-foundry-forge.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,18 +59,18 @@ Follow the instructions and then run:
`snfoundryup`

3. Check your `snforge` version, run :
`snforge version`
`snforge --version`

As athe time of this tutorial, we used `snforge` version `snforge 0.16.0` which is the latest at this time.
At the time of this tutorial, we used `snforge` version `snforge 0.21.0` which is the latest at this time.

### Test

Run tests using `snforge test`:

```shell
snforge
snforge test

Collected 2 test(s) from tesing package
Collected 2 test(s) from testing package
Running 0 test(s) from src/
Running 2 test(s) from tests/
[PASS] tests::test_contract::test_cannot_increase_balance_with_zero_value (gas: ~1839)
Expand All @@ -80,12 +80,12 @@ Tests: 2 passed, 0 failed, 0 skipped, 0 ignored, 0 filtered out

## Integrating `snforge` with Existing Scarb Projects

For those with an established Scarb project who wish to incorporate `snforge`, ensure the `snforge_std package` is declared as a dependency. Insert the line below in the [dependencies] section of your `Scarb.toml`:
For those with an established Scarb project who wish to incorporate `snforge`, ensure the `snforge_std` package is declared as a dependency. Insert the line below in the [dependencies] section of your `Scarb.toml`:

```shell
# ...
[dependencies]
snforge_std = { git = "https://github.com/foundry-rs/starknet-foundry", tag = "v0.16.0" }
snforge_std = { git = "https://github.com/foundry-rs/starknet-foundry", tag = "v0.21.0" }
```

Ensure the tag version corresponds with your `snforge` version. To verify your `snforge` version:
Expand All @@ -97,7 +97,7 @@ snforge --version
Or, add this dependency using the `scarb` command:

```shell
scarb add snforge_std --git https://github.com/foundry-rs/starknet-foundry.git --tag v0.16.0
scarb add snforge_std --git https://github.com/foundry-rs/starknet-foundry.git --tag v0.21.0
```

With these steps, your existing Scarb project is now **`snforge`**-ready.
Expand All @@ -111,14 +111,14 @@ Utilize Starknet Foundry's `snforge test` command to efficiently run tests.
Navigate to the package directory and issue this command to run tests:

```shell
snforge
snforge test
```

Sample output might resemble:

```shell

Collected 2 test(s) from tesingg package
Collected 2 test(s) from testing package
Running 0 test(s) from src/
Running 2 test(s) from tests/
[PASS] tests::test_contract::test_cannot_increase_balance_with_zero_value (gas: ~1839)
Expand Down Expand Up @@ -170,10 +170,10 @@ use starknet::ContractAddress;

use snforge_std::{declare, ContractClassTrait};

use tesingg::IHelloStarknetSafeDispatcher;
use tesingg::IHelloStarknetSafeDispatcherTrait;
use tesingg::IHelloStarknetDispatcher;
use tesingg::IHelloStarknetDispatcherTrait;
use testing::IHelloStarknetSafeDispatcher;
use testing::IHelloStarknetSafeDispatcherTrait;
use testing::IHelloStarknetDispatcher;
use testing::IHelloStarknetDispatcherTrait;

fn deploy_contract(name: felt252) -> ContractAddress {
let contract = declare(name);
Expand Down Expand Up @@ -215,10 +215,10 @@ fn test_cannot_increase_balance_with_zero_value() {
}
```

To run the test, execute the `snforge` command. The expected output is:
To run the test, execute the `snforge test` command. The expected output is:

```shell
Collected 2 test(s) from tesing package
Collected 2 test(s) from testing package
Running 0 test(s) from src/
Running 2 test(s) from tests/
[PASS] tests::test_contract::test_cannot_increase_balance_with_zero_value (gas: ~1839)
Expand All @@ -232,7 +232,7 @@ There are several methods to test smart contracts, such as unit tests, integrati

## ERC20 Contract Example

After setting up your foundry project, add the following dependency to your `Scarb.toml` (in this case we are using version 0.8.0 of the OpenZeppelin Cairo contracts, due to the fact that it uses components):
After setting up your foundry project, add the following dependency to your `Scarb.toml` (in this case we are using version 0.8.1 of the OpenZeppelin Cairo contracts, due to the fact that it uses components):

```shell
openzeppelin = { git = "https://github.com/OpenZeppelin/cairo-contracts.git", tag = "v0.8.1" }
Expand Down Expand Up @@ -267,13 +267,13 @@ trait IERC20<TContractState> {
#[starknet::contract]
mod ERC20Token {

Importing necessary libraries
// Importing necessary libraries

use starknet::ContractAddress;
use starknet::get_caller_address;
use starknet::contract_address_const;

Similar to address(0) in Solidity
// Similar to address(0) in Solidity

use core::zeroable::Zeroable;
use super::IERC20;
Expand Down Expand Up @@ -312,9 +312,9 @@ Similar to address(0) in Solidity
value: u256,
}

The contract constructor is not part of the interface. Nor are internal functions part of the interface.
// The contract constructor is not part of the interface. Nor are internal functions part of the interface.

Constructor
// Constructor

#[constructor]
fn constructor(ref self: ContractState, // _name: felt252,
Expand Down Expand Up @@ -483,9 +483,10 @@ Constructor
}
}
}
}
```

This contract allows minting tokens to a recipient during deployment, checking balances, and transferring tokens, relying on the openzeppelin ERC20 library.
This contract allows minting tokens to a recipient during deployment, checking balances, and transferring tokens, relying on the OpenZeppelin ERC20 library.

### Test Preparation

Expand All @@ -512,9 +513,9 @@ This function requires a `supply` amount and `recipient` address:

Before deploying a starknet contract, we need a contract_class.

Get it using the declare function from [starknet Foundry](#https://foundry-rs.github.io/starknet-foundry/)
Get it using the declare function from [Starknet Foundry](#https://foundry-rs.github.io/starknet-foundry/)

Supply values the constructor arguments when deploying
Supply values for the constructor arguments when deploying

```

Expand Down Expand Up @@ -740,7 +741,7 @@ To begin, test the deployment helper function to confirm the details provided:
Running `snforge test` produces:

```shell
Collected 12 test(s) from te package
Collected 12 test(s) from testing package
Running 12 test(s) from src/
[PASS] testing::ERC20Token::test::test_total_supply (gas: ~1839)
[PASS] testing::ERC20Token::test::test_decimal_is_correct (gas: ~3065)
Expand Down Expand Up @@ -842,7 +843,7 @@ To execute specific tests, use a filter string with the `snforge` command. Tests
For instance, to run all tests with the string 'test\_' in their name:

```shell
snforge test_
snforge test test_
```

Expected output:
Expand All @@ -863,19 +864,19 @@ All the tests with the string 'test\_' in their test name went through.
Another example: To filter and run `test_fuzz_sum` we can partially match the test name with the string 'fuzz_sum' like this:

```shell
snforge test_fuzz_sum
snforge test test_fuzz_sum
```

To execute an exact test, combine the `--exact` flag with a fully qualified test name:

```shell
snforge package_name::test_name --exact
snforge test package_name::test_name --exact
```

To halt the test suite upon the first test failure, use the `--exit-first` flag:

```shell
snforge --exit-first
snforge test --exit-first
```

If a test fails, the output will resemble:
Expand Down
Loading