From 92da921bd427422792ee4faf1708dbdc5ff03fad Mon Sep 17 00:00:00 2001 From: Gerald Wenzel Date: Wed, 4 Sep 2024 14:55:41 -0400 Subject: [PATCH 1/5] Fixed typos --- .../1-basics/6-the-purpose-of-smart-contracts/+page.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/courses/blockchain-basics/1-basics/6-the-purpose-of-smart-contracts/+page.md b/courses/blockchain-basics/1-basics/6-the-purpose-of-smart-contracts/+page.md index 988ddc4c0..60e8afd3f 100644 --- a/courses/blockchain-basics/1-basics/6-the-purpose-of-smart-contracts/+page.md +++ b/courses/blockchain-basics/1-basics/6-the-purpose-of-smart-contracts/+page.md @@ -16,7 +16,7 @@ To make it more relatable, think of contracts and agreements as promises. Tradit ### The Problem with Traditional Agreements -Lets consider some real world examples of where trust leverages agreements can go wrong and why blockchain technology and smart contracts mitigates these risks. +Lets consider some real world examples of where trust leveraged agreements can go wrong and why blockchain technology and smart contracts mitigates these risks. ### Consumer Trust @@ -65,7 +65,7 @@ As an emerging developer or user in this space, it's important to discern betwee ### Wrap Up -What we've learnt is that traditional contracts or agreements between parties are almost always trust based. Trust based agreements come with inherent flaws and the potential of broken agreements, the conseequences of which we've seen throughout history - The Great Depression, Monopoly Lottery, Robin Hood etc. +What we've learnt is that traditional contracts or agreements between parties are almost always trust based. Trust based agreements come with inherent flaws and the potential of broken agreements, the consequences of which we've seen throughout history - The Great Depression, Monopoly Lottery, Robin Hood etc. Blockchain technology and smart contracts solve these problems by introducing fairness, transparency and immutability to promises. These attributes of smart contracts assure that trust isn't required and we can be certain that an agreement will be executed as described 100% of the time. From 2e82ab1e7f78b23cae8583919cd0cbd52a5e6c74 Mon Sep 17 00:00:00 2001 From: Gerald Wenzel Date: Wed, 4 Sep 2024 14:59:42 -0400 Subject: [PATCH 2/5] Fixed typo --- .../1-basics/6-the-purpose-of-smart-contracts/+page.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/courses/blockchain-basics/1-basics/6-the-purpose-of-smart-contracts/+page.md b/courses/blockchain-basics/1-basics/6-the-purpose-of-smart-contracts/+page.md index 60e8afd3f..ddc1100d1 100644 --- a/courses/blockchain-basics/1-basics/6-the-purpose-of-smart-contracts/+page.md +++ b/courses/blockchain-basics/1-basics/6-the-purpose-of-smart-contracts/+page.md @@ -16,7 +16,7 @@ To make it more relatable, think of contracts and agreements as promises. Tradit ### The Problem with Traditional Agreements -Lets consider some real world examples of where trust leveraged agreements can go wrong and why blockchain technology and smart contracts mitigates these risks. +Lets consider some real world examples of where trust leveraged agreements can go wrong and why blockchain technology and smart contracts mitigate these risks. ### Consumer Trust From ec99fc3e2ec963a99c98ba0cafe38a12bb0bb510 Mon Sep 17 00:00:00 2001 From: Beefy-py Date: Thu, 5 Sep 2024 13:41:14 -0300 Subject: [PATCH 3/5] style: :speech_balloon: typo and grammar fixes --- .../1-basics/1-welcome-to-updraft/+page.md | 8 ++++---- .../1-basics/10-introduction-to-gas/+page.md | 2 +- .../1-basics/11-how-do-blockchains-work/+page.md | 6 +++--- .../1-basics/12-signing-transactions/+page.md | 4 ++-- .../1-basics/14-blockchain-fundamentals/+page.md | 10 +++++----- .../1-basics/17-rollup-stages/+page.md | 2 +- .../+page.md | 2 +- .../1-basics/5-what-is-a-blockchain/+page.md | 2 +- .../6-the-purpose-of-smart-contracts/+page.md | 4 ++-- .../9-making-your-first-transaction/+page.md | 14 +++++++------- 10 files changed, 27 insertions(+), 27 deletions(-) diff --git a/courses/blockchain-basics/1-basics/1-welcome-to-updraft/+page.md b/courses/blockchain-basics/1-basics/1-welcome-to-updraft/+page.md index 1cd3541a8..f51c352a5 100644 --- a/courses/blockchain-basics/1-basics/1-welcome-to-updraft/+page.md +++ b/courses/blockchain-basics/1-basics/1-welcome-to-updraft/+page.md @@ -1,5 +1,5 @@ --- -title: Welcome to the course!!!!<3 +title: Welcome to the course!!!!<3 --- _Follow along with the video_ @@ -46,17 +46,17 @@ Let's start by covering some of the best practices to help you get the absolute **Code along with me** - As we progress through the course, it's a good idea to code along with me. Actually _doing_ the work and performing the actions is how you'll build familiarity with these processes and how they'll really stick. -**Watch for Updates** - This space moves very quickly - as things are updated, I do my best to catalogue them. In each video, at the bottom, there will be an "updates" section if there is some information that differs from the vide. +**Watch for Updates** - This space moves very quickly - as things are updated, I do my best to catalogue them. In each video, at the bottom, there will be an "updates" section if there is some information that differs from the video. **Move at your Pace** - Adjust the pace of the course to meet your needs. The course is modular, so if you want to skip to particular areas - absolutely do that. -**Reflect on your Learnings** - repetition is the mother of skill. The more you repeat these development practices, the more they'll stick +**Reflect on your Learnings** - repetition is the mother of skill. The more you repeat these development practices, the more they'll stick. **Complete the Optional Challenges** - The GitHub Repo has links to fun challenges at the end of each lesson - these are meant to test your skills and reward you with a fun way to show of your progress as a smart contract developer! **Leverage the Community** - Blockchain development is incredibly collaborative. Get involved on [**GitHub**](https://github.com/Cyfrin/foundry-full-course-f23/discussions), [**Peeranha**](https://peeranha.io/) and other forums. Join our [**Discord**](https://discord.gg/cyfrin) server and have conversations with developers just like yourself. -> **Remember:** a challenge is not a roadblock, but an opportunity to learn something new. +> **Remember:** A challenge is not a roadblock, but an opportunity to learn something new. ### Let's Get Started diff --git a/courses/blockchain-basics/1-basics/10-introduction-to-gas/+page.md b/courses/blockchain-basics/1-basics/10-introduction-to-gas/+page.md index b612f99a2..12df95c58 100644 --- a/courses/blockchain-basics/1-basics/10-introduction-to-gas/+page.md +++ b/courses/blockchain-basics/1-basics/10-introduction-to-gas/+page.md @@ -20,7 +20,7 @@ The transaction fee is the amount rewarded to the block producer for processing > Gas price is not to be confused with gas. While gas refers to the computational effort required to execute the transaction, gas price is the cost per unit of that effort. -When we click on "more details" in a transaction overview, we can see further information including the `gasLimit and Usage by transaction`. +When we click on "more details" in a transaction overview, we can see further information including the `Gas Limit and Usage by transaction`. Now, let's address an important question: who gets these transaction fees and why? diff --git a/courses/blockchain-basics/1-basics/11-how-do-blockchains-work/+page.md b/courses/blockchain-basics/1-basics/11-how-do-blockchains-work/+page.md index 87502c8d1..c9272c520 100644 --- a/courses/blockchain-basics/1-basics/11-how-do-blockchains-work/+page.md +++ b/courses/blockchain-basics/1-basics/11-how-do-blockchains-work/+page.md @@ -21,7 +21,7 @@ If I add `Patrick Collins` to our `SHA-256` algorithm, it will: `Patrick Collins` gets converted to `7e5b5a1a6b80e2908b534dd5728a998173d502469c37121dd63fca283068077c` -Ethereum, uses its own version of a hashing algorithm (Keccak256)that isn't exactly SHA-256 but belongs to the SHA family. This doesn't change things significantly here as we're primarily concentrating on the concept of hashing. +Ethereum, uses its own version of a hashing algorithm (Keccak256) that isn't exactly SHA-256 but belongs to the SHA family. This doesn't change things significantly here as we're primarily concentrating on the concept of hashing. In the application, whatever data you enter into the data section, undergoes processing by the SHA-256 hash algorithm resulting in a unique hash. @@ -29,7 +29,7 @@ In the application, whatever data you enter into the data section, undergoes pro ### Understanding Blocks -Now that we've grasped the concept of hashing and fixed-length string, let's inspect the structure of a blockchain—a collection of "blocks." +Now that we've grasped the concept of hashing and fixed-length string, let's inspect the structure of a blockchain. A collection of "blocks." @@ -69,6 +69,6 @@ Until now we've been considering the data passed in a block to be a random strin ### Wrap Up -To summarize, every transaction, block, and indeed the whole blockchain itself comes down to understanding the concept of a hash—this unique fixed-length string that is intrinsically linked with the original data. We've also underscored the importance of decentralization and highlighted how the concept of immutability plays into the system's security. +To summarize, every transaction, block, and indeed the whole blockchain itself comes down to understanding the concept of a hash. This unique fixed-length string that is intrinsically linked with the original data. We've also underscored the importance of decentralization and highlighted how the concept of immutability plays into the system's security. In our next lesson we'll look more closely at private keys, wallets and signing transactions! diff --git a/courses/blockchain-basics/1-basics/12-signing-transactions/+page.md b/courses/blockchain-basics/1-basics/12-signing-transactions/+page.md index 3cf50eaae..2f57e187b 100644 --- a/courses/blockchain-basics/1-basics/12-signing-transactions/+page.md +++ b/courses/blockchain-basics/1-basics/12-signing-transactions/+page.md @@ -16,7 +16,7 @@ Understanding the relationship between private and public keys is essential to g The private key is then passed through an algorithm (the [**Elliptic Curve Digital Signature Algorithm**](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm) for Ethereum and Bitcoin) to create the corresponding public key. Both the private and public keys are central to the transaction process. However, while the private key must remain secret, the public key needs to be accessible to everyone. -When we send a transaction to the blockchain, we're passing a private key - this allows others to verify the transaction through the generated public key +When we send a transaction to the blockchain, we're passing a private key. This allows others to verify the transaction through the generated public key. signing-transactions1 @@ -42,7 +42,7 @@ Anyone with access to your private key can perform and sign transactions, on you Lets recap some of the things covered in this lesson. -We discovered that transactions on the blockchain are signed using a user's `private key`, the generated `message signature` can then be verified by anyone through a comparison to a user's `public key`. +We discovered that transactions on the blockchain are signed using a user's `private key`. The generated `message signature` can then be verified by anyone through a comparison to a user's `public key`. **KEEP YOUR PRIVATE KEY SECURE!** diff --git a/courses/blockchain-basics/1-basics/14-blockchain-fundamentals/+page.md b/courses/blockchain-basics/1-basics/14-blockchain-fundamentals/+page.md index 87b982ec3..062a5e3f2 100644 --- a/courses/blockchain-basics/1-basics/14-blockchain-fundamentals/+page.md +++ b/courses/blockchain-basics/1-basics/14-blockchain-fundamentals/+page.md @@ -20,11 +20,11 @@ It's important to note that many of the concepts we've covered and will cover ar Traditionally, when you run an application be it a website or something that connects to a server you are interacting with a centralized entity. This is the opposite of what you may recall from our distributed blockchain example, in that the server is controlled and run by a single centralized group. -Blockchains, as we saw, run on a network of independent nodes. In our previous example, each of the `Peers` was representative of an independent `node` operator. The term `node` typically refers to a single instance of a decentralized system, Peer A would be a `node`. This network, this combination of these nodes interacting with each other is what creates a blockchain. What makes these networks so potent, is that anybody can join. All anyone needs is a little bit a hardward and you can participate in securing a blockchain network. You could go to GitHub and start operating a node in a few seconds! +Blockchains, as we saw, run on a network of independent nodes. In our previous example, each of the `Peers` was representative of an independent `node` operator. The term `node` typically refers to a single instance of a decentralized system, Peer A would be a `node`. This network, this combination of these nodes interacting with each other is what creates a blockchain. What makes these networks so potent, is that anybody can join. All anyone needs is a little bit of hardware and you can participate in securing a blockchain network. You could go to GitHub and start operating a node in a few seconds! In the traditional world applications are run by centralized entities and if that entity goes down or is malicious or decides that they want to shut off - they just can. They're the ones that control everything. -Blockchains, by contrast, don't have this problem. If one node or one entity that runs several nodes goes down, since there are so many other independent nodes running, it doesn't matter, the blockchain and the system will persist so long as there is at least one node always running. Luckily for us, the most popular chains like Bitcoin and ethereum have thousands and thousands of nodes. Malicious nodes are kicked from the network, or even punished in some cases. Majority rules when it comes to the blockchain. +Blockchains, by contrast, don't have this problem. If one node or one entity that runs several nodes goes down, since there are so many other independent nodes running, it doesn't matter, the blockchain and the system will persist so long as there is at least one node always running. Luckily for us, the most popular chains like Bitcoin and Ethereum have thousands and thousands of nodes. Malicious nodes are kicked from the network, or even punished in some cases. Majority rules when it comes to the blockchain. This gives blockchains this incredibly potent immutability trait where nothing can be changed or corrupted so in essence we can think of a blockchain as a decentralized database. In the case of Ethereum it has an extra additional feature where it also can do computation in a decentralized manner now. @@ -34,11 +34,11 @@ Let's talk consensus. This includes `Proof of Work` and `Proof of Stake`. You've The `mining` feature of our previous blockchain example was an example of `Proof of Work` -`Proof of Work` and `Proof of Stake` fall under this umbrella of `consensus` and `consensus` is a really important topic when it comes to blockchains. +`Proof of Work` and `Proof of Stake` fall under this umbrella of `consensus`. And `consensus` is a really important topic when it comes to blockchains. > `Consensus` is defined as the mechanism used to reach an agreement on the state or a single value on the blockchain especially in a decentralized system. -Very roughly, a consensus protocol in a blockchain or decentralized system can be broken down into two pieces a chain selection algorithm and a sybil resistance mechanism. Mining, or Proof of Work, is a sybil resistance mechanism. This is what Bitcoin currently uses. +Very roughly, a consensus protocol in a blockchain or decentralized system can be broken down into two pieces: a chain selection algorithm and a sybil resistance mechanism. Mining, or Proof of Work, is a sybil resistance mechanism. This is what Bitcoin currently uses. `Proof of Work` is known as a sybil resistance mechanism because it defines a way to figure out who is the block author or which node did the work to mine a block. Sybil resistance is a blockchain's ability to defend against users creating a large number of pseudo-anonymous identities to gain a disproportionately advantageous influence over said system. @@ -61,7 +61,7 @@ A `chain selection rule` is implemented as a means to determine which blockchain In the `longest chain rule`, the decentralized network decides that whichever chain has the most number of blocks will be the valid, or _real_ blockchain. When we saw `block confirmations` in Etherscan earlier, this was representing the number of blocks ahead of our transaction in the longest chain. -> You'll sometimes hear people use **Proof of Work** to describe a consensus mechanism, but it's a little bit inaccurate, it's really the combination of sybil resistance _and_ chain selection that create consensus +> You'll sometimes hear people use **Proof of Work** to describe a consensus mechanism, but it's a little bit inaccurate, it's really the combination of sybil resistance _and_ chain selection that create consensus. `Proof of Work` also serves as a means to determine who receives transaction fees as we discussed earlier. These transaction fees are paid by whomever initiates the transaction. In a Proof of Work system, every node is competing against eachother to solve the block problem first. The first node to solve the problem gets paid the transaction fees accumulated in the block they mine. In addition to this, miners are also paid a `block reward`, the `block reward` is given by the blockchain itself. diff --git a/courses/blockchain-basics/1-basics/17-rollup-stages/+page.md b/courses/blockchain-basics/1-basics/17-rollup-stages/+page.md index 596766e03..13cd4c7b0 100644 --- a/courses/blockchain-basics/1-basics/17-rollup-stages/+page.md +++ b/courses/blockchain-basics/1-basics/17-rollup-stages/+page.md @@ -8,7 +8,7 @@ _Follow along with the video_ ### Introduction -A Layer 2 (L2) chains maturity is evaluated based on specific properties and categorized into **stages**. The [L2B team](https://l2beat.com/scaling/summary) provides an opinionated assessment to encourage a progression towards a greater decentralization. +A Layer 2 (L2) chain's maturity is evaluated based on specific properties and categorized into **stages**. The [L2B team](https://l2beat.com/scaling/summary) provides an opinionated assessment to encourage a progression towards a greater decentralization. ### Rollup Stages diff --git a/courses/blockchain-basics/1-basics/19-why-zksync-is-our-recommended-chain/+page.md b/courses/blockchain-basics/1-basics/19-why-zksync-is-our-recommended-chain/+page.md index 2367b3ce0..eacc75bff 100644 --- a/courses/blockchain-basics/1-basics/19-why-zksync-is-our-recommended-chain/+page.md +++ b/courses/blockchain-basics/1-basics/19-why-zksync-is-our-recommended-chain/+page.md @@ -8,7 +8,7 @@ _Follow along with the video_ ### Introduction -At Cyfrin, we're committed to providing the best tools and platforms to excel as smart contract developer. This course is proudly sponsored by ZK Sync, a leading solution we believe in and use ourselves. Here's why we're choosing ZK Sync Era, a layer 2 ZK roll-up, for our smart contract deployment throughout this course. +At Cyfrin, we're committed to providing the best tools and platforms to excel as a smart contract developer. This course is proudly sponsored by ZK Sync, a leading solution we believe in and use ourselves. Here's why we're choosing ZK Sync Era, a layer 2 ZK roll-up, for our smart contract deployment throughout this course. ### Key Reasons to Use ZK Sync Era diff --git a/courses/blockchain-basics/1-basics/5-what-is-a-blockchain/+page.md b/courses/blockchain-basics/1-basics/5-what-is-a-blockchain/+page.md index 76de6e897..e65df952f 100644 --- a/courses/blockchain-basics/1-basics/5-what-is-a-blockchain/+page.md +++ b/courses/blockchain-basics/1-basics/5-what-is-a-blockchain/+page.md @@ -30,7 +30,7 @@ Blockchains are deterministic systems, so everything happens within their ecosys Oracles serve this purpose. They are devices or services that provide data to blockchains or run external computation. To maintain decentralization, it's necessary to use a decentralized Oracle network rather than relying on a single source. This combination of on-chain logic with off-chain data leads to `hybrid smart contracts`. -> **Note:** Most of this course will assume we'r working with an Etherum or EVM environment. The skills you learn here will be compatible with the vast majority of blockchain architectures! +> **Note:** Most of this course will assume we're working with an Etherum or EVM environment. The skills you learn here will be compatible with the vast majority of blockchain architectures! ### Chainlink diff --git a/courses/blockchain-basics/1-basics/6-the-purpose-of-smart-contracts/+page.md b/courses/blockchain-basics/1-basics/6-the-purpose-of-smart-contracts/+page.md index 988ddc4c0..4e7b9aad3 100644 --- a/courses/blockchain-basics/1-basics/6-the-purpose-of-smart-contracts/+page.md +++ b/courses/blockchain-basics/1-basics/6-the-purpose-of-smart-contracts/+page.md @@ -49,7 +49,7 @@ Smart contracts are _the_ solution to minimizing the reliance on trust based sys ### Under the Hood -Smart contracts are relatively new, but have already started transforming various markets. They do this by representing 'promises' as code on the blockchain. This code is executed by a decentralized collective, such that no single entity can alter the agreemeent in any way! The agreement and it's terms are public knowledge and will automatically execute without human intervention. +Smart contracts are relatively new, but have already started transforming various markets. They do this by representing 'promises' as code on the blockchain. This code is executed by a decentralized collective, such that no single entity can alter the agreemeent in any way! The agreement and its terms are public knowledge and will automatically execute without human intervention. More industries are adopting smart contracts and blockchain due to the numerous advantages they offer. This results in trust-minimized agreements or what can be simply termed as unbreakable promises. @@ -65,7 +65,7 @@ As an emerging developer or user in this space, it's important to discern betwee ### Wrap Up -What we've learnt is that traditional contracts or agreements between parties are almost always trust based. Trust based agreements come with inherent flaws and the potential of broken agreements, the conseequences of which we've seen throughout history - The Great Depression, Monopoly Lottery, Robin Hood etc. +What we've learnt is that traditional contracts or agreements between parties are almost always trust based. Trust based agreements come with inherent flaws and the potential of broken agreements, the consequences of which we've seen throughout history - The Great Depression, Monopoly Lottery, Robin Hood etc. Blockchain technology and smart contracts solve these problems by introducing fairness, transparency and immutability to promises. These attributes of smart contracts assure that trust isn't required and we can be certain that an agreement will be executed as described 100% of the time. diff --git a/courses/blockchain-basics/1-basics/9-making-your-first-transaction/+page.md b/courses/blockchain-basics/1-basics/9-making-your-first-transaction/+page.md index 5fcb0fcc2..da50921e6 100644 --- a/courses/blockchain-basics/1-basics/9-making-your-first-transaction/+page.md +++ b/courses/blockchain-basics/1-basics/9-making-your-first-transaction/+page.md @@ -61,7 +61,7 @@ You can Pin Metamask to the top of your browser for easy access to this view in A couple things to note: -1. In Metamask, you can create multiple accounts. Each account has a different address. You can do this by selected `Create Account` from the menu in the top right.~~~~ +1. In Metamask, you can create multiple accounts. Each account has a different address. You can do this by selected `Create Account` from the menu in the top right. 2. All accounts created in Metamask share the same secret phrase but have different private keys. **Note**: Access to the secret phrase grants control to all accounts, while access to a private key only grants control to a single account. @@ -101,7 +101,7 @@ Your Metamask should pop up and give you the option to select your account, foll -In order to request testnet native tokens (like SepoliaEth) you'll need to verify your GitHub account. One that's done, you should be ready to send your request! +In order to request testnet native tokens (like SepoliaEth) you'll need to verify your GitHub account. Once that's done, you should be ready to send your request! @@ -119,11 +119,11 @@ Try toggling your Metamask wallet between networks now, you'll notice that it's Taking a brief look at some of the details of our transaction on Etherscan, we're given a lot of insight. Understanding these properties is a fundamental part of being a blockchain developer. Some of the basic details include: -- Transaction Hash - This is a unique idenfier for our transaction -- From - the originating address of the transaction request -- To - the address a transaction was sent to -- Value - any funds included with the transaction -- Gas - the cost of the transaction to execute, we'll be looking into gas more closely in the next lesson. +- Transaction Hash - This is a unique identifier for our transaction +- From - The originating address of the transaction request +- To - The address a transaction was sent to +- Value - Any funds included with the transaction +- Gas - The cost of the transaction to execute, we'll be looking into gas more closely in the next lesson. From ee06deed16444e71228576f3debc426a6884bf4c Mon Sep 17 00:00:00 2001 From: Gerald Wenzel Date: Sat, 7 Sep 2024 16:02:25 -0400 Subject: [PATCH 4/5] Removed extraneous text --- .../1-basics/8-current-smart-contract-landscape/+page.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/courses/blockchain-basics/1-basics/8-current-smart-contract-landscape/+page.md b/courses/blockchain-basics/1-basics/8-current-smart-contract-landscape/+page.md index c0d20a122..9de016d02 100644 --- a/courses/blockchain-basics/1-basics/8-current-smart-contract-landscape/+page.md +++ b/courses/blockchain-basics/1-basics/8-current-smart-contract-landscape/+page.md @@ -10,7 +10,7 @@ _Follow along with this video:_ Smart contracts come with various features that distinguish them from traditional agreements. -### Decentralization This is edited +### Decentralization The first feature is decentralization; smart contracts do not rely on any centralized intermediary. Instead, they run on a blockchain which is maintained by thousands of individuals known as node operators. It's the collective effort of these node operators running the smart contracts that make the network decentralized. This aspect will be discussed more in-depth later. From 0b1b642b522ae36f29b4550fada2ca2dc31ee31b Mon Sep 17 00:00:00 2001 From: cromewar Date: Tue, 10 Sep 2024 09:35:12 -0500 Subject: [PATCH 5/5] fix(lesson): fixing small typo on forge init command --- .../3-introduction-to-smart-contracts-testing/+page.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/courses/foundry/2-foundry-fund-me/3-introduction-to-smart-contracts-testing/+page.md b/courses/foundry/2-foundry-fund-me/3-introduction-to-smart-contracts-testing/+page.md index 9bb7189d4..71cbb75e4 100644 --- a/courses/foundry/2-foundry-fund-me/3-introduction-to-smart-contracts-testing/+page.md +++ b/courses/foundry/2-foundry-fund-me/3-introduction-to-smart-contracts-testing/+page.md @@ -8,7 +8,7 @@ _Follow along with this video:_ ### Analyzing the Counter contracts -Continuing from the previous lesson, the `forge --init` populated our project with the `Counter` files. +Continuing from the previous lesson, the `forge init` populated our project with the `Counter` files. #### Counter.sol