Getting Started in Smart Contract Development with Solidity

This guide is prepared by @BunHouth.

Solidity is an object-oriented, high-level language for implementing smart contracts. Smart contracts are programs which govern the behaviour of accounts within the Ethereum state. Solidity is a curly-bracket language. It is influenced by C++, Python and JavaScript, and is designed to target the Ethereum Virtual Machine (EVM).

web3.js is a collection of libraries that allow you to interact with a local or remote ethereum node using HTTP, IPC or WebSocket.

Setup Development

Prerequisites

  • Operating system: OSX or Linux(Ubuntu, Cenos, ...etc)

  • Software: node js(npm, yarn) or python

Install node js

Ubuntu

 curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
 echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
 sudo apt-get update
 sudo apt-get install nodejs
 sudo apt install yarn

OSX

Setup smart contract project

Install Truffle

Install Ganache Local Network

Generate smart contract

Reference generate blank project

Structures:

structure
  1. /contracts: store original codes of the smart contract. We will place our HelloWorld.sol file here.

  2. /migrations: deploy the smart contract in the “contracts” folder.

  3. /test: test codes for your smart contract, support both JavaScript and Solidity.

  4. truffle.js: configuration document.

  5. truffle-config.js: configuration of deployment.

Step 2: Create HelloWeb3Together contract. There are two ways to create a new contract: Directly place HelloWeb3Together.sol” file under “contracts” folder. In the “web3together” folder, run command:

Copy the following codes into HelloWeb3Together.sol”:

Step 3: Compile “HelloWeb3Together” with the following command.

This compiles the original code into Ethereum bytecode. If everything goes well, it will create .json file under build/contracts folder. Step 4: Deploy “HelloWeb3Together” contract.

  1. Create 2_deploy_contracts.js under migrations folders. Truffle is run following order

  2. Copy and past the following deploying content into the “2_deploy_contracts.js”.

  1. Modify truffle-config.js and add following content to network section. If you are using public chain or private chain please add many section as you want.

  1. Start Ganache Local network and run following command on other tab or new terminal

  1. Deploy smart contract to local network

if contract already deploy and want to redeploy please add --reset option After run truffle migrate we will see deploy log in the same terminal. 6. Additional setup for deploy contract to public chain testnet(rinkeby)

Additional dependency

Add following content into network sections. reference

RPC Service

🎉Congrats! The “Web3Together” smart contract has been successfully deployed to Ganache.

Running Smart Contract online tool

Remix

Last updated