, October 02, 2022

0 kết quả được tìm thấy

Sử dụng Remix để viết Smart Contract đầu tiên


  •   7 min reads
Sử dụng Remix để viết Smart Contract đầu tiên

Trong bài viết này, em sẽ giới thiệu với mọi người Remix - một IDE nổi tiếng hỗ trợ chúng ta trong quá trình tìm hiểu, làm việc với ngôn ngữ lập trình Solidity và viết thử , deploy Smart Contract đầu tiên.

1. Làm quen với Remix IDE:

Integrated Development Environment (IDE) là công cụ hỗ trợ cho chúng ta trong quá trình mình phát triển phần mềm. Hầu hết các ngôn ngữ lập trình phổ biến hiện nay sẽ có các IDE riêng biệt để hỗ trợ cho lập trình viên viết code và phát triển ứng dụng dễ dàng hơn.

Và Solidity cũng không ngoại lệ. Có rất nhiều IDE phổ biến hỗ trợ cho chúng ta làm việc với ngôn ngữ lập trình Solidity. Nhưng nổi bật nhất trong số đó chính là Remix vì tính dễ dàng sử dụng của nó, anh chị có thể dễ dàng dùng trên chính trình duyệt của mình mà không cần cài đặt về máy tính.

Một số lợi ích khi anh chị sử dụng Remix IDE bao gồm:

  • Viết Smart Contract, compile, deploy code Solidity.
  • Tích hợp với các test net cùng với web3.
  • Bởi vì Remix IDE chạy trên trình duyệt nên mình có thể sử dụng để tương tác với ví MetaMask.

Nếu như anh chị chưa biết MetaMask là gì hoặc chưa cài đặt MetaMask, anh chị có thể xem bài viết bên dưới để tìm hiểu thêm:

MetaMask là gì? Hướng dẫn cài đặt ví điện tử MetaMask
Xin chào anh chị, ở bài viết này em sẽ giới thiệu với anh chị một công cụ phổ biến không chỉ dành cho những ai đang giao dịch trên thị trường Crypto mà còn hỗ trợ rất lớn trong quá trình mình lập trình các dự án có liên quan đến công nghệ Blockchain đó chính là MetaMask.

Ngoài ra, một lời khuyên của em dành cho anh chị mới tìm hiểu ngôn ngữ lập trình Solidity đó là mình nên sử dụng Remix IDE để tiết kiệm thời gian cấu hình và cài đặt.

Đầu tiên, anh chị truy cập vào trang chủ của Remix thông qua link: https://remix.ethereum.org/

Dưới đây là giao diện của Remix sau khi anh chị nhấn vào link trên. Lưu ý trước khi bắt đầu, anh chị cần kiểm tra lại xem là Remix của chúng ta có đủ 2 tab số 1 và số 2 trong hình hay chưa.

Trong trường hợp anh chị không có 2 tab trên, anh chị có thể active thông qua setting của Remix bằng cách nhấn vào icon Setting ở góc trái phía dưới màn hình. Trong khung search anh chị gõ tên và nhấn Active như hình dưới.

(Lưu ý: Remix version hiện tại mặc định đã active sẵn 2 tab).

2. Viết thử Smart Contract đầu tiên:

Ok bây giờ chúng ta sẽ viết thử Smart Contract đầu tiên. Trước hết, anh chị nhấn vào icon file như hình bên dưới và tạo file tên là Counter.sol

Sau khi khởi tạo xong file, mình sẽ lập trình 1 Smart Contract với chức năng chính là tăng giảm số hiện tại lên 1 sau mỗi lần nhấn và hiển thị số hiện tại lên màn hình để xem giá trị hiện tại.

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract Counter {

    uint256 public counter;

    // Function that increments our counter
    function increment() public {
        counter++;
    }

    // Function that descrements our counter
    function descrement() public {
        counter--;
    }
}

Nếu anh chị đã lập trình qua bất kỳ ngôn ngữ nào, ví dụ như C#, Java, Dart chẳng hạn, mình sẽ thấy code ở trên rất rõ ràng và dễ hiểu đối với người mới. Em sẽ giải thích chức năng từng dòng để anh chị hiểu rõ hơn:

  • Dòng 1: Khai báo License, để ý nếu không có thì Compiler sẽ không chịu.
  • Dòng 3: Khai báo version Solidity Compiler mà anh chị mong muốn, lưu ý Solidity Compiler sẽ có sự khác biệt khi sử dụng, nhất là từ phiên bản 0.4.0 trở lên so với các bản trước đó.
  • Dòng 5: tên Contract, khá giống với tên class bên ngôn ngữ Java.
  • Dòng 7: biến Counter có kiểu dữ liệu unsigned integer (không có số âm), giá trị khởi tạo mặc định là 0.
  • Dòng 10: function increment() sẽ tăng biến counter của chúng ta lên 1 mỗi lần nhấn.
  • Dòng 15: function descrement() sẽ giảm biến counter của chúng ta xuống 1 mỗi lần nhấn.

Sau khi anh chị viết xong, mình nhấn qua tab Compile và nhấn vào Compile button. Nếu như file anh chị viết không có lỗi hay warning gì thì sẽ hiện dấu tick xanh lá như hình bên dưới:

Vậy là chúng ta đã tự mình viết xong Smart Contract đầu tiên. Tiếp theo mình sẽ deploy Smart Contract vừa viết để xem thử như thế nào.

3. Deploy Smart Contract:

Anh chị nhấn vào tab số 3 và nhấn vào nút "Deploy" để mình deploy Smart Contract vừa viết.

Một điểm hay của Remix đó là Remix hỗ trợ sẵn cho chúng ta UI để tương tác trực tiếp với contract. Sau khi deploy thành công, anh chị sẽ thấy giao diện như sau:

Nếu như anh chị làm được đến đây thì coi như mình đã đi được 90% chặng đường rồi, nhìn giao diện danh sách các nút button thấy có gì quen quen đúng không, bản chất nó tương ứng với các biến và các function mà chúng ta đã viết trong file Counter.sol đó ^^

Ok bây giờ mình sẽ tương tác với Smart Contract chúng ta tí nhé! Đầu tiên anh chị nhấn vào button counter hiện tại sẽ thấy giá trị hiện tại của nó là 0 (Dòng chữ ở dưới nút button hiển thị giá trị).

Tiếp theo mình sẽ tăng số đó lên bằng cách gọi function increment(). Anh chị nhấn vào button increment là coi như mình đã gọi function đó trong Remix. Sau khi nhấn xong mình kiểm tra giá trị hiện tại của biến counter sẽ thấy lúc này giá trị đã tăng lên 1.

Tương tự mình muốn giảm số đó thì cần gọi function descrement và kiểm tra lại giá trị của biến counter, lúc này giá trị đã về lại 0. Easy đúng không anh chị ^^

Sau khi xem xong bài viết này, em tin là anh chị đã biết cách làm việc với Remix IDE và viết được 1 Smart Contract đầu tiên của riêng mình. Sắp tới sẽ còn rất nhiều bài viết về ngôn ngữ Solidity cũng như những cách làm việc với Smart Contract, mong mọi người sẽ đón chờ bài viết tiếp theo ^^.

Bài viết liên quan

Tìm hiểu kiểu dữ liệu Boolean trong Solidity

Trong bài viết này, mình sẽ cùng nhau đi tìm hiểu kiểu dữ liệu Boolean trong Solidity thông qua các demo cơ bản nhé!...

Tìm hiểu kiểu dữ liệu Boolean trong Solidity
Tìm hiểu kiểu dữ liệu (Unsigned) Integer trong Solidity

Trong bài viết này, mình sẽ cùng nhau đi tìm hiểu kiểu dữ liệu (Unsigned) Integer trong Solidity thông qua các demo cơ bản nhé!...

Tìm hiểu kiểu dữ liệu (Unsigned) Integer trong Solidity
Sự khác biệt giữa Blockchain vs Cryptocurrency (Tiền điện tử)

Blockchain và tiền điện tử là hai thuật ngữ thường được sử dụng để thay thế cho nhau. Tuy nhiên, sẽ có sự khác biệt lớn giữa hai điều này. Tiền điện tử là loại tiền kỹ thuật số sử dụng blockchain làm sổ cái để lưu trữ hồ sơ của các giao dịch tiền điện tử....

Sự khác biệt giữa Blockchain vs Cryptocurrency (Tiền điện tử)
13 projects giúp bạn trở thành master với Web3 và Blockchain - Từ cơ bản đến nâng cao

Sau đây là 13 projects giúp bạn xây dựng để nâng cấp kỹ năng Web3 và Blockchain cho dù bạn là người mới bắt đầu hay đã lập trình trước đó....

13 projects giúp bạn trở thành master với Web3 và Blockchain - Từ cơ bản đến nâng cao
Làm sao để trở thành Blockchain Developer?

Dể trở thành Blockchain Developer, thì việc biết tương tác với smart contract là chưa đủ, còn rất nhiều công việc khác mà một Blockchain Dev cần phải đảm nhận. Vậy những công việc khác đó là gì?...

Làm sao để trở thành Blockchain Developer?
You've successfully subscribed to 200Lab Blog
Great! Next, complete checkout for full access to 200Lab Blog
Xin chào mừng bạn đã quay trở lại
OK! Tài khoản của bạn đã kích hoạt thành công.
Success! Your billing info is updated.
Billing info update failed.
Your link has expired.