First Smart Contract
In this tutorial we'll introduce the Remix code editor. In the future I will discuss how to set up a local dev environment. For now Remix is a great Solidity IDE for learning.
In the bar on the left there are 4 sections:
- A file browser
- A section for the compiler
- A section for deploying and running your smart contract
- A plugin section
We will use everything except for the plugin section for now
So to get started do the following:
- Create a file called
- Set the compiler version to
- Tick the
- Set the environment to
Ok we are now ready to start writing our first smart contract.
Creating a Smart Contract
For this tutorial I will be using some code snippets from the Solidity Language Documentation website linked here
Here is the contract will will be creating:
The first line will be a comment specifying your license
The second is a
pragma to tell the compiler what version it should use.
If you are familiar with
objects in other languages you will find that a
contract is pretty similar at first glance.
contract will typically contain
The first and only
field in our contract is
storedData. You'll notice it is an
uint this is an integer that is always positive.
Next we'll take a look at the
constructor. The constructor will run when the contract is instantiated. Typically a
constructor used to give fields in a class/contract initial values.
You'll notice the constructor takes a parameter
_storedData. If we just passed
storedData the value would
shadow the field named
storedData hence the underscore.
The first function will set the
storedData value to the value
x that is passed.
The second function will return the
storedData value to the caller.
Deploying and Interacting with our Smart Contract
Head over to the deploy section in the Remix editor.
Make sure the Environment is set to
You'll also notice you have a test account funded with 100 ether, you'll have 15 test accounts to start with.
Note on Gas All operations that write data to the blockchain will require some gas. This means you will need to spend some ether in order to deploy this contract and run the
set() function we wrote earlier. Operations will vary in the amount of gas they use. The gas limit option will allow you to specify a limit to the amount of gas you are willing to use. An important thing to remember is that that each operation will run until the gas limit is reached. Spent gas will remain spent, so if some of the operations were fulfilled and you don't have enough gas to finish the transaction then you will still have spent ether on the fulfilled operations.
We can now deploy our smart contract. Make sure to give the
storedData value an initial value and press the
After deploying the contract you can click the dropdown arrow and interact with an instance of it on the blockchain.
In future tutorials I will show you how to deploy this on a local dev environment and create a simple front end.