
The "virtual" and "override" keywords in Solidity
Solidity has two keywords that are crucial to understand if you want to make use of contract inheritance: virtual and override. In this blog post, we'll take a closer look at these keywords and explore how you can use them in Solidity.Virtual functionsA virtual function is a function that a derived contract can override. You can mark a function as virtual by using the virtual keyword. If a derived contract overrides a virtual function, it must use the override keyword. Here's an exa...

The "virtual" and "override" keywords in Solidity
Solidity has two keywords that are crucial to understand if you want to make use of contract inheritance: virtual and override. In this blog post, we'll take a closer look at these keywords and explore how you can use them in Solidity.Virtual functionsA virtual function is a function that a derived contract can override. You can mark a function as virtual by using the virtual keyword. If a derived contract overrides a virtual function, it must use the override keyword. Here's an exa...

How to interact with external contracts using interfaces
Solidity interfaces are an essential tool that allows smart contracts to interact with existing smart contracts. In this blog post, we will explore how to use Solidity interfaces to interact with existing smart contracts.What are Solidity interfaces?Solidity interfaces are contracts that define the structure of another contract without providing any implementation. They are like a blueprint or a template that describes the functions, variables, and events of an existing smart contract. In par...

How to interact with external contracts using interfaces
Solidity interfaces are an essential tool that allows smart contracts to interact with existing smart contracts. In this blog post, we will explore how to use Solidity interfaces to interact with existing smart contracts.What are Solidity interfaces?Solidity interfaces are contracts that define the structure of another contract without providing any implementation. They are like a blueprint or a template that describes the functions, variables, and events of an existing smart contract. In par...

Solidity function visibility modifiers 101
Solidity functions have four different visibility modifiers that determine where and how they can be called. The four visibility modifiers are public, private, internal, and external. In this blog post, we'll explore each of these modifiers in detail.Public functionsA public function is visible to all other contracts and can be called both internally and externally. Here's an example:contract MyContract { uint public myNumber; function setNumber(uint _number) public { myNumber = _nu...

Solidity function visibility modifiers 101
Solidity functions have four different visibility modifiers that determine where and how they can be called. The four visibility modifiers are public, private, internal, and external. In this blog post, we'll explore each of these modifiers in detail.Public functionsA public function is visible to all other contracts and can be called both internally and externally. Here's an example:contract MyContract { uint public myNumber; function setNumber(uint _number) public { myNumber = _nu...

How to install Node.js the right way
For better or worse, JaveScript has become one of the most ubiquitous languages in software, and Web3 has not escaped its reach. In fact, most of the tools you will need for Web3 development have been built using JavaScript. For this reason, there’s no way around setting up a JavaScript runtime environment like Node.js on your development machine. However, instead of setting up Node.js “directly,” we’ll use the so-called Node Version Manager (nvm) for our installation. The Node Version Manage...

How to install Node.js the right way
For better or worse, JaveScript has become one of the most ubiquitous languages in software, and Web3 has not escaped its reach. In fact, most of the tools you will need for Web3 development have been built using JavaScript. For this reason, there’s no way around setting up a JavaScript runtime environment like Node.js on your development machine. However, instead of setting up Node.js “directly,” we’ll use the so-called Node Version Manager (nvm) for our installation. The Node Version Manage...

Zero-knowledge proofs in plain English
In this post, I’ll try to demystify one of the most confusing topics in cryptography: zero-knowledge proofs. However, instead of delving into the mathematical details of ZKPs, my goal is to provide you with an easy-to-remember example that explains the basic concept behind ZKPs in plain English.Defining ZKPsTo start, let’s take a look at how Wikipedia introduces zero-knowledge proofs: In cryptography, a zero-knowledge proof is a method by which one party (the prover) can prove to another part...

Zero-knowledge proofs in plain English
In this post, I’ll try to demystify one of the most confusing topics in cryptography: zero-knowledge proofs. However, instead of delving into the mathematical details of ZKPs, my goal is to provide you with an easy-to-remember example that explains the basic concept behind ZKPs in plain English.Defining ZKPsTo start, let’s take a look at how Wikipedia introduces zero-knowledge proofs: In cryptography, a zero-knowledge proof is a method by which one party (the prover) can prove to another part...