Using Remix

A Hello World style starter project. Deploys a smart contract with a message, and renders it in the front-end. You can change the message using the interact panel!

This dapp implements a "Hello World" style application that echoes a message passed to the contract to the front end. This tutorial is intended to be followed using the online IDE available at Remix IDE.

Setting up Remix IDE

  • Remix IDE - an online IDE to develop smart contracts.

  • If you’re new to Remix, You’ll first need to activate two modules: Solidity Compiler and Deploy and Run Transactions.

  • search for 'Solidity Compiler' and 'Deploy and Run Transactions' plugins in the plugin tab in Remix

    RemixIDE_Step1
  • Activate the two plugins

    RemixIDE_Step1
  • Select Solidity Environment

    RemixIDE_Step1
  • RemixIDE_Step2Go to File Explorers, And Create a new file , Name it HelloWorld.sol
  • Copy/Paste the Smart contract below into the newly created file HelloWorld.sol

The smart contract

// Specifies that the source code is for a version
// of Solidity greater than 0.5.10
pragma solidity ^0.5.10;
// A contract is a collection of functions and data (its state)
// that resides at a specific address on the Ethereum blockchain.
contract HelloWorld {
// The keyword "public" makes variables accessible from outside a contract
// and creates a function that other contracts or SDKs can call to access the value
string public message;
// A special function only run during the creation of the contract
constructor(string memory initMessage) public {
// Takes a string value and stores the value in the memory data storage area,
// setting `message` to that value
message = initMessage;
}
// A publicly accessible function that takes a string as a parameter
// and updates `message`
function update(string memory newMessage) public {
message = newMessage;
}
}

The first line, pragma solidity ^0.5.10 specifies that the source code is for a Solidity version greater than 0.5.10. Pragmas are common instructions for compilers about how to treat the source code (e.g., pragma once).

A contract in the sense of Solidity is a collection of code (its functions) and data (its state) that resides at a specific address on the Ethereum blockchain. The line string public message declares a public state variable called message of type string. You can think of it as a single slot in a database that you can query and alter by calling functions of the code that manages the database. The keyword public automatically generates a function that allows you to access the current value of the state variable from outside of the contract. Without this keyword, other contracts have no way to access the variable.

The constructor is a special function run during the creation of the contract and cannot be called afterward. In this case, it takes a string value initMessage, stores the value in the memory data storage area, and sets message to that value.

The string public message function is another public function that is similar to the constructor, taking a string as a parameter, and updating the message variable.

Compile Smart Contract

  • Go to Solidity Compiler
  • Select Compiler Version to 0.5.10
  • Now, Compile HelloWorld.sol
  • After Successful Compilation, it will show
  • Now, We have to deploy our smart contract on Matic Network. For that, we have to connect to web3 world, this can be done my many services like Metamask, Brave, Portis etc. We will be using Metamask. Please follow this tutorial to setup a Metamask Account.
  • Open Metamask and select Custom RPC from the networks dropdown
RemixIDE_Step1
  • Put in a Network name - “Matic Testnet v3”

  • In URL field you can add the URL as - https://testnetv3.matic.network

  • Go ahead and click save

  • Copy your address from Metamask

    RemixIDE_Step1
  • Head over to Faucet and request test ether - if you'd like. Select 'Testnet3' and 'Test ERC20' token (the gas fee can also be safely set to 0 on testnet.)

  • Now, RemixIDE_Step1 Let's Deploy

  • the Smart Contract on Matic Network

  • Select Injected Web3 in the Environment dropdown and your contract

RemixIDE_Step1
  • Accept the Connection Request!
RemixIDE_Step1
  • Once Metamask is connected to Remix, the ‘Deploy’ transaction would generate another metamask popup that requires transaction confirmation.
RemixIDE_Step1

Congratulations! You have successfully deployed HelloWorld Smart Contract. Now you can interact with the Smart Contract. Check the deployement status here: https://testnetv3-explorer.matic.network/.

RemixIDE_Step1