Monday, July 7, 2025
The Dao Makers
No Result
View All Result
CRYPTO MARKETCAP
  • Home
  • Bitcoin
  • Launchpads
  • Crypto Updates
    • General
    • Blockchain
    • Ethereum
    • Altcoin
    • Mining
    • Crypto Exchanges
  • NFT
  • DeFi
  • Web3
  • Metaverse
  • Analysis
  • Regulations
  • Scam Alert
  • Videos
  • Home
  • Bitcoin
  • Launchpads
  • Crypto Updates
    • General
    • Blockchain
    • Ethereum
    • Altcoin
    • Mining
    • Crypto Exchanges
  • NFT
  • DeFi
  • Web3
  • Metaverse
  • Analysis
  • Regulations
  • Scam Alert
  • Videos
No Result
View All Result
The Dao Makers
No Result
View All Result

Smart Contract Programming Tutorial for Blockchain Developers

by The Dao Makers
January 7, 2023
in Web3
Reading Time: 14 mins read
0 0
A A
0
Home Web3
Share on FacebookShare on Twitter


This sensible contract programming tutorial will educate you easy methods to incorporate present sensible contract performance into your dapps. Because of wagmi and Moralis – the instruments we use on this tutorial – your dapp will have the ability to set off “learn” and “write” Web3 contract strategies or features. The next snippets of code will do all of the heavy lifting:

To run “learn” sensible contract features:const response = await Moralis.EvmApi.utils.runContractFunction({
abi,
functionName,
tackle,
chain,
}); To run “write” sensible contract features:const { config } = usePrepareContractWrite({})const { write } = useContractWrite()

Alongside the best way, you’ll even have an opportunity to learn to get a pockets’s ERC20 token steadiness. That is the place Moralis’ Ethereum API for tokens will do the trick by way of the next snippet of code: 

const response = await Moralis.EvmApi.token.getWalletTokenBalances({
tackle,
chain,
});

In case you’re already a proficient developer acquainted with Moralis, go forward and implement the above code snippets instantly! If not, be sure that to finish at the moment’s sensible contract programming tutorial and degree up your sport. Simply create your free Moralis account and comply with our lead!

Overview

The core of at the moment’s article can be our sensible contract programming tutorial. The latter will encompass two sub-tutorials – one instructing you to run “learn” sensible contract features and the opposite to run “write” features. In case you’d like to start the tutorial instantly, click on right here.

For at the moment’s tutorial, your JavaScript (NodeJS and ReactJS) proficiency will get you to the end line. Take into account that we’ll give you the first traces of code herein and hyperlinks to the whole code that awaits you on GitHub. Consequently, we’ve ensured that there aren’t any obstacles in your means and which you could simply full this sensible contract programming tutorial.    

Graph Sequence of a Smart Contract Programming Tutorial

After you’ve rolled up your sleeves and efficiently accomplished the tutorial, we’re going to give you some fundamentals associated to sensible contract programming. As such, we’ll clarify what sensible contracts are and what sensible contract programming is. We’ll additionally checklist the main sensible contract programming languages in case a few of you wish to begin creating your personal sensible contracts. 

In case you’d prefer to increase your expertise even additional after at the moment, be sure that to take a look at Moralis Academy and enroll within the Ethereum Good Contract Programming 101 course! 

Good Contract Programming Tutorial

As you proceed, you’ll have a chance to finish two sub-tutorials. One will present you easy methods to run sensible contract features out of your dapp, and the opposite easy methods to write them. The primary sub-tutorial will give attention to finishing the duty inside your terminal, with out truly making a frontend dapp. Nonetheless, the second sensible contract programming tutorial will even present you easy methods to create a easy frontend dapp. Right here’s the gist of that dapp:

The above screenshot reveals that the dapp you’ll have an opportunity to construct within the second sub-tutorial allows customers to attach their wallets. As soon as customers join their wallets, they get to ship their Chainlink (LINK) tokens by getting into the quantity and pasting a recipient tackle:

So as to incorporate present sensible contracts in dapps, you additionally wish to learn to discover their particulars. That is the place blockchain explorers enter the image. Since we’ll be specializing in the Ethereum and Polygon (Mumbai) chains, Etherscan and PolygonScan will do the trick. Thankfully, each of those explorers are fairly related. Basically, you’ll want to enter a sensible contract’s tackle or venture’s/token’s identify. Then, you scroll down the place you see a menu bar and click on on the “Contract” choice. By doing so, you’ll get to discover a sensible contract’s code, together with the ABI (by way of “Code”), and the contract’s “learn” and “write” features (by way of “Learn Contract” and “Write Contract”):

You need to even have your Moralis Web3 API key to finish the upcoming challenges. To get it, be sure that to create your free Moralis account. Then, you possibly can entry your admin space and procure your API key:

Run Good Contract Features

One of many methods to include sensible contracts into dapps is to run sensible contract features. Because of Moralis’ “runContractFunction” endpoint, it turns into extremely easy. You simply have to create a NodeJS dapp and incorporate the right endpoint.

Begin by making a “ContractFunctions” folder and open it in Visible Studio Code (VSC). Subsequent, use your terminal to initialize NodeJS by working the next command:

npm init -y

The above command will end in a “bundle.json” file in your file tree:

Then, set up the required dependencies with this command:

npm i moralis dotenv

Additionally, create your “.env” file, during which you’ll want to paste your above-obtained Web3 API key: 

Transferring ahead, create an “index.js” file. The latter will include the logic required to finish this sensible contract programming tutorial. Open this file, and on the prime, import Moralis and require “.env”:

const Moralis = require(“moralis”).default;
require(“dotenv”).config();

Then you’ll want to outline the ABI of the sensible contract that you simply wish to give attention to. We’ll use the “Cool Cats” contract on the Ethereum chain. Through the use of the information offered within the earlier part, you already know easy methods to get any contract’s ABI:

With the ABI copied, return to VSC and create a brand new “abi.json” file. Open it and paste the contract’s ABI. Subsequent, use “Shift+Choice+F” on Mac (or Home windows/Linux equal) to correctly rearrange the content material. This contract has a number of “learn” features; nonetheless, we’ll give attention to working “getPrice” with the “runContractFunction” endpoint.

Using the “runContractFunction” Methodology

Reopen your “index.js” file and require the above-created “abi.json” file:

const ABI = require(“./abi.json”);

You may then initialize Moralis by using your API key and implementing the “Moralis.EvmApi.utils.runContractFunction” methodology. You additionally want to make use of the sensible contract’s particulars as parameters. When specializing in “Cool Cats”, these are the traces of code that do the trick:

Moralis.begin({
apiKey: course of.env.MORALIS_KEY
}).then(async()=>{

const response = await Moralis.EvmApi.utils.runContractFunction({
tackle: “0x1A92f7381B9F03921564a437210bB9396471050C”,
functionName: “getPrice”
abi: ABI
});

console.log(response.uncooked)

})

Lastly, you possibly can run your “index.js” script with the next command:

node index.js

In case you have adopted our lead up to now, your terminal ought to return the next outcomes:

Observe: The costs in ETH use 18 decimal locations. Therefore, the above outcome signifies that the preliminary value for the “Cool Cats” NFT was 0.02 ETH.

You will discover the video model of this sub-tutorial under. That is additionally the place you possibly can apply working sensible contract features on one other “learn” perform (“tokenURI“). As well as, you need to use the video under to learn to mix the outcomes of working the “getPrice” perform with Moralis’ “getNFTLowestPrice” NFT API endpoint.

Write Good Contract Features

When working “learn” sensible contract features, you don’t change the state of the blockchain (you don’t execute on-chain transactions). Nonetheless, if you write sensible contract features, you execute blockchain transactions. Thus, you’ll want to have your MetaMask pockets prepared for this sensible contract programming tutorial. Transferring ahead, we’ll give attention to an instance sensible contract dapp that runs on the Polygon testnet (Mumbai). We’ll stroll you thru the core parts of the backend and frontend scripts of our instance “Ship ChainLink” dapp.

Observe: You will discover the whole code behind our instance dapp on GitHub. There you’ll see the “write” (frontend) and “backend” folders.

With our code cloned, ensure you have the content material of the “write” folder in your “frontend” folder. Then, open that folder in VSC and set up the required dependencies with this command:

npm i

Contained in the “index.js” frontend script, you possibly can see all required functionalities imported on the prime, together with wagmi:

import React from ‘react’;
import ReactDOM from ‘react-dom/shopper’;
import ‘./index.css’;
import App from ‘./App’;
import { configureChains, mainnet, WagmiConfig, createClient } from ‘wagmi’
import { publicProvider } from ‘wagmi/suppliers/public’
import { polygonMumbai } from ‘@wagmi/chains’;

Subsequent, this script allows the Mumbai chain:

const { supplier, webSocketProvider } = configureChains(
[mainnet, polygonMumbai],
[publicProvider()],
)

That is the place we create a wagmi shopper:

const shopper = createClient({
autoConnect: true,
supplier,
webSocketProvider,
})

Lastly, this script wraps your complete app in “wagmiConfig”:

const root = ReactDOM.createRoot(doc.getElementById(‘root’));
root.render(
<WagmiConfig shopper={shopper}>
<App />
</WagmiConfig>
);

Implementing the MetaMask Pockets Connector

With the traces of code above, you’ve arrange your frontend. Subsequent, you need to use wagmi to attach the MetaMask pockets to your dapp contained in the “App.js” script. For an in depth code walkthrough, use the video under, beginning at 5:03. Nonetheless, so far as connecting pockets performance goes, the next “import” traces are a prerequisite:

import { useConnect, useAccount, usePrepareContractWrite, useContractWrite } from “wagmi”;
import { MetaMaskConnector } from “wagmi/connectors/metaMask”;
import { useEffect, useState } from “react”;

The next traces of code contained in the “App()” perform finalizes the method:

const { tackle, isConnected } = useAccount();
const { join } = useConnect({
connector: new MetaMaskConnector(),
});

Getting the Pockets Stability

One of many code snippets from this text’s introduction focuses on getting a pockets steadiness. To implement this characteristic, you should use the “backend” folder. In it, you’ll find the backend “index.js” script (08:15). This script solely incorporates one endpoint: “/getBalance“. On the core of this endpoint is the “Moralis.EvmApi.token.getWalletTokenBalances” methodology. The latter fetches the related pockets tackle by way of “question.tackle” for the LINK token (by way of “tokenAddresses“) on the Mumbai chain (by way of chain ID). Listed below are the traces of code for this:

const response = await Moralis.EvmApi.token.getWalletTokenBalances({
tackle: question.tackle,
chain: “80001”,
tokenAddresses: [“0x326C977E6efc84E512bB9C30f76E30c160eD06FB”]
})

Identical to you probably did within the above “run” sensible contract programming tutorial, you should initialize Moralis together with your API key:

Moralis.begin({
apiKey: course of.env.MORALIS_KEY,
}).then(() => {
app.hear(port, () => {
console.log(`Listening for reqs`);
});
});

Observe: Once more, be sure that to retailer your key inside your “.env” file. 

Don’t forget to “cd” into your “backend” folder and set up all required dependencies with the “npm i” command. Then, you’ll have the ability to run your backend dapp with the next command:

node index.js

Along with your backend working, your frontend (App.js) will get to show the steadiness with the next “async” perform:

async perform getBalance() {
const response = await axios.get(“http://localhost:3000/getBalance”, {
params: {
tackle: tackle,
},
});

setUserBal(response.knowledge.steadiness);
}

The script makes use of “useEffect” to name the above “getBalance” perform when wallets hook up with our dapp. Be sure that to open a brand new terminal in your frontend as a result of you’ll want to preserve your backend working. Then, “cd” into your “frontend” folder and run the next command:

npm run begin

Observe: Use the video under (14:10) to discover how your dapp’s enter fields work.

The “write” Operate

With the above functionalities in place, we’ve reached the core facet of this sensible contract programming tutorial. That is the place we’ll take a better have a look at the traces of code that allow your dapp to set off a sensible contract’s “write” features. 

As you may need seen earlier, the “App.js” script imports “usePrepareContractWrite” and “useContractWrite“. This allows your code to arrange the info and truly set off the “write” contract features. Utilizing the video under, beginning at 16:00, you possibly can see how we use PolygonScan to get the “ChainLink Token” sensible contract particulars. This consists of inspecting all “write” features this sensible contract consists of and copying its ABI. You have already got the latter prepared within the “abi.json” file. Now, since our dapp goals to switch LINK tokens, we wish to give attention to the “switch” perform of the “ChainLink Token” contract. 

Observe: You may study the aim of the “useDebounce.js” script within the video under (17:27).

Finally, the “App.js” script first prepares the small print of the contract we’re specializing in by using “usePrepareContractWrite“. Then, it makes use of “useContractWrite” based mostly on these particulars. These are the traces of code that allow our instance dapp to set off a “write” sensible contract perform:

const { config } = usePrepareContractWrite({
tackle: ‘0x326C977E6efc84E512bB9C30f76E30c160eD06FB’,
abi: ABI,
chainId: 80001,
functionName: ‘switch(tackle,uint256)’,
args: [debouncedReceiver, debouncedSendAmount],
enabled: Boolean(debouncedSendAmount)
})

const { write } = useContractWrite(config)

The above “write” perform is triggered when customers hit the “Ship” button:

<button disabled={!write} onClick={()=>write?.()}>Ship</button>

Lastly, right here’s the video that we’ve been referencing on this second sub-tutorial:   

What are Good Contracts?

Good contracts are on-chain packages – items of software program that run on growth blockchains (e.g., Ethereum). As such, sensible contracts automate and information on-chain processes. They accomplish that by executing particular predefined actions each time sure predefined circumstances are met. It’s because of this automation that these on-chain packages are “sensible”. Moreover, sensible contracts are cost-effective, autonomous, trustless, and safe. Plus, the code behind each sensible contract is totally clear – everybody can view it with blockchain explorers. 

Thanks to those properties, Web3 contracts have monumental potential to transform all industries within the upcoming years. They’ve the ability to remove intermediaries and make the world extra environment friendly and honest. In fact, that’s the long-term objective. Nonetheless, Web3 remains to be in its early stage; subsequently, now’s the most effective time to study Web3 programming. What higher means to do this than to tackle a sensible contract programming tutorial? 

Student Enrolling in Moralis Academy Smart Contract Programming Tutorial Course

What’s Good Contract Programming?

So, what is wise contract programming? At its core, sensible contract programming is the method of writing, compiling, deploying, and verifying sensible contracts. Nonetheless, for the reason that first half – writing a sensible contract – is the trickiest, sensible contract programming primarily focuses on that activity. In spite of everything, you possibly can compile, deploy, and confirm Web3 contracts with a few clicks when utilizing the proper instruments. However, writing a correct sensible contract from scratch is a slightly superior feat, particularly in the event you goal to implement some authentic functionalities. 

To create a sensible contract, you’ll want to be proficient in one of many programming languages for sensible contracts. Furthermore, there isn’t one common sensible contract language that targets all in style blockchains, at the very least not but. As a substitute, you’ll want to determine which blockchain you wish to give attention to after which select among the many supported languages for that chain. All in all, if you wish to grasp sensible contract programming, you’ll want to be ready to place in fairly some effort and time. 

Nonetheless, to begin working with sensible contracts is slightly easy. For example, if you wish to deploy your sensible contract on Ethereum that offers with already identified duties, you need to use one in every of many verified sensible contract templates and apply minor tweaks. Then, you possibly can compile, deploy, and confirm it with the Remix IDE and MetaMask. Moreover, you can begin incorporating sensible contract functionalities into decentralized purposes (dapps). A fantastic instance of that might be to name a sensible contract perform from JavaScript. You should use a Web3 JS name contract perform or hearken to sensible contract occasions utilizing ethers.js. 

Various Programming Languages for Smart Contract Programming - Solidity - Vyper - Rust

Languages for Good Contract Programming

Under, you possibly can see the checklist of the six hottest sensible contract coding languages and the main chains they give attention to:

Solidity for Ethereum and different EVM-compatible chainsVyper for Ethereum and different EVM-compatible chainsYul (and Yul+) as an intermediate language for the Solidity compiler Rust for Solana, Polkadot, NEAR, and several other different chainsC++ for EOSJavaScript (NodeJS) for Hyperledger Material and NEAR

Different note-worthy programming languages that you need to use to jot down sensible contracts embody Readability (Bitcoin), Golang/Go (Ethereum), Marlowe (Cardano), Cadence (Stream), LIGO (Tezos), Transfer (Aptos), TEAL (Algorand), and Python (Hyperledger Material).  

Observe: If you wish to study extra particulars about Solidity, Vyper, and Yul, be sure that to make use of the “programming languages for sensible contracts” hyperlink above.

In the case of incorporating sensible contract functionalities into dapps, you need to use any of your favourite programming languages because of Moralis’ cross-platform interoperability. 

Good Contract Programming Tutorial for Blockchain Builders – Abstract

In at the moment’s sensible contract programming tutorial, we coated fairly some floor. You had an opportunity to comply with our lead and full at the moment’s sensible contract programming tutorial. First, you realized to create a NodeJS dapp that runs “learn” sensible contract features utilizing the Moralis “runContractFunction” endpoint. And within the second tutorial, you had a chance to clone our dapp and use it to set off “write” sensible contract features. As soon as we completed the tutorial, we addressed among the fundamentals. As such, you had an opportunity to refresh your understanding of sensible contracts and sensible contract programming. You additionally realized what the main sensible contract coding languages are. 

In case you loved at the moment’s tutorial, be sure that to dive into Moralis’ docs and deal with the “Tutorials” part. Don’t overlook to strengthen your blockchain growth information by visiting the Moralis YouTube channel and the Moralis weblog. These two shops cowl a variety of subjects. For example, among the newest articles will allow you to perceive blockchain-based knowledge storage, easy methods to get contract logs, easy methods to get Ethereum transaction particulars, and way more. If you wish to tackle the sensible contract programming course talked about within the “Overview” part, be sure that to enroll in Moralis Academy.



Source link

Tags: BlockchainContractDevelopersProgrammingSmartTutorial
Previous Post

Cecco del Caravaggio—the mysterious student and lover of the Baroque master of shadow—takes centre stage in new show

Next Post

Block Manager Sees Self-Custody as Future of Crypto Post-FTX

Related Posts

Web3

Let’s use Web3 to grow projects that fight climate change

July 1, 2025
Web3

Binance introduces self-custody Web3 wallet

July 2, 2025
Web3

What we can learn from the demise of Reddit crypto rewards

July 2, 2025
Web3

SBF convicted on all charges, Hong Kong buzzes with Web3 events

July 2, 2025
Web3

Web2 social media is failing its users. Web3 can do better

July 3, 2025
Web3

Mastercard explores partnerships with crypto wallets MetaMask, Ledger: CoinDesk

July 3, 2025
Next Post

Block Manager Sees Self-Custody as Future of Crypto Post-FTX

Implied volatility shows only sideways movements for Bitcoin

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • Trending
  • Comments
  • Latest

Latest Week in Ethereum News : ethereum

December 17, 2022

Adecoagro Partners With Tether to Pioneer Renewable Energy Use for Bitcoin Mining in Brazil

July 4, 2025

5 Generations, 1 Team — Heres How to Lead a Multigenerational Workforce

July 7, 2025

🦄 uniswap-universal-router-decoder ✨ v0.8.0 ✨ has just been released !!

March 18, 2023

The four times Bitcoin price fell by Independence Day each year

July 4, 2025

Shenzhen warns citizens of investment scams using stablecoins

July 7, 2025

SELL ALTCOINS NOW? | BITCOIN | CRYPTO NEWS BANGLA | BULL RUN | ALTSEASON | MARKET

37

Why Facebook-Parent Meta Is Willing To Lose Billions On The Metaverse

46

BTC Price Predictions, SUI Fall, HYPE, Trump Coin Scandal & More

42

ETF Recap: Bitcoin and Ether ETFs Extend Inflow Streaks With $988 Million Weekly Haul

July 7, 2025

Bitcoin Enters A New Phase As Profit-Taking Metric Picks Up Pace – Here’s What It Is

July 7, 2025

Bank of England’s call for banknote design ideas builds on a history of cash as art – The Art Newspaper

July 7, 2025

Shenzhen warns citizens of investment scams using stablecoins

July 7, 2025

Elon Musk Confirms New America Party Will Accept Bitcoin

July 7, 2025

BONK rallies 10% to outperform other major cryptos; check forecast

July 7, 2025
Telegram Twitter TikTok Youtube RSS
The Dao Makers

Find the latest Bitcoin, Ethereum, blockchain, crypto, Business, Fintech News, interviews, and price analysis at The Dao Makers.

CATEGORIES

  • Altcoin
  • Analysis
  • Bitcoin
  • Blockchain
  • Crypto Exchanges
  • Crypto Updates
  • DeFi
  • Ethereum
  • Fix Driver Errors
  • Launchpads
  • Metaverse
  • Mining
  • NFT
  • Regulations
  • Scam Alert
  • Uncategorized
  • Videos
  • Web3

SITE MAP

  • Disclaimer
  • Privacy Policy
  • DMCA
  • Cookie Privacy Policy
  • Terms and Conditions
  • Contact us

Copyright © 2022 The Dao Makers.
The Dao Makers is not responsible for the content of external sites.

No Result
View All Result
  • Home
  • Bitcoin
  • Launchpads
  • Crypto Updates
    • General
    • Blockchain
    • Ethereum
    • Altcoin
    • Mining
    • Crypto Exchanges
  • NFT
  • DeFi
  • Web3
  • Metaverse
  • Analysis
  • Regulations
  • Scam Alert
  • Videos

Copyright © 2022 The Dao Makers.
The Dao Makers is not responsible for the content of external sites.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In