2. Triển khai hợp đồng thông minh

Bạn có thể sử dụng Remix Online IDE hoặc Truffle để triển khai hợp đồng thông minh MyERC721Card trên đây.

2.1 Triển khai hợp đồng thông minh bằng Remix Online IDE

Giờ đây MyERC721Card đã hoạt động! Bạn có thể tạo và chuyển đổi các thẻ là các token không thể thay thế tương thích với ERC-721.

Hãy tạo hai thẻ, cụ thể là thẻ KingQueen, cho tài khoản 0x2645BA5Be42FfEe907ca8e9d88f6Ee6dAd8c1410 như dưới đây.

Giờ chúng ta đã tạo được hai thẻ và hãy kiểm tra trạng thái của các token không thể thay thế MyERC721Card này.

  • balanceOf thể hiện rằng tài khoản 0x2645BA5Be42FfEe907ca8e9d88f6Ee6dAd8c1410 có hai thẻ.

  • cards có tham số 1 thể hiện rằng MyERC721Card với ID token 1 là thẻ Queen cấp độ 1.

  • ownerOf có tham số 0 thể hiện rằng chủ sở hữu của MyERC721Card với ID token 00x2645BA5Be42FfEe907ca8e9d88f6Ee6dAd8c1410.

2.2 Triển khai hợp đồng thông minh bằng truffle

Bạn nên cài đặt xong node.js trong môi trường của mình. Hãy xem Hướng dẫn cài đặt Node.js qua trình quản lý gói để cài đặt node.js bằng trình quản lý gói trong các môi trường khác nhau.

$ mkdir klaytn
$ cd klaytn
$ npm init # initialize npm at the erc20token directory
$ npm install truffle@4.1.15
$ npm install caver-js@latest # installing caver-js
$ ln -s node_modules/truffle/build/cli.bundled.js truffle
$ export PATH=`pwd`:$PATH

Giờ đây, bạn đã cài đặt truffle và caver-js, hai công cụ cần thiết để triển khai hợp đồng thông minh.

Hãy chuẩn bị truffle và một hợp đồng thông minh MyERC721Card.sol.

$ mkdir myerc721
$ cd myerc721
$ truffle init

Giờ bạn sẽ có các cấu trúc thư mục như sau.

.
├── contracts
│   ├── Migrations.sol
├── migrations
│   └── 1_initial_migration.js
└── truffle-config.js

Sau khi soạn hợp đồng MyERC721Card.sol và đặt nó vào thư mục contracts, cấu trúc thư mục sẽ như dưới đây.

Giờ bạn sẽ có các cấu trúc thư mục như sau.

.
├── contracts
│   ├── Migrations.sol
│   └── MyERC721Card.sol
├── migrations
│   └── 1_initial_migration.js
└── truffle-config.js

Ngoài ra, chỉnh sửa 1_initial_migration.js như trình bày dưới đây để triển khai hợp đồng MyERC721Card.

const Migrations = artifacts.require("./Migrations.sol");
const MyERC721Card = artifacts.require("./MyERC721Card.sol");
module.exports = function(deployer) {
  deployer.deploy(Migrations);
  deployer.deploy(MyERC721Card)
};

Bạn cũng phải cấu hình tập tin truffle-config.js để triển khai hợp đồng thông minh lên mạng lưới Klaytn. Bước này giống như bước được mô tả tại mục Triển khai Hợp đồng thông minh bằng Truffle

// truffle-config.js
module.exports = {
    networks: {
        baobab: {
            host: '127.0.0.1',
            port: 8551,
            from: '0xabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd', // nhập địa chỉ hợp đồng của bạn
            network_id: '1001', // id mạng Baobab
            gas: 20000000, // giới hạn gas của giao dịch
            gasPrice: 250000000000, // gasPrice của Baobab là 250 ston
        },
    },
    compilers: {
      solc: {
        version: "0.5.12"    // Chỉ định phiên bản trình biên dịch là 0.5.12
      }
  }
};

Giờ đây bạn đã sẵn sàng, hãy cùng triển khai MyERC721Card.sol bằng lệnh như sau.

$ truffle deploy --network baobab --reset
Compiling ./contracts/MyERC721Card.sol...
Soạn các tập tin artifact trong thư mục ./build/contracts

Sử dụng mạng lưới 'baobab'.

Running migration: 1_initial_migration.js
  Replacing Migrations...
  ... 0x5a947f076f4570dff8ff18b1ae3557e27dd69c92ce38a3c97fad8f5355914066
  Migrations: 0x0d737e9865e5fc4c1ff53744fd2c13c52a44b9bc
  Deploying MyERC721Card...
  ... 0x1571e80552dab1d67260e8914e06d9b16ccae16fb698c750f6a09aab12517bc1
  MyERC721Card: 0xc3d282926871c505f334d0f2c85ad52758347831
Lưu quá trình di chuyển thành công lên mạng...
  ... 0x5b984b3f79c425d80470a96d5badb857fc05e7f31d94423044ae3119c639aa77
Lưu các tập tin artifact...

Đầu ra bảng điều khiển thể hiện hàm băm giao dịch để triển khai hợp đồng MyERC721Card0x1571e80552dab1d67260e8914e06d9b16ccae16fb698c750f6a09aab12517bc1 và địa chỉ của MyERC721Card0xc3d282926871c505f334d0f2c85ad52758347831.

Last updated